[Pkg-amule-commits] [amule] 01/06: Imported Upstream version 2.3.1+git1a369e47

Sandro Tosi morph at moszumanska.debian.org
Sat Aug 30 18:57:37 UTC 2014


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

morph pushed a commit to branch master
in repository amule.

commit 4813ea1d552a25b8454d955d87f21ba3d4cd8bb6
Author: Sandro Tosi <morph at debian.org>
Date:   Thu Aug 28 20:45:12 2014 +0100

    Imported Upstream version 2.3.1+git1a369e47
---
 .svn-revision                                      |    1 +
 BUILDING_MACOSX.txt                                |   20 +
 Makefile.am                                        |    6 +-
 Makefile.in                                        |   65 +-
 README.Debian-Packages                             |    4 +-
 aMule-CVS.spec                                     |  114 +
 aMule.app/Contents/Info.plist                      |    8 +-
 .../English.lproj/MainMenu.nib/classes.nib         |    4 +-
 {aMule.app => aMuleGUI.app}/Contents/Info.plist    |   16 +-
 aMuleGUI.app/Contents/PkgInfo                      |    1 +
 .../English.lproj/MainMenu.nib/classes.nib         |    4 +-
 .../Resources/English.lproj/MainMenu.nib/info.nib  |   22 +
 .../English.lproj/MainMenu.nib/objects.nib         |  Bin 0 -> 5298 bytes
 aMuleGUI.app/Icon                                  |    0
 acinclude.m4                                       |   52 +-
 aclocal.m4                                         |    1 +
 amule.rc                                           |    2 +-
 amule_build_install.sh                             |   12 +-
 autogen.sh                                         |    2 +-
 config.h.in                                        |   14 +
 configure                                          | 1946 ++++++++++-------
 configure.in                                       |   51 +-
 docs/ABOUT-NLS                                     |    4 +-
 docs/Changelog                                     |  950 ++++----
 docs/Doxyfile                                      |    2 +-
 docs/EC_Protocol.txt                               |   10 +-
 docs/INSTALL                                       |    8 +-
 docs/Makefile.am                                   |    2 +-
 docs/Makefile.in                                   |   44 +-
 docs/README.Asio.txt                               |   46 +
 docs/README.Mac.txt                                |    2 +-
 docs/amulesig.txt                                  |    2 +-
 docs/man/Makefile.am                               |    4 +-
 docs/man/Makefile.in                               |   45 +-
 docs/man/amule.zh_TW.1                             |   89 +
 docs/man/amulecmd.zh_TW.1                          |  247 +++
 docs/man/amuled.zh_TW.1                            |   91 +
 docs/man/amulegui.zh_TW.1                          |   63 +
 docs/man/amuleweb.zh_TW.1                          |  187 ++
 docs/man/ed2k.zh_TW.1                              |   74 +
 docs/man/po/manpages-tr.po                         |    4 +-
 docs/man/po/manpages-zh_TW.add                     |    1 +
 docs/man/po/{manpages-tr.po => manpages-zh_TW.po}  |  639 +++---
 docs/man/po4a.config                               |    2 +-
 m4/GeoIP.m4                                        |    4 +-
 m4/boost.m4                                        |  612 ++++++
 m4/build-tools.m4                                  |    2 +-
 m4/cryptopp.m4                                     |   24 +-
 m4/fallocate.m4                                    |    2 +-
 m4/gdlib.m4                                        |    2 +-
 m4/libpng.m4                                       |    8 +-
 m4/libupnp.m4                                      |   10 +-
 m4/nls.m4                                          |    2 +-
 m4/pkg.m4                                          |    6 +-
 m4/plasmamule.m4                                   |    2 +-
 m4/readline.m4                                     |    2 +-
 m4/wxwin.m4                                        |   26 +-
 m4/zlib.m4                                         |    2 +-
 .../MacOSX/cocoa-mule/AddLinkDialogController.h    |    2 +-
 .../MacOSX/cocoa-mule/AddLinkDialogController.m    |   10 +-
 platforms/MacOSX/cocoa-mule/AppController.h        |   10 +-
 platforms/MacOSX/cocoa-mule/AppController.mm       |   32 +-
 .../MacOSX/cocoa-mule/DownloadsViewController.h    |    2 +-
 .../MacOSX/cocoa-mule/DownloadsViewController.mm   |    2 +-
 platforms/MacOSX/cocoa-mule/EC.h                   |   24 +-
 platforms/MacOSX/cocoa-mule/EC.mm                  |  120 +-
 .../MacOSX/cocoa-mule/LoginDialogController.h      |    4 +-
 .../MacOSX/cocoa-mule/LoginDialogController.m      |   12 +-
 .../MacOSX/cocoa-mule/SearchViewController.mm      |    2 +-
 .../MacOSX/cocoa-mule/SharedFilesViewController.mm |    2 +-
 platforms/MacOSX/cocoa-mule/SourceViewController.h |   12 +-
 platforms/MacOSX/cocoa-mule/SourceViewController.m |   40 +-
 platforms/MacOSX/cocoa-mule/amuleData.h            |   22 +-
 platforms/MacOSX/cocoa-mule/amuleData.mm           |   60 +-
 platforms/Windows/MSVC10/PCH.h                     |    2 +-
 .../Windows/MSVC10/aMule-MSVC10E-ExtLibs29.sln     |   36 +-
 platforms/Windows/MSVC10/aMule-MSVC10E.sln         |   28 +
 platforms/Windows/MSVC10/aMule/aMule.vcxproj       |    9 +
 .../Windows/MSVC10/aMule/aMule.vcxproj.filters     |    3 +
 platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj |    8 +
 platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj     |    9 +
 .../Windows/MSVC10/aMuleD/aMuleD.vcxproj.filters   |    3 +
 platforms/Windows/MSVC10/aMuleGUI/aMuleGUI.vcxproj |    8 +
 platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj |    8 +
 platforms/Windows/MSVC10/libs/libGeoIP/readme.txt  |    2 +-
 .../Windows/MSVC10/libs/libext/buildlibext.vcxproj |   40 +-
 .../MSVC10/libs/libmuleec/libmuleec.vcxproj        |   28 +-
 .../libs/libmuleec/libmuleec.vcxproj.filters       |   32 +-
 .../libsocket.vcxproj}                             |   72 +-
 .../libs/libsocket/libsocket.vcxproj.filters       |   33 +
 platforms/Windows/MSVC10/makeconfig.cmd            |   12 +-
 platforms/Windows/{MSVC9 => MSVC12}/PCH.cpp        |    0
 platforms/Windows/{MSVC9 => MSVC12}/PCH.h          |    2 +-
 .../Windows/{MSVC9 => MSVC12}/README - MSVC.txt    |   20 +-
 .../aLinkCreator/aLinkCreator.vcxproj}             |  120 +-
 .../aLinkCreator/aLinkCreator.vcxproj.filters}     |   44 +-
 .../aLinkCreator/alcc.vcxproj}                     |  103 +-
 .../MSVC12/aLinkCreator/alcc.vcxproj.filters       |   50 +
 .../aMule-MSVC12E-ExtLibs.sln}                     |   88 +-
 .../aMule-MSVC12E-ExtLibs30.sln}                   |   72 +-
 .../aMule-MSVC10E.sln => MSVC12/aMule-MSVC12E.sln} |  150 +-
 .../Windows/{MSVC10 => MSVC12}/aMule/aMule.vcxproj |   79 +-
 .../{MSVC10 => MSVC12}/aMule/aMule.vcxproj.filters |    3 +
 .../{MSVC10 => MSVC12}/aMuleCMD/aMuleCMD.vcxproj   |   50 +-
 .../MSVC12/aMuleCMD/aMuleCMD.vcxproj.filters       |   53 +
 .../{MSVC10 => MSVC12}/aMuleD/aMuleD.vcxproj       |   70 +-
 .../aMuleD/aMuleD.vcxproj.filters                  |    3 +
 .../{MSVC10 => MSVC12}/aMuleGUI/aMuleGUI.vcxproj   |   64 +-
 .../aMuleGUI/aMuleGUI.vcxproj.filters}             |  365 +---
 .../{MSVC10 => MSVC12}/aMuleWeb/aMuleWeb.vcxproj   |   57 +-
 .../MSVC12/aMuleWeb/aMuleWeb.vcxproj.filters       |   92 +
 platforms/Windows/MSVC12/ed2k/ed2k.vcxproj         |  127 ++
 platforms/Windows/MSVC12/ed2k/ed2k.vcxproj.filters |   44 +
 .../fileview/fileview.vcxproj}                     |  115 +-
 .../MSVC12/fileview/fileview.vcxproj.filters       |   57 +
 platforms/Windows/{MSVC9 => MSVC12}/fixwxGUIDs.pl  |   18 +-
 .../{MSVC9 => MSVC12}/libs/libGeoIP/GeoIP.cmd      |    3 +-
 platforms/Windows/MSVC12/libs/libGeoIP/GeoIP_X.hpp |   11 +
 .../Windows/MSVC12/libs/libGeoIP/libGeoIP.vcxproj  |   97 +
 .../MSVC12/libs/libGeoIP/libGeoIP.vcxproj.filters  |   33 +
 .../{MSVC9 => MSVC12}/libs/libGeoIP/readme.txt     |    2 +-
 .../libs/libext/buildlibext.vcxproj                |   74 +-
 .../MSVC12/libs/libext/buildlibext.vcxproj.filters |   22 +
 .../libs/libmulecommon/libmulecommon.vcxproj}      |  110 +-
 .../libmulecommon/libmulecommon.vcxproj.filters}   |   43 +-
 .../libs/libmuleec/libmuleec.vcxproj               |   62 +-
 .../libs/libmuleec/libmuleec.vcxproj.filters       |   32 +-
 .../libmuleexternalwxlistctrl.vcxproj}             |   74 +-
 .../libmuleexternalwxlistctrl.vcxproj.filters      |   27 +
 .../libs/libsocket/libsocket.vcxproj}              |  106 +-
 .../libs/libsocket/libsocket.vcxproj.filters       |   33 +
 platforms/Windows/{MSVC9 => MSVC12}/makeconfig.cmd |   12 +-
 platforms/Windows/{MSVC9 => MSVC12}/version.rc     |    0
 .../wxCas/wxCas.vcxproj}                           |  135 +-
 .../wxCas/wxCas.vcxproj.filters}                   |   48 +-
 .../MSVC9/UnitTests/FileDataIO/FileDataIO.vcproj   |  216 --
 .../MSVC9/UnitTests/FormatTest/FormatTest.vcproj   |  199 --
 .../NetworkFunctions/NetworkFunctions.vcproj       |  203 --
 .../MSVC9/UnitTests/RangeMap/RangeMap.vcproj       |  199 --
 .../StringFunctions/StringFunctions.vcproj         |  199 --
 .../libmuleunittest/libmuleunittest.vcproj         |  195 --
 .../Windows/MSVC9/aLinkCreator/aLinkCreator.vcproj |  414 ----
 platforms/Windows/MSVC9/aLinkCreator/alcc.vcproj   |  394 ----
 platforms/Windows/MSVC9/aMule-MSVC.sln             |  367 ----
 platforms/Windows/MSVC9/aMule-MSVCE.sln            |  216 --
 platforms/Windows/MSVC9/aMule/aMule.vcproj         | 1648 --------------
 platforms/Windows/MSVC9/aMuleCMD/aMuleCMD.vcproj   |  396 ----
 platforms/Windows/MSVC9/aMuleD/aMuleD.vcproj       |  836 -------
 platforms/Windows/MSVC9/aMuleGUI/aMuleGUI.vcproj   | 1118 ----------
 platforms/Windows/MSVC9/aMuleWeb/aMuleWeb.vcproj   |  448 ----
 platforms/Windows/MSVC9/ed2k/ed2k.vcproj           |  229 --
 platforms/Windows/MSVC9/fileview/fileview.vcproj   |  398 ----
 .../Windows/MSVC9/libs/libGeoIP/libGeoIP.vcproj    |  201 --
 .../Windows/MSVC9/libs/libext/buildlibext.vcproj   |  149 --
 platforms/Windows/MSVC9/libs/libext/libext.vcproj  |  283 ---
 .../MSVC9/libs/libmulecommon/libmulecommon.vcproj  |  394 ----
 .../Windows/MSVC9/libs/libmuleec/libmuleec.vcproj  |  358 ---
 .../libmuleexternalwxlistctrl.vcproj               |  302 ---
 platforms/Windows/MSVC9/wxCas/wxCas.vcproj         |  428 ----
 po/POTFILES.in                                     |    6 +-
 po/amule.pot                                       | 1585 +++++++-------
 po/ar.po                                           | 1591 +++++++-------
 po/ast.po                                          | 1591 +++++++-------
 po/bg.po                                           | 1590 +++++++-------
 po/ca.po                                           | 1591 +++++++-------
 po/cs.po                                           | 1595 +++++++-------
 po/da.po                                           | 1596 +++++++-------
 po/de.po                                           | 1591 +++++++-------
 po/el.po                                           | 1588 +++++++-------
 po/en_GB.po                                        | 1585 +++++++-------
 po/es.po                                           | 1794 +++++++--------
 po/et_EE.po                                        | 1588 +++++++-------
 po/eu.po                                           | 1591 +++++++-------
 po/fi.po                                           | 1593 +++++++-------
 po/fr.po                                           | 1594 +++++++-------
 po/gl.po                                           | 1588 +++++++-------
 po/he.po                                           | 1591 +++++++-------
 po/hr.po                                           | 1591 +++++++-------
 po/hu.po                                           | 1591 +++++++-------
 po/it.po                                           | 1591 +++++++-------
 po/it_CH.po                                        | 1592 +++++++-------
 po/ja.po                                           | 1595 +++++++-------
 po/ko_KR.po                                        | 1595 +++++++-------
 po/lt.po                                           | 1588 +++++++-------
 po/nl.po                                           | 1591 +++++++-------
 po/nn.po                                           | 1588 +++++++-------
 po/pl.po                                           | 1591 +++++++-------
 po/pt_BR.po                                        | 2296 ++++++++++----------
 po/pt_PT.po                                        | 1588 +++++++-------
 po/ru.po                                           | 1588 +++++++-------
 po/sl.po                                           | 1596 +++++++-------
 po/sq.po                                           | 1591 +++++++-------
 po/sv.po                                           | 1591 +++++++-------
 po/tr.po                                           | 1630 +++++++-------
 po/uk.po                                           | 1591 +++++++-------
 po/zh_CN.po                                        | 1591 +++++++-------
 po/zh_TW.po                                        | 1591 +++++++-------
 src/AddFriend.cpp                                  |   14 +-
 src/AddFriend.h                                    |    2 +-
 src/ArchSpecific.h                                 |   30 +-
 src/AsyncDNS.cpp                                   |   12 +-
 src/AsyncDNS.h                                     |    7 +-
 src/BarShader.cpp                                  |   10 +-
 src/BarShader.h                                    |   18 +-
 src/BaseClient.cpp                                 |  346 +--
 src/BitVector.h                                    |    4 +-
 src/CFile.cpp                                      |   72 +-
 src/CFile.h                                        |   46 +-
 src/CanceledFileList.cpp                           |   14 +-
 src/CanceledFileList.h                             |    2 +-
 src/CaptchaDialog.cpp                              |    6 +-
 src/CaptchaDialog.h                                |   18 +-
 src/CaptchaGenerator.cpp                           |    6 +-
 src/CaptchaGenerator.h                             |    2 +-
 src/CatDialog.cpp                                  |   44 +-
 src/CatDialog.h                                    |   14 +-
 src/ChatSelector.cpp                               |   80 +-
 src/ChatSelector.h                                 |    6 +-
 src/ChatWnd.cpp                                    |   30 +-
 src/ChatWnd.h                                      |   12 +-
 src/ClientCredits.cpp                              |   38 +-
 src/ClientCredits.h                                |   11 +-
 src/ClientCreditsList.cpp                          |  124 +-
 src/ClientCreditsList.h                            |    8 +-
 src/ClientDetailDialog.cpp                         |   32 +-
 src/ClientDetailDialog.h                           |   20 +-
 src/ClientList.cpp                                 |  124 +-
 src/ClientList.h                                   |   52 +-
 src/ClientRef.cpp                                  |    6 +-
 src/ClientRef.h                                    |   16 +-
 src/ClientTCPSocket.cpp                            |  543 +++--
 src/ClientTCPSocket.h                              |   17 +-
 src/ClientUDPSocket.cpp                            |   34 +-
 src/ClientUDPSocket.h                              |    4 +-
 src/ColorFrameCtrl.cpp                             |   10 +-
 src/ColorFrameCtrl.h                               |    2 +-
 src/CommentDialog.cpp                              |   10 +-
 src/CommentDialog.h                                |    8 +-
 src/CommentDialogLst.cpp                           |   22 +-
 src/CommentDialogLst.h                             |   16 +-
 src/CompilerSpecific.h                             |   41 +
 src/Constants.h                                    |   16 +-
 src/CorruptionBlackBox.cpp                         |   10 +-
 src/CorruptionBlackBox.h                           |    2 +-
 src/CryptoPP_Inc.h                                 |    2 +-
 src/DataToText.cpp                                 |    8 +-
 src/DataToText.h                                   |    2 +-
 src/DeadSourceList.cpp                             |   12 +-
 src/DeadSourceList.h                               |   22 +-
 src/DirectoryTreeCtrl.cpp                          |   54 +-
 src/DirectoryTreeCtrl.h                            |   12 +-
 src/DownloadClient.cpp                             |  370 ++--
 src/DownloadListCtrl.cpp                           |  268 +--
 src/DownloadListCtrl.h                             |   50 +-
 src/DownloadQueue.cpp                              |  319 +--
 src/DownloadQueue.h                                |   86 +-
 src/ECSpecialCoreTags.cpp                          |   37 +-
 src/ECSpecialMuleTags.cpp                          |   14 +-
 src/ED2KLink.cpp                                   |   44 +-
 src/ED2KLink.h                                     |   14 +-
 src/ED2KLinkParser.cpp                             |   50 +-
 src/EMSocket.cpp                                   |  147 +-
 src/EMSocket.h                                     |   30 +-
 src/EditServerListDlg.cpp                          |   12 +-
 src/EditServerListDlg.h                            |    4 +-
 src/EncryptedDatagramSocket.cpp                    |   31 +-
 src/EncryptedDatagramSocket.h                      |    4 +-
 src/EncryptedStreamSocket.cpp                      |   97 +-
 src/EncryptedStreamSocket.h                        |    3 +-
 src/ExternalConn.cpp                               |  283 +--
 src/ExternalConn.h                                 |   92 +-
 src/ExternalConnector.cpp                          |   43 +-
 src/ExternalConnector.h                            |   16 +-
 src/FileArea.cpp                                   |    4 +-
 src/FileArea.h                                     |    4 +-
 src/FileAutoClose.cpp                              |   14 +-
 src/FileAutoClose.h                                |   32 +-
 src/FileDetailDialog.cpp                           |   32 +-
 src/FileDetailDialog.h                             |    4 +-
 src/FileDetailListCtrl.cpp                         |   16 +-
 src/FileDetailListCtrl.h                           |    4 +-
 src/FileLock.h                                     |   38 +-
 src/Friend.cpp                                     |   14 +-
 src/Friend.h                                       |   14 +-
 src/FriendList.cpp                                 |   36 +-
 src/FriendList.h                                   |    6 +-
 src/FriendListCtrl.cpp                             |   72 +-
 src/FriendListCtrl.h                               |    8 +-
 src/GapList.cpp                                    |   16 +-
 src/GapList.h                                      |    4 +-
 src/GenericClientListCtrl.cpp                      |  246 +--
 src/GenericClientListCtrl.h                        |   28 +-
 src/GetTickCount.cpp                               |   36 +-
 src/GetTickCount.h                                 |    4 +-
 src/GuiEvents.cpp                                  |  148 +-
 src/GuiEvents.h                                    |   76 +-
 src/HTTPDownload.cpp                               |   66 +-
 src/HTTPDownload.h                                 |    6 +-
 src/IP2Country.cpp                                 |   46 +-
 src/IP2Country.h                                   |    8 +-
 src/IPFilter.cpp                                   |   35 +-
 src/IPFilter.h                                     |   20 +-
 src/IPFilterScanner.cpp                            |   53 +-
 src/IPFilterScanner.h                              |    2 +-
 src/IPFilterScanner.l                              |    8 +-
 src/InternalEvents.h                               |   16 +-
 src/KadDlg.cpp                                     |   51 +-
 src/KadDlg.h                                       |   13 +-
 src/KnownFile.cpp                                  |  347 +--
 src/KnownFile.h                                    |   29 +-
 src/KnownFileList.cpp                              |   58 +-
 src/KnownFileList.h                                |    2 +-
 .../protocol/kad2/Constants.h => LibSocket.cpp}    |   19 +-
 src/LibSocket.h                                    |  358 +++
 src/LibSocketAsio.cpp                              | 1502 +++++++++++++
 src/LibSocketWX.cpp                                |  153 ++
 src/ListenSocket.cpp                               |  113 +-
 src/ListenSocket.h                                 |   26 +-
 src/Logger.cpp                                     |   95 +-
 src/Logger.h                                       |   55 +-
 src/LoggerConsole.cpp                              |    2 +-
 src/MD4Hash.h                                      |   72 +-
 src/MagnetURI.cpp                                  |    2 +-
 src/MagnetURI.h                                    |    4 +-
 src/Makefile.am                                    |   42 +-
 src/Makefile.in                                    |  125 +-
 src/MemFile.cpp                                    |   41 +-
 src/MemFile.h                                      |   44 +-
 src/MuleCollection.cpp                             |  229 +-
 src/MuleCollection.h                               |   46 +-
 src/MuleColour.cpp                                 |   16 +-
 src/MuleColour.h                                   |   32 +-
 src/MuleGifCtrl.cpp                                |   48 +-
 src/MuleGifCtrl.h                                  |   32 +-
 src/MuleListCtrl.cpp                               |  100 +-
 src/MuleListCtrl.h                                 |   46 +-
 src/MuleNotebook.cpp                               |   38 +-
 src/MuleNotebook.h                                 |   18 +-
 src/MuleTextCtrl.cpp                               |   26 +-
 src/MuleTextCtrl.h                                 |   16 +-
 src/MuleThread.h                                   |    2 +-
 src/MuleTrayIcon.cpp                               |  104 +-
 src/MuleTrayIcon.h                                 |   12 +-
 src/MuleUDPSocket.cpp                              |   81 +-
 src/MuleUDPSocket.h                                |   33 +-
 src/NetworkFunctions.cpp                           |   24 +-
 src/NetworkFunctions.h                             |   24 +-
 src/OScopeCtrl.cpp                                 |   95 +-
 src/OScopeCtrl.h                                   |   10 +-
 src/Observable.h                                   |   48 +-
 src/ObservableQueue.h                              |   68 +-
 src/OtherFunctions.cpp                             |  133 +-
 src/OtherFunctions.h                               |   27 +-
 src/OtherStructs.h                                 |    6 +-
 src/Packet.cpp                                     |   74 +-
 src/Packet.h                                       |   18 +-
 src/Parser.cpp                                     |  353 +--
 src/Parser.hpp                                     |   51 +-
 src/PartFile.cpp                                   |  802 +++----
 src/PartFile.h                                     |   89 +-
 src/PartFileConvert.cpp                            |   41 +-
 src/PartFileConvertDlg.cpp                         |   12 +-
 src/PlatformSpecific.cpp                           |   48 +-
 src/PlatformSpecific.h                             |    9 +-
 src/Preferences.cpp                                |   43 +-
 src/Preferences.h                                  |  125 +-
 src/PrefsUnifiedDlg.cpp                            |   25 +-
 src/PrefsUnifiedDlg.h                              |   10 +-
 src/Proxy.cpp                                      |  449 ++--
 src/Proxy.h                                        |   99 +-
 src/RC4Encrypt.cpp                                 |   16 +-
 src/RC4Encrypt.h                                   |   17 +-
 src/RLE.cpp                                        |   14 +-
 src/RLE.h                                          |   10 +-
 src/RandomFunctions.cpp                            |    2 +-
 src/RandomFunctions.h                              |    6 +-
 src/RangeMap.h                                     |   70 +-
 src/SHA.cpp                                        |   54 +-
 src/SHA.h                                          |    2 +-
 src/SHAHashSet.cpp                                 |   96 +-
 src/SHAHashSet.h                                   |   36 +-
 src/SafeFile.cpp                                   |  106 +-
 src/SafeFile.h                                     |   46 +-
 src/Scanner.cpp                                    |  118 +-
 src/Scanner.h                                      |  322 ++-
 src/Scanner.l                                      |   22 +-
 src/ScopedPtr.h                                    |    8 +-
 src/SearchDlg.cpp                                  |    2 +-
 src/SearchDlg.h                                    |   22 +-
 src/SearchExpr.h                                   |   17 +-
 src/SearchFile.cpp                                 |   16 +-
 src/SearchFile.h                                   |   30 +-
 src/SearchList.cpp                                 |  159 +-
 src/SearchList.h                                   |   48 +-
 src/SearchListCtrl.cpp                             |  106 +-
 src/SearchListCtrl.h                               |   44 +-
 src/Server.cpp                                     |   62 +-
 src/Server.h                                       |   62 +-
 src/ServerConnect.cpp                              |  111 +-
 src/ServerConnect.h                                |   17 +-
 src/ServerList.cpp                                 |  179 +-
 src/ServerList.h                                   |   18 +-
 src/ServerListCtrl.cpp                             |  110 +-
 src/ServerListCtrl.h                               |   54 +-
 src/ServerSocket.cpp                               |  177 +-
 src/ServerSocket.h                                 |   26 +-
 src/ServerUDPSocket.cpp                            |  120 +-
 src/ServerUDPSocket.h                              |    2 +-
 src/ServerWnd.cpp                                  |   36 +-
 src/ServerWnd.h                                    |    2 +-
 src/SharedFileList.cpp                             |  112 +-
 src/SharedFileList.h                               |   24 +-
 src/SharedFilePeersListCtrl.cpp                    |    4 +-
 src/SharedFilePeersListCtrl.h                      |   14 +-
 src/SharedFilesCtrl.cpp                            |  119 +-
 src/SharedFilesCtrl.h                              |   32 +-
 src/SharedFilesWnd.cpp                             |   66 +-
 src/SharedFilesWnd.h                               |   20 +-
 src/SourceListCtrl.cpp                             |    4 +-
 src/SourceListCtrl.h                               |   14 +-
 src/StatTree.cpp                                   |   20 +-
 src/StatTree.h                                     |    8 +-
 src/StateMachine.cpp                               |    4 +-
 src/StateMachine.h                                 |    4 +-
 src/Statistics.cpp                                 |  153 +-
 src/Statistics.h                                   |   15 +-
 src/StatisticsDlg.cpp                              |   58 +-
 src/StatisticsDlg.h                                |    4 +-
 src/Tag.cpp                                        |   76 +-
 src/Tag.h                                          |   44 +-
 src/TerminationProcess.cpp                         |    2 +-
 src/TerminationProcess.h                           |    2 +-
 src/TerminationProcessAmuleweb.cpp                 |    2 +-
 src/TerminationProcessAmuleweb.h                   |    2 +-
 src/TextClient.cpp                                 |  208 +-
 src/TextClient.h                                   |   11 +-
 src/ThreadScheduler.cpp                            |   48 +-
 src/ThreadScheduler.h                              |   42 +-
 src/ThreadTasks.cpp                                |  109 +-
 src/ThreadTasks.h                                  |   51 +-
 src/ThrottledSocket.h                              |    4 +-
 src/Timer.cpp                                      |   16 +-
 src/Timer.h                                        |   18 +-
 src/TransferWnd.cpp                                |  106 +-
 src/TransferWnd.h                                  |   20 +-
 src/Types.h                                        |   33 +-
 src/UPnPBase.cpp                                   |  178 +-
 src/UPnPBase.h                                     |   63 +-
 src/UPnPCompatibility.h                            |    6 +-
 src/UpDownClientEC.h                               |    8 +-
 src/UploadBandwidthThrottler.cpp                   |   40 +-
 src/UploadBandwidthThrottler.h                     |   22 +-
 src/UploadClient.cpp                               |  218 +-
 src/UploadQueue.cpp                                |   62 +-
 src/UploadQueue.h                                  |    6 +-
 src/UserEvents.cpp                                 |    6 +-
 src/UserEvents.h                                   |   32 +-
 src/amule-gui.cpp                                  |    6 +-
 src/amule-remote-gui.cpp                           |  294 +--
 src/amule-remote-gui.h                             |  171 +-
 src/amule.cpp                                      |  358 +--
 src/amule.h                                        |   73 +-
 src/amuleAppCommon.cpp                             |  106 +-
 src/amuleDlg.cpp                                   |  108 +-
 src/amuleDlg.h                                     |   39 +-
 src/amuleIPV4Address.h                             |   55 +-
 src/amuled.cpp                                     |  171 +-
 src/extern/wxWidgets/listctrl.cpp                  |    4 +-
 src/extern/wxWidgets/listctrl.h                    |    8 +-
 src/include/common/ClientVersion.h                 |   14 +-
 src/include/common/Constants.h                     |    4 +-
 src/include/common/DataFileVersion.h               |    2 +-
 src/include/common/EventIDs.h                      |    4 +-
 src/include/common/Macros.h                        |    5 +-
 src/include/common/MacrosProgramSpecific.h         |    2 +-
 src/include/common/MenuIDs.h                       |    9 +-
 src/include/protocol/Protocols.h                   |    8 +-
 src/include/protocol/ed2k/Client2Client/TCP.h      |   18 +-
 src/include/protocol/ed2k/Client2Client/UDP.h      |    2 +-
 src/include/protocol/ed2k/Client2Server/TCP.h      |    4 +-
 src/include/protocol/ed2k/Client2Server/UDP.h      |    6 +-
 src/include/protocol/ed2k/ClientSoftware.h         |    2 +-
 src/include/protocol/ed2k/Constants.h              |    4 +-
 src/include/protocol/kad/Client2Client/UDP.h       |    2 +-
 src/include/protocol/kad/Constants.h               |    2 +-
 src/include/protocol/kad2/Client2Client/TCP.h      |    2 +-
 src/include/protocol/kad2/Client2Client/UDP.h      |    2 +-
 src/include/protocol/kad2/Constants.h              |    2 +-
 src/include/tags/ClientTags.h                      |    2 +-
 src/include/tags/FileTags.h                        |   14 +-
 src/include/tags/ServerTags.h                      |    4 +-
 src/include/tags/TagTypes.h                        |    2 +-
 src/inetdownload.h                                 |    2 +-
 src/kademlia/kademlia/Defines.h                    |    2 +-
 src/kademlia/kademlia/Entry.cpp                    |   24 +-
 src/kademlia/kademlia/Entry.h                      |    4 +-
 src/kademlia/kademlia/Error.h                      |    4 +-
 src/kademlia/kademlia/Indexed.cpp                  |   82 +-
 src/kademlia/kademlia/Indexed.h                    |    6 +-
 src/kademlia/kademlia/Kademlia.cpp                 |   10 +-
 src/kademlia/kademlia/Kademlia.h                   |    6 +-
 src/kademlia/kademlia/Prefs.cpp                    |    2 +-
 src/kademlia/kademlia/Prefs.h                      |    2 +-
 src/kademlia/kademlia/Search.cpp                   |   28 +-
 src/kademlia/kademlia/Search.h                     |    2 +-
 src/kademlia/kademlia/SearchManager.cpp            |   11 +-
 src/kademlia/kademlia/SearchManager.h              |    2 +-
 src/kademlia/kademlia/UDPFirewallTester.cpp        |    2 +-
 src/kademlia/kademlia/UDPFirewallTester.h          |    2 +-
 src/kademlia/net/KademliaUDPListener.cpp           |   69 +-
 src/kademlia/net/KademliaUDPListener.h             |    4 +-
 src/kademlia/net/PacketTracking.cpp                |    4 +-
 src/kademlia/net/PacketTracking.h                  |    2 +-
 src/kademlia/routing/Contact.h                     |    4 +-
 src/kademlia/routing/Maps.h                        |    2 +-
 src/kademlia/routing/RoutingBin.cpp                |   12 +-
 src/kademlia/routing/RoutingBin.h                  |    2 +-
 src/kademlia/routing/RoutingZone.cpp               |   27 +-
 src/kademlia/routing/RoutingZone.h                 |    4 +-
 src/kademlia/utils/KadClientSearcher.h             |    2 +-
 src/kademlia/utils/KadUDPKey.h                     |    2 +-
 src/kademlia/utils/UInt128.cpp                     |  103 +-
 src/kademlia/utils/UInt128.h                       |  174 +-
 src/libs/Makefile.in                               |   42 +-
 src/libs/common/FileFunctions.cpp                  |   68 +-
 src/libs/common/FileFunctions.h                    |    6 +-
 src/libs/common/Format.cpp                         |    8 +-
 src/libs/common/Format.h                           |   12 +-
 src/libs/common/MD5Sum.cpp                         |   28 +-
 src/libs/common/MD5Sum.h                           |    8 +-
 src/libs/common/Makefile.in                        |   42 +-
 src/libs/common/MuleDebug.cpp                      |   50 +-
 src/libs/common/MuleDebug.h                        |    8 +-
 src/libs/common/Path.cpp                           |   56 +-
 src/libs/common/Path.h                             |    6 +-
 src/libs/common/StringFunctions.cpp                |   16 +-
 src/libs/common/StringFunctions.h                  |   45 +-
 src/libs/common/TextFile.cpp                       |   22 +-
 src/libs/common/TextFile.h                         |    8 +-
 src/libs/common/strerror_r.c                       |    4 +-
 src/libs/common/strerror_r.h                       |    2 +-
 src/libs/ec/Makefile.am                            |    2 +-
 src/libs/ec/Makefile.in                            |   44 +-
 src/libs/ec/abstracts/ECCodes.abstract             |    1 +
 src/libs/ec/abstracts/License.abstract             |    2 +-
 src/libs/ec/cpp/ECCodes.h                          |    4 +-
 src/libs/ec/cpp/ECFileConfig.h                     |    2 +-
 src/libs/ec/cpp/ECID.h                             |    2 +-
 src/libs/ec/cpp/ECMuleSocket.cpp                   |   14 +-
 src/libs/ec/cpp/ECMuleSocket.h                     |   48 +-
 src/libs/ec/cpp/ECPacket.cpp                       |    6 +-
 src/libs/ec/cpp/ECPacket.h                         |    6 +-
 src/libs/ec/cpp/ECSocket.cpp                       |   93 +-
 src/libs/ec/cpp/ECSocket.h                         |   58 +-
 src/libs/ec/cpp/ECSpecialTags.cpp                  |    6 +-
 src/libs/ec/cpp/ECSpecialTags.h                    |  261 +--
 src/libs/ec/cpp/ECTag.cpp                          |   76 +-
 src/libs/ec/cpp/ECTag.h                            |   34 +-
 src/libs/ec/cpp/ECTagTypes.h                       |    2 +-
 src/libs/ec/cpp/Makefile.in                        |   42 +-
 src/libs/ec/cpp/RemoteConnect.cpp                  |   35 +-
 src/libs/ec/cpp/RemoteConnect.h                    |   34 +-
 src/libs/ec/cpp/gen_ECVersion                      |    4 +-
 src/libs/ec/file_generator.pl                      |   20 +-
 src/libs/ec/java/ECCodes.java                      |    3 +-
 src/libs/ec/java/ECTagTypes.java                   |    2 +-
 src/muuli.wdr                                      |  Bin 328835 -> 329124 bytes
 src/muuli_wdr.cpp                                  |   15 +-
 src/muuli_wdr.h                                    |   71 +-
 src/pixmaps/Makefile.am                            |    2 +-
 src/pixmaps/Makefile.in                            |   44 +-
 src/pixmaps/flags_xpm/Makefile.in                  |   42 +-
 src/skins/Makefile.in                              |   42 +-
 src/updownclient.h                                 |  167 +-
 src/utils/Makefile.in                              |   42 +-
 src/utils/aLinkCreator/Makefile.in                 |   42 +-
 src/utils/aLinkCreator/docs/Makefile.am            |    3 +-
 src/utils/aLinkCreator/docs/Makefile.in            |   45 +-
 src/utils/aLinkCreator/docs/alc.zh_TW.1            |   24 +
 src/utils/aLinkCreator/docs/alcc.zh_TW.1           |   38 +
 src/utils/aLinkCreator/src/Makefile.in             |   42 +-
 src/utils/aLinkCreator/src/alc.cpp                 |    9 -
 src/utils/aLinkCreator/src/alc.h                   |   13 +-
 src/utils/aLinkCreator/src/alcc.cpp                |   11 +-
 src/utils/aLinkCreator/src/alcc.h                  |   16 +-
 src/utils/aLinkCreator/src/alcframe.cpp            |   48 +-
 src/utils/aLinkCreator/src/alcframe.h              |   20 +-
 src/utils/aLinkCreator/src/alcpix.cpp              |   19 +-
 src/utils/aLinkCreator/src/alcpix.h                |   11 +-
 src/utils/aLinkCreator/src/ed2khash.cpp            |   43 +-
 src/utils/aLinkCreator/src/ed2khash.h              |    9 -
 src/utils/aLinkCreator/src/md4.cpp                 |   21 +-
 src/utils/aLinkCreator/src/md4.h                   |    9 -
 src/utils/amps/COPYING                             |    8 +-
 src/utils/amps/index.php                           |    4 +-
 src/utils/amps/langs/en.inc                        |    6 +-
 src/utils/cas/Makefile.am                          |    2 +-
 src/utils/cas/Makefile.in                          |   44 +-
 src/utils/cas/cas.c                                |   45 +-
 src/utils/cas/configfile.c                         |   28 +-
 src/utils/cas/configfile.h                         |   11 +-
 src/utils/cas/docs/Makefile.am                     |    2 +-
 src/utils/cas/docs/Makefile.in                     |   44 +-
 src/utils/cas/docs/cas.zh_TW.1                     |   51 +
 src/utils/cas/functions.c                          |    4 +-
 src/utils/cas/functions.h                          |    4 +-
 src/utils/cas/graphics.c                           |    8 +-
 src/utils/cas/graphics.h                           |    2 +-
 src/utils/cas/html.c                               |   12 +-
 src/utils/cas/html.h                               |    4 +-
 src/utils/cas/lines.c                              |   16 +-
 src/utils/cas/lines.h                              |    2 +-
 src/utils/cas/tmp.html                             |    6 +-
 src/utils/fileview/FileView.cpp                    |    5 +-
 src/utils/fileview/KadFiles.cpp                    |    6 +-
 src/utils/fileview/Makefile.in                     |   42 +-
 src/utils/fileview/Print.h                         |    2 +-
 src/utils/mkFileSum.c                              |    2 +-
 src/utils/patches/cryptopp/mac_build.patch         |    2 +-
 src/utils/plasmamule/Makefile.am                   |    2 +-
 src/utils/plasmamule/Makefile.in                   |   52 +-
 src/utils/plasmamule/plasma-applet-plasmamule.cpp  |   20 +-
 src/utils/plasmamule/plasma-applet-plasmamule.h    |    6 +-
 src/utils/plasmamule/plasma-engine-plasmamule.cpp  |   14 +-
 src/utils/plasmamule/plasma-engine-plasmamule.h    |    2 +-
 src/utils/plasmamule/plasmamule-dbus.cpp           |    2 +-
 src/utils/plasmamule/plasmamule-dbus.h             |    2 +-
 src/utils/plasmamule/plasmamule-engine-feeder.cpp  |    6 +-
 .../plasmamule/plasmamule-engine-feeder.desktop    |    2 +-
 src/utils/plasmamule/qt-emc.cpp                    |   14 +-
 src/utils/plasmamule/qt-emc.h                      |    2 +-
 src/utils/scripts/MacOSX/application_packager.sh   |   43 +-
 src/utils/scripts/MacOSX/defs-functions.sh         |    2 +-
 src/utils/scripts/MacOSX/defs-global.sh            |   10 +-
 src/utils/scripts/MacOSX/defs-wx.sh                |    6 +-
 src/utils/scripts/MacOSX/full_build.sh             |   43 +-
 src/utils/scripts/check_defines.pl                 |    4 +-
 src/utils/scripts/denoiser.rules                   |   11 +-
 src/utils/scripts/id2ip                            |    4 +-
 src/utils/scripts/kadnodescreate.pl                |   14 +-
 src/utils/scripts/linkcvs                          |    4 +-
 src/utils/scripts/logfilter                        |   10 +-
 src/utils/scripts/mldonkey_importer.pl             |   91 +-
 src/utils/scripts/version_bumper                   |    6 +-
 src/utils/scripts/whitespace_fixer                 |   52 +
 src/utils/scripts/wikify_latest_changelog          |    6 +-
 src/utils/wxCas/Makefile.in                        |   42 +-
 src/utils/wxCas/docs/Makefile.am                   |    2 +-
 src/utils/wxCas/docs/Makefile.in                   |   44 +-
 src/utils/wxCas/docs/wxcas.zh_TW.1                 |   27 +
 src/utils/wxCas/src/Makefile.am                    |    2 +-
 src/utils/wxCas/src/Makefile.in                    |   44 +-
 src/utils/wxCas/src/linuxmon.cpp                   |    9 -
 src/utils/wxCas/src/linuxmon.h                     |    9 -
 src/utils/wxCas/src/onlinesig.cpp                  |   17 +-
 src/utils/wxCas/src/onlinesig.h                    |    9 -
 src/utils/wxCas/src/wxcas.cpp                      |   21 +-
 src/utils/wxCas/src/wxcas.h                        |    9 +-
 src/utils/wxCas/src/wxcascte.cpp                   |   11 +-
 src/utils/wxCas/src/wxcascte.h                     |    9 -
 src/utils/wxCas/src/wxcasframe.cpp                 |   35 +-
 src/utils/wxCas/src/wxcasframe.h                   |   24 +-
 src/utils/wxCas/src/wxcaspix.cpp                   |   15 +-
 src/utils/wxCas/src/wxcaspix.h                     |   11 +-
 src/utils/wxCas/src/wxcasprefs.cpp                 |   17 +-
 src/utils/wxCas/src/wxcasprefs.h                   |   15 +-
 src/utils/wxCas/src/wxcasprint.cpp                 |    9 -
 src/utils/wxCas/src/wxcasprint.h                   |   10 +-
 src/utils/xas/Makefile.in                          |   42 +-
 src/utils/xas/autostart-xas.in                     |    4 +-
 src/utils/xas/docs/Makefile.am                     |    4 +-
 src/utils/xas/docs/Makefile.in                     |   46 +-
 src/utils/xas/docs/xas.zh_TW.1                     |   28 +
 src/utils/xas/xas.pl                               |   30 +-
 src/webserver/Makefile.in                          |   42 +-
 src/webserver/default/Makefile.in                  |   42 +-
 src/webserver/src/Makefile.am                      |    8 +-
 src/webserver/src/Makefile.in                      |   50 +-
 src/webserver/src/WebInterface.cpp                 |  121 +-
 src/webserver/src/WebInterface.h                   |   41 +-
 src/webserver/src/WebServer.cpp                    |  244 ++-
 src/webserver/src/WebServer.h                      |  190 +-
 src/webserver/src/WebSocket.cpp                    |  123 +-
 src/webserver/src/WebSocket.h                      |   23 +-
 src/webserver/src/php_amule_lib.cpp                |   68 +-
 src/webserver/src/php_amule_lib_standalone.cpp     |   28 +-
 src/webserver/src/php_core_lib.cpp                 |   57 +-
 src/webserver/src/php_core_lib.h                   |   12 +-
 src/webserver/src/php_lexer.c                      |  101 +-
 src/webserver/src/php_lexer.l                      |    4 +-
 src/webserver/src/php_parser.c                     |  814 ++++---
 src/webserver/src/php_parser.h                     |  134 +-
 src/webserver/src/php_parser.y                     |  110 +-
 src/webserver/src/php_standalone_makefile          |    2 +-
 src/webserver/src/php_syntree.cpp                  |  220 +-
 src/webserver/src/php_syntree.h                    |  142 +-
 unittests/Makefile.am                              |    2 +-
 unittests/Makefile.in                              |   42 +-
 unittests/README                                   |   58 +-
 unittests/muleunit/Makefile.am                     |    2 +-
 unittests/muleunit/Makefile.in                     |   44 +-
 unittests/muleunit/license.txt                     |    2 +-
 unittests/muleunit/main.cpp                        |    4 +-
 unittests/muleunit/test.cpp                        |   10 +-
 unittests/muleunit/test.h                          |   20 +-
 unittests/muleunit/testcase.cpp                    |   10 +-
 unittests/muleunit/testcase.h                      |    4 +-
 unittests/muleunit/testregistry.cpp                |   10 +-
 unittests/muleunit/testregistry.h                  |    8 +-
 unittests/tests/CTagTest.cpp                       |    8 +-
 unittests/tests/CUInt128Test.cpp                   |  215 +-
 unittests/tests/FileDataIOTest.cpp                 |  166 +-
 unittests/tests/FormatTest.cpp                     |   23 +-
 unittests/tests/Makefile.am                        |    8 +-
 unittests/tests/Makefile.in                        |  106 +-
 unittests/tests/NetworkFunctionsTest.cpp           |   18 +-
 unittests/tests/PathTest.cpp                       |   22 +-
 unittests/tests/RangeMapTest.cpp                   |  158 +-
 unittests/tests/StringFunctionsTest.cpp            |   26 +-
 unittests/tests/TextFileTest.cpp                   |   12 +-
 720 files changed, 50333 insertions(+), 53770 deletions(-)

diff --git a/.svn-revision b/.svn-revision
new file mode 100644
index 0000000..d8e12de
--- /dev/null
+++ b/.svn-revision
@@ -0,0 +1 @@
+10835
diff --git a/BUILDING_MACOSX.txt b/BUILDING_MACOSX.txt
new file mode 100644
index 0000000..74c358f
--- /dev/null
+++ b/BUILDING_MACOSX.txt
@@ -0,0 +1,20 @@
+To build on MacOSX, there are some experimental scripts located in src/utils/scripts/MacOSX 
+
+An example basic flow to create an SVN build is to do the following from the root folder where this file is located:
+
+
+mkdir Build
+cd Build/
+WXVERSION=svn WXPORT=cocoa MULECLEAN=YES ../src/utils/scripts/MacOSX/full_build.sh
+
+
+Those commands would build a MacOSX 10.6 (Snow Leopard) compatible application bundle for aMule and aMuleGUI 
+using the architecture of the build system ( i386 or x86_64 ), with the latest SVN vesion of wxWidgets.
+
+Other parameters are explained upon execution of the script.
+
+The above command was tested on MacOSX 10.7.1 Lion on a x86_64 architecture and provided valid binaries.
+Unfortunately, other systems may fail silently, or loudly, and there is not much error reporting support.
+
+Good luck!
+
diff --git a/Makefile.am b/Makefile.am
index 45e12b1..29aa3d5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,14 +7,14 @@ endif
 SUBDIRS += docs src unittests
 
 EXTRA_DIST = amule.rc amule.ico amule.png convert.ico \
-	README.Debian-Packages  aMule.spec \
+	README.Debian-Packages aMule-CVS.spec aMule.spec \
 	amule_build_install.sh autogen.sh \
 	po/l10n.xsl
 
-dist_icon_DATA = 
+dist_icon_DATA =
 icondir = $(datadir)/pixmaps
 
-dist_util_DATA = 
+dist_util_DATA =
 utildir = $(datadir)/applications
 
 if MONOLITHIC
diff --git a/Makefile.in b/Makefile.in
index c389b82..af0d067 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -50,23 +50,23 @@ DIST_COMMON = $(am__configure_deps) $(am__dist_icon_DATA_DIST) \
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -176,6 +176,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -202,6 +208,17 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = \
+	--enable-amulecmd \
+	--enable-webserver \
+	--enable-amule-daemon \
+	--enable-amule-gui \
+	--enable-cas \
+	--enable-wxcas \
+	--enable-plasmamule \
+	--enable-alc \
+	--enable-alcc
+
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -292,6 +309,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -378,7 +396,7 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SUBDIRS = $(am__append_1) docs src unittests
 EXTRA_DIST = amule.rc amule.ico amule.png convert.ico \
-	README.Debian-Packages  aMule.spec \
+	README.Debian-Packages aMule-CVS.spec aMule.spec \
 	amule_build_install.sh autogen.sh \
 	po/l10n.xsl
 
@@ -387,17 +405,6 @@ icondir = $(datadir)/pixmaps
 dist_util_DATA = $(am__append_3) $(am__append_5)
 utildir = $(datadir)/applications
 ACLOCAL_AMFLAGS = -I m4
-DISTCHECK_CONFIGURE_FLAGS = \
-	--enable-amulecmd \
-	--enable-webserver \
-	--enable-amule-daemon \
-	--enable-amule-gui \
-	--enable-cas \
-	--enable-wxcas \
-	--enable-plasmamule \
-	--enable-alc \
-	--enable-alcc
-
 MAINTAINERCLEANFILES = ABOUT-NLS \
 					   Makefile.in \
 					   aclocal.m4 \
diff --git a/README.Debian-Packages b/README.Debian-Packages
index 56beede..3332cda 100644
--- a/README.Debian-Packages
+++ b/README.Debian-Packages
@@ -44,10 +44,10 @@ i18n-<lang>		Builds the coresponding i18n-packge. Lang has to be one of ar, ast,
 			If you just want en_GB, use i18n-en-only
 
 If one of the -dbg targets is choosen, the corresponding binary will be built, too. In this case,
-debugging is enabled, optimising is disabled. Is no -dbg target choosen, debugging is disabled, 
+debugging is enabled, optimising is disabled. Is no -dbg target choosen, debugging is disabled,
 optimising is enabled.
 
-If you choose to just build a few packages, you have to explicit activate ed2k or xas if 
+If you choose to just build a few packages, you have to explicit activate ed2k or xas if
 you want to get the pkg's
 
 The targets can be given in any order and combination
diff --git a/aMule-CVS.spec b/aMule-CVS.spec
new file mode 100644
index 0000000..1dea1fc
--- /dev/null
+++ b/aMule-CVS.spec
@@ -0,0 +1,114 @@
+%define svndate %(date +%Y%m%d)
+%define optflags %{nil}
+
+Summary:        aMule - another eMule p2p client
+Name:           aMule
+Version:        SVN
+Release:        %{svndate}
+License:        GPL
+Group:          Applications/Internet
+Packager:       The aMule Team (http://forum.amule.org/)
+Vendor:         The aMule Project
+URL:            http://www.amule.org/
+Source:         %{name}-%{version}-%{release}.tar.bz2
+BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+%description
+aMule is a peer to peer file sharing client, based on the well known eMule.
+Starting with 2.0.0 aMule works on Linux, Mac, *BSD and Windows, which makes it
+the first multi-platform edonkey network client.
+
+%pre
+echo "****************************************************************************"
+echo "Warning: This is a svn release!"
+echo "This release is made for testing purpose and it may cause several problems,"
+echo "burn your house, kill your dog, etc, but it *should* be safe to use anyway."
+echo "If you would like to test some of the great new features go on and install."
+echo "Otherwise you may press ctrl-c within the next 10 seconds to abort the"
+echo "installation."
+echo -n "Waiting for user... "
+for i in $(seq 10 -1 1); do
+    echo -n "$i, "
+    sleep 1
+done
+echo " 0, ok, here we go then... Muhahaha :), installing."
+
+%prep
+%setup -q -n amule-cvs
+
+%build
+%configure \
+        --disable-optimize \
+        --enable-debug \
+        --enable-cas \
+        --enable-wxcas \
+        --enable-amulecmd \
+        --enable-webserver \
+        --enable-ccache
+%{__make} %{?_smp_mflags}
+
+%install
+[ ! "$RPM_BUILD_ROOT" = "/" ] && %{__rm} -rf "$RPM_BUILD_ROOT"
+%{__make} DESTDIR="$RPM_BUILD_ROOT" install
+%find_lang amule
+
+%clean
+[ ! "$RPM_BUILD_ROOT" = "/" ] && %{__rm} -rf "$RPM_BUILD_ROOT"
+
+%files -f amule.lang
+%defattr(-,root,root,-)
+%{_bindir}/amule
+%{_bindir}/ed2k
+%{_bindir}/amulecmd
+%{_bindir}/cas
+%{_bindir}/wxcas
+%{_bindir}/amuleweb
+%{_bindir}/autostart-xas
+%{_libdir}/xchat/plugins/xas.pl
+%{_datadir}/applications/*
+%{_datadir}/pixmaps/*
+%{_mandir}/man1/*
+%{_mandir}/*/man1/*
+%docdir %{_datadir}/doc/*
+%{_datadir}/doc/*
+%{_datadir}/cas
+%{_datadir}/amule
+
+%changelog
+* Sun Dec 25 2005 Gerd78 <aMule forum>
+- Really disable optimizations by defining optflags to nil.
+
+* Mon Apr 19 2005 Marcelo Jimenez <phoenix at amule.org>
+- Removed curl dependency, aMule now uses wxHTTP.
+
+* Mon Mar 26 2005 Marcelo Jimenez <phoenix at amule.org>
+- Added a distro test, so we know the distro.
+- Tests for UTF-8 enabled LANG to use UTF-8 systray.
+
+* Mon Mar 21 2005 Marcelo Jimenez <phoenix at amule.org>
+- Removed krb5-libs require and krb5-devel buildprereq. curl-lib and
+  curl-devel is enough.
+
+* Tue Mar 08 2005 Marcelo Jimenez <phoenix at amule.org>
+- Made it work with cvs snapshots at their very same day.
+
+* Wed Jun 16 2004 Ariano Bertacca <ariano at hirnriss.net>
+- added tool package.
+
+* Sat May 22 2004 Ariano Bertacca <ariano at hirnriss.net>
+- added webserver package.
+
+* Sun Mar 28 2004 Ariano Bertacca <ariano at hirnriss.net>
+- added libcryptopp to dependencies/BuildPreReq
+- getting wx-config and wxbase-config from installed rpm to avoid problems
+  with people using wxGTK-2.5.
+  Idea taken from aMule-2.0.0rc1.spec done by
+  deltaHF <deltahf at users.sourceforge.net> and
+  pure_ascii <pure_ascii at users.sourceforge.net>
+
+* Tue Feb 10 2004 Ariano Bertacca <ariano at hirnriss.net>
+- modified the BuildPreReq to satisfy amulecmd build requirements.
+
+* Sat Jan 23 2004 Ariano Bertacca <ariano at hirnriss.net>
+- initial amule.spec release
+
diff --git a/aMule.app/Contents/Info.plist b/aMule.app/Contents/Info.plist
index 01e3e27..89707c7 100644
--- a/aMule.app/Contents/Info.plist
+++ b/aMule.app/Contents/Info.plist
@@ -9,21 +9,21 @@
 	<key>CFBundleName</key>
 	<string>amule</string>
 	<key>CFBundleGetInfoString</key>
-	<string>2.3.1, Copyright 2003-2011 aMule Project (http://www.amule.org)</string>
+	<string>2.4.0, Copyright 2003-2011 aMule Project (http://www.amule.org)</string>
 	<key>CFBundleIconFile</key>
 	<string>amule</string>
 	<key>CFBundleIdentifier</key>
 	<string>org.amule.aMule</string>
 	<key>CFBundleInfoDictionaryVersion</key>
-	<string>2.3.1</string>
+	<string>2.4.0</string>
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.3.1</string>
+	<string>2.4.0</string>
 	<key>CFBundleSignature</key>
 	<string>aMul</string>
 	<key>CFBundleVersion</key>
-	<string>2.3.1</string>
+	<string>2.4.0</string>
 	<key>NSHumanReadableCopyright</key>
 	<string>Copyright 2003-2011 aMule Project (http://www.amule.org)</string>
 	<key>NSMainNibFile</key>
diff --git a/aMule.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib b/aMule.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib
index b9b4b09..8618602 100755
--- a/aMule.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib
+++ b/aMule.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib
@@ -1,4 +1,4 @@
 {
-    IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }); 
-    IBVersion = 1; 
+    IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; });
+    IBVersion = 1;
 }
\ No newline at end of file
diff --git a/aMule.app/Contents/Info.plist b/aMuleGUI.app/Contents/Info.plist
similarity index 77%
copy from aMule.app/Contents/Info.plist
copy to aMuleGUI.app/Contents/Info.plist
index 01e3e27..c30ea61 100644
--- a/aMule.app/Contents/Info.plist
+++ b/aMuleGUI.app/Contents/Info.plist
@@ -5,25 +5,25 @@
 	<key>CFBundleDevelopmentRegion</key>
 	<string>English</string>
 	<key>CFBundleExecutable</key>
-	<string>amule</string>
+	<string>amulegui</string>
 	<key>CFBundleName</key>
-	<string>amule</string>
+	<string>amulegui</string>
 	<key>CFBundleGetInfoString</key>
-	<string>2.3.1, Copyright 2003-2011 aMule Project (http://www.amule.org)</string>
+	<string>2.4.0, Copyright 2003-2011 aMule Project (http://www.amule.org)</string>
 	<key>CFBundleIconFile</key>
 	<string>amule</string>
 	<key>CFBundleIdentifier</key>
-	<string>org.amule.aMule</string>
+	<string>org.amule.aMuleGUI</string>
 	<key>CFBundleInfoDictionaryVersion</key>
-	<string>2.3.1</string>
+	<string>2.4.0</string>
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.3.1</string>
+	<string>2.4.0</string>
 	<key>CFBundleSignature</key>
-	<string>aMul</string>
+	<string>aMGU</string>
 	<key>CFBundleVersion</key>
-	<string>2.3.1</string>
+	<string>2.4.0</string>
 	<key>NSHumanReadableCopyright</key>
 	<string>Copyright 2003-2011 aMule Project (http://www.amule.org)</string>
 	<key>NSMainNibFile</key>
diff --git a/aMuleGUI.app/Contents/PkgInfo b/aMuleGUI.app/Contents/PkgInfo
new file mode 100644
index 0000000..d2464e1
--- /dev/null
+++ b/aMuleGUI.app/Contents/PkgInfo
@@ -0,0 +1 @@
+APPLaMGU
diff --git a/aMule.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib b/aMuleGUI.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib
similarity index 60%
copy from aMule.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib
copy to aMuleGUI.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib
index b9b4b09..8618602 100755
--- a/aMule.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib
+++ b/aMuleGUI.app/Contents/Resources/English.lproj/MainMenu.nib/classes.nib
@@ -1,4 +1,4 @@
 {
-    IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }); 
-    IBVersion = 1; 
+    IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; });
+    IBVersion = 1;
 }
\ No newline at end of file
diff --git a/aMuleGUI.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib b/aMuleGUI.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib
new file mode 100755
index 0000000..15e0d70
--- /dev/null
+++ b/aMuleGUI.app/Contents/Resources/English.lproj/MainMenu.nib/info.nib
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IBDocumentLocation</key>
+	<string>126 126 356 240 0 0 1600 1178 </string>
+	<key>IBEditorPositions</key>
+	<dict>
+		<key>29</key>
+		<string>125 407 318 44 0 0 1600 1178 </string>
+	</dict>
+	<key>IBFramework Version</key>
+	<string>328.0</string>
+	<key>IBOpenObjects</key>
+	<array>
+		<integer>21</integer>
+		<integer>29</integer>
+	</array>
+	<key>IBSystem Version</key>
+	<string>7B8</string>
+</dict>
+</plist>
diff --git a/aMuleGUI.app/Contents/Resources/English.lproj/MainMenu.nib/objects.nib b/aMuleGUI.app/Contents/Resources/English.lproj/MainMenu.nib/objects.nib
new file mode 100755
index 0000000..3bb00c9
Binary files /dev/null and b/aMuleGUI.app/Contents/Resources/English.lproj/MainMenu.nib/objects.nib differ
diff --git a/aMuleGUI.app/Icon b/aMuleGUI.app/Icon
new file mode 100755
index 0000000..e69de29
diff --git a/acinclude.m4 b/acinclude.m4
index 3294fca..026bc04 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -251,7 +251,7 @@ AC_DEFUN([MULE_CHECK_SYSTEM],
 		MULELDFLAGS="-bind_at_load"
 		touch src/Scanner.cpp
 		;;
-	openbsd*) 
+	openbsd*)
 		SYS=openbsd
 		LIBS="$LIBS -L/usr/local/lib"
 		MULECPPFLAGS="-D__OPENBSD__"
@@ -311,7 +311,7 @@ dnl Checks type of compilation requested by user, and sets various flags
 dnl accordingly.
 dnl ---------------------------------------------------------------------------
 AC_DEFUN([MULE_COMPILATION_FLAGS],
-[AC_REQUIRE([MULE_CHECK_GLIBCXX])dnl
+[dnl AC_REQUIRE([MULE_CHECK_GLIBCXX])dnl
 
 	MULE_ARG_ENABLE([debug],	[yes],	[disable additional debugging output])
 	MULE_ARG_ENABLE([profile],	[no],	[enable code profiling])
@@ -362,6 +362,46 @@ AC_LANG_ASSERT([C++])dnl
 ])
 
 dnl ---------------------------------------------------------------------------
+dnl MULE_CHECK_STRICT_ALIASING
+dnl
+dnl Checks whether the C++ compiler uses strict aliasing.
+dnl This check could use the C compiler, but the source is C++ and the two
+dnl compilers are not necessarily the same, or they might use different
+dnl compiler flags...
+dnl ---------------------------------------------------------------------------
+AC_DEFUN([MULE_CHECK_STRICT_ALIASING],
+[AC_LANG_ASSERT([C++])dnl
+
+	AH_TEMPLATE([GCC_USES_STRICT_ALIASING], [Define to 1 if the C++ compiler is the GNU C++ compiler and it is using strict aliasing.])
+
+	AS_IF([test ${GCC:-no} = yes],
+	[
+		dnl Backup current flags and turn warnings into errors
+		MULE_BACKUP([CXXFLAGS])
+		MULE_APPEND([CXXFLAGS], [$MULECPPFLAGS $MULECFLAGS $MULECXXFLAGS -Werror])
+
+		AC_MSG_CHECKING([whether the C++ compiler ($CXX) uses strict aliasing])
+		AC_COMPILE_IFELSE([
+			AC_LANG_PROGRAM([], [[
+				int a;
+				short *b = (short*)&a;
+				short c = *b;
+
+				return c;
+			]])
+		], [
+			AC_MSG_RESULT([no])
+		], [
+			AC_MSG_RESULT([yes])
+			AC_DEFINE([GCC_USES_STRICT_ALIASING])
+		])
+
+		dnl Restore flags
+		MULE_RESTORE([CXXFLAGS])
+	])
+])
+
+dnl ---------------------------------------------------------------------------
 dnl MULE_CHECK_WX_SUPPORTS_LARGEFILE
 dnl
 dnl Test that wxWidgets is built with support for large-files. If not
@@ -389,7 +429,7 @@ AC_DEFUN([MULE_CHECK_WX_SUPPORTS_LARGEFILE],
 		AC_MSG_RESULT([no])
 		AC_MSG_ERROR([
 	Support for large files in wxWidgets is required by aMule.
-	To continue you must recompile wxWidgets with support for 
+	To continue you must recompile wxWidgets with support for
 	large files enabled.])
 	])
 
@@ -529,9 +569,13 @@ dnl ---------------------------------------------------------------------------
 AC_DEFUN([MULE_CHECK_CXXABI],
 [AC_LANG_ASSERT([C++])dnl
 
+	AC_CHECK_HEADERS([typeinfo])
 	AC_MSG_CHECKING([for <cxxabi.h> and __cxa_demangle()])
 	AC_LINK_IFELSE([
 		AC_LANG_PROGRAM([[
+			#ifdef HAVE_TYPEINFO
+			#	include <typeinfo>
+			#endif
 			#include <cxxabi.h>
 		]], [[
 			int status;
@@ -642,7 +686,7 @@ AC_DEFUN([MULE_DENOISER],
 
 	AC_CONFIG_COMMANDS([denoiser], [[if test $denoiserlevel -gt 0; then
 		if test ! -d src/utils/scripts; then mkdir -p src/utils/scripts; fi
-		sed -e "1{x;s/.*/1/;x;};/^[ 	]*\$/d;/^#if /{/level.*$denoiserlevel/{x;s/^/1/;x;b0;};x;s/^/0/;x;:0;d;};/^#else/{x;/^1/{s/1/0/;b1;};s/0/1/;:1;x;d;};/^#endif/{x;s/.//;x;d;};/^[ 	]*#/d;x;/^1/{x;b;};x;d" \
+		sed -e "1{x;s/.*/1/;x;};/^[	 ]*\$/d;/^#if /{/level.*$denoiserlevel/{x;s/^/1/;x;b0;};x;s/^/0/;x;:0;d;};/^#else/{x;/^1/{s/1/0/;b1;};s/0/1/;:1;x;d;};/^#endif/{x;s/.//;x;d;};/^[	 ]*#/d;x;/^1/{x;b;};x;d" \
 			$srcdir/src/utils/scripts/denoiser.rules > src/utils/scripts/denoiser.sed
 		for i in `find . -name 'Makefile' -print`; do
 			if test -n "`head -n 1 $i | grep '^#'`"; then
diff --git a/aclocal.m4 b/aclocal.m4
index 1ee276a..295c6ac 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1017,6 +1017,7 @@ AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
 m4_include([m4/GeoIP.m4])
+m4_include([m4/boost.m4])
 m4_include([m4/build-tools.m4])
 m4_include([m4/codeset.m4])
 m4_include([m4/cryptopp.m4])
diff --git a/amule.rc b/amule.rc
index 151fb6c..b16321d 100644
--- a/amule.rc
+++ b/amule.rc
@@ -1,7 +1,7 @@
 amule	ICON	"amule.ico"
 convert	ICON	"convert.ico"
 
-#ifndef MSVC
+#ifndef _MSC_VER
 #include <wx/msw/wx.rc>
 #endif
 
diff --git a/amule_build_install.sh b/amule_build_install.sh
index 5ca998b..138cbf7 100755
--- a/amule_build_install.sh
+++ b/amule_build_install.sh
@@ -26,7 +26,7 @@ JOBS=4
 
 #
 # This function uses three parameters:
-#    $1 - an input parameter specifying a mask for the distribution, 
+#    $1 - an input parameter specifying a mask for the distribution,
 #         e.g., 'aMule-CVS-*' for cvs tarballs or 'aMule-*' for distro tarballs.
 #    $2 - an output parameter with the name of the variable that will
 #         receive the full file name of the tar archive
@@ -42,17 +42,17 @@ function lookup_distro {
     #echo $2    # evaluates to XXX_FILENAME
     #echo ${!2} # evaluates to /home/user/dir/xxx-y.z.t.tar.gz
 
-    # remove the directory and the extension parts and assing it 
+    # remove the directory and the extension parts and assing it
     # to XXX_DISTRO in $3
     case ${!2} in
 	*.gz)
 	    eval $3=$(basename ${!2} .tar.gz)
 	    ;;
-	
+
 	*.bz2)
 	    eval $3=$(basename ${!2} .tar.bz2)
 	    ;;
-	
+
 	*.zip)
 	    eval $3=$(basename ${!2} .zip)
 	    ;;
@@ -194,7 +194,7 @@ function build_libupnp {
 #
 function build_wxwidgets {
 	untar_distro ${WXWIDGETS_FILENAME}
-	
+
 	WXWIDGETS_INSTALL_DIR="${PREFIX}/wxWidgets"
 	cd wxWidgets-?.?.?
 	./configure \
@@ -271,7 +271,7 @@ build_amule
 cd ..
 
 
-echo 
+echo
 echo Finished compilation.
 echo You should run aMule like this:
 echo '$LD_LIBRARY_PATH'=${WXWIDGETS_INSTALL_DIR}/lib:${LIBUPNP_INSTALL_DIR}/lib LANG=en_US.UTF-8 ${AMULE_INSTALL_DIR}/bin/amule
diff --git a/autogen.sh b/autogen.sh
index 5be1595..a7060f0 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -42,7 +42,7 @@ rm -rf intl/*
     autopoint --force
     if grep -q datarootdir po/Makefile.in.in; then
         echo autopoint honors dataroot variable, not patching.
-    else 
+    else
 	echo autopoint does not honor dataroot variable, patching.
         sed -e '/^datadir *=/a\
 datarootdir = @datarootdir@' po/Makefile.in.in > po/Makefile.in.in.tmp && mv -f po/Makefile.in.in.tmp po/Makefile.in.in
diff --git a/config.h.in b/config.h.in
index 25c14ae..1026cd0 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,5 +1,9 @@
 /* config.h.in.  Generated from configure.in by autoheader.  */
 
+/* Define to 1 if you have <boost/asio.hpp> and are using Boost.Asio for
+   networking. */
+#undef ASIO_SOCKETS
+
 /* Define to 1 if the `closedir' function returns void instead of `int'. */
 #undef CLOSEDIR_VOID
 
@@ -18,6 +22,10 @@
    language is requested. */
 #undef ENABLE_NLS
 
+/* Define to 1 if the C++ compiler is the GNU C++ compiler and it is using
+   strict aliasing. */
+#undef GCC_USES_STRICT_ALIASING
+
 /* Define to 1 if you have `alloca', as a function or macro. */
 #undef HAVE_ALLOCA
 
@@ -31,6 +39,9 @@
 /* Define to 1 if you have the <arpa/inet.h> header file. */
 #undef HAVE_ARPA_INET_H
 
+/* Define to 1 if you have the Boost sources */
+#undef HAVE_BOOST_SOURCES
+
 /* Define to 1 if you have the <cxxabi.h> header which declares
    abi::__cxa_demangle() */
 #undef HAVE_CXXABI
@@ -395,6 +406,9 @@
 /* Define to 1 if you have the `tsearch' function. */
 #undef HAVE_TSEARCH
 
+/* Define to 1 if you have the <typeinfo> header file. */
+#undef HAVE_TYPEINFO
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
diff --git a/configure b/configure
index b2bde51..e77d75e 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.65 for aMule 2.3.1.
+# Generated by GNU Autoconf 2.65 for aMule SVN.
 #
 # Report bugs to <admin at amule.org>.
 #
@@ -552,8 +552,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='aMule'
 PACKAGE_TARNAME='amule'
-PACKAGE_VERSION='2.3.1'
-PACKAGE_STRING='aMule 2.3.1'
+PACKAGE_VERSION='SVN'
+PACKAGE_STRING='aMule SVN'
 PACKAGE_BUGREPORT='admin at amule.org'
 PACKAGE_URL=''
 
@@ -670,6 +670,13 @@ MKINSTALLDIRS
 POW_LIB
 LIBOBJS
 ALLOCA
+BOOST_SYSTEM_LIBS
+BOOST_LDPATH
+BOOST_SYSTEM_LDPATH
+BOOST_SYSTEM_LDFLAGS
+BOOST_CPPFLAGS
+DISTCHECK_CONFIGURE_FLAGS
+BOOST_ROOT
 CRYPTOPP_LIBS
 CRYPTOPP_LDFLAGS
 CRYPTOPP_CPPFLAGS
@@ -738,6 +745,7 @@ LD
 AR
 YFLAGS
 YACC
+SED
 RANLIB
 LEXLIB
 LEX_OUTPUT_ROOT
@@ -901,6 +909,10 @@ with_wxversion
 enable_upnp
 with_libupnp_prefix
 with_crypto_prefix
+enable_debug
+enable_profile
+enable_optimize
+with_boost
 enable_mmap
 with_language
 with_gnu_ld
@@ -909,9 +921,6 @@ with_libiconv_prefix
 enable_nls
 with_included_gettext
 with_libintl_prefix
-enable_debug
-enable_profile
-enable_optimize
 with_denoise_level
 enable_ccache
 with_ccache_prefix
@@ -933,7 +942,8 @@ YACC
 YFLAGS
 RC
 RCFLAGS
-PKG_CONFIG'
+PKG_CONFIG
+BOOST_ROOT'
 
 
 # Initialize some variables set by options.
@@ -1475,7 +1485,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 aMule 2.3.1 to adapt to many kinds of systems.
+\`configure' configures aMule SVN to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1545,7 +1555,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of aMule 2.3.1:";;
+     short | recursive ) echo "Configuration of aMule SVN:";;
    esac
   cat <<\_ACEOF
 
@@ -1576,12 +1586,12 @@ Optional Features:
   --enable-kde-in-home    install KDE related stuff in your home dir
   --enable-geoip          compile with GeoIP IP2Country library
   --disable-upnp          do not compile UPnP code
-  --enable-mmap           enable using mapped memory if supported
-  --disable-rpath         do not hardcode runtime library paths
-  --disable-nls           do not use Native Language Support
   --disable-debug         disable additional debugging output
   --enable-profile        enable code profiling
   --enable-optimize       enable code optimization
+  --enable-mmap           enable using mapped memory if supported
+  --disable-rpath         do not hardcode runtime library paths
+  --disable-nls           do not use Native Language Support
   --enable-ccache         enable ccache support for fast recompilation
 
 Optional Packages:
@@ -1621,6 +1631,7 @@ Optional Packages:
                           UPnP library location
   --with-crypto-prefix=PREFIX
                           prefix where crypto++ is installed
+  --with-boost[=DIR]      use Boost.Asio for networking
   --with-language=<langs> Specify a comma-separated list of languages you want
                           to have installed. See po/LINGUAS for available
                           languages
@@ -1660,6 +1671,7 @@ Some influential environment variables:
   RC          Resource Compiler
   RCFLAGS     Resource Compiler Flags
   PKG_CONFIG  path to pkg-config utility
+  BOOST_ROOT  Location of Boost installation
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1727,7 +1739,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-aMule configure 2.3.1
+aMule configure SVN
 generated by GNU Autoconf 2.65
 
 Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2145,6 +2157,99 @@ fi
 
 } # ac_fn_cxx_try_run
 
+# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
+# ---------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_cxx_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( cat <<\_ASBOX
+## ------------------------------ ##
+## Report this to admin at amule.org ##
+## ------------------------------ ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_cxx_check_header_mongrel
+
 # ac_fn_cxx_try_link LINENO
 # -------------------------
 # Try to link conftest.$ac_ext, and return whether this succeeded.
@@ -2354,7 +2459,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 aMule $as_me 2.3.1, which was
+It was created by aMule $as_me SVN, which was
 generated by GNU Autoconf 2.65.  Invocation command line was
 
   $ $0 $@
@@ -3165,7 +3270,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='amule'
- VERSION='2.3.1'
+ VERSION='SVN'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3224,6 +3329,7 @@ AM_BACKSLASH='\'
 ac_config_headers="$ac_config_headers config.h"
 
 
+
 { $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; }
     # Check whether --enable-maintainer-mode was given.
@@ -6074,6 +6180,75 @@ else
   RANLIB="$ac_cv_prog_RANLIB"
 fi
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if test "${ac_cv_path_SED+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  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_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+# Check for GNU ac_path_SED and select it if it is found.
+  # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+  rm -f conftest.sed
+
 for ac_prog in 'bison -y' byacc
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -7360,9 +7535,9 @@ $as_echo_n "checking if libpng is usable... " >&6; }
 			SAVED_LDFLAGS=$LDFLAGS
 			SAVED_LIBS=$LIBS
 
-			CFLAGS+=" $LIBPNG_CFLAGS"
-			LDFLAGS+=" $LIBPNG_LDFLAGS"
-			LIBS+=" $LIBPNG_LIBS"
+			CFLAGS="$CFLAGS $LIBPNG_CFLAGS"
+			LDFLAGS="$LDFLAGS $LIBPNG_LDFLAGS"
+			LIBS="$LIBS $LIBPNG_LIBS"
 
 			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -7450,13 +7625,6 @@ _mule_has_warnings=yes
 
 fi
 
-# Check if we need to install skins
-if test ${enable_monolithic:-yes} = yes -o ${enable_amule_gui:-no} = yes ; then :
-  INSTALL_SKINS=yes
-else
-  INSTALL_SKINS=no
-fi
-
 # Check for GeoIP (required for IP2Country capability)
 if test ${enable_monolithic:-yes} = yes -o ${enable_amule_gui:-no} = yes ; then :
 
@@ -7501,7 +7669,7 @@ $as_echo_n "checking for WinSock library needed by GeoIP... " >&6; }
 
 
 						#include <GeoIP.h>
-						#ifdef _WINSOCK2_H
+						#if (defined _WINSOCK2API_ || defined _WINSOCK2_H)
 							I do know it's not the best approach, but at least works with MinGW stock headers.
 							(tested with w32api-3.12)
 						#endif
@@ -8797,6 +8965,74 @@ fi
 fi
 
 
+	# Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+  enableval=$enable_debug;
+fi
+
+
+	# Check whether --enable-profile was given.
+if test "${enable_profile+set}" = set; then :
+  enableval=$enable_profile;
+fi
+
+
+	# Check whether --enable-optimize was given.
+if test "${enable_optimize+set}" = set; then :
+  enableval=$enable_optimize;
+fi
+
+
+
+	if test ${enable_debug:-yes} = yes; then :
+
+		MULECPPFLAGS="$MULECPPFLAGS -D__DEBUG__"
+
+	MULECFLAGS="$MULECFLAGS -g"
+	MULECXXFLAGS="$MULECXXFLAGS -g"
+
+		if test ${GCC:-no} = yes; then :
+
+	MULECFLAGS="$MULECFLAGS -W -Wall -Wshadow -Wundef -ggdb -fno-inline -fmessage-length=0"
+	MULECXXFLAGS="$MULECXXFLAGS -W -Wall -Wshadow -Wundef -ggdb -fno-inline -fmessage-length=0"
+
+fi
+		if test ${SYS:-unknown} = win32; then :
+  MULERCFLAGS="$MULERCFLAGS -D__DEBUG__"
+fi
+
+else
+
+		if test ${GCC:-no} = yes; then :
+
+	MULECFLAGS="$MULECFLAGS -W -Wall -Wshadow -Wundef"
+	MULECXXFLAGS="$MULECXXFLAGS -W -Wall -Wshadow -Wundef"
+
+fi
+
+fi
+
+	if test ${enable_profile:-no} = yes; then :
+
+
+	MULECFLAGS="$MULECFLAGS -pg"
+	MULECXXFLAGS="$MULECXXFLAGS -pg"
+
+		MULELDFLAGS="$MULELDFLAGS -pg"
+
+fi
+
+	if test ${enable_optimize:-no} = yes; then :
+
+	MULECFLAGS="$MULECFLAGS -O2"
+	MULECXXFLAGS="$MULECXXFLAGS -O2"
+
+fi
+
+	MULECPPFLAGS="$MULECPPFLAGS -DUSE_WX_EXTENSIONS"
+
+
+
 
 if test ${enable_monolithic:-yes} = yes -o ${enable_amule_daemon:-no} = yes -o ${enable_amule_gui:-no} = yes -o ${enable_amulecmd:-no} = yes -o ${enable_webserver:-no} = yes -o ${enable_ed2k:-yes} = yes -o ${enable_alc:-no} = yes -o ${enable_alcc:-no} = yes -o ${enable_wxcas:-no} = yes -o ${enable_fileview:-no} = yes ; then :
   ac_ext=cpp
@@ -8806,27 +9042,52 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we're using the GNU C++ library" >&5
-$as_echo_n "checking if we're using the GNU C++ library... " >&6; }
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+	if test ${GCC:-no} = yes; then :
+
+				mule_backup_CXXFLAGS="$CXXFLAGS"
+		CXXFLAGS="$CXXFLAGS $MULECPPFLAGS $MULECFLAGS $MULECXXFLAGS -Werror"
+
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler ($CXX) uses strict aliasing" >&5
+$as_echo_n "checking whether the C++ compiler ($CXX) uses strict aliasing... " >&6; }
+		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
-			#include <string>
-			#ifndef __GLIBCXX__
-			#error Non-GNU C++ library found.
-			#endif
+int
+main ()
+{
+
+				int a;
+				short *b = (short*)&a;
+				short c = *b;
+
+				return c;
 
+  ;
+  return 0;
+}
 
 _ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  GLIBCXX=yes
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
 else
-  GLIBCXX=no
+
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+			$as_echo "#define GCC_USES_STRICT_ALIASING 1" >>confdefs.h
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+				CXXFLAGS="$mule_backup_CXXFLAGS"
+
 fi
-rm -f conftest.err conftest.$ac_ext
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIBCXX" >&5
-$as_echo "$GLIBCXX" >&6; }
 
 if test ${enable_monolithic:-yes} = yes -o ${enable_amule_daemon:-no} = yes -o ${enable_alc:-no} = yes -o ${enable_alcc:-no} = yes ; then :
 
@@ -8928,12 +9189,27 @@ fi
 
 
 
+	for ac_header in typeinfo
+do :
+  ac_fn_cxx_check_header_mongrel "$LINENO" "typeinfo" "ac_cv_header_typeinfo" "$ac_includes_default"
+if test "x$ac_cv_header_typeinfo" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TYPEINFO 1
+_ACEOF
+
+fi
+
+done
+
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for <cxxabi.h> and __cxa_demangle()" >&5
 $as_echo_n "checking for <cxxabi.h> and __cxa_demangle()... " >&6; }
 	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
+			#ifdef HAVE_TYPEINFO
+			#	include <typeinfo>
+			#endif
 			#include <cxxabi.h>
 
 int
@@ -8966,10 +9242,537 @@ fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-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'
+
+if test ${enable_monolithic:-yes} = yes -o ${enable_amule_daemon:-no} = yes -o ${enable_amule_gui:-no} = yes -o ${enable_amulecmd:-no} = yes -o ${enable_webserver:-no} = yes ; then :
+
+
+# Check whether --with-boost was given.
+if test "${with_boost+set}" = set; then :
+  withval=$with_boost; with_boost=${withval:-yes}
+else
+  with_boost=no
+
+fi
+
+	if test ${with_boost:-no} != no; then :
+
+		echo "$as_me: this is boost.m4 serial 16" >&5
+boost_save_IFS=$IFS
+boost_version_req=1.47
+IFS=.
+set x $boost_version_req 0 0 0
+IFS=$boost_save_IFS
+shift
+boost_version_req=`expr "$1" '*' 100000 + "$2" '*' 100 + "$3"`
+boost_version_req_string=$1.$2.$3
+# If BOOST_ROOT is set and the user has not provided a value to
+# --with-boost, then treat BOOST_ROOT as if it the user supplied it.
+if test x"$BOOST_ROOT" != x; then
+  if test x"$with_boost" = x; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: Detected BOOST_ROOT; continuing with --with-boost=$BOOST_ROOT" >&5
+$as_echo "$as_me: Detected BOOST_ROOT; continuing with --with-boost=$BOOST_ROOT" >&6;}
+    with_boost=$BOOST_ROOT
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: Detected BOOST_ROOT=$BOOST_ROOT, but overridden by --with-boost=$with_boost" >&5
+$as_echo "$as_me: Detected BOOST_ROOT=$BOOST_ROOT, but overridden by --with-boost=$with_boost" >&6;}
+  fi
+fi
+DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS '--with-boost=$with_boost'"
+boost_save_CPPFLAGS=$CPPFLAGS
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boost headers version >= $boost_version_req_string" >&5
+$as_echo_n "checking for Boost headers version >= $boost_version_req_string... " >&6; }
+if test "${boost_cv_inc_path+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  boost_cv_inc_path=no
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <boost/version.hpp>
+#if !defined BOOST_VERSION
+# error BOOST_VERSION is not defined
+#elif BOOST_VERSION < $boost_version_req
+# error Boost headers version < $boost_version_req
+#endif
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+    # If the user provided a value to --with-boost, use it and only it.
+    case $with_boost in #(
+      ''|yes) set x '' /opt/local/include /usr/local/include /opt/include \
+                 /usr/include C:/Boost/include;; #(
+      *)      set x "$with_boost/include" "$with_boost";;
+    esac
+    shift
+    for boost_dir
+    do
+    # Without --layout=system, Boost (or at least some versions) installs
+    # itself in <prefix>/include/boost-<version>.  This inner loop helps to
+    # find headers in such directories.
+    #
+    # Any ${boost_dir}/boost-x_xx directories are searched in reverse version
+    # order followed by ${boost_dir}.  The final '.' is a sentinel for
+    # searching $boost_dir" itself.  Entries are whitespace separated.
+    #
+    # I didn't indent this loop on purpose (to avoid over-indented code)
+    boost_layout_system_search_list=`cd "$boost_dir" 2>/dev/null \
+        && ls -1 | "${GREP}" '^boost-' | sort -rn -t- -k2 \
+        && echo .`
+    for boost_inc in $boost_layout_system_search_list
+    do
+      if test x"$boost_inc" != x.; then
+        boost_inc="$boost_dir/$boost_inc"
+      else
+        boost_inc="$boost_dir" # Uses sentinel in boost_layout_system_search_list
+      fi
+      if test x"$boost_inc" != x; then
+        # We are going to check whether the version of Boost installed
+        # in $boost_inc is usable by running a compilation that
+        # #includes it.  But if we pass a -I/some/path in which Boost
+        # is not installed, the compiler will just skip this -I and
+        # use other locations (either from CPPFLAGS, or from its list
+        # of system include directories).  As a result we would use
+        # header installed on the machine instead of the /some/path
+        # specified by the user.  So in that precise case (trying
+        # $boost_inc), make sure the version.hpp exists.
+        #
+        # Use test -e as there can be symlinks.
+        test -e "$boost_inc/boost/version.hpp" || continue
+        CPPFLAGS="$CPPFLAGS -I$boost_inc"
+      fi
+      if ac_fn_cxx_try_compile "$LINENO"; then :
+  boost_cv_inc_path=yes
+else
+  boost_cv_version=no
+fi
+rm -f core conftest.err conftest.$ac_objext
+      if test x"$boost_cv_inc_path" = xyes; then
+        if test x"$boost_inc" != x; then
+          boost_cv_inc_path=$boost_inc
+        fi
+        break 2
+      fi
+    done
+    done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $boost_cv_inc_path" >&5
+$as_echo "$boost_cv_inc_path" >&6; }
+    case $boost_cv_inc_path in #(
+      no)
+        boost_errmsg="cannot find Boost headers version >= $boost_version_req_string"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: $boost_errmsg" >&5
+$as_echo "$as_me: $boost_errmsg" >&6;}
+        with_boost=disabled
+        ;;#(
+      yes)
+        BOOST_CPPFLAGS=
+        ;;#(
+      *)
+        BOOST_CPPFLAGS="-I$boost_cv_inc_path"
+        ;;
+    esac
+  if test x"$boost_cv_inc_path" != xno; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boost's header version" >&5
+$as_echo_n "checking for Boost's header version... " >&6; }
+if test "${boost_cv_lib_version+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <boost/version.hpp>
+boost-lib-version = BOOST_LIB_VERSION
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  tr -d '\r' |
+  $SED -n -e "/^boost-lib-version = /{s///;s/\"//g;p;q;}" >conftest.i 2>&1; then :
+  boost_cv_lib_version=`cat conftest.i`
+fi
+rm -rf conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $boost_cv_lib_version" >&5
+$as_echo "$boost_cv_lib_version" >&6; }
+    # e.g. "134" for 1_34_1 or "135" for 1_35
+    boost_major_version=`echo "$boost_cv_lib_version" | sed 's/_//;s/_.*//'`
+    case $boost_major_version in #(
+      '' | *[!0-9]*)
+        as_fn_error "invalid value: boost_major_version=$boost_major_version" "$LINENO" 5
+        ;;
+    esac
+fi
+CPPFLAGS=$boost_save_CPPFLAGS
+
+		if test ${with_boost:-no} != disabled; then :
+
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the toolset name used by Boost for $CXX" >&5
+$as_echo_n "checking for the toolset name used by Boost for $CXX... " >&6; }
+if test "${boost_cv_lib_tag+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  boost_cv_lib_tag=unknown
+if test x$boost_cv_inc_path != xno; then
+  # The following tests are mostly inspired by boost/config/auto_link.hpp
+  # The list is sorted to most recent/common to oldest compiler (in order
+  # to increase the likelihood of finding the right compiler with the
+  # least number of compilation attempt).
+  # Beware that some tests are sensible to the order (for instance, we must
+  # look for MinGW before looking for GCC3).
+  # I used one compilation test per compiler with a #error to recognize
+  # each compiler so that it works even when cross-compiling (let me know
+  # if you know a better approach).
+  # Known missing tags (known from Boost's tools/build/v2/tools/common.jam):
+  #   como, edg, kcc, bck, mp, sw, tru, xlc
+  # I'm not sure about my test for `il' (be careful: Intel's ICC pre-defines
+  # the same defines as GCC's).
+  for i in \
+    "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 6 && !defined __ICC @ gcc46" \
+    "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 5 && !defined __ICC @ gcc45" \
+    "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 4 && !defined __ICC @ gcc44" \
+    "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 3 && !defined __ICC @ gcc43" \
+    "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && !defined __ICC @ gcc42" \
+    "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 1 && !defined __ICC @ gcc41" \
+    "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 0 && !defined __ICC @ gcc40" \
+    "defined __GNUC__ && __GNUC__ == 3 && !defined __ICC \
+     && (defined WIN32 || defined WINNT || defined _WIN32 || defined __WIN32 \
+         || defined __WIN32__ || defined __WINNT || defined __WINNT__) @ mgw" \
+    "defined __GNUC__ && __GNUC__ == 3 && __GNUC_MINOR__ == 4 && !defined __ICC @ gcc34" \
+    "defined __GNUC__ && __GNUC__ == 3 && __GNUC_MINOR__ == 3 && !defined __ICC @ gcc33" \
+    "defined _MSC_VER && _MSC_VER >= 1500 @ vc90" \
+    "defined _MSC_VER && _MSC_VER == 1400 @ vc80" \
+    "defined __GNUC__ && __GNUC__ == 3 && __GNUC_MINOR__ == 2 && !defined __ICC @ gcc32" \
+    "defined _MSC_VER && _MSC_VER == 1310 @ vc71" \
+    "defined __GNUC__ && __GNUC__ == 3 && __GNUC_MINOR__ == 1 && !defined __ICC @ gcc31" \
+    "defined __GNUC__ && __GNUC__ == 3 && __GNUC_MINOR__ == 0 && !defined __ICC @ gcc30" \
+    "defined __BORLANDC__ @ bcb" \
+    "defined __ICC && (defined __unix || defined ) @ il" \
+    "defined __ICL @ iw" \
+    "defined _MSC_VER && _MSC_VER == 1300 @ vc7" \
+    "defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ == 95 && !defined __ICC @ gcc295" \
+    "defined __MWERKS__ && __MWERKS__ <= 0x32FF @ cw9" \
+    "defined _MSC_VER && _MSC_VER < 1300 && !defined UNDER_CE @ vc6" \
+    "defined _MSC_VER && _MSC_VER < 1300 && defined UNDER_CE @ evc4" \
+    "defined __MWERKS__ && __MWERKS__ <= 0x31FF @ cw8"
+  do
+    boost_tag_test=`expr "X$i" : 'X\([^@]*\) @ '`
+    boost_tag=`expr "X$i" : 'X[^@]* @ \(.*\)'`
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if $boost_tag_test
+/* OK */
+#else
+# error $boost_tag_test
+#endif
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  boost_cv_lib_tag=$boost_tag; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+  case $boost_cv_lib_tag in #(
+    # Some newer (>= 1.35?) versions of Boost seem to only use "gcc" as opposed
+    # to "gcc41" for instance.
+    *-gcc | *'-gcc ') :;; #(  Don't re-add -gcc: it's already in there.
+    gcc*)
+      boost_tag_x=
+      case $host_os in #(
+        darwin*)
+          if test $boost_major_version -ge 136; then
+            # The `x' added in r46793 of Boost.
+            boost_tag_x=x
+          fi;;
+      esac
+      # We can specify multiple tags in this variable because it's used by
+      # BOOST_FIND_LIB that does a `for tag in -$boost_cv_lib_tag' ...
+      boost_cv_lib_tag="$boost_tag_x$boost_cv_lib_tag -${boost_tag_x}gcc"
+      ;; #(
+    unknown)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not figure out which toolset name to use for $CXX" >&5
+$as_echo "$as_me: WARNING: could not figure out which toolset name to use for $CXX" >&2;}
+      boost_cv_lib_tag=
+      ;;
+  esac
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $boost_cv_lib_tag" >&5
+$as_echo "$boost_cv_lib_tag" >&6; }
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boost sources" >&5
+$as_echo_n "checking for Boost sources... " >&6; }
+			mule_backup_CPPFLAGS="$CPPFLAGS"
+			CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+				#include <boost/../libs/system/src/error_code.cpp>
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+
+$as_echo "#define HAVE_BOOST_SOURCES 1" >>confdefs.h
+
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+				if test x"$boost_cv_inc_path" = xno; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: Boost not available, not searching for the Boost system library" >&5
+$as_echo "$as_me: Boost not available, not searching for the Boost system library" >&6;}
+else
+if test x"$boost_cv_inc_path" = xno; then
+  :
+else
+boost_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+ac_fn_cxx_check_header_mongrel "$LINENO" "boost/system/error_code.hpp" "ac_cv_header_boost_system_error_code_hpp" "$ac_includes_default"
+if test "x$ac_cv_header_boost_system_error_code_hpp" = x""yes; then :
+  :
+else
+  :
+fi
+
+
+CPPFLAGS=$boost_save_CPPFLAGS
+fi
+
+boost_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+# Now let's try to find the library.  The algorithm is as follows: first look
+# for a given library name according to the user's PREFERRED-RT-OPT.  For each
+# library name, we prefer to use the ones that carry the tag (toolset name).
+# Each library is searched through the various standard paths were Boost is
+# usually installed.  If we can't find the standard variants, we try to
+# enforce -mt (for instance on MacOSX, libboost_threads.dylib doesn't exist
+# but there's -obviously- libboost_threads-mt.dylib).
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the Boost system library" >&5
+$as_echo_n "checking for the Boost system library... " >&6; }
+if test "${boost_cv_lib_system+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  boost_cv_lib_system=no
+  boost_rtopt=
+  boost_mt=-mt
+  boost_save_ac_objext=$ac_objext
+  # Generate the test file.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <boost/system/error_code.hpp>
+
+int
+main ()
+{
+boost::system::error_code e; e.clear();
+  ;
+  return 0;
+}
+_ACEOF
+  if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_objext=do_not_rm_me_plz
+else
+  as_fn_error "cannot compile a test that uses Boost system" "$LINENO" 5
+fi
+rm -f core conftest.err conftest.$ac_objext
+  ac_objext=$boost_save_ac_objext
+  boost_failed_libs=
+# Don't bother to ident the 6 nested for loops, only the 2 innermost ones
+# matter.
+for boost_tag_ in -$boost_cv_lib_tag ''; do
+for boost_ver_ in -$boost_cv_lib_version ''; do
+for boost_mt_ in $boost_mt -mt ''; do
+for boost_rtopt_ in $boost_rtopt '' -d; do
+  for boost_lib in \
+    boost_system$boost_tag_$boost_mt_$boost_rtopt_$boost_ver_ \
+    boost_system$boost_tag_$boost_rtopt_$boost_ver_ \
+    boost_system$boost_tag_$boost_mt_$boost_ver_ \
+    boost_system$boost_tag_$boost_ver_
+  do
+    # Avoid testing twice the same lib
+    case $boost_failed_libs in #(
+      *@$boost_lib@*) continue;;
+    esac
+    # If with_boost is empty, we'll search in /lib first, which is not quite
+    # right so instead we'll try to a location based on where the headers are.
+    boost_tmp_lib=$with_boost
+    test x"$with_boost" = x && boost_tmp_lib=${boost_cv_inc_path%/include}
+    for boost_ldpath in "$boost_tmp_lib/lib" '' \
+             /opt/local/lib* /usr/local/lib* /opt/lib* /usr/lib* \
+             "$with_boost" C:/Boost/lib /lib*
+    do
+      test -e "$boost_ldpath" || continue
+      boost_save_LDFLAGS=$LDFLAGS
+      boost_cv_lib_system_LIBS="-l$boost_lib"
+      boost_save_LIBS=$LIBS
+      LIBS="$boost_cv_lib_system_LIBS $LIBS"
+      test x"$boost_ldpath" != x && LDFLAGS="$LDFLAGS -L$boost_ldpath"
+      rm -f conftest$ac_exeext
+boost_save_ac_ext=$ac_ext
+boost_use_source=:
+# If we already have a .o, re-use it.  We change $ac_ext so that $ac_link
+# tries to link the existing object file instead of compiling from source.
+test -f conftest.$ac_objext && ac_ext=$ac_objext && boost_use_source=false &&
+  $as_echo "$as_me:${as_lineno-$LINENO}: re-using the existing conftest.$ac_objext" >&5
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_executable_p conftest$ac_exeext
+       }; then :
+  boost_cv_lib_system=yes
+else
+  if $boost_use_source; then
+         $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       fi
+       boost_cv_lib_system=no
+fi
+ac_objext=$boost_save_ac_objext
+ac_ext=$boost_save_ac_ext
+rm -f core conftest.err conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+      ac_objext=$boost_save_ac_objext
+      LDFLAGS=$boost_save_LDFLAGS
+      LIBS=$boost_save_LIBS
+      if test x"$boost_cv_lib_system" = xyes; then
+        boost_cv_lib_system_LDFLAGS="-L$boost_ldpath -Wl,-R$boost_ldpath"
+        boost_cv_lib_system_LDPATH="$boost_ldpath"
+        break 6
+      else
+        boost_failed_libs="$boost_failed_libs@$boost_lib@"
+        boost_cv_lib_system_LDFLAGS=
+        boost_cv_lib_system_LDPATH=
+        boost_cv_lib_system_LIBS=
+      fi
+    done
+  done
+done
+done
+done
+done
+rm -f conftest.$ac_objext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $boost_cv_lib_system" >&5
+$as_echo "$boost_cv_lib_system" >&6; }
+BOOST_SYSTEM_LDFLAGS=$boost_cv_lib_system_LDFLAGS
+BOOST_SYSTEM_LDPATH=$boost_cv_lib_system_LDPATH
+BOOST_LDPATH=$boost_cv_lib_system_LDPATH
+BOOST_SYSTEM_LIBS=$boost_cv_lib_system_LIBS
+CPPFLAGS=$boost_save_CPPFLAGS
+fi
+
+
+
+				if test ${boost_cv_lib_system:-no} != yes; then :
+
+					{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+        Boost support has been disabled because Boost.System not found" >&5
+$as_echo "$as_me: WARNING:
+        Boost support has been disabled because Boost.System not found" >&2;}
+_mule_warning_8=yes
+_mule_has_warnings=yes
+
+					with_boost=disabled
+
+fi
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+			CPPFLAGS="$mule_backup_CPPFLAGS"
+			if test x"$boost_cv_inc_path" = xno; then
+
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+        Boost support has been disabled because Boost.Asio not found" >&5
+$as_echo "$as_me: WARNING:
+        Boost support has been disabled because Boost.Asio not found" >&2;}
+_mule_warning_9=yes
+_mule_has_warnings=yes
+
+				with_boost=disabled
+
+else
+boost_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+ac_fn_cxx_check_header_mongrel "$LINENO" "boost/asio.hpp" "ac_cv_header_boost_asio_hpp" "$ac_includes_default"
+if test "x$ac_cv_header_boost_asio_hpp" = x""yes; then :
+
+$as_echo "#define ASIO_SOCKETS 1" >>confdefs.h
+
+else
+
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+        Boost support has been disabled because Boost.Asio not found" >&5
+$as_echo "$as_me: WARNING:
+        Boost support has been disabled because Boost.Asio not found" >&2;}
+_mule_warning_10=yes
+_mule_has_warnings=yes
+
+				with_boost=disabled
+
+fi
+
+
+CPPFLAGS=$boost_save_CPPFLAGS
+fi
+
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+        Boost support has been disabled because of insufficient Boost version." >&5
+$as_echo "$as_me: WARNING:
+        Boost support has been disabled because of insufficient Boost version." >&2;}
+_mule_warning_11=yes
+_mule_has_warnings=yes
+
+fi
+
+fi
+
+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
 
 
@@ -10973,7 +11776,7 @@ $as_echo "$as_me: WARNING:
         configure cannot check whether malloc() and realloc() are GNU libc
         compatible. You have to be ABSOLUTELY sure that they are, otherwise
         run configure with the --without-gnu-malloc switch." >&2;}
-_mule_warning_8=yes
+_mule_warning_12=yes
 _mule_has_warnings=yes
 
 	ac_cv_func_malloc_0_nonnull=yes
@@ -13787,7 +14590,7 @@ fi
 $as_echo "$as_me: WARNING:
         You need to install GNU gettext/gettext-tools to compile aMule with
         i18n support." >&2;}
-_mule_warning_9=yes
+_mule_warning_13=yes
 _mule_has_warnings=yes
 
 fi
@@ -14038,7 +14841,7 @@ $as_echo "$result" >&6; }
 $as_echo "$as_me: WARNING:
         bfd.h not found or unusable, please install binutils development
         package if you are a developer or want to help testing aMule" >&2;}
-_mule_warning_10=yes
+_mule_warning_14=yes
 _mule_has_warnings=yes
 
 fi
@@ -14161,97 +14964,29 @@ fi
 rm -f confcache
 
 # Other tests
-# aMule options
 
-	# Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then :
-  enableval=$enable_debug;
+# autoconf >= 2.60 already defines ${docdir}, but we always need it.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for docdir" >&5
+$as_echo_n "checking for docdir... " >&6; }
+if test -z "$docdir"; then :
+  docdir="${datadir}/doc/${PACKAGE_NAME}-${PACKAGE_VERSION}"
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $docdir" >&5
+$as_echo "$docdir" >&6; }
 
-
-	# Check whether --enable-profile was given.
-if test "${enable_profile+set}" = set; then :
-  enableval=$enable_profile;
+# Try to set the SVN checkout-date
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SVNDATE" >&5
+$as_echo_n "checking for SVNDATE... " >&6; }
+if test -f "$srcdir/.svn-revision" # SVNDATE for tarballs
+then
+	svndate="rev. `cat $srcdir/.svn-revision`"
+elif test -d $srcdir/.svn # SVNDATE for svn
+then
+	svndate="rev. `svnversion $srcdir | sed -e 's/[0-9][0-9]*:\(.*\)/\1/' -e 's/\([0-9][0-9]*\).*/\1/'`"
 fi
-
-
-	# Check whether --enable-optimize was given.
-if test "${enable_optimize+set}" = set; then :
-  enableval=$enable_optimize;
-fi
-
-
-
-	if test ${enable_debug:-yes} = yes; then :
-
-		MULECPPFLAGS="$MULECPPFLAGS -D__DEBUG__"
-
-	MULECFLAGS="$MULECFLAGS -g"
-	MULECXXFLAGS="$MULECXXFLAGS -g"
-
-		if test ${GCC:-no} = yes; then :
-
-	MULECFLAGS="$MULECFLAGS -W -Wall -Wshadow -Wundef -ggdb -fno-inline -fmessage-length=0"
-	MULECXXFLAGS="$MULECXXFLAGS -W -Wall -Wshadow -Wundef -ggdb -fno-inline -fmessage-length=0"
-
-fi
-		if test ${SYS:-unknown} = win32; then :
-  MULERCFLAGS="$MULERCFLAGS -D__DEBUG__"
-fi
-
-else
-
-		if test ${GCC:-no} = yes; then :
-
-	MULECFLAGS="$MULECFLAGS -W -Wall -Wshadow -Wundef"
-	MULECXXFLAGS="$MULECXXFLAGS -W -Wall -Wshadow -Wundef"
-
-fi
-
-fi
-
-	if test ${enable_profile:-no} = yes; then :
-
-
-	MULECFLAGS="$MULECFLAGS -pg"
-	MULECXXFLAGS="$MULECXXFLAGS -pg"
-
-		MULELDFLAGS="$MULELDFLAGS -pg"
-
-fi
-
-	if test ${enable_optimize:-no} = yes; then :
-
-	MULECFLAGS="$MULECFLAGS -O2"
-	MULECXXFLAGS="$MULECXXFLAGS -O2"
-
-fi
-
-	MULECPPFLAGS="$MULECPPFLAGS -DUSE_WX_EXTENSIONS"
-
-
-# autoconf >= 2.60 already defines ${docdir}, but we always need it.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for docdir" >&5
-$as_echo_n "checking for docdir... " >&6; }
-if test -z "$docdir"; then :
-  docdir="${datadir}/doc/${PACKAGE_NAME}-${PACKAGE_VERSION}"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $docdir" >&5
-$as_echo "$docdir" >&6; }
-
-# Try to set the SVN checkout-date
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SVNDATE" >&5
-$as_echo_n "checking for SVNDATE... " >&6; }
-if test -f "$srcdir/.svn-revision" # SVNDATE for tarballs
-then
-	svndate="rev. `cat $srcdir/.svn-revision`"
-elif test -d $srcdir/.svn # SVNDATE for svn
-then
-	svndate="rev. `svnversion $srcdir | sed -e 's/[0-9][0-9]*:\(.*\)/\1/' -e 's/\([0-9][0-9]*\).*/\1/'`"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${svndate:-None required}" >&5
-$as_echo "${svndate:-None required}" >&6; }
-if test -n "$svndate"; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${svndate:-None required}" >&5
+$as_echo "${svndate:-None required}" >&6; }
+if test -n "$svndate"; then :
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14274,685 +15009,26 @@ fi
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking denoising level" >&5
 $as_echo_n "checking denoising level... " >&6; }
 	if test ${with_denoise_level:-5} = yes; then :
-  with_denoise_level=5
-fi
-	if test ${with_denoise_level:-5} = no; then :
-  with_denoise_level=0
-fi
-	if test ${with_denoise_level:-5} -gt 4; then :
-  if test "${svndate:+set}" = "set"; then :
-  with_denoise_level=0
-else
-  with_denoise_level=4
-fi
-fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_denoise_level" >&5
-$as_echo "$with_denoise_level" >&6; }
-
-	ac_config_commands="$ac_config_commands denoiser"
-
-
-
-if test ${enable_plasmamule:-no} = yes; then :
-
-
-	if test -z ${QT_MOC}; then :
-
-		for ac_prog in moc-qt4 moc
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_QT_MOC+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $QT_MOC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_QT_MOC="$QT_MOC" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_QT_MOC="$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
-QT_MOC=$ac_cv_path_QT_MOC
-if test -n "$QT_MOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QT_MOC" >&5
-$as_echo "$QT_MOC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$QT_MOC" && break
-done
-
-		if test -z ${QT_MOC}; then :
-
-			echo moc not found
-			exit 1
-
-fi
-
-else
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for moc" >&5
-$as_echo_n "checking for moc... " >&6; }
-		if test -x ${QT_MOC}; then :
-
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${QT_MOC}" >&5
-$as_echo "${QT_MOC}" >&6; }
-
-
-else
-
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: \"not found\"" >&5
-$as_echo "\"not found\"" >&6; }
-			QT_MOC="not found"
-			exit 1
-
-fi
-
-fi
-
-
-	if test "${QT_MOC}" != "not found"; then :
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for moc version >= 4" >&5
-$as_echo_n "checking for moc version >= 4... " >&6; }
-		QT_MOC_VERSION=`${QT_MOC} -v 2>&1 | sed -e 's/^.* (/(/'`
-		if test `echo ${QT_MOC_VERSION} | sed -e 's/^.* //' -e 's/\..*$//'` = 4; then :
-
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found ${QT_MOC_VERSION}" >&5
-$as_echo "found ${QT_MOC_VERSION}" >&6; }
-
-else
-
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ${QT_MOC_VERSION} is too old" >&5
-$as_echo "not found ${QT_MOC_VERSION} is too old" >&6; }
-			QT_MOC="not found"
-			exit 1
-
-fi
-
-fi
-
-	if test "${QT_MOC}" = "not found"; then :
-  enable_plasmamule=disabled
-fi
-
-	if test ${enable_plasmamule:-no} = yes; then :
-
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for qt" >&5
-$as_echo_n "checking for qt... " >&6; }
-	if test `${PKG_CONFIG} QtCore` --exists && `${PKG_CONFIG} QtGui --exists`; then :
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
-$as_echo "found" >&6; }
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for qt core cflags" >&5
-$as_echo_n "checking for qt core cflags... " >&6; }
-		QT_CORE_CXXFLAGS=`${PKG_CONFIG} --cflags QtCore`
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $QT_CORE_CFLAGS" >&5
-$as_echo "$QT_CORE_CFLAGS" >&6; }
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for qt core libs" >&5
-$as_echo_n "checking for qt core libs... " >&6; }
-		QT_CORE_LIBS=`${PKG_CONFIG} --libs QtCore`
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $QT_CORE_LIBS" >&5
-$as_echo "$QT_CORE_LIBS" >&6; }
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for qt gui cflags" >&5
-$as_echo_n "checking for qt gui cflags... " >&6; }
-		QT_GUI_CXXFLAGS=`${PKG_CONFIG} --cflags QtGui`
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $QT_GUI_CFLAGS" >&5
-$as_echo "$QT_GUI_CFLAGS" >&6; }
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for qt gui libs" >&5
-$as_echo_n "checking for qt gui libs... " >&6; }
-		QT_GUI_LIBS=`${PKG_CONFIG} --libs QtGui`
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $QT_GUI_LIBS" >&5
-$as_echo "$QT_GUI_LIBS" >&6; }
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
-		exit 1
-
-fi
-
-	if test `${PKG_CONFIG} QtDBus --modversion | sed -e 's/\.//g'` -ge 470 ; then :
-
-		QT_DBUS_LDFLAGS="-lQtDBus"
-
-
-fi
-
-
-
-
-
-
-		if test -z "${QT_CORE_CXXFLAGS}"; then :
-  enable_plasmamule=disabled
-fi
-
-fi
-
-	if test ${enable_plasmamule:-no} = yes; then :
-
-
-	if test -z ${KDE4_CONFIG}; then :
-
-		# Extract the first word of "kde4-config", so it can be a program name with args.
-set dummy kde4-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_KDE4_CONFIG+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $KDE4_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_KDE4_CONFIG="$KDE4_CONFIG" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_KDE4_CONFIG="$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
-KDE4_CONFIG=$ac_cv_path_KDE4_CONFIG
-if test -n "$KDE4_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $KDE4_CONFIG" >&5
-$as_echo "$KDE4_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-else
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kde4-config" >&5
-$as_echo_n "checking for kde4-config... " >&6; }
-		if test ! -x KDE4_CONFIG; then :
-
-			KDE4_CONFIG="not found"
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
-			exit 1
-
-fi
-
-fi
-
-	if  test "${KDE4_CONFIG}" != "not found"; then :
-
-		KDE_CONF_VER=`${KDE4_CONFIG} --version | grep KDE | sed -e 's/^.*: //' -e 's/ (.*$//'`
-		if test `echo ${KDE_CONF_VER} | sed -e 's/\..*$//'` = 4; then :
-
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found ${KDE4_CONFIG} with version ${KDE_CONF_VER}" >&5
-$as_echo "found ${KDE4_CONFIG} with version ${KDE_CONF_VER}" >&6; }
-
-else
-
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: at least version 4 required" >&5
-$as_echo "at least version 4 required" >&6; }
-			exit 1
-
-fi
-
-else
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
-		exit 1
-
-fi
-
-
-		if test "${KDE4_CONFIG}" = "not found"; then :
-  enable_plasmamule=disabled
-fi
-
-fi
-
-	if test ${enable_plasmamule:-no} = yes; then :
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kde4 headers" >&5
-$as_echo_n "checking for kde4 headers... " >&6; }
-	KDE_HEADER_DIR=`${KDE4_CONFIG} --path include`
-
-	if test -f ${KDE_HEADER_DIR}kdirwatch.h; then :
-
-		if test -f ${KDE_HEADER_DIR}plasma/dataengine.h; then :
-
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${KDE_HEADER_DIR}" >&5
-$as_echo "${KDE_HEADER_DIR}" >&6; }
-
-else
-
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: dataengine.h not found" >&5
-$as_echo "dataengine.h not found" >&6; }
-			exit 1
-
-fi
-
-else
-
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: kdirwatch.h not found" >&5
-$as_echo "kdirwatch.h not found" >&6; }
-		exit 1
-
-fi
-
-
-		if test -z ${KDE_HEADER_DIR}; then :
-  enable_plasmamule=disabled
-fi
-
-fi
-
-	if test ${enable_plasmamule:-no} = yes; then :
-
-		if test -e `$BUILD_CC -print-file-name=libplasma.so` &&
-			test -e `$BUILD_CC -print-file-name=libkdecore.so`; then :
-
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kde4 applinks Path" >&5
-$as_echo_n "checking for kde4 applinks Path... " >&6; }
-	if test `echo ${prefix} | grep home | wc -l` == 1; then :
-
-		KDE_IN_HOME="yes"
-
-fi
-	if test ${KDE_IN_HOME} = "yes"; then :
-
-		KDE_APPLNK_PATH=`${KDE4_CONFIG} --path xdgdata-apps | tr ":" "\n" | $EGREP '(/home|/root)' | head -1`
-
-else
-
-		if test -n ${prefix}; then :
-
-			KDE_APPLNK_PATH=`${KDE4_CONFIG} --path xdgdata-apps | tr ":" "\n" | grep ${prefix} | head -1`
-			if test -n ${KDE_APPLNK_PATH}; then :
-
-				KDE_APPLNK_PATH=`${KDE4_CONFIG} --path xdgdata-apps | tr ":" "\n" | grep -vE '(/home|/root)' | head -1`
-
-fi
-
-else
-
-			KDE_APPLNK_PATH=`${KDE4_CONFIG} --path xdgdata-apps | tr ":" "\n" | grep -vE '(/home|/root)' | head -1`
-
-fi
-
-fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${KDE_APPLNK_PATH}" >&5
-$as_echo "${KDE_APPLNK_PATH}" >&6; }
-
-
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kde4 services Path" >&5
-$as_echo_n "checking for kde4 services Path... " >&6; }
-	if test `echo ${prefix} | grep home | wc -l` == 1; then :
-
-		KDE_IN_HOME="yes"
-
-fi
-	if test ${KDE_IN_HOME} = "yes"; then :
-
-		KDE_SERVICE_PATH=`${KDE4_CONFIG} --path services | tr ":" "\n" | $EGREP '(/home|/root)' | head -1`
-
-else
-
-		KDE_SERVICE_PATH=`${KDE4_CONFIG} --path services | tr ":" "\n" | grep /usr | head -1`
-
-fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${KDE_SERVICE_PATH}" >&5
-$as_echo "${KDE_SERVICE_PATH}" >&6; }
-
-
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kde4 plugins Path" >&5
-$as_echo_n "checking for kde4 plugins Path... " >&6; }
-	if test `echo ${prefix} | grep home | wc -l` == 1; then :
-
-		KDE_IN_HOME="yes"
-
-fi
-	if test ${KDE_IN_HOME} = "yes"; then :
-
-		KDE_MODULE_PATH=`${KDE4_CONFIG} --path module | tr ":" "\n" | $EGREP '(/home|/root)' | head -1`
-
-else
-
-		KDE_MODULE_PATH=`${KDE4_CONFIG} --path module | tr ":" "\n" | grep /usr | head -1`
-
-fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${KDE_MODULE_PATH}" >&5
-$as_echo "${KDE_MODULE_PATH}" >&6; }
-
-
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kde4 icons Path" >&5
-$as_echo_n "checking for kde4 icons Path... " >&6; }
-	if test `echo ${prefix} | grep home | wc -l` == 1; then :
-
-		KDE_IN_HOME="yes"
-
-fi
-	if test ${KDE_IN_HOME} = "yes"; then :
-
-		KDE_ICON_PATH=`${KDE4_CONFIG} --path icon | tr ":" "\n" | $EGREP '(/home|/root)' | head -1`
-
-else
-
-		KDE_ICON_PATH=`${KDE4_CONFIG} --path icon | tr ":" "\n" | grep /usr | head -1`
-
-fi
-	KDE_ICON_PATH=${KDE_ICON_PATH}hicolor/scalable/mimetypes/
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${KDE_ICON_PATH}" >&5
-$as_echo "${KDE_ICON_PATH}" >&6; }
-
-
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location for mime-type installation" >&5
-$as_echo_n "checking for location for mime-type installation... " >&6; }
-	if test `echo ${prefix} | grep home | wc -l` == 1; then :
-
-		KDE_IN_HOME="yes"
-
-fi
-	if test ${KDE_IN_HOME} = "yes"; then :
-
-		KDE_MIME_PATH=`${KDE4_CONFIG} --path xdgdata-mime | tr ":" "\n" | $EGREP '(/home|/root)' | head -1`
-
-else
-
-		if test -n ${prefix}; then :
-
-			KDE_MIME_PATH=`${KDE4_CONFIG} --path xdgdata-mime | tr ":" "\n" | grep ${prefix} | head -1`
-			if test -n ${KDE_MIME_PATH}; then :
-
-				KDE_MIME_PATH=`${KDE4_CONFIG} --path xdgdata-mime | tr ":" "\n" | $EGREP -v '(/home|/root)' | head -1`
-
-fi
-
-else
-
-			KDE_MIME_PATH=`${KDE4_CONFIG} --path xdgdata-mime | tr ":" "\n" | $EGREP -v '(/home|/root)' | head -1`
-
-fi
-
-fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${KDE_MIME_PATH}" >&5
-$as_echo "${KDE_MIME_PATH}" >&6; }
-
-
-
-else
-  enable_plasmamule=disabled
-fi
-
-fi
-
-	if test ${enable_debug:-yes} = yes; then :
-
-		DEBUGFLAG="-D__DEBUG__"
-
-
-fi
-
-fi
-
- if test x$SYS = xwin32; then
-  SYS_WIN32_TRUE=
-  SYS_WIN32_FALSE='#'
-else
-  SYS_WIN32_TRUE='#'
-  SYS_WIN32_FALSE=
-fi
-
- if test x$SYS = xwin32 -a "$RC" != ":"; then
-  NEED_RC_TRUE=
-  NEED_RC_FALSE='#'
-else
-  NEED_RC_TRUE='#'
-  NEED_RC_FALSE=
-fi
-
- if test x$SYS = xdarwin; then
-  NEED_CORESERVICES_TRUE=
-  NEED_CORESERVICES_FALSE='#'
-else
-  NEED_CORESERVICES_TRUE='#'
-  NEED_CORESERVICES_FALSE=
-fi
-
- if test x$USE_NLS = xyes; then
-  COMPILE_NLS_TRUE=
-  COMPILE_NLS_FALSE='#'
-else
-  COMPILE_NLS_TRUE='#'
-  COMPILE_NLS_FALSE=
-fi
-
- if test x$HAVE_FLEX_EXTENDED = xyes; then
-  GENERATE_FLEX_HEADER_TRUE=
-  GENERATE_FLEX_HEADER_FALSE='#'
-else
-  GENERATE_FLEX_HEADER_TRUE='#'
-  GENERATE_FLEX_HEADER_FALSE=
-fi
-
- if test x$INSTALL_SKINS = xyes; then
-  INSTALL_SKINS_TRUE=
-  INSTALL_SKINS_FALSE='#'
-else
-  INSTALL_SKINS_TRUE='#'
-  INSTALL_SKINS_FALSE=
-fi
-
- if test ${enable_plasmamule:-no} = yes; then
-  PLASMAMULE_TRUE=
-  PLASMAMULE_FALSE='#'
-else
-  PLASMAMULE_TRUE='#'
-  PLASMAMULE_FALSE=
-fi
-
-
- if test  ${enable_monolithic:-yes} = yes -o ${enable_amule_daemon:-no} = yes -o ${enable_amulecmd:-no} = yes -o ${enable_webserver:-no} = yes -o ${enable_amule_gui:-no} = yes -o ${enable_fileview:-no} = yes ; then
-  COMPILE_LIB_COMMON_TRUE=
-  COMPILE_LIB_COMMON_FALSE='#'
-else
-  COMPILE_LIB_COMMON_TRUE='#'
-  COMPILE_LIB_COMMON_FALSE=
-fi
-
- if test  ${enable_monolithic:-yes} = yes -o ${enable_amule_daemon:-no} = yes -o ${enable_amulecmd:-no} = yes -o ${enable_webserver:-no} = yes -o ${enable_amule_gui:-no} = yes ; then
-  COMPILE_LIB_EC_TRUE=
-  COMPILE_LIB_EC_FALSE='#'
-else
-  COMPILE_LIB_EC_TRUE='#'
-  COMPILE_LIB_EC_FALSE=
-fi
-
-
-# Check for readline library
-if test ${enable_amulecmd:-no} = yes -o ${enable_webserver:-no} = yes ; then :
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a readline compatible library" >&5
-$as_echo_n "checking for a readline compatible library... " >&6; }
-if test "${vl_cv_lib_readline+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    ORIG_LIBS="$LIBS"
-    for readline_lib in readline edit editline; do
-      for termcap_lib in "" termcap curses ncurses; do
-        if test -z "$termcap_lib"; then
-          TRY_LIB="-l$readline_lib"
-        else
-          TRY_LIB="-l$readline_lib -l$termcap_lib"
-        fi
-        LIBS="$ORIG_LIBS $TRY_LIB"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char readline ();
-int
-main ()
-{
-return readline ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  vl_cv_lib_readline="$TRY_LIB"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        if test -n "$vl_cv_lib_readline"; then
-          break
-        fi
-      done
-      if test -n "$vl_cv_lib_readline"; then
-        break
-      fi
-    done
-    if test -z "$vl_cv_lib_readline"; then
-      vl_cv_lib_readline="no"
-      LIBS="$ORIG_LIBS"
-      READLINE_LIBS=""
-    else
-      READLINE_LIBS="$vl_cv_lib_readline"
-    fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vl_cv_lib_readline" >&5
-$as_echo "$vl_cv_lib_readline" >&6; }
-
-  if test "$vl_cv_lib_readline" != "no"; then
-
-$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h
-
-    for ac_header in readline.h readline/readline.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readline supports history" >&5
-$as_echo_n "checking whether readline supports history... " >&6; }
-if test "${vl_cv_lib_readline_history+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-
-      vl_cv_lib_readline_history="no"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char add_history ();
-int
-main ()
-{
-return add_history ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  vl_cv_lib_readline_history="yes"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vl_cv_lib_readline_history" >&5
-$as_echo "$vl_cv_lib_readline_history" >&6; }
-    if test "$vl_cv_lib_readline_history" = "yes"; then
-
-$as_echo "#define HAVE_READLINE_HISTORY 1" >>confdefs.h
-
-      for ac_header in history.h readline/history.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
+  with_denoise_level=5
 fi
+	if test ${with_denoise_level:-5} = no; then :
+  with_denoise_level=0
+fi
+	if test ${with_denoise_level:-5} -gt 4; then :
+  if test "${svndate:+set}" = "set"; then :
+  with_denoise_level=0
+else
+  with_denoise_level=4
+fi
+fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_denoise_level" >&5
+$as_echo "$with_denoise_level" >&6; }
 
-done
-
-    fi
-  fi
+	ac_config_commands="$ac_config_commands denoiser"
 
-  LIBS="$ORIG_LIBS"
 
-fi
 
-if test ${PLASMAMULE:-no} = yes; then :
+if test ${enable_plasmamule:-no} = yes; then :
 
 
 	if test -z ${QT_MOC}; then :
@@ -15399,6 +15475,218 @@ fi
 
 fi
 
+ if test x$SYS = xwin32; then
+  SYS_WIN32_TRUE=
+  SYS_WIN32_FALSE='#'
+else
+  SYS_WIN32_TRUE='#'
+  SYS_WIN32_FALSE=
+fi
+
+ if test x$SYS = xwin32 -a "$RC" != ":"; then
+  NEED_RC_TRUE=
+  NEED_RC_FALSE='#'
+else
+  NEED_RC_TRUE='#'
+  NEED_RC_FALSE=
+fi
+
+ if test x$SYS = xdarwin; then
+  NEED_CORESERVICES_TRUE=
+  NEED_CORESERVICES_FALSE='#'
+else
+  NEED_CORESERVICES_TRUE='#'
+  NEED_CORESERVICES_FALSE=
+fi
+
+ if test x$USE_NLS = xyes; then
+  COMPILE_NLS_TRUE=
+  COMPILE_NLS_FALSE='#'
+else
+  COMPILE_NLS_TRUE='#'
+  COMPILE_NLS_FALSE=
+fi
+
+ if test x$HAVE_FLEX_EXTENDED = xyes; then
+  GENERATE_FLEX_HEADER_TRUE=
+  GENERATE_FLEX_HEADER_FALSE='#'
+else
+  GENERATE_FLEX_HEADER_TRUE='#'
+  GENERATE_FLEX_HEADER_FALSE=
+fi
+
+ if test  ${enable_monolithic:-yes} = yes -o ${enable_amule_gui:-no} = yes ; then
+  INSTALL_SKINS_TRUE=
+  INSTALL_SKINS_FALSE='#'
+else
+  INSTALL_SKINS_TRUE='#'
+  INSTALL_SKINS_FALSE=
+fi
+
+ if test ${enable_plasmamule:-no} = yes; then
+  PLASMAMULE_TRUE=
+  PLASMAMULE_FALSE='#'
+else
+  PLASMAMULE_TRUE='#'
+  PLASMAMULE_FALSE=
+fi
+
+
+ if test  ${enable_monolithic:-yes} = yes -o ${enable_amule_daemon:-no} = yes -o ${enable_amulecmd:-no} = yes -o ${enable_webserver:-no} = yes -o ${enable_amule_gui:-no} = yes -o ${enable_fileview:-no} = yes ; then
+  COMPILE_LIB_COMMON_TRUE=
+  COMPILE_LIB_COMMON_FALSE='#'
+else
+  COMPILE_LIB_COMMON_TRUE='#'
+  COMPILE_LIB_COMMON_FALSE=
+fi
+
+ if test  ${enable_monolithic:-yes} = yes -o ${enable_amule_daemon:-no} = yes -o ${enable_amulecmd:-no} = yes -o ${enable_webserver:-no} = yes -o ${enable_amule_gui:-no} = yes ; then
+  COMPILE_LIB_EC_TRUE=
+  COMPILE_LIB_EC_FALSE='#'
+else
+  COMPILE_LIB_EC_TRUE='#'
+  COMPILE_LIB_EC_FALSE=
+fi
+
+
+# Check for readline library
+if test ${enable_amulecmd:-no} = yes -o ${enable_webserver:-no} = yes ; then :
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a readline compatible library" >&5
+$as_echo_n "checking for a readline compatible library... " >&6; }
+if test "${vl_cv_lib_readline+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    ORIG_LIBS="$LIBS"
+    for readline_lib in readline edit editline; do
+      for termcap_lib in "" termcap curses ncurses; do
+        if test -z "$termcap_lib"; then
+          TRY_LIB="-l$readline_lib"
+        else
+          TRY_LIB="-l$readline_lib -l$termcap_lib"
+        fi
+        LIBS="$ORIG_LIBS $TRY_LIB"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char readline ();
+int
+main ()
+{
+return readline ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  vl_cv_lib_readline="$TRY_LIB"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        if test -n "$vl_cv_lib_readline"; then
+          break
+        fi
+      done
+      if test -n "$vl_cv_lib_readline"; then
+        break
+      fi
+    done
+    if test -z "$vl_cv_lib_readline"; then
+      vl_cv_lib_readline="no"
+      LIBS="$ORIG_LIBS"
+      READLINE_LIBS=""
+    else
+      READLINE_LIBS="$vl_cv_lib_readline"
+    fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vl_cv_lib_readline" >&5
+$as_echo "$vl_cv_lib_readline" >&6; }
+
+  if test "$vl_cv_lib_readline" != "no"; then
+
+$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h
+
+    for ac_header in readline.h readline/readline.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readline supports history" >&5
+$as_echo_n "checking whether readline supports history... " >&6; }
+if test "${vl_cv_lib_readline_history+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      vl_cv_lib_readline_history="no"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char add_history ();
+int
+main ()
+{
+return add_history ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  vl_cv_lib_readline_history="yes"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $vl_cv_lib_readline_history" >&5
+$as_echo "$vl_cv_lib_readline_history" >&6; }
+    if test "$vl_cv_lib_readline_history" = "yes"; then
+
+$as_echo "#define HAVE_READLINE_HISTORY 1" >>confdefs.h
+
+      for ac_header in history.h readline/history.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+    fi
+  fi
+
+  LIBS="$ORIG_LIBS"
+
+fi
+
 # DO NOT MOVE UP... THERE'S A REASON TO BE HERE!!
 
 
@@ -16067,7 +16355,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 aMule $as_me 2.3.1, which was
+This file was extended by aMule $as_me SVN, which was
 generated by GNU Autoconf 2.65.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16133,7 +16421,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="\\
-aMule config.status 2.3.1
+aMule config.status SVN
 configured by $0, generated by GNU Autoconf 2.65,
   with options \\"\$ac_cs_config\\"
 
@@ -17080,7 +17368,7 @@ $as_echo X"$file" |
     done ;;
     "denoiser":C) if test $denoiserlevel -gt 0; then
 		if test ! -d src/utils/scripts; then mkdir -p src/utils/scripts; fi
-		sed -e "1{x;s/.*/1/;x;};/^[ 	]*\$/d;/^#if /{/level.*$denoiserlevel/{x;s/^/1/;x;b0;};x;s/^/0/;x;:0;d;};/^#else/{x;/^1/{s/1/0/;b1;};s/0/1/;:1;x;d;};/^#endif/{x;s/.//;x;d;};/^[ 	]*#/d;x;/^1/{x;b;};x;d" \
+		sed -e "1{x;s/.*/1/;x;};/^[	 ]*\$/d;/^#if /{/level.*$denoiserlevel/{x;s/^/1/;x;b0;};x;s/^/0/;x;:0;d;};/^#else/{x;/^1/{s/1/0/;b1;};s/0/1/;:1;x;d;};/^#endif/{x;s/.//;x;d;};/^[	 ]*#/d;x;/^1/{x;b;};x;d" \
 			$srcdir/src/utils/scripts/denoiser.rules > src/utils/scripts/denoiser.sed
 		for i in `find . -name 'Makefile' -print`; do
 			if test -n "`head -n 1 $i | grep '^#'`"; then
@@ -17192,6 +17480,16 @@ fi
 	echo "                             wxWidgets             ${WX_VERSION_FULL} ($wxinfo)"
 
 fi
+if test ${with_boost:-no} != no; then :
+  if test ${with_boost:-no} = disabled; then
+  echo "                             boost                 Not detected"
+elif test ${boost_cv_inc_path:-yes} != yes; then
+  echo "                             boost                 `echo ${boost_cv_lib_version} | sed -e 's/_/./g'` (in ${boost_cv_inc_path})"
+elif echo "                             boost                 `echo ${boost_cv_lib_version} | sed -e 's/_/./g'`"; then
+  :
+fi
+
+fi
 if test ${enable_monolithic:-yes} = yes -o ${enable_amule_daemon:-no} = yes -o ${enable_amule_gui:-no} = yes -o ${enable_fileview:-no} = yes ; then :
   echo "                             crypto++              ${CRYPTOPP_VERSION_STRING} (${CRYPTOPP_STYLE}, in ${CRYPTOPP_PREFIX})"
 fi
@@ -17316,19 +17614,43 @@ fi
 if test ${_mule_warning_8:-no} = yes; then
 cat <<_MULEEOT
 
+* Boost support has been disabled because Boost.System not found
+_MULEEOT
+fi
+if test ${_mule_warning_9:-no} = yes; then
+cat <<_MULEEOT
+
+* Boost support has been disabled because Boost.Asio not found
+_MULEEOT
+fi
+if test ${_mule_warning_10:-no} = yes; then
+cat <<_MULEEOT
+
+* Boost support has been disabled because Boost.Asio not found
+_MULEEOT
+fi
+if test ${_mule_warning_11:-no} = yes; then
+cat <<_MULEEOT
+
+* Boost support has been disabled because of insufficient Boost version.
+_MULEEOT
+fi
+if test ${_mule_warning_12:-no} = yes; then
+cat <<_MULEEOT
+
 * configure cannot check whether malloc() and realloc() are GNU libc
   compatible. You have to be ABSOLUTELY sure that they are, otherwise run
   configure with the --without-gnu-malloc switch.
 _MULEEOT
 fi
-if test ${_mule_warning_9:-no} = yes; then
+if test ${_mule_warning_13:-no} = yes; then
 cat <<_MULEEOT
 
 * You need to install GNU gettext/gettext-tools to compile aMule with i18n
   support.
 _MULEEOT
 fi
-if test ${_mule_warning_10:-no} = yes; then
+if test ${_mule_warning_14:-no} = yes; then
 cat <<_MULEEOT
 
 * bfd.h not found or unusable, please install binutils development package if
diff --git a/configure.in b/configure.in
index 108baf0..7c964f5 100644
--- a/configure.in
+++ b/configure.in
@@ -18,13 +18,13 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 #
 
-AC_INIT([aMule], [2.3.1], [admin at amule.org])
+AC_INIT([aMule],[SVN],[admin at amule.org])
 AM_INIT_AUTOMAKE
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
 
@@ -32,6 +32,7 @@ AC_PREREQ(2.59)
 
 AC_CONFIG_SRCDIR([src/amule.cpp])
 AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIR([m4])
 AM_MAINTAINER_MODE
 
 dnl Check host system.
@@ -56,6 +57,7 @@ AC_PROG_MAKE_SET
 AC_PROG_LEX
 AC_PROG_INSTALL
 AC_PROG_RANLIB
+AC_PROG_SED
 AC_PROG_YACC
 
 dnl Find the right ranlib, even when cross-compiling
@@ -132,14 +134,11 @@ AC_SUBST([AMULEWEB_DEFS])dnl
 
 # Check for perl File::Copy
 AC_MSG_CHECKING([for File::Copy])
-AS_IF([perl -e "require File::Copy" 2>/dev/null], [AC_MSG_RESULT([ok])], 
+AS_IF([perl -e "require File::Copy" 2>/dev/null], [AC_MSG_RESULT([ok])],
 	[MULE_WARNING(
 		[File::Copy perl module is required by the mldonkey_importer script.
 		If you want to use this script please install File::Copy from CPAN.])])
 
-# Check if we need to install skins
-MULE_IF_ENABLED_ANY([monolithic, amule-gui], [INSTALL_SKINS=yes], [INSTALL_SKINS=no])
-
 # Check for GeoIP (required for IP2Country capability)
 MULE_IF_ENABLED_ANY([monolithic, amule-gui], [MULE_CHECK_GEOIP])
 
@@ -156,10 +155,10 @@ MULE_IF_ENABLED_ANY([monolithic, amule-daemon, amule-gui, amulecmd, webserver, a
 	WX_CONFIG_CHECK([2.8.12], [wxWin=1],,, [$WXCONFIG_FLAGS])
 	AS_IF([test "$wxWin" != 1],
 		[AC_MSG_ERROR([
-		wxWidgets must be installed on your system but wx-config 
-		script couldn't be found. Please check that wx-config is 
-		in path or specified by --with-wx-config=path flag, the 
-		directory where wxWidgets libraries are installed (returned 
+		wxWidgets must be installed on your system but wx-config
+		script couldn't be found. Please check that wx-config is
+		in path or specified by --with-wx-config=path flag, the
+		directory where wxWidgets libraries are installed (returned
 		by 'wx-config --libs' command) is in LD_LIBRARY_PATH or
 		equivalent variable and wxWidgets version is 2.8.12 or above.
 		])]
@@ -222,16 +221,21 @@ MULE_IF_ENABLED_ANY([monolithic, amule-daemon, amule-gui, fileview],
 	installation directory).])
 ])])
 
+MULE_COMPILATION_FLAGS
+
 dnl Checks requiring C++
 MULE_IF_ENABLED_ANY([monolithic, amule-daemon, amule-gui, amulecmd, webserver, ed2k, alc, alcc, wxcas, fileview],
 [AC_LANG_PUSH([C++])
-MULE_CHECK_GLIBCXX
+dnl MULE_CHECK_GLIBCXX
+MULE_CHECK_STRICT_ALIASING
 MULE_IF_ENABLED_ANY([monolithic, amule-daemon, alc, alcc], [MULE_CHECK_WX_SUPPORTS_LARGEFILE])
 
 # Check if the compiler is broken, wrt. exceptions.
 MULE_CHECK_EXCEPTIONS
 
 MULE_CHECK_CXXABI
+
+MULE_IF_ENABLED_ANY([monolithic, amule-daemon, amule-gui, amulecmd, webserver], [MULE_CHECK_BOOST([1.47])])
 AC_LANG_POP([C++])
 ])
 
@@ -331,8 +335,6 @@ MULE_CHECK_EXECINFO
 AC_CACHE_SAVE
 
 # Other tests
-# aMule options
-MULE_COMPILATION_FLAGS
 
 # autoconf >= 2.60 already defines ${docdir}, but we always need it.
 AC_MSG_CHECKING([for docdir])
@@ -366,7 +368,7 @@ AM_CONDITIONAL(NEED_RC, test x$SYS = xwin32 -a "$RC" != ":")
 AM_CONDITIONAL(NEED_CORESERVICES, test x$SYS = xdarwin)
 AM_CONDITIONAL(COMPILE_NLS, test x$USE_NLS = xyes)
 AM_CONDITIONAL(GENERATE_FLEX_HEADER, test x$HAVE_FLEX_EXTENDED = xyes)
-AM_CONDITIONAL(INSTALL_SKINS, test x$INSTALL_SKINS = xyes)
+AM_CONDITIONAL(INSTALL_SKINS, test MULE_IS_ENABLED_ANY([monolithic, amule-gui]))
 AM_CONDITIONAL(PLASMAMULE, test MULE_IS_ENABLED([plasmamule]))
 
 AM_CONDITIONAL([COMPILE_LIB_COMMON],	[test MULE_IS_ENABLED_ANY([monolithic, amule-daemon, amulecmd, webserver, amule-gui, fileview])])
@@ -375,9 +377,6 @@ AM_CONDITIONAL([COMPILE_LIB_EC],	[test MULE_IS_ENABLED_ANY([monolithic, amule-da
 # Check for readline library
 MULE_IF_ENABLED_ANY([amulecmd, webserver], [VL_LIB_READLINE])
 
-AS_IF([test ${PLASMAMULE:-no} = yes],
-[PLASMAMULE_CHECKS])
-
 # DO NOT MOVE UP... THERE'S A REASON TO BE HERE!!
 
 MULE_CHECK_CCACHE
@@ -434,8 +433,8 @@ echo
 echo "  Configured aMule ${PACKAGE_VERSION}${SVN_REVISION} for '${host}'."
 echo
 echo "  aMule enabled options:"
-echo 
-echo "  **** aMule Core ****" 
+echo
+echo "  **** aMule Core ****"
 echo "  Prefix where aMule should be installed?                    ${prefix:-none}"
 echo "  Should aMule be compiled with i18n support?                ${USE_NLS:-no}"
 echo "  Should aMule be compiled in debug mode?                    MULE_STATUSOF([debug])"
@@ -478,6 +477,14 @@ MULE_IF_ENABLED_ANY([monolithic, amule-daemon, amule-gui, amulecmd, webserver, a
 	AS_IF([test $WX_SHARED -eq 1], [wxinfo="$wxinfo,shared"], [wxinfo="$wxinfo,static"])
 	echo "                             wxWidgets             ${WX_VERSION_FULL} ($wxinfo)"
 ])
+AS_IF([test ${with_boost:-no} != no],
+[MULE_IF(
+	[test ${with_boost:-no} = disabled],
+		[echo "                             boost                 Not detected"],
+	[test ${boost_cv_inc_path:-yes} != yes],
+		[echo "                             boost                 `echo ${boost_cv_lib_version} | sed -e 's/_/./g'` (in ${boost_cv_inc_path})"],
+		[echo "                             boost                 `echo ${boost_cv_lib_version} | sed -e 's/_/./g'`"],
+)])
 MULE_IF_ENABLED_ANY([monolithic, amule-daemon, amule-gui, fileview],
 	[echo "                             crypto++              ${CRYPTOPP_VERSION_STRING} (${CRYPTOPP_STYLE}, in ${CRYPTOPP_PREFIX})"])
 MULE_IF_ENABLED([upnp], [
@@ -487,14 +494,14 @@ MULE_IF_ENABLED([upnp], [
 if test ${enable_nls:-yes} = yes; then
 AS_IF([test x$USE_NLS = xno],
 	[libintl_found="Not detected"],
-	[AS_IF([test x$USE_INCLUDED_LIBINTL = xyes], 
-		[libintl_found="included"], 
+	[AS_IF([test x$USE_INCLUDED_LIBINTL = xyes],
+		[libintl_found="included"],
 		[libintl_found="system"])])
 echo "                             libintl               $libintl_found"
 fi
 MULE_IF_ENABLED([geoip],
 	[AS_IF([test -z "${with_geoip_headers:-}${with_geoip_lib:-}"], [geoip_style=system], [geoip_style=user])
-	MULE_IF_ENABLED_ANY([monolithic, amule-gui], 
+	MULE_IF_ENABLED_ANY([monolithic, amule-gui],
 		[echo "                             libGeoIP              ${geoip_style}"])])
 MULE_IF_ENABLED([webserver],
 	[echo "                             libpng                ${LIBPNG_VERSION:-Not detected}"])
diff --git a/docs/ABOUT-NLS b/docs/ABOUT-NLS
index d528f9c..da57f45 100644
--- a/docs/ABOUT-NLS
+++ b/docs/ABOUT-NLS
@@ -249,7 +249,7 @@ translation percentage of at least 50%.
                      +----------------------------------------+
                        be bg ca cs da de el en eo es et fi fr
                         0  2 19 10 30 44  9  1 12 44 17  6 53
-     
+
                        gl he hr hu id it ja ko lv nb nl nn
                      +-------------------------------------+
      a2ps            |                ()    ()       []    |
@@ -323,7 +323,7 @@ translation percentage of at least 50%.
                      +-------------------------------------+
                        gl he hr hu id it ja ko lv nb nl nn
                        23  9 12 19 16 13 26  9  1  7 19  3
-     
+
                        no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW
                      +----------------------------------------------+
      a2ps            | () () ()  []   []    [] [] []                | 10
diff --git a/docs/Changelog b/docs/Changelog
index a3ed8f2..70e1765 100644
--- a/docs/Changelog
+++ b/docs/Changelog
@@ -2,6 +2,38 @@ Version 2.4.0 - The river knows.
 ----------
 201?-??-??
 
+	Dan64:
+		* Read AICH root hashes binary eMuleCollection files
+
+	gnazio:
+		* Fixed configure of libpng when sh != bash
+
+	GonoszTopi:
+		* Allow any kind of file links in collections
+
+	iz0bbz:
+		* Fix WinSock library version detection with MinGW-w64
+		* Fix compilation with MinGW-w64
+
+	Mr Hyde:
+		* Fix  "Disable computer's timed standby mode" for MacOS 10.9 Mavericks
+
+	Stu Redman:
+		* Display hashing progress in progress bars
+		* Assertion from background thread now prints a message and not just closes the app
+		* Backtrace (crash or assertion) is written to logfile
+		* Fix: disabling protocol obfuscation broke Kad and triggered assertions
+		* Fixed "Prompt on exit" preference
+		* Fixed country flags for Turkish localization
+		* Fixed loading of zipped IP filter (#1674)
+		* Fixed showing of shared files to other clients
+		* Fixed assertions in CFormat("%p") on 64 bit OS with wx 2.9
+		* Boost Asio can now be used as networking layer instead of wxWidgets
+		* Fixed memory leak when AICH hashing already known files
+		* New download links for server list and nodes.dat (with gav616 and xosevp)
+		* Projects for Visual Studio 2013 (which is now the preferred Win32 compiler)
+		* Fixed build with wx 3.0 (including STL build)
+
 --------------------------------------------------------------------------------
 
 Version 2.3.1 - The "unobvious evil date" version.
@@ -119,7 +151,7 @@ Version 2.3.1 - The "unobvious evil date" version.
 		* Fixed "out of memory" crashes caused by wxWidgets - so wxWidgets 2.8.12 is required now!
 		* Show warning dialog if "Change language" is selected and no languages are installed
 		* Added backtrace support for MacOSX
-		* Add locale support in the mac bundle with updated scripts 
+		* Add locale support in the mac bundle with updated scripts
 		  (translations are now supported on MacOSX builds)
 
 	lfroen:
@@ -159,9 +191,9 @@ Version 2.3.1 - The "unobvious evil date" version.
 		* Show log messages in remote gui
 		* More info in the Kad tab
 		* Improved gaplist performance
-		* Ported chat captchas (receive and send) 
+		* Ported chat captchas (receive and send)
 		  and "Advanced Chat Spam Filter" from eMule
-		* Allow download of multiple search results if search list 
+		* Allow download of multiple search results if search list
 		  is sorted by status (thanks to DarkNRG)
 		* Fixed CFile::SetLength for large files
 		* Reduce file handle usage by closing part files after idle time
@@ -458,7 +490,7 @@ Version 2.2.3 - The "Late Christmas present" version.
 		* Fix available fileparts display for large files
 		* Don't open server UDP socked if ED2K is disabled
 		* Reordered preferences, disabled ED2K/UPnP prefs if ED2K/UPnP is disabled
-		* MSVC: solution for MSVC 2008 Express edition, 
+		* MSVC: solution for MSVC 2008 Express edition,
 		  project for ed2k and fileview
 		* Fix wrong file download rates in transfer window
 		* Windows: fix broken core timer, use precise tickcount
@@ -572,7 +604,7 @@ Version 2.2.2 - The "Similarity." version.
 		* Fixed crash when progress bar was resized to zero width
 		* Fixed sharing of large files on Windows
 		* Fixed free disc space check
-		* Sanity check before writing nodes.dat - don't write it 
+		* Sanity check before writing nodes.dat - don't write it
 		  if there are less than 25 contacts
 		* Download List sorted on startup
 		* Splitter bar position in transfer window is restored again
@@ -666,7 +698,7 @@ Version 2.2.1 - The "Excuse me, have you seen my 2.2.0 release anywhere?" versio
 		* Improve debug output
 		* Don't add clients when shutting down
 		* Added a simple (ascii) text file reader class
-		* Sed denoiser - removes excessive messages from compilation - 
+		* Sed denoiser - removes excessive messages from compilation -
 		  Thanks to Vollstrecker for the idea and discussions.
 		* Drop path component from logged file names.
 		* Fix for perl v5.8.8
@@ -868,7 +900,7 @@ Version 2.2.1 - The "Excuse me, have you seen my 2.2.0 release anywhere?" versio
 		* filtered off comments still affect rating
 
 	MalaPraxis:
-		* Fixed some cases where the full IP of a new client would be shown 
+		* Fixed some cases where the full IP of a new client would be shown
 		  incorrectly.
 		* Added a "System Default" option to browser selection that uses
 		  wxWidget's capabilities.
@@ -1186,7 +1218,7 @@ Version 2.2.1 - The "Excuse me, have you seen my 2.2.0 release anywhere?" versio
 
 	Xaignar:
 		* Renaming the SearchList typedef to CSearchResultList
-		* Splitting CSearchFile out from SearchList.* to SearchFile.*. 
+		* Splitting CSearchFile out from SearchList.* to SearchFile.*.
 		* fix initialization of member variables in CSearchFile when
 		  creating on remote gui.
 		* Call GetLength safely when sharing files
@@ -1217,7 +1249,7 @@ Version 2.2.1 - The "Excuse me, have you seen my 2.2.0 release anywhere?" versio
 		* Add locking to the ED2KLinks file
 		* Removed multiple macros for array size
 		* Removed the CMD4Hash from wxString constructor
-		* Add swap function to CRangeMap 
+		* Add swap function to CRangeMap
 		* Reworking of the notify-code
 		* Optimized and simplified adding of shared files to the listctrl
 		* Remove partially copied files when a UTF8_CopyFile fails.
@@ -1348,9 +1380,9 @@ Version 2.2.1 - The "Excuse me, have you seen my 2.2.0 release anywhere?" versio
 		  were the user-specified directories are inaccessible.
 		* Changed temp/incomming dir variables to "CPath"s, using the
 		  previously added Cfg_Path class.
-		* Fixed spurious warnings caused by not checking if certain 
+		* Fixed spurious warnings caused by not checking if certain
 		  preference files existed before trying to read them. Also
-		  removed an unnessesary warning for when known.met doesn't 
+		  removed an unnessesary warning for when known.met doesn't
 		  exist.
 		* Added wrapper-class for wxThread, to allow us to safely
 		  terminate joinable threads without using Delete, a function
@@ -1413,7 +1445,7 @@ Version 2.2.1 - The "Excuse me, have you seen my 2.2.0 release anywhere?" versio
 		* Added the ability to update the nodes.dat file, and
 		  bootstrap from specific IPs,  when using the remote GUI.
 		* Added saving/loading of the previous URLs for the server.met
-		  and the nodes.dat files, when using the remote GUI. 
+		  and the nodes.dat files, when using the remote GUI.
 		* Allow for the creation of ED2k-links on the remote gui.
 		  This resolves bug #893, #567 and #584.
 		* Fixed link-creation for kad-only clients.
@@ -1482,22 +1514,22 @@ Version 2.1.2 - The "We're on fire!" version
 		* Fixed compilation in release mode.
 
 	Kry:
-		* Fixed initialization of Partfile, Server and Knownfile objects 
-		  on remote GUI. 
-		  This fixes a good bunch of bugs, including but not limited to: 
+		* Fixed initialization of Partfile, Server and Knownfile objects
+		  on remote GUI.
+		  This fixes a good bunch of bugs, including but not limited to:
 			* 0000741: the total speed possible is incorrect.
 			* 0000774: Amulegui show comments ->segmentation fault.
 			* 0000605: Incorrect ICH statistics data
 			* 0000812: amulegui: wrong ed2k ports in server list
 			* 0000776: amulegui segfaults
-		* Fixed potentionally huge memory leak on EC. This is the main focus 
+		* Fixed potentionally huge memory leak on EC. This is the main focus
 		  of this release, but that didn't stop us from adding more stuff ;)
-		* Fixed "0000809: Amulegui: Changing toolbar orientation shows the 
+		* Fixed "0000809: Amulegui: Changing toolbar orientation shows the
 		  Import button."
-		* Reworked core/GUI comment handling to allow for future display of 
-		  comments on remote GUI, and meanwhile, added an nice message to 
+		* Reworked core/GUI comment handling to allow for future display of
+		  comments on remote GUI, and meanwhile, added an nice message to
 		  notify it's disabled.
-		* Fixed "0000738: Set search type to KAD if only KAD is selected as 
+		* Fixed "0000738: Set search type to KAD if only KAD is selected as
 		  usable networks in settings"
 		* Fixed amule.conf not being saves on remote preferences change.
 		* Fixed ping time on servers, down to msecs resolution now.
@@ -1583,17 +1615,17 @@ Version 2.1.1 - The "There can be only two! Point one! Point one!" version
 		  completes quickly.  Thanks to s0undt3ch for reporting this bug.
 
 	Kry:
-		* Fixed a bug on sending sources where sources won't be send to a client 
+		* Fixed a bug on sending sources where sources won't be send to a client
 		  uploading from us if he uses multipacket.
 		* Fixes some crashes, on systray dying, tho not all till wx is patched.
-		* Fixed some possible problem with userhash generation, that could lead 
+		* Fixed some possible problem with userhash generation, that could lead
 		  a void userhash.
-		* Fixed defs.h include on MuleDebug.h causing compilation problems on 
+		* Fixed defs.h include on MuleDebug.h causing compilation problems on
 		  some systems (must be first wx include).
 		* Fixed search type "Any"
 		* Fixed translation of empty strings, which is reserved to gettext and
 		  must never be used.
-		* Fixed the aMule.app container lacking a Frameworks/ folder and thus 
+		* Fixed the aMule.app container lacking a Frameworks/ folder and thus
 		  making the generate_package script fail.
 		* Fixed compilation of wxCas with wxWidgets CVS (2.7.x)
 		* Fixed ED2K id wrongly used on kad-only setups.
@@ -1603,7 +1635,7 @@ Version 2.1.1 - The "There can be only two! Point one! Point one!" version
 		* Removed Razorback 2's stats while it's gone.
 		* Disabled vertical toolbar on Windows while wxWidgets doesn't fix it.
 		* Fixed aMule failing to find configuration folder and any folder that
-		  finishes with a "\" on windows. This leaded to shared folders not being 
+		  finishes with a "\" on windows. This leaded to shared folders not being
 		  shared, too.
 		* Fixed drives on windows not being correctly tested.
 		* Changed default server.met
@@ -1633,7 +1665,7 @@ Version 2.1.1 - The "There can be only two! Point one! Point one!" version
 		* Fixed bug where clients would be removed from the list of Kademlia
 		  clients if the hash, ID or IP changed. This should only happen when
 		  the client is deleted.
-		* Fixed various problems with logging during startup, including a 
+		* Fixed various problems with logging during startup, including a
 		  crash in amuled if an alert was to be displayed.
 		* Fixed the HTTPDownload dialog by using events rather than relying
 		  on being able to pause the main loop when sending notifications.
@@ -1647,7 +1679,7 @@ Version 2.1.1 - The "There can be only two! Point one! Point one!" version
 		* Added locking to the ed2k utility, to prevent races when many links
 		  added at once.
 		* Changed the way CFile retrieves the file-length, which was causing
-		  problems with files shared from a remote drive. 
+		  problems with files shared from a remote drive.
 		* Fixed problems with representing 64b values on windows, caused by
 		  imcompatible extensions to printf. Thanks to Radek.
 		* Improved error messages on startup, when a folder is found to have
@@ -1688,7 +1720,7 @@ Version 2.1.1 - The "There can be only two! Point one! Point one!" version
 		  server.met file containing dead severs was loaded.
 
 	Special Thanks To:
-		* All the translaters who did such a great and fast job.	
+		* All the translaters who did such a great and fast job.
 
 --------------------------------------------------------------------------------
 
@@ -1706,7 +1738,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 
 	Gerd78:
 		* Fix linkage with static wx libraries.
-		* Fix aMule.spec files 
+		* Fix aMule.spec files
 		* Fix amule.desktop file
 
 	GonoszTopi:
@@ -1801,7 +1833,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Proper shutdown of Kad on exit.
 		* Kad firewalled sources are now contacted properly.
 		* Fixed a crash on search manager, caused by erase invalidating an iterator.
-		* Proper arrows for ed2k/kad state, using alpha drawing. This means that 
+		* Proper arrows for ed2k/kad state, using alpha drawing. This means that
 		   the little arrows on world globe on status bar are now separate: the lower
 		   one is for ed2k and the higher one for Kad.
 		* Fixed another wrong usage of stl classes and some cleaning on clientlist.
@@ -1817,7 +1849,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Fixed text-mode apps password ask on windows.
 		* Fixed preferences close to do a cancel event.
 		* Added EC debug messages on connection failures.
-		* Fixed memset usage on abstract types, causing crashes on some 
+		* Fixed memset usage on abstract types, causing crashes on some
 		   configurations.
 		* Only use date and not hour from CVSDATE.
 		* Fixed MULENOTEBOOK events
@@ -1849,7 +1881,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Fixed clicking "No" on shutdown confirmation... doing a shutdown.
 		* Adding a link over EC now gets proper feedback on duplicates.
 		* Added YASO (Yet Another Shareaza Opcode).
-		* Allow binding EC and ed2k/kad sockets to an specific address. 
+		* Allow binding EC and ed2k/kad sockets to an specific address.
 		   Use Address= and ECAddress= on [eMule] section of the amule.conf file.
 		* Warn for outdated version on daemon, too.
 		* Added Kademlia network to aMule daemon.
@@ -1861,19 +1893,19 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Fixed a memleak on global search packet.
 		* Fixed Kad crash based on wrong STL iterator usage.
 		* Compilation fixes for SafeFile classes.
-		* Chat icon on toolbar now blinks red/blue on new message till we press 
+		* Chat icon on toolbar now blinks red/blue on new message till we press
 		   the button to check the message.
-		* Make compressed HTTP files be decompressed transparently after download. 
+		* Make compressed HTTP files be decompressed transparently after download.
 		   Allows for server.met.gz and similar downloads.
 		* Fixed the statusbar taking too much space.
 		* Default server.met uses gruk.org now, to avoid fake servers.
-		* Reverted phoenix false fix for my kad iterator fix and adding my fix which 
+		* Reverted phoenix false fix for my kad iterator fix and adding my fix which
 		   was before his fix. Try to say that drunk.
 		* Several cosmetic minor changes to GUI.
 		* Fixes on wxHTTP crashes caused by heap creation of sockets class.
 		* Moved ECAddr to ExternalConnect section and made GUI for selecting the ip.
 		* Fixed korean translation compilation failure.
-		* Several 2.4 compilation fixes, which turned out to be not used because we 
+		* Several 2.4 compilation fixes, which turned out to be not used because we
 		  now require wxWidgets 2.6.0 at least.
 		* Fix NetBSD compilation (fwprintf not implemented on NetBSD).
 		* Fixed some unneeded ansi strings conversion to wide chars.
@@ -1882,16 +1914,16 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Debug output and crash fix for HTTP streams on download.
 		* Fixes on keyword hashing on Kademlia.
 		* Fixed Kad tag names using ansi chars instead of unicode names,
-		   which will be sent as ansi anyway but CTag creation is based on 
+		   which will be sent as ansi anyway but CTag creation is based on
 		   wxStrings, so using a char* uses the int constructor.
 		* Removed the CTagNameString, using wxString everywhere.
-		* Fix for GUI systray option being enabled when systray compilation 
+		* Fix for GUI systray option being enabled when systray compilation
 		   is disabled.
 		* Server ed2k link (and any link) must be '/' terminated, fixed on
 		   generation.
 		* Debug output on EC protocol version mismatch.
 		* Changed servers toolbar button to networks. Now this has two tabs,
-		   one for ed2k and one for Kad. 
+		   one for ed2k and one for Kad.
 		* Created Kad GUI from scratch.
 		* OP_REASKCALLBACKUDP implementation for Kad lowid
 		* 64bits archs fix on webserver image generation.
@@ -1919,25 +1951,25 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Fixed toolbar orientation change not showing proper connection state.
 		* Fixing ED2K link handler colliding with status bar.
 		* Added 7z to types.
-		* Mantain a list of already-known mods to avoid "Compatible client found" 
+		* Mantain a list of already-known mods to avoid "Compatible client found"
 		   messages spamming the console.
-		* Revamping of UpDownClient interface. Proper private vars and public 
+		* Revamping of UpDownClient interface. Proper private vars and public
 		  accessors, merged the public/private sections, and decoupled credits classes.
-		* Fixed possible crashes on dereferencing NULL pointer, specially on EC 
+		* Fixed possible crashes on dereferencing NULL pointer, specially on EC
 		   tag creation on UpDownClients.
 		* Separated CClientCredits and CClientCreditsList to diferent files:
 		   the later is not needed on remote GUI while the former is.
 		* Moved some functions for ID check to theApp, to remove the
 		   includes needed on each file, cutting down compilation time.
 		* CClientCredits is not more a friend class of CClientCreditsList.
-		* Split CClientReqSocket from ListenSocket.*, and renamed to 
+		* Split CClientReqSocket from ListenSocket.*, and renamed to
 		   CClienTCPSocket to keep coherence with CClientUDPSocket.
-		* Removed event handler local vars on server and client sockets, and moved 
+		* Removed event handler local vars on server and client sockets, and moved
 		   the classes out of the .h, because those are no needed anywhere else.
 		* Removed the possibility of bootstrapping Kad from a host.
 		* Fixed the stale unknown clients caused by unanswered kad-buddy requests.
 		   The new KADEMLIABUDDYTIMEOUT is 10 minutes. More than enough.
-		* Connect/Disconnect button works properly now. Disconnection happens on any 
+		* Connect/Disconnect button works properly now. Disconnection happens on any
 		   network connected, and connection on the selected networks on preferences.
 		* Added a Disconnect button for ED2K too.
 		* Fixed possible crash on startup.
@@ -1949,21 +1981,21 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 			   - libmuleappcommon.a -> Common to all aMule derived apps
 			   - libmuleappcore.a -> Common to amuled/amule
 			   - libmuleappgui.a -> Common to amulegui/amule
-		   - Also changed some files to increase the amount of 
-		     binary compatible files. Would be great to increase 
+		   - Also changed some files to increase the amount of
+		     binary compatible files. Would be great to increase
 			 this number, but sadly theApp. access is not binary
 			 compatible (different base classes).
 		   - Created two amule-independant libs:
 			   - libcommon.a -> Common to all apps
 			   - libecc.a -> Common to all EC apps
 			 Those are now on libs/ folder.
-		* More changes to build and libs. libeccommon now includes ECSocket, 
+		* More changes to build and libs. libeccommon now includes ECSocket,
 		   and CRemoteConnection is used to connect to a remote core.
 		* Make libec independant from libmulecommon
 		* Call realize to fix toolbar on Mac.
 		* Open wiki on F1 for help :)
 		* Stats have a 64bits, not 32bits, uptime number.
-		* No more EC extra needed for having a remote app, yay. Just link to 
+		* No more EC extra needed for having a remote app, yay. Just link to
 		   libec.a and use the CRemoteConnector->ConenctToCore and stuff. This
 		   will be expanded for a proper EC API.
 		* Did some EC API examples so someone can expand it.
@@ -1982,7 +2014,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Fixed flex usage when --header-file is not available.
 		* Proper POTFILES.in
 		* Fixed systray's Connect/Disconenct to include Kad.
-		* Fixed a huge bug that was sending TOO MUCH packets (UDP) to 
+		* Fixed a huge bug that was sending TOO MUCH packets (UDP) to
 		   servers. This alone is a reason for a release. Fixes the server list flicker, too.
 		* Kad status fixed for remote apps, and included "running" status.
 		* Kad info is shown on Kad tab on remote GUI.
@@ -1998,7 +2030,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		   Now, if you request a change on preferences that requires restart, like
 		   ports, incoming/temp folders, and others, aMule will warn you on "OK".
 		* Don't connect to ed2k on server double click if the network is disabled
-		* More warnings: Kad without UDP port, and Kad conenct while disabled on 
+		* More warnings: Kad without UDP port, and Kad conenct while disabled on
 		   preferences now raise a log warning message.
 		* Dynamic set of GUI options to avoid visiting prefs multiple times.
 		* Warn if UDP disabled and Kad enabled on preferences.
@@ -2031,12 +2063,12 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Fixed crash on search
 		* Removed the sending of "Any" type to server - is the default.
 		* Fix search types and return values on ed2k/kad search.
-		* Fixed a wrong Kad packet being created on a race condition caused by the 
+		* Fixed a wrong Kad packet being created on a race condition caused by the
 		   removal of a file from shares that will just get published. To be added on eMule, too.
 		* Fixed Open File command on categories.
 		* Fixed detail level on EC tags failing silently on lower values.
 		* Fixed crash on remote gui if not config folder not existant.
-		* Created, fixed, killed the --enable-kad-compile switch to enable 
+		* Created, fixed, killed the --enable-kad-compile switch to enable
 		   non-kad compilations during test phase. Now is always compiled.
 		* Removed platform specific getlocalhost usage.
 		* Fixed ntohl usage on gap list saving.
@@ -2048,7 +2080,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Fixed Kad gui search return messages.
 		* Safety code on shared files' RotateReferences.
 		* Fixed endiannes on CUInt128::setValueBE / CUInt128::toByteArray
-		* Fixed ENDIAN_SWAP_**(x) definitions to use the proper 
+		* Fixed ENDIAN_SWAP_**(x) definitions to use the proper
 		   wxUINT**_SWAP_ON_BE/ON_LE/ALWAYS macros.
 		* Publishing of keywords (shared files) works now on Kad.
 		* Implemented Kad GUI.
@@ -2066,11 +2098,11 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Fixed UDP socket heap vs stack problems.
 		* Proper check for libgd (Sorry!).
 		* Showing Kad state on conection for fast reference.
-		* Added some code to catch unhandled exceptions on kad 
+		* Added some code to catch unhandled exceptions on kad
 		  and report them, so we know what's going on.
 		* Fix for crash/assert on wrong permisions on cryptkey.dat.
 		* Fixes for daemon compilation on OnRun usage.
-		* Fixed a Crash on Kad caused by packet constructor 
+		* Fixed a Crash on Kad caused by packet constructor
 		  deataching the data, causing a double-delete.
 		* Safety code for uncatched exceptions.
 		* Some changes to packet processing.
@@ -2087,15 +2119,15 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 			0000514: Not all common file types recognized as Audio
 			0000516: crash after repeated search
 			0000646: right click on transfer files randomly disabled
-			0000659: disconnect button might not disconnect kad and block it's function			
+			0000659: disconnect button might not disconnect kad and block it's function
 			0000661: windows consistency
 			0000662: amulecmd crashes on invalid pause command
 			0000671: open file on double-click
 			0000691: connect/disconnect button is still broken
 			0000704: servers connection cancel button
-			0000715: prefs -> general -> "downloadlist dblclick to expand" option is 
+			0000715: prefs -> general -> "downloadlist dblclick to expand" option is
 			                broken or something
-			0000716: prefs -> seeds save, wrong text			
+			0000716: prefs -> seeds save, wrong text
 			0000718: more systray ignoring kad
 			0000719: searches -> extended -> min size vs max size
 			0000730: statistics connections graph Range requires restart
@@ -2103,7 +2135,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 			0000732: more brackets related bugs
 			0000733: download button activated when search fails
 			0000734: non-restored icon in Directories -> share
-			
+
 	lfroen:
 		* PHP engine implementation for amuleweb
 		* Porting web templates to PHP script
@@ -2139,8 +2171,8 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Patches to compile on a NSLU2 (ARM).
 
 	RazZziel:
-		* Changes on parent ownership on windows. Partially fixes 
-		   0000690: List of windows that can be overlapped by main 
+		* Changes on parent ownership on windows. Partially fixes
+		   0000690: List of windows that can be overlapped by main
 		                   window and leave aMule apparently freezed
 
 	schtroumpf:
@@ -2293,7 +2325,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Properly set filtering on newly added search-results.
 		* Fixed broken sanity check in AddDownload
 		* Bug #688. Made the popup menu on the searchlistctrl similar to those
-		  on the downloadlistctrl and sharedfileslist. 
+		  on the downloadlistctrl and sharedfileslist.
 		* Added serveral missing exception-handlers.
 		* Ensured that the internal libs are only built when needed.
 		* Fixed ed2k-links causing duplicate entries on the download-queue and
@@ -2306,7 +2338,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Fixed a leak in the UDP sockets which occurs when packets are sent
 		  via a dead or closed socket object.
 		* GetInstallPrefix is broken on wxWidgets 2.6.2, so only use it when
-		  building autopackages (since we can patch the sources). 
+		  building autopackages (since we can patch the sources).
 		* Improved logging in case of clients requesting invalid file-data.
 		* Cleaned up autoconfigure files a bit.
 		* Added sanity checks to the downloadqueue's AddDownload function to
@@ -2330,24 +2362,24 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  by the upgrades to the listctrl code.
 		* Made one-shot CTimers interruptable and fixes a memleak in the Start
 		  functions caused by not freeing old threads.
-		* Upgraded our included listctrl with the bugfixes from v2.6.1 
+		* Upgraded our included listctrl with the bugfixes from v2.6.1
 		  and v2.6.2 of wxWidgets.
 		* Fixed a couple of AICH log messages that were mixing unicoded
 		  strings and non-unicoded strings.
 		* Made middle-clicking on the client-list work in the same way as
 		  middleclicking on the downloadqueue, and cleaned up click-
 		  handling in general.
-		* Fixes the overhead-handling code in CTimer which wouldn't 
-		  check if overhead was larger than the period, resulting in 
+		* Fixes the overhead-handling code in CTimer which wouldn't
+		  check if overhead was larger than the period, resulting in
 		  calls to Sleep with an underflown value. Also fixed events
 		  possibly being lost due to overhead.
 		* Fixes crashes due to uncaught read-past-EOF exceptions when a
-		  cliented requested a block from a file past the end of the 
+		  cliented requested a block from a file past the end of the
 		  actual file-length.
 		* If aMuled is run and ECs are enabled and no password is set,
 		  dont reset the EC setting, but rather display instructions
 		  that specify what to do before terminating.
-		* Added warning which will be displayed if aMule is run as 
+		* Added warning which will be displayed if aMule is run as
 		  root, which is adviced against for obvious reasons.
 		* Removed the --disable-systray configure option, since extra
 		  libraries are not required now. To disable the systray now,
@@ -2357,10 +2389,10 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  complaining, and the v2.6.x branch has been out for long enough
 		  to make usage of the v2.5.x branch nonsensical.
 		* Added workarounds for the wxWidgets memleak when using GTK2 on
-		  versions of wxWidgets < 2.6.2 to the remaining places where this 
+		  versions of wxWidgets < 2.6.2 to the remaining places where this
 		  would occur.
 		* Changed failure on file-seeking into a catchable exception,
-		  rather than a runtime error. 
+		  rather than a runtime error.
 		* Fixed a crash on shutdown caused by the listensocket now being
 		  closed which caused a call to Accept to return NULL.
 		* Fixed compilation with GCC-4.1 (snapshot).
@@ -2372,7 +2404,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  easier to keep track of what files are commented/rated.
 		* Fixed all warnings reported by -Wshadow and -Wundef.
 		* Added the compiler-flags -Wshadow and -Wundef, and changed
-		  configuration such that warnings are enabled for both debug and 
+		  configuration such that warnings are enabled for both debug and
 		  non-debug builds.
 		* Largly reworked the CTimer class:
 			* Fixed all timers sending events with the same ID.
@@ -2419,7 +2451,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  is unable to upload at the specified rate. This would happen for
 		  instance if the limit is set to a value higher than the physical
 		  connection limit. This fixes bug #606.
-		* Re-added the node count above the kad-graph, and a few other changes. 
+		* Re-added the node count above the kad-graph, and a few other changes.
 		* Removing unused color-setting, which was causing problems with the
 		  kad-graph. For this change to take effect, you will have to remove
 		  your StatColor* entrires from amule.conf.
@@ -2430,10 +2462,10 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Allow previewing of audio-files, fixing bug #654.
 		* Reworked the ED2KLink class:
 			* Simplified parsing a lot.
- 			* Moved the task of handling sources specified in file-links
+			* Moved the task of handling sources specified in file-links
 			  almost entirely to the download queue.
 			* Improved error checking.
- 			* Implemented handling (not just parsing) of part-hashes and
+			* Implemented handling (not just parsing) of part-hashes and
 			  master-hashes specified via file-links.
 			* Fixed support for multiple sources in a file link, which fixes
 			  bug #506
@@ -2469,7 +2501,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Added sanity checks to CStatisticsDlg's getColors function.
 		* Changed some CList instances to stl containers.
 		* Fixed bug in CKnownFile where auto-priorities would be updated
-		  before the source had been added to the list. 
+		  before the source had been added to the list.
 		* Improved testing of CRangeMap's iterator classes.
 		* Final changes to CFile, CMemFile and CFileDataIO:
 			* Documentation of the classes and functions completed.
@@ -2483,7 +2515,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Dont store the results of unittest that didn't fail when executed,
 		  since we ignore successes anyway. This causes a great speedup on
 		  some tests, where a large number of checks are made.
-		* Set the update frequency for the statistics, fixing bug #637. 
+		* Set the update frequency for the statistics, fixing bug #637.
 		* Strip 's from paths set via amule-config-file, resolving bug #638.
 		* Reworked the TTS implementation, so that control-sequences are
 		  passed to the widget, improved walking through the list by
@@ -2505,7 +2537,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  wrong parameter type for the second argument.
 		* Changed MuleUnit to output results as soon as possible.
 		* Added generic CMuleUDPSocket class, which unifies common tasks such
-		  sending, receiving, error-handling and interfacing with the 
+		  sending, receiving, error-handling and interfacing with the
 		  UploadBandwidthThrottler. I also included a recovery mechanism
 		  for when a socket becomes invalid, which fixes bug #489.
 		* Fixed crashes when kad is enabled but the ClientUDP-socket is not.
@@ -2532,7 +2564,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  support for icons on wxListCtrls. This saves us from having to
 		  manually draw everything and fixes the crash on using TTS.
 		* Fixed a bug in the ObservableQueue class, which would cause UDP
-		  requests to servers to be done only once, whereafter no further 
+		  requests to servers to be done only once, whereafter no further
 		  requests would be made. This was the source of the problem with
 		  aMule not finding sources for newly added files.
 		* Fixed a race-condition in aMule when shutting down while a global
@@ -2567,7 +2599,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  case-insensitive.
 		* Fixed some more warnings.
 		* Fixed compilation problems with external CryptoPP sources, caused by
-		  a preprocessor define which clashed with a variable name. 
+		  a preprocessor define which clashed with a variable name.
 		* Changed the length parameters of the read-funtions in the CFileDataIO
 		  interface to be unsigned, since signed lengths doesn't
 		  make any sense in this regard and makes error-checking harder.
@@ -2583,9 +2615,9 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  while.
 		* Moved adding of sources read from seeds files out of the
 		  exception-handler, to avoid the obscuring of possible bugs elsewhere.
-		* Final touches made on the CMemFile class, which includes cleanups, 
+		* Final touches made on the CMemFile class, which includes cleanups,
 		  improved error-checking and complete documentation.
-		* Added missing destructor to CUInt128, which was causing compilation 
+		* Added missing destructor to CUInt128, which was causing compilation
 		  failure for some GCC-4 users.
 		* Fixed an attempt to fprintf a wide-char string.
 		* Enabled the use of kad with wxWidget versions 2.5.x.
@@ -2647,10 +2679,10 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  deleted (in some cases) and moved the call to the CUpDownClient
 		  destructor.
 		* Made CTag and CPacket unassignable.
-		* Renamed ReadHash16 and WriteHash16 functions of CFileDataIO, and 
+		* Renamed ReadHash16 and WriteHash16 functions of CFileDataIO, and
 		  changed them to return instances and take const references of
 		  CMD4Hashes, rather deal with char*. A few other places were
-		  similary changed.		  
+		  similary changed.
 		* Dropped the static Exists function from CFile, as it is simpler to
 		  just call wxFileExists directly.
 		* Removed the ability to attach/deattach file-destriptors to a CFile.
@@ -2826,7 +2858,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 			  loading normal files.
 			* Moved loading of the ipfilter.dat files, so that it done after
 			  the GUI has been loaded.
-		* Removed the unused ExternalConnClientThread class. 
+		* Removed the unused ExternalConnClientThread class.
 		* Merged two copies of the validateURI function in StringFunctions.*
 		  and fixed a mem-leak.
 		* Simplified the Update() function in the ipfilter-class, removing the
@@ -2873,7 +2905,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		* Added unittests for the CRangeMap class and fixed the errors that
 		  cropped up while writing said tests:
 			* The assignment operator didn't return *this.
-			* The equality operator was broken. 
+			* The equality operator was broken.
 			* The erase function was broken.
 		  Also changes ASSERTS to MULE_VALIDATE_PARAMS to enable testing and
 		  ensure that the controlflow stays the same for debug and non-debug
@@ -2901,7 +2933,7 @@ Note: This version is dedicated to our great tester Citroklar, for reasons he kn
 		  ensure that upload-limits are more closely followed.
 
 	Special Thanks To:
-		* All the translaters who did such a great and fast job.	
+		* All the translaters who did such a great and fast job.
 
 --------------------------------------------------------------------------------
 
@@ -2923,7 +2955,7 @@ Version 2.0.3 - The "Hell 2.0.3: Now with improved daemons!" version.
 		* Added a warning on gd-lib not found (progressbar not shown on amuleweb).
 
 	lfroen:
-		* New daemon socket code, event based. Improved reliability and 
+		* New daemon socket code, event based. Improved reliability and
 		  speed problems fixed.
 
 	volpol:
@@ -2936,9 +2968,9 @@ Version 2.0.3 - The "Hell 2.0.3: Now with improved daemons!" version.
 
 	Special Thanks To:
 
-		* All the usual people. 
-		  You don't know who they are? Just check previous changelogs 
-		  (just not the previous one, ok?) :P 
+		* All the usual people.
+		  You don't know who they are? Just check previous changelogs
+		  (just not the previous one, ok?) :P
 
 --------------------------------------------------------------------------------
 
@@ -2986,13 +3018,13 @@ Version 2.0.2 - The " [Your Ad Here] " version.
 			Ateo
 			BeFalou
 			MrFaber
-			xushi		
-			
-		* All the usual people. You don't know who they are? Just check 
+			xushi
+
+		* All the usual people. You don't know who they are? Just check
 		   previous changelogs :P
-		  
+
 --------------------------------------------------------------------------------
-												
+
 Version 2.0.1 - The " Woops, HotFix " version.
 ----------
 2005-05-18
@@ -3011,13 +3043,13 @@ Version 2.0.1 - The " Woops, HotFix " version.
 		* Updated xal.pl (some fixes).
 
 	Phoenix:
-		* Added DNS resolving functionality to amulecmd's connect command. 
-		  This is usefull for dynamic IP servers. 
+		* Added DNS resolving functionality to amulecmd's connect command.
+		  This is usefull for dynamic IP servers.
 		  Now you can use the server's name instead of the server's IP address.
 		* Fixed a bug in http proxy authentication code.
 
 	Special Thanks To:
-		
+
 		* Contributors:
 		  eylzo
 
@@ -3025,12 +3057,12 @@ Version 2.0.1 - The " Woops, HotFix " version.
 		  albatros_la
 		  Lucky_JL
 		  Mr Faber
-		  
+
 		* All the usual people (translators, debugers, people at #amule, etc)
 		  C'mon, this is a hotfix release, I can't add everyone again.
 
 --------------------------------------------------------------------------------
-		
+
 Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 ----------
 2005-05-01
@@ -3047,7 +3079,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* TCP and UDP port start now at 0 (remember - running amule as root is insecure!!)
 		* Added aMule version info into "About" popup.
 		* Show current DL speed from a client you are uploading to in "Remote
-		  Status" column instead of in the "Speed" column. 
+		  Status" column instead of in the "Speed" column.
 
 	geeko:
 		* Patch to complete html functionality of cas.
@@ -3129,7 +3161,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 
 	Hetfield:
 		* New popup menu and events management for new wx SysTray
-		* Speed Bar color (on the new wxTray) is setted in the statistics color selection 
+		* Speed Bar color (on the new wxTray) is setted in the statistics color selection
 		  (as old GTK tray!)
 		* Some configure checks and cleanup
 
@@ -3157,13 +3189,13 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Fixed lowid clients callback.
 		* Fixed duplicated floating point functions being called every second (CPU improvement).
 		* New file is added: tree.hh, credits to Kasper Peeters, <K.Peeters at damtp.cam.ac.uk>
-		   It's a stl-like tree and I really enjoyed coding with it. 
+		   It's a stl-like tree and I really enjoyed coding with it.
 		   More info on http://www.damtp.cam.ac.uk/user/kp229/tree/
 		* Fixed a crash on Proxy code created by bad string initialization causing mem corruption.
 		* Added wxProxyData::Empty() to properly clean aMule proxy data when needed.
 		* Fixed unitialized variables on MemFile.cpp and SafeFile.cpp that made valgrind scream in pain.
 		* Fixed the CUpDownClient::SendFileRequest crash you were all screaming about on rc8 :P
-		* Fixed SUI failures with kernels >= 2.6.10. This failures and asserts were created by the locking 
+		* Fixed SUI failures with kernels >= 2.6.10. This failures and asserts were created by the locking
 		  of /dev/urandom that was introduced on 2.6.10, and that made CryptoPP fail on creating a random
 		  pool for the SUI identification. This is more a workaround actually than a fix, but will work perfectly.
 		* Completed files now go to shared as the should.
@@ -3184,7 +3216,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Fixed the crash on non-std locales because of date/time functions.
 		* Get rid of more ugly unicode2char stuff by making the logfile a wxFFileOutputStream.
 		* General speedup of log file.
-		* Proper order of files on Makefile.am, much better to know compilation progress by first letter.		
+		* Proper order of files on Makefile.am, much better to know compilation progress by first letter.
 		* Moved at last all stats to where they belong: the new files Statistics.cpp and Statistics.h.
 		* Fixed assert on client list view caused by unknown client state.
 		* Hopefully avoid the never-deleted sockets (passive sources)
@@ -3199,7 +3231,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Files with utf8 chars can be completed now ;)
 		* Shared files with uciode names do show correctly now.
 		* Modification time for files is fixed to keep coherence (GetLastModificationTime usage).
-		* Filenames on known files list (known.met) are saved in utf8 too now, so correctly loaded 
+		* Filenames on known files list (known.met) are saved in utf8 too now, so correctly loaded
 		  and compared lately.
 		* Fixed unicode identification to clients and server.
 		* Use BOM header on the known.met, part.met and emfriends.met for unicode tags.
@@ -3223,14 +3255,14 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Don't remove the server because of failedcount if it's static.
 		* When the user tries to remove a static server, we prompt for confirmation.
 		* Files on non-ansi named folders are no longer rehashed on every restart.
-		* Don't discard UDP packets on wxSOCKET_WOULDBLOCK. This improves UDP socket 
+		* Don't discard UDP packets on wxSOCKET_WOULDBLOCK. This improves UDP socket
 		  reliability a lot. Remove the packet from queue if sent, keep it if it's not sent because of wouldblock,
 		  and drop it on any other error.
 		* Send previously queued UDP packets before we send a new UDP packet.
 		* Fixed aMule crashing on second global search under certain circunstances.
 		* Fixed the hanging on connecting to server.
 		* Fixed dynip servers to connect properly (happy portuguese users!).
-		* Moved: 
+		* Moved:
 			CMemFile.h		-> MemFile.h
 			filemem.cpp		-> MemFile.cpp
 			packets.cpp		-> Packet.cpp
@@ -3249,12 +3281,12 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 			opcodes.h			-> OPCodes.h
 			color.h			-> Color.h
 			endianfix.h		-> EndianFix.h
-		* Changed OP_GLOBFOUNDSORUCES  -> OP_GLOBFOUNDSOURCES  
+		* Changed OP_GLOBFOUNDSORUCES  -> OP_GLOBFOUNDSOURCES
 		* Unicode fixes for "Gtk-CRITICAL **" errors on shell.
 		* Unicode fixes preventing compilation for Packet sources.
 		* Unicode fixes for StrToULong usage over atoi.
 		* Fixed eMule+ version string.
-		* Implemented lugdunums new extension of GETSOURCES, includes SIZE (uint32) 
+		* Implemented lugdunums new extension of GETSOURCES, includes SIZE (uint32)
 		  to avoid problems created by anti-p2p companies
 		* Removed MetaTags extraction code, we're not going to use it anyway.
 		* Fixing some crashes on wrong string handling.
@@ -3267,16 +3299,16 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Added a fallback for wrong TCP packets handling to avoid server disconnect.
 		* Proper memory overruns checks on SafeFiles.
 		* Fixed the partfiles being the only thing shared under certain circunstances.
-		* Fixed bug #193: False display with empty share list		
+		* Fixed bug #193: False display with empty share list
 		* Fixed bug #258: "Max port-value allowed is too high due to secondary port"
-		* Fixed bug #276: aMule crached when tried to start. (It says "crached on the original report)	
+		* Fixed bug #276: aMule crached when tried to start. (It says "crached on the original report)
 		* Fixed bug #299: "Assertion when clicking in DQ/Last Reception column"
 		* Fixed bug #303: "Too many files republished by your client software. Please upgrade it."
 		   Proper handling of incremental file publishing avoids server bans ;)
-		* Fixed bug #317: Added GUI and functionality for 'Start next file on same category'. 
+		* Fixed bug #317: Added GUI and functionality for 'Start next file on same category'.
 		* Fixed bug #319: When sort is changed, make sure the item focused is again focused.
 		* Fixed bug #321: Razoback2 stats page for shared files.
-		* Fixed bug #331: 'ED2k link bar gone after 2x click on search button' making it a feature 
+		* Fixed bug #331: 'ED2k link bar gone after 2x click on search button' making it a feature
 		   instead of a bug. Now you can toogle the ed2k link handler clicking on search toolbar button.
 		* Fixed bug #334: Main category type not stored on crash.
 		* Fixed bug #345: [Mac] popup windows open on other monitor.
@@ -3293,9 +3325,9 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Decoupled NetworkFunctions and StringFunctions headers.
 		* Added QueueDebugLogLine for... uh... queueing debug lines.
 		* Encapsulating network stuff at NetworkFunctions.
-		* Removed all network platform specific code from the main code, and leave it to 
+		* Removed all network platform specific code from the main code, and leave it to
 		  NetworkFunctions (and gsocket). And I removed the htons and htonl everywhere.
-		* Fix for egcs compiler crashing on aMule compilation. 
+		* Fix for egcs compiler crashing on aMule compilation.
 		* Changed the CTags structure to a safer and nicer version, compatible with eMule's.
 		* Added support for a lot more ed2k Tags.
 		* Support for download stats per client.
@@ -3317,11 +3349,11 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Big rework of the Friends class, list, and everything.
 		* Cached the Operating System info and added to --version flag.
 		* Added Online Signature update time functionality and widget disabling on OS disable.
-		* Slightly bigger list for the preferences items to fit them all 
+		* Slightly bigger list for the preferences items to fit them all
 		* Added a static text for recursive sharing via right-click to avoid questions.
-		* Systray can now be enabled/disabled on preferences, dynamically, and is applied 
+		* Systray can now be enabled/disabled on preferences, dynamically, and is applied
 		  as soon as the checkbox is checked. Default is DISABLED.
-		  Also, the minimize to tray checkbox is disabled when systray is not enabled, and when using 
+		  Also, the minimize to tray checkbox is disabled when systray is not enabled, and when using
 		  the new systray code (the wx tray), we don't have the Window Manager dialog anymore.
 		* Check for Online Signature folder existance when enabled.
 		* Fixed a lot of unicode bugs on file handling by adding fallbacks to proper encoding.
@@ -3335,8 +3367,8 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Proper use of wxWidgets functions for ISO date formatting.
 		* Never show the download list filter on search category selector.
 		* Lots of fixes for wx2.6.0 compilation, wxSizer, and other changes.
-		* Fixed the download limits not being applied correctly. this should amke MUCH BETTER download 
-		  speed for people with download limits set. 
+		* Fixed the download limits not being applied correctly. this should amke MUCH BETTER download
+		  speed for people with download limits set.
 		* Fixed sockets not being closed on daemon.
 		* Fixed chmod message on Incoming/temp folder on smbfs.
 		* More info on the init. text and on backtraces (Operative Sytem, kernel version, etc).
@@ -3345,13 +3377,13 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Fixes the hangups on exit, specially on Mac.
 		* Fixed the AUTHORS file.
 		* Fixed UDP socket bug on size of OP_REASKFILEPING message.
-		* Abort loading of shared files if we are shutting down. 
+		* Abort loading of shared files if we are shutting down.
 		* Fixed crash caused by socket die on ConnectionEstablished function.
 		* Added contact info to documentation and about button.
 		* Fixed (again) mplayer usage as video previewer.
 		* Fixed a network bug on SetStartNextFileSame not being set.
 		* Proper usage of wxProcess::Exists( for webserver running on start check.
-		* Cleaned configure/Makefile from a lot of bad usage of flags and libs. 
+		* Cleaned configure/Makefile from a lot of bad usage of flags and libs.
 		   This makes for a smaller executable now also.
 		* Merged Martimac's fix for FreeBSD 5.4-PRERELEASE
 		* Fixed friendslot assignation, about 12 times.
@@ -3365,7 +3397,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Fixes the multiple removal of friends
 		* Fixed multiple message send to friends.
 		* Fixed multiple filelist requests
-		* Fixed multiple friend details dialog show. 
+		* Fixed multiple friend details dialog show.
 		* Adds a warning for trying to set multiple friendslot.
 		* Fixed Incoming folder content not being sent on shared files request.
 		* Fixed completing of file setting transfered instead of completed to file size.
@@ -3379,7 +3411,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Fixed "total transfered datal isn't saved on crash/kill" bug.
 		* Fixed flushing of files on copy with read-only flag set.
 		* Added "total downloaded"/"total upload"/"total requests"/ "total accepts" to partfile saving.
-		* Fixed rehashing of unicoded file names on aMule restart. 
+		* Fixed rehashing of unicoded file names on aMule restart.
 		* Fixed aLinkCreator compilation for wx2.6.0
 		* Fixed upload speed not being reset when all clients lost and keeping old value.
 		* Fixed port output on console showing negative numbers.
@@ -3389,7 +3421,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Moving from libc usage to wxWidgets multiplatform implementations.
 		* Killed c_str() usage from aMule, except on very specific ways and only for speed reasons.
 		* General cleanups and speedups here and there.
-		
+
 		- CPU arch Specific -
 		* 64 bits archs fix for AICH thread.
 		* Some amd64 compilation warning removal.
@@ -3397,41 +3429,41 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Fixed client IP endianess on big endian archs.
 		* Getting ENDIAN_SWAP_* to a bare minimum (just interface)
 		* Fixes endianess of local_ip, which is anyway almost all times 0.
-		
+
 		- Core/GUI Specific -
-		* Fixed daemon unhability to handle sources properly. Daemon now takes, handles, and 
+		* Fixed daemon unhability to handle sources properly. Daemon now takes, handles, and
 		   processes sources in a proper way (making it at last a real competitor for monolithic).
 		* Don't show geometry option for daemon, makes no sense.
 		* Properly display "aMule Daemon" instead of "aMule" on daemon.
 		* Fixed statistics tree interdependence with GUI, splitting it to core/gui way.
-		   In short, we have statistics tree on webserver, amulecmd and remote GUI :)		
+		   In short, we have statistics tree on webserver, amulecmd and remote GUI :)
 		* Graphic statistics are now decoupled from GUI.
-		   We have statistics graphics on webserver remote GUI.	
+		   We have statistics graphics on webserver remote GUI.
 		* Decoupled Friend list from GUI.
 		* Fixed a bug on set comment on a file on ECv2.
 		* Fix for log on unicoded webserver.
 		* Fix for global daemon thread not closed on exit.
-		* Splitting of core/gui on SearchDlg. 
+		* Splitting of core/gui on SearchDlg.
 		* Fixed a crash on websocket thread creation.
 		* Reactivating Chat windows on remote GUI.
 		* Proper fix for the segfault on exit caused by EC.
 		* Removal of CryptoPP usage on amulegui.
 		* Fixed a possible crash on daemon startup.
-						
+
 		- BSD Specific -
 		* Fixed BSD compilation for <sys/types.h> inclusion.
 		* Fixed FreeBSD 4 prerelease (DragonFly) compilation on gtkplugxembed.c
-		
+
 		- Solaris Specific -
 		* Fixed Solaris compilation and linking.
 		* Fixed need for inet_addr on webserver on Solaris.
-		
+
 		- Mac Specific -
 		* Fixed Mac friends handling.
 		* Proper importing of files for Mac.
 		* Proper reading for amuleweb config on Mac.
 		* Made default Incoming folder for Mac to "~/Documents/aMule Downloads"
-				
+
 		- Windows Specific -
 		* Fixed a lot of compilation problems.
 		* Use proper wxLog class to avoid popups on Windows.
@@ -3502,7 +3534,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		in wxGTK-2.5.3.
 		* Applied patch from geeko to complete html functionality of
 		cas.
-		* Fixed a big bug in proxy code. Sockets were not continuing 
+		* Fixed a big bug in proxy code. Sockets were not continuing
 		conversation after connecting to sources.
 		* Fixed a crash due to an unicode issue while logging.
 		* Show some activity upon destruction of the DownloadQueue.
@@ -3586,7 +3618,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 	Xaignar:
 		* Improved logging for CFile, getting rid of the annoying
 		  pop-up windows which were previously displayed.
-		* Workaround for fonts getting changed on the log-view 
+		* Workaround for fonts getting changed on the log-view
 		  when the clear-button was pressed (wxMac specific).
 		* Work on getting aMule ready for win32, including fixing
 		  the custom-drawing for listctrls.
@@ -3595,25 +3627,25 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Made the preferences dialog modal to fix problems where
 		  it would be displayed at bad locations.
 		* Ensured that the Banned-Count would be initialized to zero
-		  rather than display a random value until it gets properly 
+		  rather than display a random value until it gets properly
 		  set (not yet implemented).
 		* Improved the "aMule has crashed" message, adding some
 		  more information and fixed the backtrace to skip unneeded
 		  frames properly.
 		* Fixed some static text-ctrls not properly expanding, so
 		  that some text would be cut off the end.
-		* Fixed some position bugs in the progress-bar drawing and 
+		* Fixed some position bugs in the progress-bar drawing and
 		  addeed a black border. A4AF sources now displays that text
 		  instead of an empty area.
 		* Moved the placement of the "Initializing aMule" message on
 		  startup so that --version will only result in the version
-		  information and ensured that amule wont start in case an 
+		  information and ensured that amule wont start in case an
 		  invalid commands was given, instead printing the help info.
 		* Fixed problems with selection on the clients-list.
 		* Improved usage of compressed packets. Now only files that are
 		  not in the list of known archive-formats are compressed, rather
 		  than just Zip, Rar and Ace.
-		* Improved error-handling when opening ports. If either the 
+		* Improved error-handling when opening ports. If either the
 		  EC or Server-UDP ports conflict with the other ports, then
 		  a random safe value is selected in the range 1025 ... 2^16-1.
 		* Fixed shared files being located twice during startup, which
@@ -3629,7 +3661,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Escape-codes in ED2k links are now properly unescaped.
 		* Cleaned up and improved the readability of the clients-details dialog.
 		* Updated the modified listctrl widget used by aMule, so that
-		  wxWidgets 2.4.x and 2.5.x will use a modified version from 
+		  wxWidgets 2.4.x and 2.5.x will use a modified version from
 		  that branch rather than a more generic hacked version. For one
 		  thing, the headers are now drawn using the current GTK theme.
 		* Properly handle rehashing of empty part-files.
@@ -3640,7 +3672,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Made usage of wxASSERT thread-safe.
 		* Attempted to fix some longstanding problems with the notebooks.
 		* Removed unused files: Preview.h and Preview.cpp
-		* Updated, cleaned and unified license-headers for all aMule 
+		* Updated, cleaned and unified license-headers for all aMule
 		  related source files.
 		* Improved the error-message displayed when a server couldn't
 		  be added, so that it is clear as to why it couldn't be added.
@@ -3656,16 +3688,16 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Renamed the config file from ~/.eMule to ~/.aMule/amule.conf.
 		  The old file will not be removed, in order to allow backwards
 		  compatibility.
-		* aMule now automatically removes unavailable files from the 
+		* aMule now automatically removes unavailable files from the
 		  list of shared files.
 		* Fixed right-clicking not selecting the tab being clicked on.
 		* Fixed casts to pointers of higher alignment where it could
 		  cause allignment crashes on SPARC, created general function
 		  for doing this safely both SPARC and non-SPARC machinces.
-		* Added a typesafe replacement for printf, designed with 
+		* Added a typesafe replacement for printf, designed with
 		  inspiration from the format class in the boost library.
 		* Improved logging capabilities. It is now possible to enable/
-		  disable debugging output by category. All existing debug 
+		  disable debugging output by category. All existing debug
 		  calls where changed to support this. This can be controlled
 		  in the preference dialog.
 		* Fixed some problems with the connect dialog for remote gui.
@@ -3762,7 +3794,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* Reduced memory usage of IP-ranges in CIPfiler by removing
 		  redundant information.
 		* Fixed extremly non-optimal function in CDownloadQueue which
-		  was used many places. Could locate item in vector through 
+		  was used many places. Could locate item in vector through
 		  counting of iterator increments.
 		* Fixed pre-shutdown message to something more closely reflecting
 		  the actual events taking place.
@@ -3782,7 +3814,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 	xmb:
 		* id2ip awk script (with Jacobo221)
 
-	
+
 	Special Thanks To:
 
 		* Translators:
@@ -3836,7 +3868,7 @@ Version 2.0.0 FINAL - The "Let's dedicate this to Tiku" version.
 		* MindForge & Freenode irc admins
 
 		* People at #wxwidgets on freenode.
-		  
+
 		* Everyone at:
 		  #amule	irc.freenode.net
 		  wiki		http://wiki.amule.org
@@ -3860,7 +3892,7 @@ Version 2.0.0rc8 - The "last rc" version.
 		* Fixed server / transfers window splitters not being loaded/saved correctly.
 		* Fixed categories on search dialog not being refreshed on category name change.
 
-	deltaHF: 
+	deltaHF:
 		* Show comments for shared files
 
 	Hetfield:
@@ -3869,9 +3901,9 @@ Version 2.0.0rc8 - The "last rc" version.
 	Jacobo221:
 		* Added option to select the max and min size-type in advanced
 		  searches.
-		* When "Extended Parameters" in Search tab is not selected, 
+		* When "Extended Parameters" in Search tab is not selected,
 		  defaults are used.
-		* Now "Auto-update serverlist at startup" checks if there's a 
+		* Now "Auto-update serverlist at startup" checks if there's a
 		  serverlist to avoid annoying messages at startup.
 		* "Clear completed downloads" is now disabled while no
 		  completed downloads are listed.
@@ -3905,11 +3937,11 @@ Version 2.0.0rc8 - The "last rc" version.
 
 	ken_aMule:
 		* Fixed ipfilter on big endian archs.
-		* Fixed wxWidget's bugs that were creating serious memleaks on Mac		  
+		* Fixed wxWidget's bugs that were creating serious memleaks on Mac
 
 	Kry:
 		===============::MULTIPLATFORM::===============
-		* When a socket connection error like WOULD_BLOCK happens, aMule retries 
+		* When a socket connection error like WOULD_BLOCK happens, aMule retries
 		   the connection to avoid just-once errors
 		* Stopped files are now darker than non-sources ones.
 		* AICH e-links working now, with masterhash and with hashset
@@ -3921,8 +3953,8 @@ Version 2.0.0rc8 - The "last rc" version.
 		* Much more debug info available to debug packets (packet dump and others)
 		* Major network improvements:
 			* Improved the socket processing on CPU usage and performance.
-			* Coded the functions handling the network string/bytes conversion of ips and 
-			   hostnames and the generic hostname solving thread, non dependant from host's 
+			* Coded the functions handling the network string/bytes conversion of ips and
+			   hostnames and the generic hostname solving thread, non dependant from host's
 			   socket implementation. Less CPU and more reliable on both cases.
 		* Crash fixed on wrong arguments for wxString::Format
 		* New option on right click on downloading or search files for showing eserver's stats for
@@ -3948,7 +3980,7 @@ Version 2.0.0rc8 - The "last rc" version.
 		* Fixed crash on	OP_MULTIPACKETANSWER
 		* Sent wxInt and wxUInt classes usage down the drain for the standard int / uint
 		* Implemented "Share hidden files" checkbox.
-		* Immplemented the CT_EMULECOMPAT_OPTIONS new tag. 
+		* Immplemented the CT_EMULECOMPAT_OPTIONS new tag.
 		  Right now only OS info support capabilities.
 		* Implemented new short tags style for server and client interchange of info.
 		  Fixes not being able to browse eMule >=0.42x shared files.
@@ -3973,13 +4005,13 @@ Version 2.0.0rc8 - The "last rc" version.
 		* Changed wxFileStreamInput -> wxFile (less class overhead).
 		* Several speed fixes on Stats code.
 		* Fixed possible crash on search thread creation + verbose on error.
-		* Fixed aMule crashing when local search is not returning and we click stop 
+		* Fixed aMule crashing when local search is not returning and we click stop
 		  or start another search.
 		* Fixed severeral endianess bugs.
 		* General rewrite of UDP Socket
 			* Received packets when app is not ready are now discarded.
 			* Small fix preventing memleaks and some strange asserts
-			* Fixed a severe memleak if 2 UDP packets are send at the same time, before the 
+			* Fixed a severe memleak if 2 UDP packets are send at the same time, before the
 			   first one finishes.
 			* Fixed the host solving fail not cleaning the data (another severe memleak)
 			* Fixed sending wrong data to wrong servers and thus not being replied.
@@ -3989,9 +4021,9 @@ Version 2.0.0rc8 - The "last rc" version.
 		* Added files:
 			StringFunctions.(h/cpp)
 			NetworkFunctions.(h/cpp)
-		
+
 		==================::MAC::===================
-		* Fixed server connection crashes related to accepting a connection from a being 
+		* Fixed server connection crashes related to accepting a connection from a being
 		   destroyed socket. Probably fixes also some random BSD/Linux crashes on conection.
 		* Got rid of all <wx/wx.h> includes, improved compilation speed greatly.
 		* Fixed stats color boxes
@@ -4062,13 +4094,13 @@ Version 2.0.0rc8 - The "last rc" version.
 	wizeman:
 		* Helped finding the code snippet where WebSocket was failing on request.
 		* Fixed 'Safe Max connections' code. It's safer to use it now, and it works.
-		* Fixed bug where amule would start consuming 100% cpu when it received a 
+		* Fixed bug where amule would start consuming 100% cpu when it received a
 		  corrupted EC packet.
 		* Fixed webserver, it wouldn't close connection when it received a POST request.
 		* Fixed webserver crash: added mutex to make variable wcThreads thread-safe.
-		* Fixed webserver <-> amule communication corruption when the webserver 
-		  received simultaneous requests. The problem was that all webserver threads 
-		  were using the same socket for sending/receiving EC packets to/from amule 
+		* Fixed webserver <-> amule communication corruption when the webserver
+		  received simultaneous requests. The problem was that all webserver threads
+		  were using the same socket for sending/receiving EC packets to/from amule
 		  without synchronization.
 
 	Xaignar:
@@ -4099,7 +4131,7 @@ Version 2.0.0rc8 - The "last rc" version.
 		* Fixed the Upload-parts drawing.
 		* Fixed sorting by filename on the Uploading list.
 		* Fixed crash on server list auto-update. Removes the possibility of overrunning a array.
-		* Optimization of UpdatePartsInfo, which now no longer needs to traverse the parts-info 
+		* Optimization of UpdatePartsInfo, which now no longer needs to traverse the parts-info
 		  arrays of each source for that file.
 		* Fixed the redraw problems where some things wouldn't be erased on list controls.
 		* Code cleaning, documenting and rewrite.
@@ -4153,7 +4185,7 @@ Version 2.0.0rc8 - The "last rc" version.
 
 		* All aMule users!!!
 
-	Welcome our new aMule team members: 
+	Welcome our new aMule team members:
 		lionel77, ken_aMule, nachbarnebenan & one2one
 
 
@@ -4172,18 +4204,18 @@ Version 2.0.0rc7 - The "99,6% Final" version.
 
 	Jacobo221:
 		aMule GUI:
-		* Fixed two almost-the-same bugs when clicked download button 
+		* Fixed two almost-the-same bugs when clicked download button
 		  and no items where selected (as reported by powtrix/willy,
 		  thanks).
 
 		aMuleWeb:
-		* Fixed a bug where up/down limits woudln't be displayed 
+		* Fixed a bug where up/down limits woudln't be displayed
 		  correctly if their string length were different.
 
 		aMuleCMD:
 		* Added 'list' (or 'find') command to search for a file in
 		  the downloads queue by name or by number (or just show all).
-		* Added the ability to resume/pause all downloads at the same 
+		* Added the ability to resume/pause all downloads at the same
 		  time through amulecmd (very handy when all downloads have
 		  been paused due to lack of space).
 		* Fixed two bugs on amulecmd by which using 'pause' or 'resume'
@@ -4200,21 +4232,21 @@ Version 2.0.0rc7 - The "99,6% Final" version.
 		* Fixed broken compilation in SysTray.cpp with gcc 3.3.4.
 
 	Kry:
-		* Fixed: 	Crashes related to animation deletion on http download dialog
-		* Fixed: 	0-size server.met file crashing aMule on startup and on download.
+		* Fixed:	Crashes related to animation deletion on http download dialog
+		* Fixed:	0-size server.met file crashing aMule on startup and on download.
 		* Fixed:	GUI blocking on server connection.
-		* Fixed: 	The last (hopefully) "fixed minsize" bug. FileDetail dialog was growing :)
+		* Fixed:	The last (hopefully) "fixed minsize" bug. FileDetail dialog was growing :)
 		* Misc code cleaning.
-		* Mac: 
+		* Mac:
 			* Enabling wxCocoa compilation
-			* Fixed: 	Secure Ident was not working on big endian archs.
-			* Fixed: 	ClientID endianess issues leading to faking low/high id
-			* Fixed: 	Several fields were not having correct size on preferences.
-			* Fixed: 	Curl preform_multi was crashing the http download dialog on Mac.
+			* Fixed:	Secure Ident was not working on big endian archs.
+			* Fixed:	ClientID endianess issues leading to faking low/high id
+			* Fixed:	Several fields were not having correct size on preferences.
+			* Fixed:	Curl preform_multi was crashing the http download dialog on Mac.
 					This means server.met update and ipfilter update was crashing.
 					Currently the fix disables 'Cancel' button on that dialog, while we
 					wait for curl lib to fix this issue.
-		
+
 	lfroen:
 	        * Removed debug printf's in timer.cpp.
 		* Fix for deadlock on connection timeout in ServerSocket.cpp.
@@ -4251,7 +4283,7 @@ Version 2.0.0rc7 - The "99,6% Final" version.
 
 	Seagull:
 		* Patch adding "Directory" column to the shared-files dialog.
-		* Patch to add "Swap to this file" option for sources marked as 
+		* Patch to add "Swap to this file" option for sources marked as
 		  "Asked For Another File" on download queue.
 
 	Unleashed:
@@ -4262,7 +4294,7 @@ Version 2.0.0rc7 - The "99,6% Final" version.
 		* Reinsured that the preferences will be saved upon clicking "Ok".
 		* Removed SSE2 specific optimizations from the embedded Crypto++ sources,
 		  they would break very easily and crash aMule.
-		* Fixed a bug where we would sometimes attempt to remove a client 
+		* Fixed a bug where we would sometimes attempt to remove a client
 		  from the wrong file, resulting in dangling pointers and crashes.
 		* Ensured that the statistics-dialog would be updated when preferences
 		  relating to it where changed.
@@ -4270,7 +4302,7 @@ Version 2.0.0rc7 - The "99,6% Final" version.
 		  without incomming dir or name.
 		* Initial fix for crashes if aMule tried to share an inaccessible folder.
 		* The redraw problems on restoring from minimized state should be fixed.
-		* Fixed the shared-files list, which would draw columns regardless 
+		* Fixed the shared-files list, which would draw columns regardless
 		  of whenever or not they were hidden.
 		* Fixed the progress-bars in the shared-files dialog. It should now
 		  work properly for both part and completed files.
@@ -4278,10 +4310,10 @@ Version 2.0.0rc7 - The "99,6% Final" version.
 		  cause wrong ranges of IPs to be filtered.
 		* Re-added the priority menu for servers, which had gone missing due
 		  to a mistake.
-		* Stopped the client-credits class from attempting to load older 
+		* Stopped the client-credits class from attempting to load older
 		  versions of the lists, which again would lead to mem-corruption.
 		* Fixed hidden columns on download queue, which would still be drawn.
-		* Added sanity checks to loading of clients.met file, since corrupted 
+		* Added sanity checks to loading of clients.met file, since corrupted
 		  files would lead to potentially huge ammounts of mem-corruption.
 		* Added "Completed Sources" column to the shared-files dialog.
 		* Fixed a bug in sockets where disconnected sockets wouldn't be removed
@@ -4293,14 +4325,14 @@ Version 2.0.0rc7 - The "99,6% Final" version.
 		  where selected. It would un-set auto-priotity instead.
 		* A bit of optimization in CPartFile. More work will follow later.
 		* Properly initialized a number of variables.
-		* Fixed the column-width saving/loading which I managed to break shortly before 
+		* Fixed the column-width saving/loading which I managed to break shortly before
 		  rc6 was release. Whoops. :p
 		* Ampersands will no longer be doubled when lines are added to the log-view.
 
 	Special Thanks To:
 
 		* Translators in this release:
-		   biger [HUN]:		(Hungarian / hu_HU)	
+		   biger [HUN]:		(Hungarian / hu_HU)
 		   GhePeU:		(Italian / it_IT)
 		   mad_soft:		(Spanish / es_ES)
 		   Ogon:		(Polish / pl_PL)
@@ -4327,22 +4359,22 @@ Version 2.0.0rc7 - The "99,6% Final" version.
 		   bugtracker	http://abugs.amule.org
 
 		* All aMule users!!!
-		
+
 
 --------------------------------------------------------------------------------------------------------------------------------
 
-	
+
 Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair" version.
 ----------
 2004-10-03
-	
+
 	deltaHF:
 		* GUI for MyInfo at Server window.
 		* Added 'About' button.
 		* Fixed sorting upload list by speed
-		* Changed the Search dialog. 
+		* Changed the Search dialog.
 		* Fixes websearch for jugle.net
-		* Added hability for send msg to clients in upload queue, without having to add 
+		* Added hability for send msg to clients in upload queue, without having to add
 		  them as friends (based on Kry's download queue send-on-right-click implementation)
 		* Translations update.
 
@@ -4373,27 +4405,27 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 	Kry:
 		* Got back from hell.
 		* Imported eMule's 0.44x new corruption handling: AICH
-		   AICH stands for Advanced Inteligent Corruption Handling, and avoid having to 
+		   AICH stands for Advanced Inteligent Corruption Handling, and avoid having to
 		   re-download a full part everytime we get corruption on a file. With AICH, you will
-		   just re-download the 184Kb block that has corruption. It uses HashTrees to achieve 
-		   the corruption diagnosis. 
+		   just re-download the 184Kb block that has corruption. It uses HashTrees to achieve
+		   the corruption diagnosis.
 		   More info: http://www.emule-project.net/home/perl/help.cgi?l=1&rm=show_topic&topic_id=589
 		   *********************************************************************************
-		   WARNING: AICH thread will re-hash all your files on your first rc6 startup. This can 
-		   take very long when the user has lots of shared files. We're sorry but that's the only 
+		   WARNING: AICH thread will re-hash all your files on your first rc6 startup. This can
+		   take very long when the user has lots of shared files. We're sorry but that's the only
 		   way to build the HashTree and thus making AICH able to work.
 		   *********************************************************************************
 		* Fixed the AICH implementation to support big endian archs (like ppc).
 		* Implemented IPfilter auto-load on startup
 		* Implemented IPFilter 'Update Now' button on preferences.
-		* Revamped the HTTP download dialog, used to download IPfilter and server.met 
+		* Revamped the HTTP download dialog, used to download IPfilter and server.met
 		   (and probably other files in a near future) Now it's the thread who runs the dialog,
 		   and dialog no longer block aMule while loading. It also has a progress bar. Yay!
 		* Fixed amule daemon not allowing auto-dowload of server.met.
-		* First rework of the Search dialog, later re-worked by Xaignar using the 
+		* First rework of the Search dialog, later re-worked by Xaignar using the
 		  hide/show engine I did.
 		* Implemented "Send messages" via right-click on source.
-		* When aMule is running and you try to run a second aMule, it now send a 
+		* When aMule is running and you try to run a second aMule, it now send a
 		   'raise' message to the current runing one. This is designed to fix the problems
 		   with aMule being in a inexistant systray and thus people being unable to recover it.
 		* Fixed documentation:
@@ -4417,28 +4449,28 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		* aMule now compiles and works with wxWidgets 2.5.2, with no gui bugs
 		* Fixed a nasty cvs bug that was just taking '0' on upload settings as 0, not unlimited.
 		* Fixed CArray implementation to avoid ints and make usage of size_t and off_t
-		* Added GetConnectIP() implementation to BaseClient so we can hold the supposed IP 
+		* Added GetConnectIP() implementation to BaseClient so we can hold the supposed IP
 		   or (after we had a connection) the real IP
 		* Implemented extra-file_corruption_safety on files. No more 'please rm -rf .aMule/'
 		* Implemented safe recover of .part.met files.
-		   This means that if a .part.met file gets corrupted, aMule will take care of it and try 
+		   This means that if a .part.met file gets corrupted, aMule will take care of it and try
 		   to recover it with minimal info. As a matter of fact, only filesize and hash is need,
 		   so any other info will be recovered or set to default instead of discarding the part file.
 		* Fixed mem corruption on BaseClient
 		* Fixed a crash on UploadListCtrl due to access to a either uninitialised or removed client.
-		* Fixed the annoying empty message being sent every time a client connects to us while 
+		* Fixed the annoying empty message being sent every time a client connects to us while
 		  we have a chatwindow with him. this was really pissing people off ;)
-		* Reworked SafeFile.cpp and made it compatible with eMule 0.44x. 
+		* Reworked SafeFile.cpp and made it compatible with eMule 0.44x.
 		* aMule defaults to maximize if not size not overriden and no gui size stored (robably first run)
-		* Implemented CDirIterator. 
-		   Used to get rid of wxFindFirstFile and such buggy functions (breaking filenames on Mac and others). 
+		* Implemented CDirIterator.
+		   Used to get rid of wxFindFirstFile and such buggy functions (breaking filenames on Mac and others).
 		* Added GUI preferences fo AICH's hash trusting and IPfilter new options.
 		* Corrected xMule version show. xMule started sending correct version tags on 1.9.1b, only 4
 		   months after I told them, and only 1 after eMule+ developers did. Is based on our implementation
 		   (x.y.z instead of eMule's x.ya), so it was not hard to show them correctly ;)
-		* Misc developing, memleak fixing, code rewrite, and co-workers abuse by insulting 
+		* Misc developing, memleak fixing, code rewrite, and co-workers abuse by insulting
 		   them and degrading them to worm state.
-		
+
 		* Kademlia Import:
 			kademlia/utils
 			* UInt128.cpp (class for handling 128-bits integers, added hability to read/write on SafeFile).
@@ -4463,12 +4495,12 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 			* Fixed amule daemon for taking 100% (or 198% on a dual system) CPU.
 			* Fixed wrong filenames being shown when more than 24 chars. See CDirIterator above.
 			* Fixed 'MyInfo' tab showing wrong endianess on IP.
-			
+
 		* Deleted files:
 			eMule-Import-Status	-> Very old unused file.
 			RC1-KnownBugs	-> Very old unused file.
 			HTTPDownloadDlg.*	-> HTTPDownload.* (no longer a GUI file)
-			
+
 
 	lfroen:
 		* Core/GUI separation:
@@ -4482,13 +4514,13 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 			   with the core will be improved as EC is rewritten by GonoszTopi.
 		* Fixed crash on DownloadClient
 		* Misc aMule fixes here and there :)
-			
+
 	Littletux:
 		* Patch to include UTF-8 support in systray.
 		* Patch to fix configure.in UTF-8 SysTray code.
 
 	Phoenix:
-		* Fixed a compilation warning + appartently useless code in 
+		* Fixed a compilation warning + appartently useless code in
 		  DirectoryTree.cpp.
 		* Fixed amuleIPV4Address for wx-2.5.2 and up.
 		* Fixed the low number of sources problem with wx-2.5.2 and
@@ -4508,19 +4540,19 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		  ExternalConnector.cpp. This module has a lot of code
 		  common to both programs, and will make it easier to
 		  maintain.
-		* Fixed a small wxString bug in CamuleDlg::AddLogLine() 
+		* Fixed a small wxString bug in CamuleDlg::AddLogLine()
 		  in amuleDlg.cpp.
 		* Improoved wxSting usage in ExternalConn.cpp.
-		* Yielding in DownloadQueue.cpp Init() so that gui is not 
+		* Yielding in DownloadQueue.cpp Init() so that gui is not
 		  blank when loading lots of files.
-		* A little better font/color handling in amulewebDLG and 
+		* A little better font/color handling in amulewebDLG and
 		  amulecmdDLG.
 		* New command line parameter for amuleweb, amulewebDLG,
 		  amulecmd and amulecmdDLG: -f. This parameter reads the
 		  ECPpassword and the ECPort from the [ExternalConnect]
 		  section of file ~/.eMule. This way, the plain text password
 		  doesn't have to be passed in the command line.
-		* Updated socket-2.5.c to the latest wx-cvs code. 
+		* Updated socket-2.5.c to the latest wx-cvs code.
 		  Fast reconnect -> lowid bug is fixed in wx-cvs now. When
 		  wx-2.5.3 is out, we will finally be able to drop this file.
 		  It will only be needed for versions 2.5.0(?) to 2.5.2.
@@ -4558,7 +4590,7 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		    #define DEBUG_REMOTE_CLIENT_PROTOCOL in ListenSocket.cpp
 		    #define DEBUG_SERVER_PROTOCOL in ServerSocket.cpp
 		    #define DEBUG_CLIENT_PROTOCOL in sockets.cpp
-		* Changed configure.in to no longer use gsocket-2.5.c for 
+		* Changed configure.in to no longer use gsocket-2.5.c for
 		  wx-2.5.3 and up.
 		* Fixed the Random Lowid Bug.
 		* Cleaner solution to RLB: Accept() the connection and
@@ -4570,11 +4602,11 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		  hundreds. There is still room for improovement here.
 		* Fixed a bug in SafeFile.cpp. wxString.Length() returns the
 		  number of codes in the string, which is less than or equal
-		  to the number of bytes in a multibyte encoded string. This way, 
+		  to the number of bytes in a multibyte encoded string. This way,
 		  amule will also not crash with locale search strings like korean,
 		  japanese and chinese.
 		* Several amuleweb/ExternalConn bug fixes. Now the
-		  communication is in UTF8, so that soon amuleweb non-unicode can 
+		  communication is in UTF8, so that soon amuleweb non-unicode can
 		  communicate with amule unicode and vice-versa. There was a
 		  bug when the number of files was more than approximately 90
 		  because the communication routines could not handle strings
@@ -4591,12 +4623,12 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		  connections in UTF-8 are really working, and
 		  amuleweb/amulecmd (unicoded or not) can connect to amule
 		  (unicoded or not).
-		* Fixed an unprotected call to strlen() in ECSockets.cpp, if 
+		* Fixed an unprotected call to strlen() in ECSockets.cpp, if
 		  you pass a NULL pointer to it, the program segfaults.
 		* Added a timer for idle repainting in amulewebDLG and
 		  amulecmdDLG.
-		* Fixed this assertion in Preferences.cpp: [Debug] 07:02:00 AM: 
-		  include/wx/longlong.h(155): assert "(m_ll >= LONG_MIN) && 
+		* Fixed this assertion in Preferences.cpp: [Debug] 07:02:00 AM:
+		  include/wx/longlong.h(155): assert "(m_ll >= LONG_MIN) &&
 		  (m_ll <= LONG_MAX)" failed: wxLongLong to long conversion
 		  loss of precision.
 		* Reimplemented "Show Rates On Title" preference.
@@ -4634,7 +4666,7 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 	Xaignar:
 		* Other stuff I'm too lazy to write or have forgotten about. ;)
 		* Initial multi-sorting on download list. Upon changing sort-column,
-		  any items that were evaulated to equal will be resorted by the 
+		  any items that were evaulated to equal will be resorted by the
 		  last used column.
 		* Fixed the constant resetting of the category dropdown-menu in
 		  the searchdlg.
@@ -4642,15 +4674,15 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		* Only displayed category color when the items arn't highlighted
 		  on the download list, to improve readability. (thanks to Seagull)
 		* Optimized the IPFilter-code.
-		* Improved the CDownloadListCtrl::Updateitem function so that it 
+		* Improved the CDownloadListCtrl::Updateitem function so that it
 		  doesn't search the list for hidden items.
 		* Improved sorting of clients by QR on the download list.
 		* Removed a number of unsued files, cutting down archive-size
 		  by around 900kb.
 		* Changed systray behavior to match KDE/GNOME. Single-clicks hide/show.
-		* Fixed the "Last Recieved" column, which would show the 
+		* Fixed the "Last Recieved" column, which would show the
 		  same as the "Last Seen Completed" column.
-		* Fixed the placement of sources on the download list, where they 
+		* Fixed the placement of sources on the download list, where they
 		  would sometimes be placed with the wrong file.
 		* Cleanup of the new AICHSyncThread class.
 		* Removed extra newlines before writing text to the logfile,
@@ -4659,18 +4691,18 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		  be ignored and replaced the messagebox with a log-line.
 		* Fix the percentage displayed on the progress-bars being rounded,
 		  which would result in non-completed files showing 100%.
-		* Added the ability for the user to specify permission settings for 
+		* Added the ability for the user to specify permission settings for
 		  fildes and directories. These settings default to 640 for files and
-		  750 for directories and are used throughout the app, with the 
-		  exception of files created with wxTextFile, as that class lacks 
-		  support for permissions. Will be fixed later		  
+		  750 for directories and are used throughout the app, with the
+		  exception of files created with wxTextFile, as that class lacks
+		  support for permissions. Will be fixed later
 		* Cleanup of CServerListCtrl:
-		  - The sorting of the list is now always maintained, including when items 
+		  - The sorting of the list is now always maintained, including when items
 		    on the list are updated or new items updated.
 		  - Cleanup of the popup-menu.
 		  - Disallow connecting to multiple servers at the same time.
 		  - Other changes.
-		* Reduced the overhead of the overhead calculation by using 
+		* Reduced the overhead of the overhead calculation by using
 		  code that didn't require iterating through a list every time.
 		* Added checks to avoid the user getting spammed with the "Connected
 		  to user" and "Disconnected ..." when having an open chat-window.
@@ -4679,7 +4711,7 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		  - Initial cleanups of the SearchList class
 		* Cleanup of the SearchListCtrl class
 		  - Results will now always be sorted
-		  - Syncronized all lists during runtime, so that they behave 
+		  - Syncronized all lists during runtime, so that they behave
 		    as a single list.
 		  - Improving the coloring of items.
 		* Cleanup of the CMuleNotebook class
@@ -4701,27 +4733,27 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		  popup-menu with Cut/Copy/Past/Clear and Select All. All existing
 		  wxTextCtrls were replaced with this new class.
 		* Imported the parts of Crypto++ that aMule needs into two files
-		  with permission from the Crypto++ developer. This means that aMule 
-		  now compiles without the user having Crypto++ installed, though it 
+		  with permission from the Crypto++ developer. This means that aMule
+		  now compiles without the user having Crypto++ installed, though it
 		  is still possible to use external Crypto++ installations if the user
 		  wishes to do so.
 		* Fixed some compilation problems with aLinkCreator and wx-2.5.2.
-		* Fixed the First-Time-Message being displayed twice and rewrote it 
+		* Fixed the First-Time-Message being displayed twice and rewrote it
 		  somewhat since it was becomming quite outdated.
 		* Fixed the "unable to open preferences.dat" bugs.
 		* Fixed the ability to add static servers.
 		* Cleanup of column sorting functions.
 		* Fixed a bug where CServer::HasDynIP would always return true.
 		  This would result in need-less dns lookups.
-		* Removed a redundant attempt at adding servers from connected 
+		* Removed a redundant attempt at adding servers from connected
 		  clients.
-		* Fix for Packet::PackPackets function where new size of packet 
+		* Fix for Packet::PackPackets function where new size of packet
 		  wouldn't be saved.
 		* Fixed some access to the dialog-window ptr after it had been
 		  deleted. This was causing some odd behavior once in a while
 		  on termination.
-		* Fixed the downloadqueue sorting, which was reversed. Low-priorty 
-		  files having high priority and high-priority files having low 
+		* Fixed the downloadqueue sorting, which was reversed. Low-priorty
+		  files having high priority and high-priority files having low
 		  priority. (Thanks to thomas001 for noticing)
 		* Rewroked the systray:
 		  - Fixed the the problems with the rate-limiting functionality.
@@ -4732,17 +4764,17 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		  - More informative output
 		  - Much better error handling
 		  - Handles duplicate files gracefully
-		  - Reads only 128kb (instead of 9mb) at a time to avoid killing 
+		  - Reads only 128kb (instead of 9mb) at a time to avoid killing
 		    the harddisk entirely while the thread is running.
 		  - Made the thread terminate when no files are left, instead
 		    of timing out as before.
 		* Disconnected otherfunctions.h from the rest of the aMule code,
 		  so that it should be possible to use it in external apps.
 		* Added checks when using the client-pointer in the socket-code,
-		  since that suffered from the same problem as the previously 
+		  since that suffered from the same problem as the previously
 		  fixed clients (they have a habbit of dying at random).
 		* Added function for truncanating displayed filenames, which is now
-		  used in file-details dialog, to avoid it getting resized to 
+		  used in file-details dialog, to avoid it getting resized to
 		  extreme widths.
 		* Some work on readying the Info tab on servers, deltaHF_ did the
 		  rest of the work.
@@ -4750,19 +4782,19 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		* Reworked the SearchDlg once
 		  - Added Jugle.net websearch
 		  - Added results-count to the result tabs
-		  - Other smaller changes 
-		* Fixed mem-leak where certian client-objects wouldn't be deleted. 
-		  Specifically those that were removed from the download queue but 
+		  - Other smaller changes
+		* Fixed mem-leak where certian client-objects wouldn't be deleted.
+		  Specifically those that were removed from the download queue but
 		  wern't on the upload queue and didn't have a active socket.
 		* Removed debugging functionality no longer needed.
-		* Removed variable-arguments logging functions, since they were 
-		  only needed in a very few places and posed a potential risk 
+		* Removed variable-arguments logging functions, since they were
+		  only needed in a very few places and posed a potential risk
 		  everywhere else.
 		* Fixed StripInvalidFilenameChars function to avoid legit letters
 		  being dropped (thanks to likesylph).
-		* Changed all file-accessing to use CFile rather than a mix of CFile, 
+		* Changed all file-accessing to use CFile rather than a mix of CFile,
 		  wxFile and FILE.
-		
+
 		* Removed a number of warnings.
 		* Cleanups of the following files
 		  - AICHSyncThread.*
@@ -4778,7 +4810,7 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		  - SafeFiles.*
 		  - CFile.*
 
-		
+
 	Special Thanks To:
 		* Lucasvr, for providing fixes for compilation with some wx versions.
 		* Seagull, for providing fixes and suggestions.
@@ -4790,17 +4822,17 @@ Version 2.0.0rc6 - The "We're so EVIL that we make you lose a sock in every pair
 		* All the people in aMule's forum
 		* All the users, for having the patience to wait the delayed rc6 release.
 		* Hellimod, one_2_one, ASTIOBOY, sssnake, lami123, Ocimin, agav,  PowerMike
-		   and all the mac testers and people providing Macs for ssh & vnc. 
+		   and all the mac testers and people providing Macs for ssh & vnc.
 
 	Funny stuff about this changelog:
 		* You can notice that the Search dialog was rewritten 3 (THREE!) times
-		   between rc5 and rc6. You only get to see the final version (Xaignar's), 
-		   but the initial one was Kry's (when the extended buttons show/hide 
-		   were added) and then deltaHF changed it later. 
+		   between rc5 and rc6. You only get to see the final version (Xaignar's),
+		   but the initial one was Kry's (when the extended buttons show/hide
+		   were added) and then deltaHF changed it later.
 		   We just love changing that page.
-		
+
 ----------------------------------------------------------------------------------------------------------------------
-		   
+
 Version 2.0.0rc5 - The 'Let's recover our release speed' version.
 ----------
 2004-07-18
@@ -4827,7 +4859,7 @@ Version 2.0.0rc5 - The 'Let's recover our release speed' version.
 		* Some gcc 3.4.x compilation fixes
 
 	lfroen:
-		* GUIEvents updated 
+		* GUIEvents updated
 		* core2gui events added.
 		* Some gcc 3.4 fixes to GUIEvents
 
@@ -4848,7 +4880,7 @@ Version 2.0.0rc5 - The 'Let's recover our release speed' version.
 		  sizers to keep the old behaviour (wxFIXED_MINSIZE). This
 		  constant is defined to zero in amule.h when wx-version is
 		  less than 2.5.2, so that amule still compiles in old wx.
-	
+
 	ThePolish:
 		 * Add win32 MakefileWIN32, configureWIN32.h and project file amule.msp
 		 * Make win32 use winsock2 for IPFilter
@@ -4860,7 +4892,7 @@ Version 2.0.0rc5 - The 'Let's recover our release speed' version.
 		 * Fix win32 ToolBar problem
 
 	Xaignar:
-		* Added the ability to search for "Texts"	
+		* Added the ability to search for "Texts"
 		* Attempt at fixing both Random Socket Bugs and Random Client Bugs.
 		* Fixed new IPFilter code.
 		* Cleanup of CPartFile::SavePartFile
@@ -4872,8 +4904,8 @@ Version 2.0.0rc5 - The 'Let's recover our release speed' version.
 	Special thanks to:
 		* The usual people, those on the other 'Thank you!' sections of changelog.
 		* All the people at the Mac section of forums, for testing compilation and run.
-		
-		
+
+
 ----------------------------------------------------------------------------------------------------------------------
 
 
@@ -4905,7 +4937,7 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 
 	Citroklar:
 		* lots of unicode slave work ;)
-	
+
 	croakerc:
 		* Fixed OpenBSD compilation
 
@@ -4927,7 +4959,7 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 
 	falso:
 		* Typo fix: bandwith to bandwidth
-		
+
 	hellimod, one_2_one:
 	    * MacOSX support
 
@@ -4937,7 +4969,7 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 		* Fixed 2 memory leaks in SysTray
 		* updated italian and napoletanean translations
 		* Fixed unicode issues in serverlist updates and download tab
-		* Fixed unicode issues that stopped adding files to download from ed2k utility 
+		* Fixed unicode issues that stopped adding files to download from ed2k utility
 		  and internal link handler
 
 	Jacobo221:
@@ -4950,7 +4982,7 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 		* Added DOS compatibility into CAS and update onlinesig support
 		* Several features in XAS (see XAS's changelog)
 
-	Kry:	
+	Kry:
 		* Fixed wxWidgets 2.5.x socket code. aMule now works on wx2.5.1 perfectly, wx2.5.2 introduces some GUI bugs.
 		* Rewrote Preferences engine to be much nicer, and Mac compatible :) Thanks to deltaHF for the new icons.
 		* Added a hack to make new preferences work on wxWidgets 2.4.2. I hope we can get rid of wx 2.4.2 soon ;)
@@ -4962,7 +4994,7 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 		* Remove spaces from search string start and end.
 		* Remove spaces from ed2k links start and end.
 		* Fixed a mem corruption due to lphant icon size (we all know lphants are big)
-		* Splitted internal core and GUI events 
+		* Splitted internal core and GUI events
 			* Socket events mover to core
 			* Timer got separated into core_timer and gui_timer, each one with the matching functions.
 		* Fixed UDP socket handler being... the TCP handler. Since lmule times.
@@ -4997,11 +5029,11 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 		* Reduced memory usage with a centralised icon handling.
 		* Fixed wrong var type on EMSocket.h causing mem waste.
 		* Fixed bug on SetFileSize (thanks to Pichuein on eMule forums)
-		*  wxWidgets 2.5 compatible CDirectoryTreeCtrl. 
-			WARNING- NEW BEHAVIOUR IS: LEFT CLICK ON ICON -> SHARE, RIGHT CLICK -> RECURSIVE SHARE 
+		*  wxWidgets 2.5 compatible CDirectoryTreeCtrl.
+			WARNING- NEW BEHAVIOUR IS: LEFT CLICK ON ICON -> SHARE, RIGHT CLICK -> RECURSIVE SHARE
 			Also made the icon red if the folder is shared.
 		* ModString fixed - Now mods identify themselves correctly.
-		* As xMule now identifies as eMule 0.0a, added xMule detection based on username 
+		* As xMule now identifies as eMule 0.0a, added xMule detection based on username
 		   and modstring to keep stats coherent.
 		* On debug builds, client stats now show the amount of clients with open socket.
 		* Changed theApp.glob_prefs->GetAppDir() to theApp.ConfigDir for speed improvements.
@@ -5033,8 +5065,8 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 		* Fixed mem corruption and possible memleaks and crashes on file comments received.
 		* Fixed a BAD and UGLY and EVIL mem corruption happening since more than a year ago and still present
 		   on the original program (xMule).
-		* Client sending wrong OP_FILEREQUEST packets are now disconnected to avoid further problems caused by their 
-		   corrupted packets. Old shareazas and most xMule versions have been warned since 2004/04/13 from aMule and 
+		* Client sending wrong OP_FILEREQUEST packets are now disconnected to avoid further problems caused by their
+		   corrupted packets. Old shareazas and most xMule versions have been warned since 2004/04/13 from aMule and
 		   since much more time ago from eMule. Shareaza fixed it, but xMule refuses to fix it. eMule 0.43x disconnects them too now.
 		* Fixed crashes on sockets because of packet overhead being calculated after packet was deleted.
 		* Fixed the CVS mod reporting for aMule 2.x
@@ -5052,7 +5084,7 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 			XBMDraw.h
 			SplitterControl.cpp
 			SplitterControl.h
-				
+
 					------------ MAC -------------
 		* Fixed compilation on wxMac CVS and 2.5.x
 		* Fixed socket connection on Mac.
@@ -5073,22 +5105,22 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 		* Fixed unicode compilation of most files (except those by Citroklar, Hetfiled, and shakraw)
 		* Fixed search on unicode builds.
 		* Unicoded most of the app internals :)
-		* Fixed part.met on unicode builds	
+		* Fixed part.met on unicode builds
 		* Hunted and killed (char*) casts and c_str() calls.
 		* Fix unicode client names and misc.
 		* Percentage & Download speed fixed
-		* Reported several bugs to wxDesigner's mantainer to make it work properly on unicode builds 
+		* Reported several bugs to wxDesigner's mantainer to make it work properly on unicode builds
 		* Fix usage of st_mtime to allow files with non-std chars to be shared without crashes on wx2.5.1
 		* Fixed PerformFileComplete to allow unicoded files to be finished :)
 		* Fixed part met filename being 001.part everytime on unicode builds.
 		* Fixed renaming on file completion causing crashes on unicode builds
-		
+
 	lfroen:
 		* Started to implement various changes needed to split the core and GUI.
 
 	Madcat:
 		* Fixed preferences layout of panels.
-		* Simpler ed2k link integration for Mozilla 1.3+ / FireFox 0.6+ - Using Mozex plugin 
+		* Simpler ed2k link integration for Mozilla 1.3+ / FireFox 0.6+ - Using Mozex plugin
 
 	niet:
 		* Added support for memory usage and binary name (on xas)
@@ -5136,7 +5168,7 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 		  to connect to server with wxWidgets-2.5.2.
 		* Fixed compilation and linking in 2.5.x for amulecmd. Same
 		  problem as amuleweb.
-		* Commited a patch from wolti that fixes compilation on 
+		* Commited a patch from wolti that fixes compilation on
 		  sparc/Solaris systems.
 		* More sparc compilation fixes, thanks to wimms.
 		* Removed the declaration of void ParseCommandLine(); from
@@ -5166,14 +5198,14 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 			- Added user preference system
 			- Added statistic image creation
 			- Added FTP support for an automatic upload of the statistic image
-		
+
 		* aLinkCreator:
 			- Added this new maaarvellous tool suggested by DeltaHF to compute ed2k links from a file (same behavior as eMule link creator, but no shared code)
 			- Rewrote md4hash and ed2khash code to avoid external dependencies (libcryptopp free), and to be Big Endian proof (works on Mac afaik)
 			- Added alcc, the "alc for console" command line client
 			- Added toolbar themes (KDE and DeltaHF's default for now)
 			- Thanks to Phoenix (Unicode, Hook, commandline...) and one_2_one (Mac tests)
-			
+
 		* aMule:
 			- Rewrote Makefile.am tree to fit to GNU standards
 			- Removed Makefiles stuff for wxwidgets < 2.2.6
@@ -5191,7 +5223,7 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 			- Updated POTFILE.in
 			- Removed Win32 stuff from autotools scripts
 			- Added static MakefileWIN32 for win32 compilation
-	
+
 	Unleashed:
 		[ From rc3 (not on changelog)]
 		* Cache get_path homedir to speed up multiple calls
@@ -5263,8 +5295,8 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 		  - CTypedPtrList.h
 		  - BarShader.*
 		* Many other smaller changes.
-	
-	
+
+
 	Special thanks to:
 		* Le Rat Noir and Inoteb of the BlackRat eMule mod (http://www.blackrat.fr.tc/) for allowing us to make use of their     work on detecting bad clients.
 		* Optimazer and the eMule Plus team (http://emuleplus.sourceforge.net/) for reporting a bug in source-exchange packets.
@@ -5272,36 +5304,36 @@ Version 2.0.0rc4 - The 'Mules and rabbits like apples too' version.
 		* Everaldo (http://www.everaldo.com) & "Jimmac" (http://jimmac.musichall.cz/ikony.php3) for new icons
 		* Phk for searching for new icons ;)
 		* kno and thermoman for their fixes :)
-		* TheBlackHand and Hawkster eMule mods 
+		* TheBlackHand and Hawkster eMule mods
 		* uberpenguin for AMPS :)
 		* All aMule users, testers & translators
 		* eMule & wxWidgets devs
 		* Everyone we forgot here ;)
-		
-		
+
+
 --------------------------------------------------------------------------------------------
 
-		
+
 Version 2.0.0rc3 - The 'Target: Stability' version.
 -------------
 2004-04-22
-	
+
 	aquatroll:
-	
+
 		* win32 stuff
 
 	barbapapa;
-		
+
 		* Fixed >2Gb files sorting bug on transfer window.
 
 	Citroklar:
-		
+
 		* Fixed saving preferences on klick OK, not only on shutdown.
-		* Configure stuff 
+		* Configure stuff
 		* Cas related stuff
 
 	deltaHF:
-	
+
 		* i18n stuff
 		* Minor timer fix ;)
 
@@ -5309,8 +5341,8 @@ Version 2.0.0rc3 - The 'Target: Stability' version.
 		* Fixed already downloading files not being marked as such on search results.
 
 	falso:
-		
-		* Improving and fixing cas 
+
+		* Improving and fixing cas
 		* Added capability to create pngs with cas
 		* Fixed ed2k fast links handler
 
@@ -5320,10 +5352,10 @@ Version 2.0.0rc3 - The 'Target: Stability' version.
 		* Rewrite of hashing thread. Also added a timeout to save resources.
 		   It times out after 1 min without hashing or receiving new files to hash, or 1 min since last hash, and dies gracefully.
 		* Fixed the crash on startup if incoming/temp folder are on FAT32
-		* Added Safe Max Connections code to Preferences->Tweaks. 
+		* Added Safe Max Connections code to Preferences->Tweaks.
 		   This code will help all people with USB modems and crappy routers to not hang them.
 		* Identify to lugdunum > 16.45 with our proper extended version tag (2.0.0)
-		* Fixed & rewrote stats 
+		* Fixed & rewrote stats
 			* Added Shareaza & lphant
 			* Fixed mldonkey stats (do they have to change their compatible number this often?)
 			* Added aMule / eMule / eDonkey proper version handling
@@ -5367,14 +5399,14 @@ Version 2.0.0rc3 - The 'Target: Stability' version.
 		* Fixed issues on packet unzip and crash on OP_CANCELTRANSFER already sent
 		* Added aMule 1.x / 2.x / CVS versioning.
 		* Thread-safe log lines adding using a queued loglines list.
-		* Completion Thread revamped --> No longer crashes, no longer asserts, and it's much nicer. 
+		* Completion Thread revamped --> No longer crashes, no longer asserts, and it's much nicer.
 		* Fixed safe_delete (again)
 		* Fixed some memleaks
 		* Changed some CLists to wxLists
 		* Cleanup and fixing little bugs ;)
 
 	Madcat:
-	
+
 	        * Disable autobacktrace on win32
 		* Removed wxTE_PROCESS_ENTER style from fast ed2k links handler (fixes assert)
 		* The following modifications to CamuleDlg::AddLogLine() function:
@@ -5385,17 +5417,17 @@ Version 2.0.0rc3 - The 'Target: Stability' version.
 		* Code cleanup
 
 	one_2_one, hoschy007:
-	
+
 	        * MacOSX stuff
 
 	shakraw:
-		
+
 		* Fixed multiple file download bug in webserver search section
 		* Fixed ed2k download link
 		* Fixed categories for web interface
 		* WebSocket.* & WebServer.*: now uses wxThreads and wxSockets to be cross platform.
 		* Better threads' array remove in WebSocket
-		* WebServer cleanly stopped before exit	
+		* WebServer cleanly stopped before exit
 		* Fixed max 2Gb display bug in amuleweb
 		* Updated aMule.tmpl: added file %complete support in transfer list
 	thepolish:
@@ -5415,13 +5447,13 @@ Version 2.0.0rc3 - The 'Target: Stability' version.
 		* Fixed PowerShare priority level not being saved. (Tran.9)
 		* Fixed the problem where it wasn't possible to select auto-priority in the uploadlist after having selected another priority (Tran.8)
 		* Cleanup of Search Dialog:
-  		  * The reset button is now properly enabled/disabled depending on the contenst of the text fields
+		  * The reset button is now properly enabled/disabled depending on the contenst of the text fields
 		  * Fixed a bug where searched would be limited to 2gb if max size was set to a value less than min size
-  		  * The popup-menu for the notebook now works as expected (SRCH.1) 
+		  * The popup-menu for the notebook now works as expected (SRCH.1)
 		  * The popup-menu will now only show when right-clicking within the bounds of the notebook (DISP.12)
 		* Fixed the green progressbar on downloads always displaying 100%. (DISP.9)
 		* aMule will no longer display warnings about not being able to find server.met when a new server.met is saved and no old copy exists.
-		* known.met is now auto-saved (1) when 30 files have been hashed, (2) when 300mb worth of files have been hashed, (3) and when all files have been hashed. This is to reduce the chances of having to rehash all files after a crash.	
+		* known.met is now auto-saved (1) when 30 files have been hashed, (2) when 300mb worth of files have been hashed, (3) and when all files have been hashed. This is to reduce the chances of having to rehash all files after a crash.
 		* Now uses the user-selected browser for fake-checking and such. (PREF.3)
 		* Further update of the Chat Page:
 		  * Pages can now be closed like the ones on the Search Page
@@ -5430,11 +5462,11 @@ Version 2.0.0rc3 - The 'Target: Stability' version.
 		* Other stuff
 
 
-	** Special thanks 
-		
+	** Special thanks
+
 		* All the bug-reporters, helpers, translators and users at http://forum.amule.org
-		* Batman who commited a mldonkey related fix, thanks :) 
-		* Jacobo221, Stefanero for their help and support on forum and all the other stuff ;) 
+		* Batman who commited a mldonkey related fix, thanks :)
+		* Jacobo221, Stefanero for their help and support on forum and all the other stuff ;)
 		* lugdunummaster for providing support on version tags and new features of lugdunum servers
 		.
 		 --- As usual thx to eMule & wxWidgets devs and everyone i forgot ;) ---
@@ -5446,20 +5478,20 @@ Version 2.0.0-rc2 - The 'white rabbit' version.
 2004-04-11
 
 	aquatroll:
-	
+
 		* Fixed Win32 compilation (again).
 
 	Ariel:
-	
+
 		* Implemented completed parts count on file rehash.
 		   Prevents your downloads to completely lost on a wrong .part.met write.
-		   
+
 	croakerc:
 	        * Added zlib version check
 		* *BSD compatibility
-		
+
 	deltaHF:
-	
+
 	        * New icon for aMule in DL/UP window ;)
 		* curl-config now >= 7.9.5 (for debian)
 		* i18n stuff
@@ -5467,29 +5499,29 @@ Version 2.0.0-rc2 - The 'white rabbit' version.
 		* Fixed some typos
 
 	falso:
-	
+
 		* Added cas (C aMule Statistics), a remake of aStats but 10 times faster (still lack online sign).
 		* amulesign.dat now shows the Total transfered values in bytes.
 		* Added Session upload and download to amulesign and uptime too.
-	
+
 	Hetfield:
-	
+
 		* Added new inclusion path if distro in not detected
 		* fixed wrong and duplicated inclusion in ClientCredits.*
 		* Modified configure scripts, only amule is compiled by default
 		* Added cas, ed2k, amulecmd, amulegui, amule webserver, amule webserver gui
-		* fixed wrong zlib check in configure    
-		
+		* fixed wrong zlib check in configure
+
 	hoschy, one-2-one, godard, PowerMike, hellimod:
-	
+
 	        * MacOSX stuff
-		
+
 	Jacobo221:
-	
+
 	        * Compiled the RC1 bugs and provided support on forums. It's our man-for-all.
-		  	
+
 	Kry:
-	
+
 		* Implemented the Complete count on search results and on file publishing.
 		   This feature added since aMule 2.0.0-rc1 and eMule 0.42e was not released
 		   with the rc1 for network technical reasons (still on testing with lugdunummaster).
@@ -5497,7 +5529,7 @@ Version 2.0.0-rc2 - The 'white rabbit' version.
 		   Search results show the count of complete sources sent by the server next to the sources
 		   found: i.e. 100 (28) meaning 100 sources, 28 of them complete (72 incomplete or old client)
 		* Added sending of the extended eMule version using aMule version, with additional rc version
-		* Added parsing of the new 0.4x eMule tags on hello packets.		
+		* Added parsing of the new 0.4x eMule tags on hello packets.
 		* Added parsing the Secure Ident packets for new eMule versions. Reduce overhead on download/upload.
 		* Added HandShake check on upload request.
 		* Rewrote display of client version on transfers page to handle the client soft/version correctly on any client.
@@ -5553,15 +5585,15 @@ Version 2.0.0-rc2 - The 'white rabbit' version.
 		* Fixed several warnings.
 		* Fixed assert on Clear All (search)
 		* Make aMule compile on wxWidgets 2.5 (and CVS) version.
-		
+
 	Madcat:
-	
+
 	        * win32 LaunchUrl() function
 		* Added amule-win32.HOWTO.txt
 		* Better win32 version of Hostname() function
 
 	shakraw:
-	
+
 		* WebSocket.* & WebServer.*: now uses wxThreads and
 		  wxSockets to be cross platform.
 		* Better threads' array remove in WebSocket
@@ -5569,61 +5601,61 @@ Version 2.0.0-rc2 - The 'white rabbit' version.
 		* Fixed multiple file download bug in webserver search section
 		* Fixed ed2k download link
 		* Fixed categories for web interface
-		  
+
 	thepolish:
-	
+
 	        * win32 stuff
-		
+
 	Unleashed:
-	
+
 	        * Memleak fix
-		  
+
 	Xaignar:
-	
+
 		* Amule no longer writes met files when priority is changed through the
-		   auto-priority subsystem. Thus hd-writes are substancially reduced 
+		   auto-priority subsystem. Thus hd-writes are substancially reduced
 		   depending on the number of files set to auto-priority.
 		* Fixed bug where text fields overlap each other (Disp. 4 & 5)
 		* Cleanup of amuleDlg.*
-		* aMule no longer displays a message about not being able to open the 
+		* aMule no longer displays a message about not being able to open the
 		   file "lastversion" the first time it is run
 		* Changed the CTypedPtrList filelist in DownloadQueue.* to a std::deque,
 		   with a speed-increase as a result
 		* Fixed the bug where the background of previously selected items in the
 		   friendslist wouldn't be redrawn (Disp. 2)
 		* Fixed auto-priority. Priority would be set one tad too high, resulting
-		   in the downloadlist failing to assign a name to the priority, thus 
-		   leaving empty fields. Also fixed displaying of priorty "Auto [Lo]" 
+		   in the downloadlist failing to assign a name to the priority, thus
+		   leaving empty fields. Also fixed displaying of priorty "Auto [Lo]"
 		   in sharedfiles-list. (Tran. 3)
-		* Fixed the problem where "completed percent" of files that hadn't 
+		* Fixed the problem where "completed percent" of files that hadn't
 		   transfered any bits yet would display a negative percentage (Disp. 8)
 
-		   
-        ** Special thanks to niet for his DNS service, bootstrap for his CVS service, stefanero & Citroklar for their    
+
+        ** Special thanks to niet for his DNS service, bootstrap for his CVS service, stefanero & Citroklar for their
 	   great help with a lot of stuff.
 	   Thx also to all translators and the users for reporting bugs and testing aMule (feel free to report more) :)
 	   As usual thx to eMule & wxWidgets devs and everyone i forgot ;)
-	
+
 	** New translators:
-	
+
 	   Supergirl: Croatian
 	   rommel:    Portuguese
 	   sNeo:      Italian (Napoletan)
-	   
+
 	** Follow the white rabbit and u'll find rc3 soon ;)
-	   
---------------------------------------------------------------------------------------------------	
-	
+
+--------------------------------------------------------------------------------------------------
+
 Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 -------------
 2004-03-26
 
 	Kry:
 		* Implemented SecureIdent (SUI) (imported from eMule 0.30x)
-		   This mean your credits will be lost on first run 
+		   This mean your credits will be lost on first run
 		   There is no way to avoid that. Sorry :) Same happened with eMule.
 		* Send sources request for files added from search page first.
-		* Rewrote MuleNoteBook from gtk to a cross-platform implementation.	
+		* Rewrote MuleNoteBook from gtk to a cross-platform implementation.
 		   The code is already used by xMule too, so I guess they liked it.
 		* Fixed most of > 2Gb bug, except the dom's contibution you can scrolling down ;)
 		* Made the .part.met load/save 100% compatible with eMule.
@@ -5631,10 +5663,10 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* Random usable position of the server split.
 		* Added bluecow's fix for zlib compressed packets.
 		* Even safer .met saving
-		* Added preferences checkbox for new style / old style tabs on preferences 
+		* Added preferences checkbox for new style / old style tabs on preferences
 		   (vertical/horizontal)
 		* Checked for protocol limits on file size.
-		* Now client detail dialog show Secure Ident State 
+		* Now client detail dialog show Secure Ident State
 		  (Not Supported/BadGuy/Not Complete/Verified)
 		* Added itoa to the MFC layer
 		* Added SetLength to CFile (MFC compat layer)
@@ -5646,7 +5678,7 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* Moved the FILE* to CFile for furter compatibility of code.
 		* Added the first version run detection
 		* Removed some Yield() code that only slowed init.
-		* Simplified systray menu by only showing what needed. 
+		* Simplified systray menu by only showing what needed.
 		   Thanks to jadrian for the feature request.
 		* Grayed non-working Preferences options to avoid confusion and to
 		   make the developer life easier selecting what to do ;)
@@ -5658,7 +5690,7 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* Added the Arabic, Chinese & Finnish compatibility on loading
 		* OpenBSD compatibility fixed
 		* Mac port 99% done, next version will be Mac compatible
-		   Some final bugs to be fixed ;) 
+		   Some final bugs to be fixed ;)
 		   Fixed:
 		      *) .met files loading/saving (except knownfiles.met)
 		      *) .dat files loading/saving
@@ -5671,19 +5703,19 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* MUCH safer packet handlig - avoids crashes on 99% of wrong tags.
 		* Fixed Dirs number on 'view shared'. Made aMule/eMule assert ;)
 		* Made download queue list refresh on a nicer way (much less glitches).
-		* Fixes an assert for  invalid menu entry on right click queue popup. 
+		* Fixes an assert for  invalid menu entry on right click queue popup.
 		* Mayor speedup on Highlight server (and thus on server connect/disconnect)
-		* Prevent removing the server we're connected at, either directly, on in a 
+		* Prevent removing the server we're connected at, either directly, on in a
 		   list of servers to delete, or in removing all servers. Warn the user with a
 		   message Box and then leave it non-deleted. Fixes crash.
 		* Fixed hangup on message sending
 		* New IPFilter code (reload & on/off)
-		* Added checkboxes on GUI Tweaks tab for download progress % 
+		* Added checkboxes on GUI Tweaks tab for download progress %
 		   and Bar drawing.
 		* Fixed a severe memleak on the % showing and speeded it up.
 		* Save 5 sources on rare files (<20 sources)
 		* New SetFileSize code to avoid cpu usage.
-		* Removed the List Show/Hide and slider that made too much 
+		* Removed the List Show/Hide and slider that made too much
 		   problems on 1.2.6. Safer version (and better) will be on 2.0.0 final.
 		* Speedups on Hash thread.
 		* Safer corrupt detection on FAT partitions
@@ -5693,7 +5725,7 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* Added code to check 0-size .part.met and load backup if needed.
 		* Fixed types.h and wintypes.h for proper Win32/Mac/linux compatibility.
 		* Added ECSocket code as common implementation for interaction between
-		   different UIs (webserver, amulecmd, etc). 
+		   different UIs (webserver, amulecmd, etc).
 		* Fixed intercomunication for little endian <-> big endian machines on ECSocket.
 		* Speedups on Endian Swap code & proper wxWindows way to detect it.
 		* Changed CArray to wxArray on most places for safety.
@@ -5704,7 +5736,7 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* Code cleanup
 
 	Creteil:
-		* Added the client detail dialog item for Securehash 
+		* Added the client detail dialog item for Securehash
 		* Fixed sockets.cpp includes for non-debian systems ;)
 		* Added Arabic, Chinese & Finnish to languages in Preferences
 
@@ -5727,7 +5759,7 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* ED2K-Links.HOWTO fix for some aMule/eMule error
 		* Added -ggdb -fno-inline to debug compilation flags
 		* Automatic category assignment for new downloads
-		* Updated AUTHORS file to reflect original eMule authors and give 
+		* Updated AUTHORS file to reflect original eMule authors and give
 			credit to original Linux port author (Timo Kujala aka Tiku)
 		* Win32 port 99% operative, next version will be Win32 compatible
 
@@ -5754,23 +5786,23 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* WebServer now use the more correct _("") for localized strings
 		* Created WebInterface.{h,cpp} for the web interface, and
                    cleaned WebServer.{h,cpp} code
-                          
+
 	neiro:
 		* Helped with OpenBSD port by providing a workbench
-		
+
 	Ganael Laplanche:
 		* FreeBSD port fixes
-		
+
 	PowerMike, hellimod:
 		* Helped a lot on future Mac port by giving ssh & vnc access
-		
+
 	deltaHF:
 	        * New toolbar icons (thx to everaldo.com)
 		* Added & enabled chinese, danish and hungarian translation
 		* Preferences (added/changed):
-		  IP-Filter reload and on/off buttons 
+		  IP-Filter reload and on/off buttons
 		  securehash -> secure ident
-		  media info 
+		  media info
 		  max connections: 25-7500
 		  upload queue: 500-1000
 		  max new connections / 5 sec: 5-500
@@ -5782,10 +5814,10 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* "Donated" amule-project.de
 	niet:
 		* Donated amule-project.net :-)
-		
+
 	bootstrap:
 		* CVS support
-		
+
 	Torsten SCHULZ:
 		* Added the % showing on progressbars.
 
@@ -5796,7 +5828,7 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		* Fixed CArray for MFC compatibility
 		* More rigid compatibility to MFC types
 		* Fixed misformatted strings and several warnings in WebServer.cpp
-	
+
 	Xaignar:
 		* Code cleanup in amule.* and otherfunctions.* and other files
 		* The Cleanup button in the File Details dialog no longer replaces "&" with "&&"
@@ -5809,31 +5841,31 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 	Citroklar:
 		* External Connections are now only done when configuration tells us so (thanks to tonar from #amule)
 		* crypto++ detection fix
-		
- 	aquatroll:
+
+	aquatroll:
 	        * Win32 compilation Support & Development.
-		
+
 	hellimod, PowerMike, godard, hoschy007:
 		* MacOSX compilation support
-		
-	dom:    
+
+	dom:
 		* Found the last  > 2GB bug ;)
-		
+
 	Special Thanks To:
-		
+
 		* All the bug-reporters, helpers, translators and users at http://forum.amule.org
-		
+
 		* eMule developers for their support. Long life to *Mule
-		
+
 		* FreshIRC & Freenode irc admins
-		
+
 		* People at #gentoo on freenode for their support, specially ferringb
-		
-		* The Testing Team: 
+
+		* The Testing Team:
 		   thepolish, efe, Citroklar, bizzY, KamiKazeNH, and anyone testing aMule.
-		
+
 		* New translators:
-		
+
 		Chinese:   nbfnw
 		Arabic:    hathalsal
 		Finnish:   eQualizer
@@ -5846,7 +5878,7 @@ Version 2.0.0-rc1 - The 'Mules and Rabbits love carrots' version.
 		Hungarian: biger [HUN]
 		Galician:  thorero
 		Hebrew:    denisliber
-	
+
 		* All aMule users!!!
 
 ---------------------------------------------------------------------------
@@ -5858,34 +5890,34 @@ Version 1.2.6
         Kry:
                * Improved Mac compatibility.
                * Fixed the i18n charset.
-               * Try to set the locale even if it seems to fail. 
+               * Try to set the locale even if it seems to fail.
 
-        Creteil: 
-               * Fixed the default Size to 800x600 for 1st time aMule launched without ~/.eMule config file. 
+        Creteil:
+               * Fixed the default Size to 800x600 for 1st time aMule launched without ~/.eMule config file.
 
-        shakraw: 
+        shakraw:
                * ExternalConn: new communication code using wxSockets.
                * Web interface: improved communication performance.
-               * Text interface: now using new wxSockets code. 
+               * Text interface: now using new wxSockets code.
 
-        pil0t: 
-               * Fix for the geometry on start. 
+        pil0t:
+               * Fix for the geometry on start.
 
-        pure_ascii: 
+        pure_ascii:
                * Added sorting to filename list in file details.
                * Added "Takeover" by doubleclick in file details.
                * Fixed preferences window popping up on "Show/Hide UL/DL" in download list.
-               * i18n stuff (Systray). 
+               * i18n stuff (Systray).
 
-        rubber30: 
-               * Fixed viewing and sorting by LastSeenComplete and LastReception. 
+        rubber30:
+               * Fixed viewing and sorting by LastSeenComplete and LastReception.
 
         Emilio Sandoz:
                * Converted stats calculations to 64bit where necessary (for uptime >49days).
                * i18n strings fixed.
-               * gcc 2.95 compilation fix. 
+               * gcc 2.95 compilation fix.
 
-        deltaHF: 
+        deltaHF:
                * i18n stuff.
 
 ---------------------------------------------------------------------------
@@ -5910,36 +5942,36 @@ Version 1.2.5
 		  speed up there.
 		* Fixed a duplicated server_list delete
 		* Server IP# filter.
-		
+
 	Shakraw:
-		* Added missing string in GetDownloadFileInfo() causing SIGSEGV when 
+		* Added missing string in GetDownloadFileInfo() causing SIGSEGV when
 		  called.
 		* Fixed the amuleweb login problem.
-		* Added GetWebList() support. 
-		* amuleweb's search feature complete. Now it is possible to search, 
+		* Added GetWebList() support.
+		* amuleweb's search feature complete. Now it is possible to search,
 		  download and web-search on filedonkey
-		* Fixed a write error in SETMAXGRAPHUPLOADRATE 
+		* Fixed a write error in SETMAXGRAPHUPLOADRATE
 		* Added support for statistic text infos for web interface (Statistics link)
 		* Fixed two bugged index causing crashes on Webserver.cpp
 		* Little improvement for server list request (now responses are much faster)
 		* Generally improved External Connections.
 		* Fixed search type feature for web interface
 		* Fixed amule crashes when quitting from amuleweb during requests
-		
+
 	umale:
 		* Fixed debugloglines on ListenSocket.cpp ServerSocket.cpp having too
 		  much arguments.
 		* SysTray code will not be compiled if disabled
 		* Fixed 5 wrong delete -> delete[]
 		* Converted po-files
-	
+
 	Emilio Sandoz:
-		* Statistics graphs: 
-		    Param changes reversible; 
-		    Color change now works; 
-		    Active connections rescaling now works; 
+		* Statistics graphs:
+		    Param changes reversible;
+		    Color change now works;
+		    Active connections rescaling now works;
 		    Graphs and tree suspended when not visible.
-		* Set correct initial radio button in Systray integration dialog  
+		* Set correct initial radio button in Systray integration dialog
 		* Simplified statistics graph averaging
 		* Corrected UL loop for timer errors
 		* Simplified UL rate averaging
@@ -5949,12 +5981,12 @@ Version 1.2.5
 		    Reduced initial spiking
 		    Generally improved speed and CPU/RAM usage.
 		* Search window column widths remembered between searches & saved in preferences
-		* Statistics preferences dialog: changes are now applied on-the-fly (with proper 
+		* Statistics preferences dialog: changes are now applied on-the-fly (with proper
 		  Cancel semantics)
 		* Eliminated possibility of root directory being invisibly shared
-		
+
 	Kry:
-		* Added some sanity checks to avoid losing *.part.met files on 
+		* Added some sanity checks to avoid losing *.part.met files on
 		  power failure. 0-Size files are never written.
 		* Fixed the 'all time transfered' on Shared Files window
 		  This one fixed some eMule/aMule incompatibility on part.met files
@@ -5969,7 +6001,7 @@ Version 1.2.5
 		* Fixed the server windows splitter. Or sash. Whatever.
 		* Imported all the other ListenSocket.cpp code from 0.30e
 		* Fixed 'View Shared Files'. No multiple tabs, also.
-		* Added theApp.listensocket->StartListening() on startup. 
+		* Added theApp.listensocket->StartListening() on startup.
 		  Really. Don't ask me why it worked before.
 		* Fixed the systray bug where speed bar was always 10 times smaller.
 		* Added lots of vars initilization that fixed some crashes.
@@ -5983,19 +6015,19 @@ Version 1.2.5
 		* Fixed download rate overhead calculation
 		* New HeapSort() and NewSrcPartsInfo() ported from eMule 0.30e
 		* wxGTK 2.5 compilation fixes
-		* Fixed the 'rehashing of files on restart' problem. 
+		* Fixed the 'rehashing of files on restart' problem.
 		* Fixed a missing "Error" message on console when partfile loading failed.
 		* i18n activated, GNU xgettext compatible.
-		* Fixed bug on OP_REQUESTFILENAME packet that made eMule clients to disconnect 
+		* Fixed bug on OP_REQUESTFILENAME packet that made eMule clients to disconnect
 		  from us. eMule clients got our version of client and expected to get the
-		  new OP_REQUESTFILENAME from eMule 0.30. Thanks to John & BlubbX from eMule 
+		  new OP_REQUESTFILENAME from eMule 0.30. Thanks to John & BlubbX from eMule
 		  team for the report and help tracking down it.
 		* Fixed several i18n bugs from xMule times.
 		* Fixed the lseek error on console and window popup when canceling a file
 		  that is transfering.
-		* First implementation of selectable refresh. The refresh is bugged - it 
+		* First implementation of selectable refresh. The refresh is bugged - it
 		  deletes the info on screen, except for about 1 sec, every time
-		  seconds_defined_on_preferences is reached. 
+		  seconds_defined_on_preferences is reached.
 		* Used selectable refresh code for SysTray-hiden cpu lower.
 		* New option on right-click on downloadlist: Hide/Show lists.
 		* Minimize on startup works now.
@@ -6017,57 +6049,57 @@ Version 1.2.5
 		* Sanity check to avoid user pushing buttons before aMule is ready for it.
 
 	thermoman:
-		* Made aMule gcc 2.95 compatible	
-				  
+		* Made aMule gcc 2.95 compatible
+
 	seneca:
 		* Near finished all i18n stuff. We expect aMule 1.2.5 is fully i18n-compatible
 		* Added wxT() Macro for Unicode Support (not functional yet)
-		
+
 	Citroklar:
 		* Testing, lots of testing. Bug-tracker.
 		* Found the versions that introduced the upload bug and made a nice diff.
 		  We could look at code for years, without seeing it. Nice guy.
 		* Fixed README, amulesig.txt.
-	
+
 	gjn:
 		* Fixed bug in creditsystem.
-		
+
 	jmccorm:
 		* Fixed "Close This Searchresult" -> "Close This Search Result"
 		* Fixed some typos.
-		
+
 	lemonfan:
 		* Fixed stopped files being counted on CheckDiskSpace()
 		* Progressbar fixes on webserver implementation.
 		* Several crashes fixed by adding sanity checks to reqfile
-		
+
 	deltastar (on irc channel):
 		* Fixes the > 2Gb files problem caused by a bug on CFile wrapper.
-	
+
 	deltaHF:
 	        * i18n stuff
-	
+
 	pure_ascii:
-		* fixed recreation of filename list in file details 
-		* scrolling and selecting filenames works now 
-	
+		* fixed recreation of filename list in file details
+		* scrolling and selecting filenames works now
+
 	hellimod:
 		* BSD and Mac support. We're very near to the Mac aMule.
-		
+
 	niet:
 		* Donated www.amule.org!
 
 	Creteil:
 		* Change order in the notebook for logs in Servers Window
 		* Updated the logo for webserver from eMule logo to aMule one
-		* Fixed Switching to Searches Window Bug when removing all servers 
+		* Fixed Switching to Searches Window Bug when removing all servers
 		  in Servers Window
 		* Changed default server list from 'best' to 'max', then 'max' to 'best' again
 		* Fixed the default systray value on preferences.
 		* Added debug values on UploadQueue.
 		* Changed max Slot Allocation to 30Kb/s
 		* Fixed typo in Preferences
-		* Implemented notebook in Server Window 
+		* Implemented notebook in Server Window
 		  (merged 'Server Info' & 'aMule Log' windows in a notebook)
 		* Fixed bug crashing aMule on Server Window Notebook implementation.
 		* Now, if no --geometry width & size used, aMule starts with 800x600 as default
@@ -6080,7 +6112,7 @@ Version 1.2.5
 		* Added the Language listbox on preferences.
 
 	special thx to:
-		
+
 		* Our translators:
 
 		   german:       emperor, hariolf, crazeee, neolino (M$ user), deltaHF
@@ -6101,14 +6133,14 @@ Version 1.2.5
 		  Specially BrianHV, raboof and ajjl.
 
 		* All eMule devs for being so nice and work close with aMule team now.
-		
+
 		* Madcat, from Sharedaemon team (sharedaemon.sf.net) for his support
 		  and friendship.
 
 		* All aMule users!!!
-				
+
 ---------------------------------------------------------------------------
-		
+
 Version 1.2.4
 -------------
 2004-01-10
@@ -6128,12 +6160,12 @@ The "Happy New Year!" version.
 
 	Kry:
 		* New ProcessLocalRequest ported from eMule 0.30e.
-		* Fixed crash on DownloadQueue caused by a CString being passed 
+		* Fixed crash on DownloadQueue caused by a CString being passed
 		  through "...".
 		* Nice CPU usage drop with new GetSourcesCount code.
 		* Some little speed optimizations here and there.
-		* Fixed bug on second mule starting. 
-		  Now amule also spawns two servers for external connection, one 
+		* Fixed bug on second mule starting.
+		  Now amule also spawns two servers for external connection, one
 		  local and one TCP (optional).
 		* Added gsocket-2.5.* from wxGTK2.5's gsocket files.
 		  This files are patched to fix LOWID.
@@ -6150,11 +6182,11 @@ The "Happy New Year!" version.
 		* New configure option: --with-curl-prefix
 		  Also fixed CURL_LIBS and CURL_FLAGS to be passed to compiler/linker
 		* Weird I18N bugs fixed (labels, etc)
-		* Cleanups and code cleaning on 
-		  ServerSocket.cpp DownloadQueue.cpp PartFile.cpp 
+		* Cleanups and code cleaning on
+		  ServerSocket.cpp DownloadQueue.cpp PartFile.cpp
 		* Fixed compiler warnings on:
 			TextClient.cpp PartFile.cpp
-		
+
 	pure_ascii:
 		* More docs/ cleaning.
 
@@ -6199,8 +6231,8 @@ The "Happy New Year!" version.
 		* Global "sys.h" inclusion policy.
 		* --enable-libcwd configure option: Use libcwd.
 		* Makefile.am (SUBDIRS): Include intl and correct order.
-		* configure.in 
-			(AM_MAINTAINER_MODE): Add. 
+		* configure.in
+			(AM_MAINTAINER_MODE): Add.
 			(AC_CONFIG_FILES)   : Add intl/Makefile.
 			Add --enable-static.
 		* configure.in (EXPORT_DYN_FLAGS): Removed.
@@ -6215,16 +6247,16 @@ The "Happy New Year!" version.
 	Emilio Sandoz:
 		* Patched stats for acurate resizing / scale.
 		* Fix for inflated UL/DL rates in Transfer and Statistics windows
-		* Debug code for UL/DL rate measurement in UploadQueue.cpp 
+		* Debug code for UL/DL rate measurement in UploadQueue.cpp
 		  (activate with '#define MEASURE_LOST_CYCLES 1')
 
-	Seneca: 
+	Seneca:
 		* I18N:
 		  ListenSocket.cpp PartFile.cpp ServerList.cpp
 		  ServerSocket.cpp SharedFileList.cpp sockets.cpp
 		  WebServer.cpp PartFile.cpp UploadClient.cpp
 		  ClientCredits.cpp ClientUDPSocket.cpp.
-		   
+
 ---------------------------------------------------------------------------
 
 Version 1.2.2
@@ -6242,8 +6274,8 @@ Version 1.2.1
 	Kry:
 		* Now amule shows icon on taskbar and main window
 		* amulecmd now compiles under win32 using dialogs to get
-		  port, hostname and password. 
-		* Added clientversion on download list. 
+		  port, hostname and password.
+		* Added clientversion on download list.
 		* Modified configure script and makefiles for faster
 		  compilation and smaller binaries.
 		* Fixed nasty download list bug due to memory corruption
@@ -6287,8 +6319,8 @@ Version 1.2.1
 		* Added zlib fixes from eMule 0.30e code.
 
 	Hetfield:
-		* Added new server list fetching via libcurl libs and wxThread, 
-		  thus removing wget usage from amule.		 
+		* Added new server list fetching via libcurl libs and wxThread,
+		  thus removing wget usage from amule.
 		* Modified configure to check libcurl presence.
 		* Changed thread file completion from pthread to wxThread.
 
@@ -6305,7 +6337,7 @@ Version 1.2.1
 		  brand.
 
 	Unleashed:
-		* Typo and cosmetic changes on configure script 
+		* Typo and cosmetic changes on configure script
 		* Cleaned and optimised several files.
 
 	Creteil:
@@ -6348,7 +6380,7 @@ Version 1.2.0
 		* Imported ResetFileStatusInfo() (minor import)
 		* Fixed the bug that made files >2.4Gb get sorted as if size < 0 bytes
 		* Fixed the search types bug.
-		* Fixed Small Files bug. 
+		* Fixed Small Files bug.
 		  Thanks to Citroklar for his research on this one.
 		  He tested all versions to find when did the bug enter amule.
 		* Added new hashshet handling for sources.
@@ -6356,7 +6388,7 @@ Version 1.2.0
 		* Finished porting of NewSrcPartsInfo started by Creteil
 		* New standalone app: amulecmd.
 		* gsocket.c no longer gets compiled if wx version >=2.5
-		* Added --disable-amulecmd to configure		
+		* Added --disable-amulecmd to configure
 		* Added check on configure for wxbase (needed for amulecmd)
 
 	Hetfield:
@@ -6375,15 +6407,15 @@ Version 1.2.0
 
 	Creteil:
 		* Updated ServerSocket.cpp for bOutputMessage we always send even on error ...
-		* Fixed all 'return statements' in all Lists 
-		* Set minimum refresh for stats tree slider to 5 seconds 
+		* Fixed all 'return statements' in all Lists
+		* Set minimum refresh for stats tree slider to 5 seconds
 		* Fixed several CVS crashes due to indentation & porting bugs.
 		* Fixed downloadlist expand crash.
 		* Connect 'Verbose (additional program feedback)' CheckBox to some debug in log window and logfile
 		* Fixed bug in ServerList Window when changing priority
 		* Added preferences box for KeepAlive time.
 		* Imported code from eMule 0.30
-		  GetMaxFilesPerUDPServerPacket() SendGlobGetSourcesUDPPacket()	
+		  GetMaxFilesPerUDPServerPacket() SendGlobGetSourcesUDPPacket()
 		  GetSoftFiles() SetSoftFiles()	GetHardFiles() SetHardFiles()
 		  SetVersion() DbgGetFileInfo()
 
@@ -6520,7 +6552,7 @@ Version 1.0.8
 	  Shows speed.
 	  Let you iconify and hide aMule.
 	  Shows your infos like ip, hash, server, GB, etc ...
-	  Let you disconnect and reconnect. 
+	  Let you disconnect and reconnect.
 
  - Need to be Fixed :
 
diff --git a/docs/Doxyfile b/docs/Doxyfile
index 56b99f1..dab7c55 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -23,7 +23,7 @@ PROJECT_NAME           = aMule
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
 
-PROJECT_NUMBER         = 2.3.1
+PROJECT_NUMBER         = 2.4.0
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 # base path where the generated documentation will be put. 
diff --git a/docs/EC_Protocol.txt b/docs/EC_Protocol.txt
index ee88ad2..5e3f948 100644
--- a/docs/EC_Protocol.txt
+++ b/docs/EC_Protocol.txt
@@ -82,7 +82,7 @@ Section 1.1: Transmission layer
 
 
     Transmission layer example:
-    	0x30 0x23 <appdata>	- Client uses no extensions on this packet,
+	0x30 0x23 <appdata>	- Client uses no extensions on this packet,
 		and indicates that it can accept zlib compression and
 		compressed numbers.
 
@@ -121,12 +121,12 @@ Section 1.2: Application layer
 	    <tag data>
 
     The ec_tagname_t is defined as an uint16, ec_taglen_t as an uint32 value
-    at the moment. ec_tagtype_t is an uint8. 
+    at the moment. ec_tagtype_t is an uint8.
 	TagName tells what it contains (see ECcodes.h for details).
 	TagType sends the type of this tag (see ECPacket.h for types)
     TagLen contains the whole length of the tag, including the lengths of the
-    possible sub-tags, but without the size of the tagName, tagType and 
-	tagLen fields. Actually the lowest bit of the tagname doesn't belong to the 
+    possible sub-tags, but without the size of the tagName, tagType and
+	tagLen fields. Actually the lowest bit of the tagname doesn't belong to the
 	tagName itself, so it has to be cleared before checking the name.
 
     Tags may contain sub-tags to store the information, and a tagCount field
@@ -212,7 +212,7 @@ Section 3: Clarifying things
     connection.
 
     EC_OP_AUTH_REQ (0x02)
-        +----EC_TAG_CLIENT_NAME (0x06) (optional)	
+        +----EC_TAG_CLIENT_NAME (0x06) (optional)
         +----EC_TAG_PASSWD_HASH (0x04)
         +----EC_TAG_PROTOCOL_VERSION (0x0c)
         +----EC_TAG_CLIENT_VERSION (0x08) (optional)
diff --git a/docs/INSTALL b/docs/INSTALL
index 2c8a45a..19bc1d4 100644
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -26,7 +26,7 @@
       mappings in the GUI;
     * gettext >= 0.11.5 if you want to enable NLS (Native Language Support).
 
-  It is known to compile with GCC 3.2, 3.3, 3.4, 4.1, 4.2 and 4.3; 
+  It is known to compile with GCC 3.2, 3.3, 3.4, 4.1, 4.2 and 4.3;
   Sun Studio 12 and MSVC. GCC 2.95 is not supported.
 
   aMule requires a wxWidgets builds that supports unicode. Since wxWidgets
@@ -37,7 +37,7 @@
   from source be sure to always test your compilation with `cryptest.exe v'.
   (Yes, it's called cryptest.exe on all platforms.) Only when all tests
   passed may you safely go on with compiling aMule.
-  Adding "-DCRYPTOPP_DISABLE_ASM -O1" to CXXFLAGS is known to resolve 
+  Adding "-DCRYPTOPP_DISABLE_ASM -O1" to CXXFLAGS is known to resolve
   these problems.
 
 
@@ -45,7 +45,7 @@
 -----------------
 
   Compiling and installing aMule is as easy as running the usual
-  
+
     ./configure
     make
     make install
@@ -73,7 +73,7 @@
     --enable-alc              compile aMuleLinkCreator GUI version
     --enable-alcc             compile aMuleLinkCreator for console
     --disable-monolithic      disable building of the monolithic aMule app
-	
+
   For a full list of available options run `./configure --help' from the
   aMule source directory.
 
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 838ad5b..de1b481 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -8,7 +8,7 @@ dist_doc_DATA = \
 	license.txt \
 	README \
 	TODO \
-	EC_Protocol.txt 
+	EC_Protocol.txt
 
 EXTRA_DIST = \
 	Doxyfile \
diff --git a/docs/Makefile.in b/docs/Makefile.in
index acf100e..c844f64 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -39,23 +39,23 @@ DIST_COMMON = README $(dist_doc_DATA) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in ABOUT-NLS AUTHORS COPYING INSTALL TODO
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -151,6 +151,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -177,6 +183,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -267,6 +274,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -360,7 +368,7 @@ dist_doc_DATA = \
 	license.txt \
 	README \
 	TODO \
-	EC_Protocol.txt 
+	EC_Protocol.txt
 
 EXTRA_DIST = \
 	Doxyfile \
diff --git a/docs/README.Asio.txt b/docs/README.Asio.txt
new file mode 100644
index 0000000..49ee5bc
--- /dev/null
+++ b/docs/README.Asio.txt
@@ -0,0 +1,46 @@
+aMule with Boost ASIO networking - by Stu Redman
+
+We are still having some networking problems with wxWidgets, even with 2.8.12.
+With wx 2.9 SVN networking was completely broken for some versions. So I wanted to see
+how a different networking layer behaves, and if it is even possible to integrate
+in aMule.
+I decided on Boost ASIO because of the good reputation of the Boost library.
+
+The goal is to have an aMule which can be configured to use either wx Sockets
+or ASIO sockets for all major tasks (this may exclude things like http download).
+And with ASIO sockets it should perform better at least in some aspects 
+(stability, speed, CPU, memory) for this endeavour to make sense.
+
+There are no plans to "boostify" aMule. Boost is encapsulated in the implementation
+and not even included in the headers.
+
+Implementation is near complete. It's been tested in Windows and Linux.
+More testing is required.
+
+In some environments using Boost saves a lot of CPU, in others it doesn't.
+
+Not done yet:
+- better error handling/error messages
+- further abstraction (replace wx socket constants in code)
+- make use of background resolve for AsyncDNS instead of spawning a thread
+
+If you like to play with new stuff I'd like you to try it out and give me feedback.
+Especially if you are having networking problems or out of memory crashes, or if you
+are running aMule at high speeds.
+
+
+Compilation:
+
+Get current boost lib from www.boost.org . Extract it to your favorite 
+place (like ~/amule/boost_1_49_0).
+Boost.Asio is header-only. It requires Boost.System for its error codes,
+but we include the single .cpp directly, so we don't need to build
+anything of boost.
+
+Configure aMule using
+  ./configure --with-boost
+or
+  ./configure --with-boost=/path/to/boost/sources
+
+Important: aMule prints "Asio thread started" in log and console on startup. 
+If it doesn't you have probably configured it to use wx sockets!
diff --git a/docs/README.Mac.txt b/docs/README.Mac.txt
index 4901aad..0567798 100644
--- a/docs/README.Mac.txt
+++ b/docs/README.Mac.txt
@@ -21,7 +21,7 @@ aMule contains a lot of features that are only accessible through pop-up menus,
 
 If you haven't bought an additional multi-button mouse with your Mac, you only have one mouse button (the one that corresponds to a left-click or "normal" click on a multi-button mouse). Fortunately, you can emulate the second button by HOLDING DOWN THE CONTROL-KEY ON THE KEYBOARD WHILE YOU CLICK. For example, do a "control-click" now on a file that you are downloading and see how a pop-up menu shows up with further option.
 
-If you want to discover all of aMule's hidden functionalities just try to control-click everything that moves.  
+If you want to discover all of aMule's hidden functionalities just try to control-click everything that moves.
 This includes all the lists of files, clients & servers, all the labels on the top of these lists (e.g. "File Name"), the bar "all" at the top of the download window, ...
 
 By the way, these emulated right-clicks work system-wide. Just try control-clicking a file in the Finder, an icon in the Dock, a marked word in TextEdit or MS Word.
diff --git a/docs/amulesig.txt b/docs/amulesig.txt
index 6dcde16..b060590 100644
--- a/docs/amulesig.txt
+++ b/docs/amulesig.txt
@@ -38,7 +38,7 @@
    8		0		As online	Number of clients waiting for upload	As online
    9		0		As online	Number of shared files			As online
   10		As online	As online	Nick used on the ed2k network		As online
-  11		As online	As online	Total download in bytes 		As online
+  11		As online	As online	Total download in bytes			As online
   12		As online	As online	Total upload in bytes			As online
   13		As online	As online	aMule version				As online
   14		0		As online	Total Downloaded in Session in bytes	As online
diff --git a/docs/man/Makefile.am b/docs/man/Makefile.am
index 940c093..bb30583 100644
--- a/docs/man/Makefile.am
+++ b/docs/man/Makefile.am
@@ -14,7 +14,9 @@ EXTRA_DIST = \
 	amule.hu.1 amuled.hu.1 amulecmd.hu.1 amulegui.hu.1 amuleweb.hu.1 ed2k.hu.1 \
 	amule.it.1 amuled.it.1 amulecmd.it.1 amulegui.it.1 amuleweb.it.1 ed2k.it.1 \
 	amule.ru.1 amuled.ru.1 amulecmd.ru.1 amulegui.ru.1 amuleweb.ru.1 ed2k.ru.1 \
-	amule.tr.1 amuled.tr.1 amulecmd.tr.1 amulegui.tr.1 amuleweb.tr.1 ed2k.tr.1
+	amule.tr.1 amuled.tr.1 amulecmd.tr.1 amulegui.tr.1 amuleweb.tr.1 ed2k.tr.1 \
+	amule.zh_TW.1 amuled.zh_TW.1 amulecmd.zh_TW.1 amulegui.zh_TW.1 amuleweb.zh_TW.1 ed2k.zh_TW.1
+
 
 EXTRA_DIST += po4a.config
 
diff --git a/docs/man/Makefile.in b/docs/man/Makefile.in
index d8da89a..c8100fc 100644
--- a/docs/man/Makefile.in
+++ b/docs/man/Makefile.in
@@ -39,23 +39,23 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = docs/man
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -88,6 +88,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -114,6 +120,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -204,6 +211,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -306,7 +314,8 @@ EXTRA_DIST = amule.1 amuled.1 amulecmd.1 amulegui.1 amuleweb.1 ed2k.1 \
 	amuleweb.it.1 ed2k.it.1 amule.ru.1 amuled.ru.1 amulecmd.ru.1 \
 	amulegui.ru.1 amuleweb.ru.1 ed2k.ru.1 amule.tr.1 amuled.tr.1 \
 	amulecmd.tr.1 amulegui.tr.1 amuleweb.tr.1 ed2k.tr.1 \
-	po4a.config
+	amule.zh_TW.1 amuled.zh_TW.1 amulecmd.zh_TW.1 amulegui.zh_TW.1 \
+	amuleweb.zh_TW.1 ed2k.zh_TW.1 po4a.config
 EXTRA__DIST__SUBDIRS = po
 MAINTAINERCLEANFILES = Makefile.in
 all: all-am
diff --git a/docs/man/amule.zh_TW.1 b/docs/man/amule.zh_TW.1
new file mode 100644
index 0000000..ca26809
--- /dev/null
+++ b/docs/man/amule.zh_TW.1
@@ -0,0 +1,89 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH AMULE 1 "2011 十一月" "aMule v2.3.1" aMule
+.als B_untranslated B
+.als RB_untranslated RB
+.SH 名稱
+amule \- 跨平台的 eMule P2P 客戶端程式
+.SH 簡介
+.B_untranslated amule
+[\fB\-c\fP \fI<路徑>\fP] [\fB\-geometry\fP \fI<視窗狀態>\fP]
+.RB_untranslated [ \-o ]
+.RB_untranslated [ \-r ]
+[\fB\-w\fP \fI<路徑>\fP]
+.RB_untranslated [ \-d ]
+.RB_untranslated [ \-i ]
+[\fB\-t\fP \fI<號碼>\fP] [\fIeD2k 連結\fP]
+
+.B_untranslated amule
+.RB_untranslated [ \-v ]
+
+.B_untranslated amule
+.RB_untranslated [ \-h ]
+
+.SH 說明
+.TP 
+\fB[ \-c\fP \fI<路徑>\fP, \fB\-\-config\-dir\fP=\fI<路徑>\fP \fB]\fP
+從 \fI<path>\fP 讀取設定檔,而不是個人目錄
+.TP 
+\fB[ \-geometry \fP\fI<視窗狀態>\fP \fB]\fP
+設定這個應用程式的視窗狀態。\fI<視窗狀態>\fP 使用和 X11
+應用程式一樣的格式:	[\fB=\fP][\fI<寬度>\fP{\fBxX\fP}\fI<高度>\fP][{\fB+\-\fP}\fI<X
+偏移>\fP{\fB+\-\fP}\fI<Y 偏移>\fP]
+.TP 
+.B_untranslated [ \-o\fR, \fB\-\-log\-stdout ]\fR
+將程式記錄顯示在標準輸出。
+.TP 
+.B_untranslated [ \-r\fR, \fB\-\-reset\-config ]\fR
+將設定重設為預設值。
+.TP 
+\fB[ \-w\fP \fI<路徑>\fP, \fB\-\-use\-amuleweb\fP=\fI<路徑>\fP \fB]\fP
+設定 amuleweb 的執行檔位置在 \fI<路徑>\fP。
+.TP 
+.B_untranslated [ \-d\fR, \fB\-\-disable\-fatal ]\fR
+不處理嚴重錯誤。
+.TP 
+.B_untranslated [ \-i\fR, \fB\-\-enable\-stdin ]\fR
+不停用標準輸入。
+.TP 
+\fB[ \-t\fP, \fB\-\-category\fP=\fI<號碼>\fP \fB]\fP
+給輸入成功的 eD2k 連結分類編號為 \fI<號碼>\fP
+.TP 
+.B_untranslated [ \-v\fR, \fB\-\-version ]\fR
+顯示目前的版本號碼。
+.TP 
+.B_untranslated [ \-h\fR, \fB\-\-help ]\fR
+顯示簡短的使用說明。
+.TP 
+\fB[ eD2k 連結 ]\fP
+將 eD2k 連結加到核心。
+.PP
+可以使用以下幾種 eD2k 連結:
+.RS 3
+.IP \(bu 2
+檔案連結 (ed2k://|file|...),會將檔案加入下載等候區;
+.IP \(bu 2
+伺服器連結 (ed2k://|server|...),會將伺服器加入 aMule 的伺服器清單;
+.IP \(bu 2
+伺服器清單連結,在清單內的伺服器會被加入 aMule 的伺服器清單;
+.IP \(bu 2
+magnet 連結。
+.RE
+.SH 附註
+.SS 路徑
+對於有 \fI<路徑>\fP 的選項,如果 \fI路徑\fP 裏面沒有含目錄 (即只有單純檔名),則會被認為是在 aMule 的設定檔所在目錄
+\fI~/.aMule\fP 下。
+.SH 檔案
+~/.aMule/*
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated alc\fR(1), \fBalcc\fR(1), \fBamuled\fR(1), \fBamulecmd\fR(1), \fBamulegui\fR(1), \fBamuleweb\fR(1), \fBcas\fR(1), \fBed2k\fR(1), \fBwxcas\fR(1), \fBxas\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/docs/man/amulecmd.zh_TW.1 b/docs/man/amulecmd.zh_TW.1
new file mode 100644
index 0000000..81e71b1
--- /dev/null
+++ b/docs/man/amulecmd.zh_TW.1
@@ -0,0 +1,247 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH AMULECMD 1 "2011 十一月" "aMuleCmd v2.3.1" "aMule 的工具程式"
+.als B_untranslated B
+.als RB_untranslated RB
+.als SS_untranslated SS
+.SH 名稱
+amulecmd \- 終端機模式下控制 aMule 的程式
+.SH 簡介
+.B_untranslated amulecmd
+[\fB\-h\fP \fI<主機>\fP] [\fB\-p\fP \fI<通訊埠>\fP] [\fB\-P\fP \fI<密碼>\fP]
+[\fB\-f\fP \fI<路徑>\fP]
+.RB_untranslated [ \-q ]
+.RB_untranslated [ \-v ]
+[\fB\-l\fP \fI<語言>\fP] {\fB \fP[\fB\-w\fP]\fB \fP|\fB \fP[\fB\-c\fP \fI<指令>\fP]\fB \fP}
+
+.B_untranslated amulecmd
+[\fB\-\-create\-config\-from\fP=\fI<路徑>\fP]
+
+.B_untranslated amulecmd
+.RB_untranslated [ \-\-version ]
+
+.B_untranslated amulecmd
+.RB_untranslated [ \-\-help ]
+.SH 說明
+\fBamulecmd\fP 是終端機模式下控制 aMule 的的客戶端程式。
+.TP 
+\fB[ \-h\fP \fI<主機>\fP, \fB\-\-host\fP=\fI<主機>\fP \fB]\fP
+正在執行 aMule 核心的主機 (預設:\fI本機\fP), \fI<主機>\fP 可以是 IP 位址或網域名稱
+.TP 
+\fB[ \-p\fP \fI<通訊埠>\fP, \fB\-\-port\fP=\fI<通訊埠>\fP \fB]\fP
+aMule 外部連線用的通訊埠,在 偏好設定 >  遠端控制 設定 (預設:\fI4712\fP)
+.TP 
+\fB[ \-P\fP \fI<密碼>\fP, \fB\-\-password\fP=\fI<密碼>\fP \fB]\fP
+外部連線密碼。
+.TP 
+\fB[ \-f\fP \fI<路徑>\fP, \fB\-\-config\-file\fP=\fI<路徑>\fP \fB]\fP
+使用指定的設定檔,預設是 \fI~/.aMule/remote.conf\fP
+.TP 
+.B_untranslated [ \-q\fR, \fB\-\-quiet ]\fR
+不將任何資訊顯示在標準輸出。
+.TP 
+.B_untranslated [ \-v\fR, \fB\-\-verbose ]\fR
+詳細模式 \- 也顯示除錯訊息。
+.TP 
+\fB[ \-l\fP \fI<語言>\fP, \fB\-\-locale\fP=\fI<語言>\fP \fB]\fP
+設定程式的語系 (語言)。請看 \fB附註\fP 章節裏關於 \fI<語言>\fP 參數的說明。
+.TP 
+.B_untranslated [ \-w\fR, \fB\-\-write\-config ]\fR
+將命令列選項寫入設定檔後離開
+.TP 
+\fB[ \-c\fP \fI<指令>\fP, \fB\-\-command\fP=\fI<指令>\fP \fB]\fP
+像在 amulecmd 的命令列模式下一樣,執行 \fI<指令>\fP 後離開。
+.TP 
+\fB[ \-\-create\-config\-from\fP=\fI<路徑>\fP \fB]\fP
+參考 \fI<path>\fP 裏的資料來建立設定檔後離開。(\fI<path>\fP 裏必須有有效的 aMule 設定檔)
+.TP 
+.B_untranslated [ \-v\fR, \fB\-\-version ]\fR
+顯示目前的版本號碼。
+.TP 
+.B_untranslated [ \-h\fR, \fB\-\-help ]\fR
+顯示簡短的使用說明。
+.SH 指令
+所有指令都不分大小寫。
+.SS "Add \fI<eD2k 連結>\fP | \fI<magnet 連結>\fP"
+將 eD2k 連結或 magnet 加到核心。
+
+可以使用以下幾種 eD2k 連結:
+.RS 3
+.IP \(bu 2
+檔案連結 (ed2k://|file|...),會將檔案加入下載等候區;
+.IP \(bu 2
+伺服器連結 (ed2k://|server|...),會將伺服器加入 aMule 的伺服器清單;
+.IP \(bu 2
+伺服器清單,所有在這個清單內的伺服器都會被加到 aMule 的伺服器清單。
+.RE
+
+magnet 連結裏必須包含 eD2k 的 hash 值和檔案大小。
+.SS "Cancel \fI<hash 值>\fP | \fI<編號>\fP"
+取消下載指定的檔案,指定方式:\fI<hash 值>\fP 或 \fI<編號>\fP;要查詢數值請用 \fBshow\fP。
+.SS "connect [ \fIkad\fP | \fIed2k\fP | \fI<IP | 網域名稱>\fP ]"
+連線到網路。
+
+這樣將會連線到在偏好設定中啟用的所有網路。
+
+用這個選項參數,你可以指定要連線到哪個網路:用「IP:port」格式指定伺服器的位址 (IP 可以用有小數點的十進位 IPv4 網址,或是可從 DNS
+轉換的網域名稱),aMule 就會只連線到那個伺服器。
+.SS_untranslated Disconnect [ \fIed2k\fP | \fIkad\fP ]
+中斷所有已連線的網路,或只中斷指定的網路連線。
+.SS "download \fI<編號>\fP"
+開始下載檔案。
+
+\fI<編號>\fP 指上次搜尋檔案時的結果。例如:「download 12」會下載上次搜尋時編號 12 的檔案。
+.SS_untranslated Exit
+始 amule/amuled 斷線,並離開 amulecmd。
+.SS "get \fI<目標>\fP"
+取得並顯示某個偏好設定的值。
+
+\fI<目標>\fP 參數可用的值:
+.RS
+.IP BwLimits 10
+取得頻寬限制。
+.IP IPFilter 10
+取得 IP 過濾器的偏好設定。
+.RE
+.SS "help [ \fI<命令>\fP ]"
+顯示使用說明。如果沒有加參數,會顯示可用的指令一覽;如果加了 \fI<指令>\fP 參數,會顯示該指令的簡單說明。
+.SS "pause \fI<hash 值>\fP | \fI<編號>\fP"
+暫停下載指定的檔案,指定方式:\fI<hash 值>\fP 或 \fI<編號>\fP;要查詢數值請用 \fBshow\fP。
+.SS "priority \fI<優先程度>\fP \fI<hash 值>\fP | \fI<編號>\fP"
+用 \fI<hash 值>\fP 或 \fI<編號>\fP 設定下載檔案的優先程度。
+
+可用在 \fI<優先度>\fP 的參數:
+.RS
+.IP Auto 10
+自動優先權。
+.IP High 10
+高優先權。
+.IP Low 10
+低優先權。
+.IP Normal 10
+一般優先權。
+.RE
+.SS_untranslated Progress
+顯示正在進行中的搜尋進度。
+.SS_untranslated Quit
+功能和 \fBexit\fP 一樣的指令。
+.SS "reload \fI<目標>\fP"
+重新載入指定的物件。
+
+\fI<目標>\fP 參數可用的值:
+.RS
+.IP Shared 10
+重新載入分享檔案清單。
+.IP IPFilter 10
+重新載入 IP 過濾器資料。
+.RE
+.SS_untranslated Reset
+清除記錄。
+.SS_untranslated Results
+顯示上次搜尋的結果。
+.SS "resume \fI<hash 值>\fP | \fI<編號>\fP"
+繼續下載指定的檔案,指定方式:\fI<hash 值>\fP 或 \fI<編號>\fP;要查詢數值請用 \fBshow\fP。
+.SS "search \fI<種類>\fP \fI<關鍵字>\fP"
+用指定的 \fI<關鍵字>\fP 搜尋。必須要有搜尋的「種類」加上「關鍵字」,例如:「search kad amule」會開始在 KAD
+網路搜尋「amule」。
+
+可用的搜尋類型:
+.RS
+.IP Global 10
+開始在全球伺服器搜尋。
+.IP Kad 10
+開始在 Kad 搜尋。
+.IP Local 10
+開始在本地伺服器搜尋。
+.RE
+.SS "set \fI<目標>\fP"
+設定指定的偏好設定值。
+
+\fI<目標>\fP 參數可用的值:
+.RS
+.IP BwLimits 10
+設定頻寬限制。
+.IP IPFilter 10
+設定 IP過濾器的偏好設定。
+.RE
+.SS "show \fI<目標>\fP"
+顯示 上傳/下載 等候區、伺服器清單 或 分享檔案清單。
+
+\fI<目標>\fP 參數可用的值:
+.RS
+.IP DL 10
+顯示下載等候區。
+.IP Log 10
+顯示記錄。
+.IP Servers 10
+顯示伺服器清單。
+.IP UL 10
+顯示上傳等候區。
+.RE
+.SS_untranslated Shutdown
+關閉在遠端執行的核心 (amule/amuled)。這樣也會關閉文字模式客戶端程式,因為不能在沒有核心下執行。
+.SS "statistics [ \fI<號字>\fP ]"
+顯示統計資訊。
+
+\fI<編號>\fP 是這個指令的參數之一,用來指定要顯示多少個客戶端程式的版本附加版本;須為 0\-255 的數字,輸入 0
+或略過不輸入則表示「不限」。
+
+範例:「statistics 5」只會顯示每個客戶端種類的前 5 個版本。
+.SS_untranslated Status
+顯示 連線狀態、目前的上傳/下載速度 等等。
+.SH 附註
+.SS 路徑
+對於有 \fI<路徑>\fP 的選項,如果 \fI路徑\fP 裏面沒有含目錄 (即只有單純檔名),則會被認為是在 aMule 的設定檔所在目錄
+\fI~/.aMule\fP 下。
+.SS 語言
+\fB\-l\fP 選項的 \fI<語系>\fP
+參數有以下幾種樣式:\fIlang\fP[\fB_\fP\fILANG\fP][\fB.\fP\fIencoding\fP][\fB@\fP\fImodifier\fP]。其中:\fIlang\fP
+是主要的語系代碼,\fILANG\fP 是語系次分類、使用地區代碼,\fIencoding\fP 是使用的編碼,\fImodifier\fP
+則讓使用者用一個代號就指定一組語系設定。例如:「zh_TW.UTF\-8 at Taiwan」
+
+例如,以下的字串都有效:
+.RS
+.RB_untranslated de
+.br
+.RB_untranslated de_DE
+.br
+.RB_untranslated de_DE.iso88591
+.br
+.RB_untranslated de_DE at euro
+.br
+.RB_untranslated de_DE.iso88591 at euro
+.RE
+
+雖然上面這些都是合於規定的語系設定參數,但 \fIencoding\fP 和 \fImodifier\fP 目前已經沒在使用了。
+
+你也可以使用完整的英文名稱來設定語系,例如:\fB\-l german\fP 也等於 \fB\-l de_DE\fP。
+
+沒有在命令列或設定檔中設定語系時,會使用系統預設語言。
+.SH 檔案
+~/.aMule/remote.conf
+.SH 範例
+通常 amulecmd 會優先以這樣執行:
+.PP
+\fBamulecmd\fP \fB\-h\fP \fI主機名稱\fP \fB\-p\fP \fI外部連線通訊埠\fP \fB\-P\fP \fI外部連線密碼\fP \fB\-w\fP
+.PP
+或
+.PP
+\fBamulecmd\fP \fB\-\-create\-config\-from\fP=\fI/home/username/.aMule/amule.conf\fP
+.PP
+這樣就會將設定儲存到 \fI$HOME/.aMule/remote.conf\fP,然後你只需要再輸入:
+
+.B_untranslated amulecmd
+
+當然,你可以不必都遵照這個範例。
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated amule\fR(1), \fBamuled\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/docs/man/amuled.zh_TW.1 b/docs/man/amuled.zh_TW.1
new file mode 100644
index 0000000..e84e4c4
--- /dev/null
+++ b/docs/man/amuled.zh_TW.1
@@ -0,0 +1,91 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH AMULED 1 "2011 十一月" "aMule Daemon v2.3.1" "aMule Daemon"
+.als B_untranslated B
+.als RB_untranslated RB
+.SH 名稱
+amuled \- 跨平台的 eMule P2P 客戶端程式 背景常駐程式版
+.SH 簡介
+.B_untranslated amuled
+[\fB\-c\fP \fI<路徑>\fP]
+.RB_untranslated [ \-f ]
+[\fB\-p\fP \fI<路徑>\fP]
+.RB_untranslated [ \-e ]
+.RB_untranslated [ \-o ]
+.RB_untranslated [ \-r ]
+[\fB\-w\fP \fI<路徑>\fP]
+.RB_untranslated [ \-d ]
+.RB_untranslated [ \-i ]
+[\fB\-t\fP \fI<號碼>\fP] [\fIeD2k 連結\fP]
+
+.B_untranslated amuled
+.RB_untranslated [ \-v ]
+
+.B_untranslated amuled
+.RB_untranslated [ \-h ]
+.SH 說明
+.TP 
+\fB[ \-c\fP \fI<路徑>\fP, \fB\-\-config\-dir\fP=\fI<路徑>\fP \fB]\fP
+從 \fI<path>\fP 讀取設定檔,而不是個人目錄
+.TP 
+.B_untranslated [ \-f\fR, \fB\-\-full\-daemon ]\fR
+在背景開啟新程式。
+.TP 
+\fB[ \-p\fP \fI<路徑>\fP, \fB\-\-pid\-file\fP=\fI<路徑>\fP \fB]\fP
+開啟新程式後,在 \fI<路徑>\fP 下建立 pid 檔案。\fI<路徑>\fP 裏必須有檔案名稱。
+.TP 
+.B_untranslated [ \-e\fR, \fB\-\-ec\-config ]\fR
+設定 EC (外部連線)。
+.TP 
+.B_untranslated [ \-o\fR, \fB\-\-log\-stdout ]\fR
+將程式記錄顯示在標準輸出。
+.TP 
+.B_untranslated [ \-r\fR, \fB\-\-reset\-config ]\fR
+將設定重設為預設值。
+.TP 
+\fB[ \-w\fP \fI<路徑>\fP, \fB\-\-use\-amuleweb\fP=\fI<路徑>\fP \fB]\fP
+設定 amuleweb 的執行檔位置在 \fI<路徑>\fP。
+.TP 
+.B_untranslated [ \-d\fR, \fB\-\-disable\-fatal ]\fR
+不處理嚴重錯誤。
+.TP 
+.B_untranslated [ \-i\fR, \fB\-\-enable\-stdin ]\fR
+不停用標準輸入。
+.TP 
+\fB[ \-t\fP, \fB\-\-category\fP=\fI<號碼>\fP \fB]\fP
+給輸入成功的 eD2k 連結分類編號為 \fI<號碼>\fP
+.TP 
+.B_untranslated [ \-v\fR, \fB\-\-version ]\fR
+顯示目前的版本號碼。
+.TP 
+.B_untranslated [ \-h\fR, \fB\-\-help ]\fR
+顯示簡短的使用說明。
+.TP 
+\fB[ eD2k 連結 ]\fP
+將 eD2k 連結加到核心。
+.PP
+可以使用以下幾種 eD2k 連結:
+.RS 3
+.IP \(bu 2
+檔案連結 (ed2k://|file|...),會將檔案加入下載等候區;
+.IP \(bu 2
+伺服器連結 (ed2k://|server|...),會將伺服器加入 aMule 的伺服器清單;
+.IP \(bu 2
+伺服器清單連結,在清單內的伺服器會被加入 aMule 的伺服器清單;
+.IP \(bu 2
+magnet 連結。
+.RE
+.SH 檔案
+~/.aMule/*
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated alcc\fR(1), \fBamule\fR(1), \fBamulecmd\fR(1), \fBamulegui\fR(1), \fBamuleweb\fR(1), \fBcas\fR(1), \fBed2k\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/docs/man/amulegui.zh_TW.1 b/docs/man/amulegui.zh_TW.1
new file mode 100644
index 0000000..bdfd73e
--- /dev/null
+++ b/docs/man/amulegui.zh_TW.1
@@ -0,0 +1,63 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH AMULEGUI 1 "2011 十一月" "aMuleGUI v2.3.1" aMuleGUI
+.als B_untranslated B
+.als RB_untranslated RB
+.als unstranslated " "
+amulegui \- 圖形介面的 aMule 控制程式
+.SH 簡介
+.B_untranslated amulegui
+[\fB\-c\fP \fI<路徑>\fP] [\fB\-geometry\fP \fI<視窗狀態>\fP]
+.RB_untranslated [ \-o ]
+.RB_untranslated [ \-r ]
+.RB_untranslated [ \-s ]
+[\fB\-t\fP \fI<號碼>\fP]
+
+.B_untranslated amulegui
+.RB_untranslated [ \-v ]
+
+.B_untranslated amulegui
+.RB_untranslated [ \-h ]
+.SH 說明
+\fBamulegui\fP 是個客戶端程式,可以經由外部連線和 amule 或 amuled 連線,可以用它來管理 amule
+程式。甚至就算核心程式是在別台電腦上執行時,它也能提供和 amule 幾乎一樣的功能。
+.TP 
+\fB[ \-c\fP \fI<路徑>\fP, \fB\-\-config\-dir\fP=\fI<路徑>\fP \fB]\fP
+從 \fI<path>\fP 讀取設定檔,而不是個人目錄
+.TP 
+\fB[ \-geometry \fP\fI<視窗狀態>\fP \fB]\fP
+設定這個應用程式的視窗狀態。\fI<視窗狀態>\fP 使用和 X11
+應用程式一樣的格式:	[\fB=\fP][\fI<寬度>\fP{\fBxX\fP}\fI<高度>\fP][{\fB+\-\fP}\fI<X
+偏移>\fP{\fB+\-\fP}\fI<Y 偏移>\fP]
+.TP 
+.B_untranslated [ \-o\fR, \fB\-\-log\-stdout ]\fR
+將程式記錄顯示在標準輸出。
+.TP 
+.B_untranslated [ \-r\fR, \fB\-\-reset\-config ]\fR
+將設定重設為預設值。
+.TP 
+.B_untranslated [ \-s\fR, \fB\-\-skip ]\fR
+跳過連線對話。
+.TP 
+\fB[ \-t\fP, \fB\-\-category\fP=\fI<號碼>\fP \fB]\fP
+給輸入成功的 eD2k 連結分類編號為 \fI<號碼>\fP
+.TP 
+.B_untranslated [ \-h\fR, \fB\-\-help ]\fR
+顯示簡短的使用說明。
+.TP 
+.B_untranslated [ \-v\fR, \fB\-\-version ]\fR
+顯示目前的版本號碼。
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated alc\fR(1), \fBalcc\fR(1), \fBamuled\fR(1), \fBamulecmd\fR(1), \fBamuleweb\fR(1), \fBcas\fR(1), \fBed2k\fR(1), \fBwxcas\fR(1), \fBxas\fR(1)
+.SH 作者
+說明文件撰寫者: Julien Delange for Debian <julien AT gunnm DOT org>
+
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/docs/man/amuleweb.zh_TW.1 b/docs/man/amuleweb.zh_TW.1
new file mode 100644
index 0000000..bb285c3
--- /dev/null
+++ b/docs/man/amuleweb.zh_TW.1
@@ -0,0 +1,187 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH AMULEWEB 1 "2011 十一月" "aMule webserver v2.3.1" "aMule 的工具程式"
+.als B_untranslated B
+.als RB_untranslated RB
+.SH 名稱
+amuleweb \- aMule 網頁伺服器
+.SH 簡介
+.B_untranslated amuleweb
+[\fB\-h\fP \fI<主機>\fP] [\fB\-p\fP \fI<通訊埠>\fP] [\fB\-P\fP \fI<密碼>\fP]
+[\fB\-f\fP \fI<路徑>\fP]
+.RB_untranslated [ \-q ]
+.RB_untranslated [ \-v ]
+[\fB\-l\fP \fI<語言>\fP]
+.RB_untranslated [ \-w ]
+[\fB\-t\fP \fI<名稱>\fP] [\fB\-s\fP \fI<通訊埠t>\fP]
+.RB_untranslated [ \-u ]
+[\fB\-U\fP \fI<通訊埠>\fP]
+.RB_untranslated [ \-z ]
+.RB_untranslated [ \-Z ]
+[\fB\-A\fP \fI<密碼>\fP] [\fB\-G\fP \fI<密碼>\fP]
+.RB_untranslated [ \-a " " | " " \-d ]
+.RB_untranslated [ \-L ]
+.RB_untranslated [ \-\-no\-php ]
+.RB_untranslated [ \-N ]
+
+.B_untranslated amuleweb
+[\fB\-\-create\-config\-from\fP=\fI<路徑>\fP]
+
+.B_untranslated amuleweb
+.RB_untranslated [ \-\-help ]
+
+.B_untranslated amuleweb
+.RB_untranslated [ \-\-version ]
+
+.B_untranslated amuleweb
+[\fB\-\-amule\-config\-file\fP=\fI<路徑>\fP]
+
+.SH 說明
+\fBamuleweb\fP 可以經由網頁瀏覽器來管理 amule。你可以和 \fBamule\fP(1) 一起執行
+amuleweb,也可以稍候再另外執行。可以在命令列或是用用設定檔指定參數,命令列參數會優先於設定檔的參數。
+.TP 
+\fB[ \-h\fP \fI<主機>\fP, \fB\-\-host\fP=\fI<主機>\fP \fB]\fP
+正在執行 aMule 核心的主機 (預設:\fI本機\fP), \fI<主機>\fP 可以是 IP 位址或網域名稱
+.TP 
+\fB[ \-p\fP \fI<通訊埠>\fP, \fB\-\-port\fP=\fI<通訊埠>\fP \fB]\fP
+aMule 外部連線用的通訊埠,在 偏好設定 >  遠端控制 設定 (預設:\fI4712\fP)
+.TP 
+\fB[ \-P\fP \fI<密碼>\fP, \fB\-\-password\fP=\fI<密碼>\fP \fB]\fP
+外部連線密碼。
+.TP 
+\fB[ \-f\fP \fI<路徑>\fP, \fB\-\-config\-file\fP=\fI<路徑>\fP \fB]\fP
+使用指定的設定檔,預設是 \fI~/.aMule/remote.conf\fP
+.TP 
+.B_untranslated [ \-q\fR, \fB\-\-quiet ]\fR
+不將任何資訊顯示在標準輸出。
+.TP 
+.B_untranslated [ \-v\fR, \fB\-\-verbose ]\fR
+詳細模式 \- 也顯示除錯訊息。
+.TP 
+\fB[ \-l\fP \fI<語言>\fP, \fB\-\-locale\fP=\fI<語言>\fP \fB]\fP
+設定程式的語系 (語言)。請看 \fB附註\fP 章節裏關於 \fI<語言>\fP 參數的說明。
+.TP 
+.B_untranslated [ \-w\fR, \fB\-\-write\-config ]\fR
+將命令列選項寫入設定檔後離開
+.TP 
+\fB[ \-t\fP \fI<名稱>\fP, \fB\-\-template\fP=\fI<名稱>\fP \fB]\fP
+載入 \fI<名稱>\fP 這個模板。詳細請參考 \fB外觀面板支援\fP 章節。
+.TP 
+\fB[ \-s\fP \fI<通訊埠>\fP, \fB\-\-server\-port\fP=\fI<通訊埠>\fP \fB]\fP
+網頁伺服器的 HTTP 連接埠:要用瀏覽器連線時必須加以指定 (預設:\fI4711\fP)。
+.TP 
+.B_untranslated [ \-u ]\fR
+.br
+啟用 UPnP。
+.TP 
+\fB[ \-U\fP \fI<通訊埠>\fP, \fB\-\-upnp\-port\fP \fI<通訊埠>\fP \fB]\fP
+UPnP 通訊埠。
+.TP 
+.B_untranslated [ \-z\fR, \fB\-\-enable\-gzip ]\fR
+在 HTTP 傳輸時啟用 gzip 壓縮以節省頻寬。
+.TP 
+.B_untranslated [ \-Z\fR, \fB\-\-disable\-gzip ]\fR
+停用 gzip 壓縮 (這是預設值)。
+.TP 
+\fB[ \-A\fP \fI<密碼>\fP, \fB\-\-admin\-pass\fP=\fI<密碼>\fP \fB]\fP
+網站伺服器的完整存取密碼。
+.TP 
+\fB[ \-G\fP \fI<密碼>\fP, \fB\-\-guest\-pass\fP=\fI<密碼>\fP \fB]\fP
+網站伺服器的訪客密碼。
+.TP 
+.B_untranslated [ \-a\fR, \fB\-\-allow\-guest ]\fR
+允許訪客連線。
+.TP 
+.B_untranslated [ \-d\fR, \fB\-\-deny\-guest ]\fR
+禁止訪客連線 (預設)。
+.TP 
+.B_untranslated [ \-L\fR, \fB\-\-load\-settings ]\fR
+從遠端的 aMule 載入網頁伺服器設定/將設定儲存到遠端。這個會使 amuleweb
+忽略命令列與設定檔內的設定、並從遠端載入新設定;儲存時則只會寫入遠端 aMule 的設定。(當然,只限於 aMule 的 偏好設定 > 遠端控制
+裏的幾個設定項目)
+.TP 
+.B_untranslated [ \-\-no\-php ]\fR
+停用 PHP 解譯器 (不建議)
+.TP 
+.B_untranslated [ \-N\fR, \fB\-\-no\-script\-cache ]\fR
+爲每個要求重編譯 PHP 頁面。
+.TP 
+\fB[ \-\-create\-config\-from\fP=\fI<路徑>\fP \fB]\fP
+參考 \fI<path>\fP 裏的資料來建立設定檔後離開。(\fI<path>\fP 裏必須有有效的 aMule 設定檔)
+.TP 
+.B_untranslated [ \-\-help ]\fR
+顯示簡短的使用說明。
+.TP 
+.B_untranslated [ \-\-version ]\fR
+顯示目前的版本號碼。
+.TP 
+\fB[ \-\-amule\-config\-file\fP=\fI<路徑>\fP \fB]\fP
+aMule 設定擋路徑。\fB請不要直接使用!\fP這個選項會導致原有命令列和設定檔的設定都被忽略都被忽略。 啟動 aMule 後在開啟 amuleweb
+時會用這個選項,從指定的設定檔讀取偏好設定,並自行加上 \fB\-q \-L\fP 選項。
+.SH 附註
+.SS 路徑
+對於有 \fI<路徑>\fP 的選項,如果 \fI路徑\fP 裏面沒有含目錄 (即只有單純檔名),則會被認為是在 aMule 的設定檔所在目錄
+\fI~/.aMule\fP 下。
+.SS 語言
+\fB\-l\fP 選項的 \fI<語系>\fP
+參數有以下幾種樣式:\fIlang\fP[\fB_\fP\fILANG\fP][\fB.\fP\fIencoding\fP][\fB@\fP\fImodifier\fP]。其中:\fIlang\fP
+是主要的語系代碼,\fILANG\fP 是語系次分類、使用地區代碼,\fIencoding\fP 是使用的編碼,\fImodifier\fP
+則讓使用者用一個代號就指定一組語系設定。例如:「zh_TW.UTF\-8 at Taiwan」
+
+例如,以下的字串都有效:
+.RS
+.RB_untranslated de
+.br
+.RB_untranslated de_DE
+.br
+.RB_untranslated de_DE.iso88591
+.br
+.RB_untranslated de_DE at euro
+.br
+.RB_untranslated de_DE.iso88591 at euro
+.RE
+
+雖然上面這些都是合於規定的語系設定參數,但 \fIencoding\fP 和 \fImodifier\fP 目前已經沒在使用了。
+
+你也可以使用完整的英文名稱來設定語系,例如:\fB\-l german\fP 也等於 \fB\-l de_DE\fP。
+
+沒有在命令列或設定檔中設定語系時,會使用系統預設語言。
+.SH 外觀面板支援
+\fBamuleweb\fP 可以用不同的外觀面板顯示資訊;這些面板稱為「模板」,你可以用在命令列用 \fB\-t\fP 選項讓 amuleweb
+載入指定的模板。程式會在兩個地方搜尋模板:先從 \fI~/.aMule/webserver/\fP,然後如果是用 \-\-prefix=/usr
+安裝程式,就會再到 \fI/usr/share/amule/webserver/\fP 搜尋。
+.PP
+每個模板都必須被放在以該模板名稱命名的子目錄下,這個目錄裏也必須包含所有模板需要的檔案。
+.SH 檔案
+~/.aMule/remote.conf
+.br
+~/.aMule/webserver/
+.br
+\fI$(pkgdatadir)\fP/webserver/
+.SH 範例
+通常 amuleweb 會優先以這樣執行:
+.PP
+\fBamuleweb\fP \fB\-h\fP \fI主機名稱\fP \fB\-p\fP \fI外部連線通訊埠\fP \fB\-P\fP \fI外部連線密碼\fP \fB\-s\fP \fIHTTP 通訊埠\fP
+\fB\-A\fP \fI管理者密碼\fP \fB\-w\fP
+.PP
+或
+.PP
+\fBamuleweb\fP \fB\-\-create\-config\-from\fP=\fI/home/username/.aMule/amule.conf\fP
+.PP
+這樣就會將設定儲存到 \fI$HOME/.aMule/remote.conf\fP,然後你只需要再輸入:
+.PP
+.B_untranslated amuleweb
+.PP
+當然,你可以指定比第一行範例裏更多或更少的選項,甚至您也可以完全不使用。
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated amule\fR(1), \fBamulecmd\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/docs/man/ed2k.zh_TW.1 b/docs/man/ed2k.zh_TW.1
new file mode 100644
index 0000000..6354fd5
--- /dev/null
+++ b/docs/man/ed2k.zh_TW.1
@@ -0,0 +1,74 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH ED2K 1 "2011 十一月" "aMule 的 eD2k 連結分析程式 v1.5.1" "aMule 的工具程式"
+.als B_untranslated B
+.als RB_untranslated RB
+.SH 名稱
+ed2k \- aMule 的 eD2k 連結分析程式
+.SH 簡介
+.B_untranslated ed2k
+[\fB\-c\fP \fI<路徑>\fP] [\fB\-t\fP \fI<號碼>\fP]
+.RB_untranslated [ \-e ]
+.RB_untranslated [ \-l ]
+\fI<eD2k 連結>\fP
+
+.B_untranslated ed2k
+.RB_untranslated [ \-h ]
+
+.B_untranslated ed2k
+.RB_untranslated [ \-v ]
+.SH 說明
+將指定的 \fI<eD2k 連結>\fP 傳送給 aMule,會寫入 aMule 隨時都在檢查有無新增連結的
+~/.aMule/ED2KLinks 檔案裏。
+.TP 
+\fB[ \-c\fP \fI<路徑>\fP, \fB\-\-config\-dir\fP=\fI<路徑>\fP \fB]\fP
+從 \fI<path>\fP 讀取設定檔,而不是個人目錄
+.TP 
+\fB[ \-t\fP, \fB\-\-category\fP=\fI<號碼>\fP \fB]\fP
+給輸入成功的 eD2k 連結分類編號為 \fI<號碼>\fP
+.TP 
+.B_untranslated [ \-e\fR, \fB\-\-emulecollection ]\fR
+載入所有以 \fI<eD2k 連結>\fP 方式指定的 eMule 收藏庫裏找到的連結
+.TP 
+.B_untranslated [ \-l\fR, \fB\-\-list ]\fR
+列出所有以 \fI<eD2k 連結>\fP 方式指定的 eMule 收藏庫裏找到的連結
+.TP 
+.B_untranslated [ \-h\fR, \fB\-\-help ]\fR
+顯示簡短的使用說明。
+.TP 
+.B_untranslated [ \-v\fR, \fB\-\-version ]\fR
+顯示目前的版本號碼。
+.TP 
+\fB[ eD2k 連結 ]\fP
+將 eD2k 連結加到核心。
+.PP
+可以使用以下幾種 eD2k 連結:
+.RS 3
+.IP \(bu 2
+檔案連結 (ed2k://|file|...),會將檔案加入下載等候區;
+.IP \(bu 2
+伺服器連結 (ed2k://|server|...),會將伺服器加入 aMule 的伺服器清單;
+.IP \(bu 2
+伺服器清單連結,在清單內的伺服器會被加入 aMule 的伺服器清單;
+.IP \(bu 2
+magnet 連結;
+.IP \(bu 2
+eMule 收藏庫檔案。
+.RE
+
+\fB指定參數時的順序很重要。\fP你可以指定兩個以上的連結、每個連結都有自己的參數。例如:\fBed2k <連結一> \-t2
+<連結二>\fP 會將 \fI<連結一>\fP 放在「預設分類」、將 \fI<連結二>\fP 放在「分類2」。
+.SH 檔案
+~/.aMule/ED2KLinks
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated amule\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/docs/man/po/manpages-tr.po b/docs/man/po/manpages-tr.po
index 44371be..d6812e8 100644
--- a/docs/man/po/manpages-tr.po
+++ b/docs/man/po/manpages-tr.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule\n"
 "POT-Creation-Date: 2011-10-31 22:06+0100\n"
-"PO-Revision-Date: 2011-11-01 23:37+0100\n"
+"PO-Revision-Date: 2012-03-23 10:36+0100\n"
 "Last-Translator: \n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -14,7 +14,7 @@ msgstr ""
 "Language: tr\n"
 "X-Poedit-Language: Turkish\n"
 "X-Poedit-Country: TURKEY\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"Plural-Forms: nplurals=1; plural=0\n"
 
 #. type: TH
 #: amule.1:1
diff --git a/docs/man/po/manpages-zh_TW.add b/docs/man/po/manpages-zh_TW.add
new file mode 100644
index 0000000..bfd80f2
--- /dev/null
+++ b/docs/man/po/manpages-zh_TW.add
@@ -0,0 +1 @@
+PO4A-HEADER:mode=after;position=^\.TH;beginboundary=^FakePo4aBoundary
diff --git a/docs/man/po/manpages-tr.po b/docs/man/po/manpages-zh_TW.po
similarity index 63%
copy from docs/man/po/manpages-tr.po
copy to docs/man/po/manpages-zh_TW.po
index 44371be..e349df0 100644
--- a/docs/man/po/manpages-tr.po
+++ b/docs/man/po/manpages-zh_TW.po
@@ -1,20 +1,27 @@
-# Turkish translations for aMule package
+# aMule i18n resource file.
+# Copyright (C) 2010 - 2011 aMule Team
 # This file is distributed under the same license as the aMule package.
 #
+# Translator:
+#
+# Wayne Su <mstarmstar at gmail.com>, 2011.
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: aMule\n"
+"Project-Id-Version: aMule Manual zh_TW\n"
+"Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2011-10-31 22:06+0100\n"
-"PO-Revision-Date: 2011-11-01 23:37+0100\n"
-"Last-Translator: \n"
+"PO-Revision-Date: 2011-12-27 14:53+0800\n"
+"Last-Translator: Wayne Su <mstarmstar at gmail.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: tr\n"
-"X-Poedit-Language: Turkish\n"
-"X-Poedit-Country: TURKEY\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"Language: \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
 #. type: TH
 #: amule.1:1
@@ -29,7 +36,7 @@ msgstr "AMULE"
 #: ../../src/utils/wxCas/docs/wxcas.1:1 ../../src/utils/xas/docs/xas.1:1
 #, no-wrap
 msgid "November 2011"
-msgstr "Kasım 2011"
+msgstr "2011 十一月"
 
 #. type: TH
 #: amule.1:1
@@ -50,12 +57,12 @@ msgstr "aMule"
 #: ../../src/utils/wxCas/docs/wxcas.1:3 ../../src/utils/xas/docs/xas.1:3
 #, no-wrap
 msgid "NAME"
-msgstr "İSİM"
+msgstr "名稱"
 
 #. type: Plain text
 #: amule.1:6
 msgid "amule - the all-platform eMule p2p client"
-msgstr "amule - her platformda çalışan eMule p2p istemcisi"
+msgstr "amule - 跨平台的 eMule P2P 客戶端程式"
 
 #. type: SH
 #: amule.1:6 amulecmd.1:7 amuled.1:6 amulegui.1:6 amuleweb.1:6 ed2k.1:6
@@ -64,22 +71,22 @@ msgstr "amule - her platformda çalışan eMule p2p istemcisi"
 #: ../../src/utils/wxCas/docs/wxcas.1:5 ../../src/utils/xas/docs/xas.1:5
 #, no-wrap
 msgid "SYNOPSIS"
-msgstr "KULLANIM"
+msgstr "簡介"
 
 #. type: Plain text
 #: amule.1:10 amulegui.1:10
 msgid "[B<-c> I<E<lt>pathE<gt>>] [B<-geometry> I<E<lt>geomE<gt>>]"
-msgstr "[B<-c> I<E<lt>yolE<gt>>] [B<-geometry> I<E<lt>geomE<gt>>]"
+msgstr "[B<-c> I<E<lt>路徑E<gt>>] [B<-geometry> I<E<lt>視窗狀態E<gt>>]"
 
 #. type: Plain text
 #: amule.1:13 amuled.1:15
 msgid "[B<-w> I<E<lt>pathE<gt>>]"
-msgstr "[B<-w> I<E<lt>yolE<gt>>]"
+msgstr "[B<-w> I<E<lt>路徑E<gt>>]"
 
 #. type: Plain text
 #: amule.1:17 amuled.1:19
 msgid "[B<-t> I<E<lt>numE<gt>>] [I<eD2k-link>]"
-msgstr "[B<-t> I<E<lt>sayıE<gt>>] [I<eD2k-bağlantısı>]"
+msgstr "[B<-t> I<E<lt>號碼E<gt>>] [I<eD2k 連結>]"
 
 #. type: SH
 #: amule.1:24 amulecmd.1:26 amuled.1:25 amulegui.1:20 amuleweb.1:41 ed2k.1:19
@@ -89,26 +96,26 @@ msgstr "[B<-t> I<E<lt>sayıE<gt>>] [I<eD2k-bağlantısı>]"
 #: ../../src/utils/xas/docs/xas.1:7
 #, no-wrap
 msgid "DESCRIPTION"
-msgstr "AÇIKLAMA"
+msgstr "說明"
 
 #. type: TP
 #: amule.1:25 amuled.1:26 amulegui.1:24 ed2k.1:21
 #: ../../src/utils/cas/docs/cas.1:26
 #, no-wrap
 msgid "B<[ -c> I<E<lt>pathE<gt>>, B<--config-dir>=I<E<lt>pathE<gt>> B<]>"
-msgstr "B<[ -c> I<E<lt>yolE<gt>>, B<--config-dir>=I<E<lt>yolE<gt>> B<]>"
+msgstr "B<[ -c> I<E<lt>路徑E<gt>>, B<--config-dir>=I<E<lt>路徑E<gt>> B<]>"
 
 #. type: Plain text
 #: amule.1:28 amuled.1:29 amulegui.1:27 ed2k.1:24
 #: ../../src/utils/cas/docs/cas.1:29
 msgid "Read config from I<E<lt>pathE<gt>> instead of home"
-msgstr "Yapılandırmayı home yerine I<E<lt>yolE<gt>>dan oku"
+msgstr "從 I<E<lt>pathE<gt>> 讀取設定檔,而不是個人目錄"
 
 #. type: TP
 #: amule.1:28 amulegui.1:27
 #, no-wrap
 msgid "B<[ -geometry >I<E<lt>geomE<gt>> B<]>"
-msgstr "B<[ -geometry >I<E<lt>geomE<gt>> B<]>"
+msgstr "B<[ -geometry >I<E<lt>視窗狀態E<gt>> B<]>"
 
 #. type: Plain text
 #: amule.1:31 amulegui.1:30
@@ -117,122 +124,114 @@ msgid ""
 "standard X11 apps:\t[B<=>][I<E<lt>widthE<gt>>{B<xX>}I<E<lt>heightE<gt>>][{B<"
 "+->}I<E<lt>xoffsetE<gt>>{B<+->}I<E<lt>yoffsetE<gt>>]"
 msgstr ""
-"Uygulamanın geometrisini düzenler. I<E<lt>geomE<gt>> standart X11 "
-"uygulamaları ile aynı biçimi kullanır:\t[B<=>][I<E<lt>genişlikE<gt>>{B<xX>}"
-"I<E<lt>yükseklikE<gt>>][{B<+->}I<E<lt>xoffsetE<gt>>{B<+->}"
-"I<E<lt>yoffsetE<gt>>]"
+"設定這個應用程式的視窗狀態。I<E<lt>視窗狀態E<gt>> 使用和 X11 應用程式一樣的格"
+"式:\t[B<=>][I<E<lt>寬度E<gt>>{B<xX>}I<E<lt>高度E<gt>>][{B<+->}I<E<lt>X 偏移"
+"E<gt>>{B<+->}I<E<lt>Y 偏移E<gt>>]"
 
 #. type: Plain text
 #: amule.1:34 amuled.1:42 amulegui.1:33
 msgid "Prints log messages to stdout."
-msgstr "Log mesajlarını standart çıktıya gönderir."
+msgstr "將程式記錄顯示在標準輸出。"
 
 #. type: Plain text
 #: amule.1:37 amuled.1:45 amulegui.1:36
 msgid "Resets config to default values."
-msgstr "Yapılandırmayı varsayılan değerlere sıfırlar."
+msgstr "將設定重設為預設值。"
 
 #. type: TP
 #: amule.1:37 amuled.1:45
 #, no-wrap
 msgid "B<[ -w> I<E<lt>pathE<gt>>, B<--use-amuleweb>=I<E<lt>pathE<gt>> B<]>"
-msgstr "B<[ -w> I<E<lt>yolE<gt>>, B<--use-amuleweb>=I<E<lt>yolE<gt>> B<]>"
+msgstr "B<[ -w> I<E<lt>路徑E<gt>>, B<--use-amuleweb>=I<E<lt>路徑E<gt>> B<]>"
 
 #. type: Plain text
 #: amule.1:40 amuled.1:48
 msgid "Specify location of amuleweb binary to I<E<lt>pathE<gt>>."
-msgstr ""
-"amuleweb çalıştırılabilir dosyasının konumunu I<E<lt>yolE<gt>> olarak "
-"belirler."
+msgstr "設定 amuleweb 的執行檔位置在 I<E<lt>路徑E<gt>>。"
 
 #. type: Plain text
 #: amule.1:43 amuled.1:51
 msgid "Does not handle fatal exception."
-msgstr "Kritik istisnaları ele almaz."
+msgstr "不處理嚴重錯誤。"
 
 #. type: Plain text
 #: amule.1:46 amuled.1:54
 msgid "Does not disable stdin."
-msgstr "standart girdiyi devre dışı bırakmaz."
+msgstr "不停用標準輸入。"
 
 #. type: TP
 #: amule.1:46 amuled.1:54 amulegui.1:39 ed2k.1:24
 #, no-wrap
 msgid "B<[ -t>, B<--category>=I<E<lt>numE<gt>> B<]>"
-msgstr "B<[ -t>, B<--category>=I<E<lt>sayıE<gt>> B<]>"
+msgstr "B<[ -t>, B<--category>=I<E<lt>號碼E<gt>> B<]>"
 
 #. type: Plain text
 #: amule.1:49 amuled.1:57 amulegui.1:42 ed2k.1:27
 msgid "Set category for passed eD2k links to I<E<lt>numE<gt>>"
-msgstr ""
-"I<E<lt>sayıE<gt>>ya gönderilen eD2k bağlantılarının kategorilerini belirler."
+msgstr "給輸入成功的 eD2k 連結分類編號為 I<E<lt>號碼E<gt>>"
 
 #. type: Plain text
 #: amule.1:52 amulecmd.1:66 amuled.1:60 amulegui.1:48 amuleweb.1:126 ed2k.1:39
 msgid "Displays the current version number."
-msgstr "Geçerli sürüm numarasını görüntüler."
+msgstr "顯示目前的版本號碼。"
 
 #. type: Plain text
 #: amule.1:55 amulecmd.1:69 amuled.1:63 amulegui.1:45 amuleweb.1:123 ed2k.1:36
 #: ../../src/utils/aLinkCreator/docs/alcc.1:22
 #: ../../src/utils/cas/docs/cas.1:32
 msgid "Prints a short usage description."
-msgstr "Kısa bir kullanım açıklaması görüntüler."
+msgstr "顯示簡短的使用說明。"
 
 #. type: TP
 #: amule.1:55 amuled.1:63 ed2k.1:39
 #, no-wrap
 msgid "B<[ eD2k-link ]>"
-msgstr "B<[ eD2k-bağlantısı ]>"
+msgstr "B<[ eD2k 連結 ]>"
 
 #. type: Plain text
 #: amule.1:58 amuled.1:66 ed2k.1:42
 msgid "Adds an eD2k-link to the core."
-msgstr "Çekirdeğe bir eD2k bağlantısı ekler."
+msgstr "將 eD2k 連結加到核心。"
 
 #. type: Plain text
 #: amule.1:60 amulecmd.1:75 amuled.1:68 ed2k.1:44
 msgid "The eD2k link to be added can be:"
-msgstr "Eklenecek eD2k bağlantısı şunlardan biri olabilir:"
+msgstr "可以使用以下幾種 eD2k 連結:"
 
 #. type: Plain text
 #: amule.1:63 amulecmd.1:78 amuled.1:71 ed2k.1:47
 msgid "a file link (ed2k://|file|...), it will be added to the download queue;"
-msgstr ""
-"bir dosya bağlantısı (ed2k://|file|...) ki indirmeler kuyruğuna eklenir;"
+msgstr "檔案連結 (ed2k://|file|...),會將檔案加入下載等候區;"
 
 #. type: Plain text
 #: amule.1:65 amulecmd.1:80 amuled.1:73 ed2k.1:49
 msgid ""
 "a server link (ed2k://|server|...), it will be added to the server list;"
-msgstr ""
-"bir sunucu bağlantısı (ed2k://|server|...) ki sunucu listesine eklenir;"
+msgstr "伺服器連結 (ed2k://|server|...),會將伺服器加入 aMule 的伺服器清單;"
 
 #. type: Plain text
 #: amule.1:67 amuled.1:75 ed2k.1:51
 msgid ""
 "a serverlist link, in which case all servers in the list will be added to "
 "the server list;"
-msgstr ""
-"bir sunucu listesi bağlantısı, bu durumda listedeki tüm sunucular sunucu "
-"listesine eklenir;"
+msgstr "伺服器清單連結,在清單內的伺服器會被加入 aMule 的伺服器清單;"
 
 #. type: Plain text
 #: amule.1:69 amuled.1:77
 msgid "a magnet link."
-msgstr "bir magnet bağlantısı."
+msgstr "magnet 連結。"
 
 #. type: SH
 #: amule.1:70 amulecmd.1:207 amuleweb.1:132
 #, no-wrap
 msgid "NOTES"
-msgstr "NOTLAR"
+msgstr "附註"
 
 #. type: SS
 #: amule.1:71 amulecmd.1:208 amuleweb.1:133
 #, no-wrap
 msgid "Paths"
-msgstr "Yollar"
+msgstr "路徑"
 
 #. type: Plain text
 #: amule.1:75 amulecmd.1:212 amuleweb.1:137
@@ -241,16 +240,15 @@ msgid ""
 "contains no directory part (i.e. just a plain filename), then it is "
 "considered to be under the aMule configuration directory, I<~/.aMule>."
 msgstr ""
-"I<E<lt>yolE<gt>> değeri alan  tüm seçenekler için eğer I<yol> hiçbir dizin "
-"içermiyorsa (yani sadece bir dosya ismiyse) aMule yapılandırma dizini (I<~/."
-"aMule>) varsayılır. "
+"對於有 I<E<lt>路徑E<gt>> 的選項,如果 I<路徑> 裏面沒有含目錄 (即只有單純檔"
+"名),則會被認為是在 aMule 的設定檔所在目錄 I<~/.aMule> 下。"
 
 #. type: SH
 #: amule.1:75 amulecmd.1:240 amuled.1:78 amuleweb.1:171 ed2k.1:60
 #: ../../src/utils/cas/docs/cas.1:36
 #, no-wrap
 msgid "FILES"
-msgstr "DOSYALAR"
+msgstr "檔案"
 
 #. type: Plain text
 #: amule.1:77 amuled.1:80
@@ -265,7 +263,7 @@ msgstr "~/.aMule/*"
 #: ../../src/utils/xas/docs/xas.1:16
 #, no-wrap
 msgid "REPORTING BUGS"
-msgstr "GERİBİLDİRİM"
+msgstr "回報問題"
 
 #. type: Plain text
 #: amule.1:80 amulecmd.1:259 amuled.1:83 amulegui.1:51 amuleweb.1:194
@@ -278,10 +276,9 @@ msgid ""
 "our bugtracker (I<http://bugs.amule.org/>).  Please do not report bugs in e-"
 "mail, neither to our mailing list nor directly to any team member."
 msgstr ""
-"Hataları bildirmek için forumumuzu (I<http://forum.amule.org/>) ya da hata "
-"takipçimizi (I<http://bugs.amule.org/>) kullanınız. Hataları bildirmek için "
-"e-mail ve e-mail listemizi kullanmamanızı ve geliştiricilerden birine "
-"doğrudan bildirmemenizi rica ederiz."
+"請到我們的論壇 (I<http://forum.amule.org/>) 或錯誤追蹤網站 (I<http://bugs."
+"amule.org/>) 回報發現的問題。請不要用 e-mail 或在我們的群組信件中回報,也不要"
+"直接通知某個團隊成員。"
 
 #. type: SH
 #: amule.1:80 amulecmd.1:259 amuled.1:83 amulegui.1:51 amuleweb.1:194
@@ -291,7 +288,7 @@ msgstr ""
 #: ../../src/utils/xas/docs/xas.1:19
 #, no-wrap
 msgid "COPYRIGHT"
-msgstr "TELİF HAKKI"
+msgstr "版權"
 
 #. type: Plain text
 #: amule.1:82 amulecmd.1:261 amuled.1:85 amulegui.1:53 amuleweb.1:196
@@ -302,9 +299,7 @@ msgstr "TELİF HAKKI"
 msgid ""
 "aMule and all of its related utilities are distributed under the GNU General "
 "Public License."
-msgstr ""
-"aMule ve ilgili tüm yardımcı araçları GNU Genel Kamu Lisansı çerçevesinde "
-"dağıtılmaktadır."
+msgstr "aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。"
 
 #. type: SH
 #: amule.1:82 amulecmd.1:261 amuled.1:85 amulegui.1:53 amuleweb.1:196
@@ -314,7 +309,7 @@ msgstr ""
 #: ../../src/utils/xas/docs/xas.1:21
 #, no-wrap
 msgid "SEE ALSO"
-msgstr "İLGİLİ BELGELER"
+msgstr "參考"
 
 #. type: SH
 #: amule.1:84 amulecmd.1:263 amuled.1:87 amulegui.1:55 amuleweb.1:198
@@ -324,7 +319,7 @@ msgstr "İLGİLİ BELGELER"
 #: ../../src/utils/xas/docs/xas.1:23
 #, no-wrap
 msgid "AUTHOR"
-msgstr "YAZAN"
+msgstr "作者"
 
 #. type: Plain text
 #: amule.1:85 amulecmd.1:264 amuled.1:88 amuleweb.1:199 ed2k.1:70
@@ -334,9 +329,7 @@ msgstr "YAZAN"
 #: ../../src/utils/xas/docs/xas.1:24
 msgid ""
 "This manpage was written by Vollstrecker E<lt>amule at vollstreckernet.deE<gt>"
-msgstr ""
-"Bu kılavuz sayfası Vollstrecker E<lt>amule at vollstreckernet.deE<gt> "
-"tarafından yazılmıştır."
+msgstr "說明文件撰寫者: Vollstrecker E<lt>amule at vollstreckernet.deE<gt>"
 
 #. type: TH
 #: amulecmd.1:1
@@ -357,12 +350,12 @@ msgstr "aMuleCmd v2.3.1"
 #: ../../src/utils/wxCas/docs/wxcas.1:1 ../../src/utils/xas/docs/xas.1:1
 #, no-wrap
 msgid "aMule utilities"
-msgstr "aMule yardımcı araçları"
+msgstr "aMule 的工具程式"
 
 #. type: Plain text
 #: amulecmd.1:7
 msgid "amulecmd - Console-based program to control aMule"
-msgstr "amulecmd - aMule'ü yönetmek için konsol temelli bir program"
+msgstr "amulecmd - 終端機模式下控制 aMule 的程式"
 
 #. type: Plain text
 #: amulecmd.1:13 amuleweb.1:12
@@ -370,8 +363,8 @@ msgid ""
 "[B<-h> I<E<lt>hostE<gt>>] [B<-p> I<E<lt>portE<gt>>] [B<-P> "
 "I<E<lt>passwordE<gt>>] [B<-f> I<E<lt>pathE<gt>>]"
 msgstr ""
-"[B<-h> I<E<lt>sunucuE<gt>>] [B<-p> I<E<lt>portE<gt>>] [B<-P> "
-"I<E<lt>şifreE<gt>>] [B<-f> I<E<lt>yolE<gt>>]"
+"[B<-h> I<E<lt>主機E<gt>>] [B<-p> I<E<lt>通訊埠E<gt>>] [B<-P> I<E<lt>密碼"
+"E<gt>>] [B<-f> I<E<lt>路徑E<gt>>]"
 
 #. type: Plain text
 #: amulecmd.1:17
@@ -379,23 +372,23 @@ msgid ""
 "[B<-l> I<E<lt>langE<gt>>] {B< >[B<-w>]B< >|B< >[B<-c> I<E<lt>commandE<gt>>]"
 "B< >}"
 msgstr ""
-"[B<-l> I<E<lt>dilE<gt>>] {B< >[B<-w>]B< >|B< >[B<-c> I<E<lt>komutE<gt>>]B< >}"
+"[B<-l> I<E<lt>語言E<gt>>] {B< >[B<-w>]B< >|B< >[B<-c> I<E<lt>指令E<gt>>]B< >}"
 
 #. type: Plain text
 #: amulecmd.1:20 amuleweb.1:31
 msgid "[B<--create-config-from>=I<E<lt>pathE<gt>>]"
-msgstr "[B<--create-config-from>=I<E<lt>yolE<gt>>]"
+msgstr "[B<--create-config-from>=I<E<lt>路徑E<gt>>]"
 
 #. type: Plain text
 #: amulecmd.1:29
 msgid "B<amulecmd> is a console-based client to control aMule."
-msgstr "B<amulecmd> aMule'ü yönetmek için konsol temelli bir programdır."
+msgstr "B<amulecmd> 是終端機模式下控制 aMule 的的客戶端程式。"
 
 #. type: TP
 #: amulecmd.1:29 amuleweb.1:46
 #, no-wrap
 msgid "B<[ -h> I<E<lt>hostE<gt>>, B<--host>=I<E<lt>hostE<gt>> B<]>"
-msgstr "B<[ -h> I<E<lt>sunucuE<gt>>, B<--host>=I<E<lt>sunucuE<gt>> B<]>"
+msgstr "B<[ -h> I<E<lt>主機E<gt>>, B<--host>=I<E<lt>主機E<gt>> B<]>"
 
 #. type: Plain text
 #: amulecmd.1:33 amuleweb.1:50
@@ -403,14 +396,14 @@ msgid ""
 "Host where aMule is running (default: I<localhost>).  I<E<lt>hostE<gt>> "
 "might be an IP address or a DNS name"
 msgstr ""
-"aMule'ün çalıştığı sunucu ya da bilgisayar (varsayılan: I<localhost>). "
-"I<E<lt>sunucuE<gt>> bir IP adresi ya da DNS ismi olabilir"
+"正在執行 aMule 核心的主機 (預設:I<本機>), I<E<lt>主機E<gt>> 可以是 IP 位址"
+"或網域名稱"
 
 #. type: TP
 #: amulecmd.1:33 amuleweb.1:50
 #, no-wrap
 msgid "B<[ -p> I<E<lt>portE<gt>>, B<--port>=I<E<lt>portE<gt>> B<]>"
-msgstr "B<[ -p> I<E<lt>portE<gt>>, B<--port>=I<E<lt>portE<gt>> B<]>"
+msgstr "B<[ -p> I<E<lt>通訊埠E<gt>>, B<--port>=I<E<lt>通訊埠E<gt>> B<]>"
 
 #. type: Plain text
 #: amulecmd.1:36 amuleweb.1:53
@@ -418,50 +411,47 @@ msgid ""
 "aMule's port for External Connections, as set in Preferences-E<gt>Remote "
 "Controls (default: I<4712>)"
 msgstr ""
-"aMule'ün dışarıya bağlandığında kullandığı port, Ayarlar-E<gt>Uzak "
-"Denetimler seçeneğinde belirlenir (varsayılan: I<4712>)"
+"aMule 外部連線用的通訊埠,在 偏好設定 E<gt>  遠端控制 設定 (預設:I<4712>)"
 
 #. type: TP
 #: amulecmd.1:36 amuleweb.1:53
 #, no-wrap
 msgid "B<[ -P> I<E<lt>passwordE<gt>>, B<--password>=I<E<lt>passwordE<gt>> B<]>"
-msgstr "B<[ -P> I<E<lt>şifreE<gt>>, B<--password>=I<E<lt>şifreE<gt>> B<]>"
+msgstr "B<[ -P> I<E<lt>密碼E<gt>>, B<--password>=I<E<lt>密碼E<gt>> B<]>"
 
 #. type: Plain text
 #: amulecmd.1:39 amuleweb.1:56
 msgid "External Connections password."
-msgstr "Dışarıdan yapılan bağlantılar için şifre."
+msgstr "外部連線密碼。"
 
 #. type: TP
 #: amulecmd.1:39 amuleweb.1:56
 #, no-wrap
 msgid "B<[ -f> I<E<lt>pathE<gt>>, B<--config-file>=I<E<lt>pathE<gt>> B<]>"
-msgstr "B<[ -f> I<E<lt>yolE<gt>>, B<--config-file>=I<E<lt>yolE<gt>> B<]>"
+msgstr "B<[ -f> I<E<lt>路徑E<gt>>, B<--config-file>=I<E<lt>路徑E<gt>> B<]>"
 
 #. type: Plain text
 #: amulecmd.1:43 amuleweb.1:60
 msgid ""
 "Use the given configuration file.  Default configuration file is I<~/.aMule/"
 "remote.conf>"
-msgstr ""
-"Belirtilen yapılandırma dosyasını kullanır. Varsayılan yapılandırma dosyası "
-"şudur: I<~/.aMule/remote.conf>"
+msgstr "使用指定的設定檔,預設是 I<~/.aMule/remote.conf>"
 
 #. type: Plain text
 #: amulecmd.1:46 amuleweb.1:63
 msgid "Do not print any output to stdout."
-msgstr "Standart çıktıya hiçbir veri yazdırmaz."
+msgstr "不將任何資訊顯示在標準輸出。"
 
 #. type: Plain text
 #: amulecmd.1:50 amuleweb.1:67
 msgid "Be verbose - show also debug messages."
-msgstr "Geveze olur - debug mesajlarını da gösterir."
+msgstr "詳細模式 - 也顯示除錯訊息。"
 
 #. type: TP
 #: amulecmd.1:50 amuleweb.1:67
 #, no-wrap
 msgid "B<[ -l> I<E<lt>langE<gt>>, B<--locale>=I<E<lt>langE<gt>> B<]>"
-msgstr "B<[ -l> I<E<lt>dilE<gt>>, B<--locale>=I<E<lt>dilE<gt>> B<]>"
+msgstr "B<[ -l> I<E<lt>語言E<gt>>, B<--locale>=I<E<lt>語言E<gt>> B<]>"
 
 #. type: Plain text
 #: amulecmd.1:54 amuleweb.1:71
@@ -469,34 +459,31 @@ msgid ""
 "Sets program locale (language).  See the B<NOTES> section for the "
 "description of the I<E<lt>langE<gt>> parameter."
 msgstr ""
-"Programın kullandığı dili belirler. I<E<lt>dilE<gt>> parametresinin "
-"tanımlaması için B<NOTLAR> bölümüne bakınız."
+"設定程式的語系 (語言)。請看 B<附註> 章節裏關於 I<E<lt>語言E<gt>> 參數的說明。"
 
 #. type: Plain text
 #: amulecmd.1:57 amuleweb.1:74
 msgid "Write command line options to config file and exit"
-msgstr "Komut satırı seçeneklerini yapılandırma dosyasına yazıp çıkar"
+msgstr "將命令列選項寫入設定檔後離開"
 
 #. type: TP
 #: amulecmd.1:57
 #, no-wrap
 msgid "B<[ -c> I<E<lt>commandE<gt>>, B<--command>=I<E<lt>commandE<gt>> B<]>"
-msgstr "B<[ -c> I<E<lt>komutE<gt>>, B<--command>=I<E<lt>komutE<gt>> B<]>"
+msgstr "B<[ -c> I<E<lt>指令E<gt>>, B<--command>=I<E<lt>指令E<gt>> B<]>"
 
 #. type: Plain text
 #: amulecmd.1:60
 msgid ""
 "Execute I<E<lt>commandE<gt>> as if it was entered at amulecmd's prompt and "
 "exit."
-msgstr ""
-"I<E<lt>komutE<gt>>u amulecmd'ın komut istemine girilmiş gibi çalıştırır ve "
-"çıkar."
+msgstr "像在 amulecmd 的命令列模式下一樣,執行 I<E<lt>指令E<gt>> 後離開。"
 
 #. type: TP
 #: amulecmd.1:60 amuleweb.1:117
 #, no-wrap
 msgid "B<[ --create-config-from>=I<E<lt>pathE<gt>> B<]>"
-msgstr "B<[ --create-config-from>=I<E<lt>yolE<gt>> B<]>"
+msgstr "B<[ --create-config-from>=I<E<lt>路徑E<gt>> B<]>"
 
 #. type: Plain text
 #: amulecmd.1:63 amuleweb.1:120
@@ -504,50 +491,48 @@ msgid ""
 "Create config file based upon I<E<lt>pathE<gt>>, which must point to a valid "
 "aMule config file, and then exit."
 msgstr ""
-"I<E<lt>yolE<gt>>a dayalı yapılandırma dosyası yaratır ve çıkar. Yolun "
-"geçerli bir aMule dosyasına işaret etmesi gerekir."
+"參考 I<E<lt>pathE<gt>> 裏的資料來建立設定檔後離開。(I<E<lt>pathE<gt>> 裏必須"
+"有有效的 aMule 設定檔)"
 
 #. type: SH
 #: amulecmd.1:69
 #, no-wrap
 msgid "COMMANDS"
-msgstr "KOMUTLAR"
+msgstr "指令"
 
 #. type: Plain text
 #: amulecmd.1:71
 msgid "All commands are case insensitive."
-msgstr "Tüm komutlar harf büyüklüğüne duyarsızdır."
+msgstr "所有指令都不分大小寫。"
 
 #. type: SS
 #: amulecmd.1:71
 #, no-wrap
 msgid "Add I<E<lt>eD2k-linkE<gt>> | I<E<lt>magnet-linkE<gt>>"
-msgstr "Add I<E<lt>eD2k-bağlantısıE<gt>> | I<E<lt>magnet-bağlantısıE<gt>>"
+msgstr "Add I<E<lt>eD2k 連結E<gt>> | I<E<lt>magnet 連結E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:73
 msgid "Adds an eD2k-link or a magnet-link to the core."
-msgstr "Çekirdeğe bir eD2k ya da magnet bağlantısı ekler."
+msgstr "將 eD2k 連結或 magnet 加到核心。"
 
 #. type: Plain text
 #: amulecmd.1:82
 msgid ""
 "a serverlist link, in which case all servers in the list will be added to "
 "the server list."
-msgstr ""
-"bir sunucu listesi bağlantısı, bu durumda listedeki tüm sunucular sunucu "
-"listesine eklenir."
+msgstr "伺服器清單,所有在這個清單內的伺服器都會被加到 aMule 的伺服器清單。"
 
 #. type: Plain text
 #: amulecmd.1:85
 msgid "The magnet link must contain the eD2k hash and file length."
-msgstr "Magnet bağlantısı eD2k hash değerini ve dosya boyutunu içermelidir."
+msgstr "magnet 連結裏必須包含 eD2k 的 hash 值和檔案大小。"
 
 #. type: SS
 #: amulecmd.1:85
 #, no-wrap
 msgid "Cancel I<E<lt>hashE<gt>> | I<E<lt>numberE<gt>>"
-msgstr "Cancel I<E<lt>hashE<gt>> | I<E<lt>sayıE<gt>>"
+msgstr "Cancel I<E<lt>hash 值E<gt>> | I<E<lt>編號E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:87
@@ -555,24 +540,24 @@ msgid ""
 "Cancels the download specified by I<E<lt>hashE<gt>> or I<E<lt>numberE<gt>>. "
 "To get the value use B<show>."
 msgstr ""
-"I<E<lt>hashE<gt>> ya da I<E<lt>sayıE<gt>> tarafından belirtilen indirmeyi "
-"iptal eder. Değerleri öğrenmek için B<show> komutunu kullanınız."
+"取消下載指定的檔案,指定方式:I<E<lt>hash 值E<gt>> 或 I<E<lt>編號E<gt>>;要查"
+"詢數值請用 B<show>。"
 
 #. type: SS
 #: amulecmd.1:87
 #, no-wrap
 msgid "Connect [ I<kad> | I<ed2k> | I<E<lt>ip|nameE<gt>> ]"
-msgstr "Connect [ I<kad> | I<ed2k> | I<E<lt>ip|isimE<gt>> ]"
+msgstr "connect [ I<kad> | I<ed2k> | I<E<lt>IP | 網域名稱E<gt>> ]"
 
 #. type: Plain text
 #: amulecmd.1:89
 msgid "Connect to the network."
-msgstr "Ağa bağlanır."
+msgstr "連線到網路。"
 
 #. type: Plain text
 #: amulecmd.1:91
 msgid "This will connect to all networks that are enabled in Preferences."
-msgstr "Ayarlarda ekinleştirilmiş tüm ağlara bağlanır."
+msgstr "這樣將會連線到在偏好設定中啟用的所有網路。"
 
 #. type: Plain text
 #: amulecmd.1:95
@@ -582,30 +567,27 @@ msgid ""
 "decimal IPv4 address or a resolvable DNS name) aMule will connect to that "
 "server only."
 msgstr ""
-"Ek bir parametreyle hangi ağa bağlanmak istediğinizi belirtebilirsiniz. IP:"
-"port şeklinde (IP ya noktalarla ayrılmış ondalık bir IPv4 adresi ya da "
-"çözümlenebilen bir DNS ismi olmalıdır) bir sunucu adresi verirseniz aMule "
-"sadece bu sunucuya bağlanacaktır."
+"用這個選項參數,你可以指定要連線到哪個網路:用「IP:port」格式指定伺服器的位"
+"址 (IP 可以用有小數點的十進位 IPv4 網址,或是可從 DNS 轉換的網域名稱),aMule "
+"就會只連線到那個伺服器。"
 
 #. type: Plain text
 #: amulecmd.1:98
 msgid ""
 "Disconnect from all networks you are connected to, or just disconnect from "
 "the specified network."
-msgstr ""
-"Ya çevrimiçi olan tüm ağlarla bağlantıyı keser, ya da sadece belirtilen ağ "
-"ile."
+msgstr "中斷所有已連線的網路,或只中斷指定的網路連線。"
 
 #. type: SS
 #: amulecmd.1:98
 #, no-wrap
 msgid "Download I<E<lt>numberE<gt>>"
-msgstr "Download I<E<lt>sayıE<gt>>"
+msgstr "download I<E<lt>編號E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:100
 msgid "Start downloading a file."
-msgstr "Bir dosyayı indirmeye başlar."
+msgstr "開始下載檔案。"
 
 #. type: Plain text
 #: amulecmd.1:104
@@ -614,45 +596,45 @@ msgid ""
 "Example: `download 12' will start to download the file with the number 12 of "
 "the previous search."
 msgstr ""
-"Bir dosyanın son aramadan I<E<lt>sayıE<gt>> değeri girilmesi gerekir. "
-"Örneğin `download 12' son aramadaki 12 numaralı dosyayı indirmeye başlar."
+"I<E<lt>編號E<gt>> 指上次搜尋檔案時的結果。例如:「download 12」會下載上次搜尋"
+"時編號 12 的檔案。"
 
 #. type: Plain text
 #: amulecmd.1:106
 msgid "Disconnect from amule/amuled and quit amulecmd."
-msgstr "amule/amuled ile bağlantıyı keser ve amulecmd kapanır."
+msgstr "始 amule/amuled 斷線,並離開 amulecmd。"
 
 #. type: SS
 #: amulecmd.1:106
 #, no-wrap
 msgid "Get I<E<lt>whatE<gt>>"
-msgstr "Get I<E<lt>değerE<gt>>"
+msgstr "get I<E<lt>目標E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:108
 msgid "Get and display a preference value."
-msgstr "Bir ayar değerini görüntüler."
+msgstr "取得並顯示某個偏好設定的值。"
 
 #. type: Plain text
 #: amulecmd.1:110 amulecmd.1:144 amulecmd.1:173 amulecmd.1:183
 msgid "Available values for I<E<lt>whatE<gt>>:"
-msgstr "I<E<lt>değerE<gt>> ile kullanılabilecek değerler:"
+msgstr "I<E<lt>目標E<gt>> 參數可用的值:"
 
 #. type: Plain text
 #: amulecmd.1:113
 msgid "Get bandwidth limits."
-msgstr "Bant genişliği değerlerini görüntüler."
+msgstr "取得頻寬限制。"
 
 #. type: Plain text
 #: amulecmd.1:115
 msgid "Get IPFilter preferences."
-msgstr "IPFilter ayarlarını görüntüler."
+msgstr "取得 IP 過濾器的偏好設定。"
 
 #. type: SS
 #: amulecmd.1:116
 #, no-wrap
 msgid "Help [ I<E<lt>commandE<gt>> ]"
-msgstr "Help [ I<E<lt>komutE<gt>> ]"
+msgstr "help [ I<E<lt>命令E<gt>> ]"
 
 #. type: Plain text
 #: amulecmd.1:120
@@ -661,15 +643,14 @@ msgid ""
 "list of available commands.  If called with I<E<lt>commandE<gt>>, it shows a "
 "short description of the given command."
 msgstr ""
-"Kısa bir kullanım açıklaması görüntüler. Bir parametre ile kullanılırsa "
-"mevcut komutların listesini verir. I<E<lt>komutE<gt>> ile kullanılırsa "
-"belirtilen komutun kısa bir açıklamasını görüntüler."
+"顯示使用說明。如果沒有加參數,會顯示可用的指令一覽;如果加了 I<E<lt>指令"
+"E<gt>> 參數,會顯示該指令的簡單說明。"
 
 #. type: SS
 #: amulecmd.1:120
 #, no-wrap
 msgid "Pause I<E<lt>hashE<gt>> | I<E<lt>numberE<gt>>"
-msgstr "Pause I<E<lt>hashE<gt>> | I<E<lt>sayıE<gt>>"
+msgstr "pause I<E<lt>hash 值E<gt>> | I<E<lt>編號E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:122
@@ -677,95 +658,93 @@ msgid ""
 "Pauses the download specified by I<E<lt>hashE<gt>> or I<E<lt>numberE<gt>>. "
 "To get the value use B<show>."
 msgstr ""
-"I<E<lt>hashE<gt>> ya da I<E<lt>sayıE<gt>> değerleri ile belirtilen indirmeyi "
-"duraklatır. Bu değerleri elde etmek için B<show> komutunu kullanabilirsiniz."
+"暫停下載指定的檔案,指定方式:I<E<lt>hash 值E<gt>> 或 I<E<lt>編號E<gt>>;要查"
+"詢數值請用 B<show>。"
 
 #. type: SS
 #: amulecmd.1:122
 #, no-wrap
 msgid "Priority I<E<lt>priorityE<gt>> I<E<lt>hashE<gt>> | I<E<lt>numberE<gt>>"
-msgstr "Priority I<E<lt>öncelikE<gt>> I<E<lt>hashE<gt>> | I<E<lt>sayıE<gt>>"
+msgstr "priority I<E<lt>優先程度E<gt>> I<E<lt>hash 值E<gt>> | I<E<lt>編號E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:124
 msgid ""
 "Set priority of a download specified by I<E<lt>hashE<gt>> or "
 "I<E<lt>numberE<gt>>."
-msgstr ""
-"I<E<lt>hashE<gt>> ya da I<E<lt>sayıE<gt>> ile belirtilen bir indirmenin "
-"önceliğini ayarlar."
+msgstr "用 I<E<lt>hash 值E<gt>> 或 I<E<lt>編號E<gt>> 設定下載檔案的優先程度。"
 
 #. type: Plain text
 #: amulecmd.1:126
 msgid "Available values for I<E<lt>priorityE<gt>>:"
-msgstr "I<E<lt>öncelikE<gt>> için kullanılabilecek değerler:"
+msgstr "可用在 I<E<lt>優先度E<gt>> 的參數:"
 
 #. type: Plain text
 #: amulecmd.1:129
 msgid "Automatic priority."
-msgstr "Otomatik öncelik."
+msgstr "自動優先權。"
 
 #. type: Plain text
 #: amulecmd.1:131
 msgid "High priority."
-msgstr "Yüksek öncelik."
+msgstr "高優先權。"
 
 #. type: Plain text
 #: amulecmd.1:133
 msgid "Low priority."
-msgstr "Düşük öncelik."
+msgstr "低優先權。"
 
 #. type: Plain text
 #: amulecmd.1:135
 msgid "Normal priority."
-msgstr "Normal öncelik."
+msgstr "一般優先權。"
 
 #. type: Plain text
 #: amulecmd.1:138
 msgid "Shows the progress of an on-going search."
-msgstr "Sürmekte olan bir aramanın ilerlemesini gösterir."
+msgstr "顯示正在進行中的搜尋進度。"
 
 #. type: Plain text
 #: amulecmd.1:140
 msgid "A synonim of the B<exit> command."
-msgstr "B<exit> komutu ile eş anlamlıdır."
+msgstr "功能和 B<exit> 一樣的指令。"
 
 #. type: SS
 #: amulecmd.1:140
 #, no-wrap
 msgid "Reload I<E<lt>whatE<gt>>"
-msgstr "Reload I<E<lt>değerE<gt>>"
+msgstr "reload I<E<lt>目標E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:142
 msgid "Reloads a given object."
-msgstr "Belirtilen değeri yeniden yükler."
+msgstr "重新載入指定的物件。"
 
 #. type: Plain text
 #: amulecmd.1:147
 msgid "Reload shared files list."
-msgstr "Paylaşılan dosyalar listesini yeniden yükler."
+msgstr "重新載入分享檔案清單。"
 
 #. type: Plain text
 #: amulecmd.1:149
 msgid "Reload IP filter tables."
-msgstr "IP filtre tablolarını yeniden yükler."
+msgstr "重新載入 IP 過濾器資料。"
 
 #. type: Plain text
 #: amulecmd.1:152
 msgid "Reset the log."
-msgstr "Günlüğü sıfırlar."
+msgstr "清除記錄。"
 
 #. type: Plain text
 #: amulecmd.1:154
 msgid "Shows you the results of the last search."
-msgstr "Son aramanın sonuçlarını gösterir."
+msgstr "顯示上次搜尋的結果。"
 
 #. type: SS
 #: amulecmd.1:154
 #, no-wrap
 msgid "Resume I<E<lt>hashE<gt>> | I<E<lt>numberE<gt>>"
-msgstr "Resume I<E<lt>hashE<gt>> | I<E<lt>sayıE<gt>>"
+msgstr "resume I<E<lt>hash 值E<gt>> | I<E<lt>編號E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:156
@@ -773,14 +752,14 @@ msgid ""
 "Resumes the download specified by I<E<lt>hashE<gt>> or I<E<lt>numberE<gt>>. "
 "To get the value use B<show>."
 msgstr ""
-"I<E<lt>hashE<gt>> ya da I<E<lt>sayıE<gt>> ile belirtilen indirmeye kaldığı "
-"yerden devam eder. Değeri öğrenmek için B<show> komutunu kullanabilirsiniz."
+"繼續下載指定的檔案,指定方式:I<E<lt>hash 值E<gt>> 或 I<E<lt>編號E<gt>>;要查"
+"詢數值請用 B<show>。"
 
 #. type: SS
 #: amulecmd.1:156
 #, no-wrap
 msgid "Search I<E<lt>typeE<gt>> I<E<lt>keywordE<gt>>"
-msgstr "Search I<E<lt>türE<gt>> I<E<lt>anahtarkelimeE<gt>>"
+msgstr "search I<E<lt>種類E<gt>> I<E<lt>關鍵字E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:159
@@ -789,83 +768,80 @@ msgid ""
 "keyword to search is mandatory to do this.  Example: `search kad amule' "
 "performs a kad search for `amule'."
 msgstr ""
-"Girilen I<E<lt>anahtarkelimeE<gt>> için bir arama yapar. Bir arama türü ve "
-"bir anahtar kelime kullanmanız mecburidir. Örneğin `search kad amule' kad "
-"ağında `amule' sözcüğü ile arama yapar."
+"用指定的 I<E<lt>關鍵字E<gt>> 搜尋。必須要有搜尋的「種類」加上「關鍵字」,例"
+"如:「search kad amule」會開始在 KAD 網路搜尋「amule」。"
 
 #. type: Plain text
 #: amulecmd.1:161
 msgid "Available search types:"
-msgstr "Kullanılabilecek arama türleri:"
+msgstr "可用的搜尋類型:"
 
 #. type: Plain text
 #: amulecmd.1:164
 msgid "Performs a global search."
-msgstr "Genel arama yapar."
+msgstr "開始在全球伺服器搜尋。"
 
 #. type: Plain text
 #: amulecmd.1:166
 msgid "Performs a search on the Kademlia network."
-msgstr "Kad ağında arama yapar."
+msgstr "開始在 Kad 搜尋。"
 
 #. type: Plain text
 #: amulecmd.1:168
 msgid "Performs a local search."
-msgstr "Sunucuda arama yapar."
+msgstr "開始在本地伺服器搜尋。"
 
 #. type: SS
 #: amulecmd.1:169
 #, no-wrap
 msgid "Set I<E<lt>whatE<gt>>"
-msgstr "Set I<E<lt>değerE<gt>>"
+msgstr "set I<E<lt>目標E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:171
 msgid "Sets a given preferences value."
-msgstr "Belirtilen değeri ayarlara girer."
+msgstr "設定指定的偏好設定值。"
 
 #. type: Plain text
 #: amulecmd.1:176
 msgid "Set bandwidth limits."
-msgstr "Bant genişliği değerlerini ayarlar."
+msgstr "設定頻寬限制。"
 
 #. type: Plain text
 #: amulecmd.1:178
 msgid "Set IPFilter preferences."
-msgstr "IPFilter tercihlerini ayarlar."
+msgstr "設定 IP過濾器的偏好設定。"
 
 #. type: SS
 #: amulecmd.1:179
 #, no-wrap
 msgid "Show I<E<lt>whatE<gt>>"
-msgstr "Show I<E<lt>değerE<gt>>"
+msgstr "show I<E<lt>目標E<gt>>"
 
 #. type: Plain text
 #: amulecmd.1:181
 msgid "Shows upload/download queue, servers list or shared files list."
-msgstr ""
-"İndirme/aktarma kuyruğunu, sunucu listesini ya da paylaşılan dosya listesini "
-"gösterir."
+msgstr "顯示 上傳/下載 等候區、伺服器清單 或 分享檔案清單。"
 
 #. type: Plain text
 #: amulecmd.1:186
 msgid "Show download queue."
-msgstr "İndirme kuyruğunu gösterir."
+msgstr "顯示下載等候區。"
 
 #. type: Plain text
 #: amulecmd.1:188
 msgid "Show log."
-msgstr "Günlüğü (log) gösterir."
+msgstr "顯示記錄。"
 
 #. type: Plain text
 #: amulecmd.1:190
 msgid "Show servers list."
-msgstr "Sunucu listesini gösterir."
+msgstr "顯示伺服器清單。"
 
 #. type: Plain text
 #: amulecmd.1:192
 msgid "Show upload queue."
-msgstr "Aktarma (gönderilen dosyalar) kuyruğunu gösterir."
+msgstr "顯示上傳等候區。"
 
 #. type: Plain text
 #: amulecmd.1:196
@@ -873,19 +849,19 @@ msgid ""
 "Shutdown the remote running core (amule/amuled).  This will also shut down "
 "the text client, since it is unusable without a running core."
 msgstr ""
-"Uzakta çalışmakta olan çekirdeği (amule/amuled) kapatır. Bu metin temelli "
-"istemciyi de kapatacaktır çünkü çekirdek olmadan işleyemez."
+"關閉在遠端執行的核心 (amule/amuled)。這樣也會關閉文字模式客戶端程式,因為不能"
+"在沒有核心下執行。"
 
 #. type: SS
 #: amulecmd.1:196
 #, no-wrap
 msgid "Statistics [ I<E<lt>numberE<gt>> ]"
-msgstr "İstatistikler [ I<E<lt>sayıE<gt>> ] "
+msgstr "statistics [ I<E<lt>號字E<gt>> ]"
 
 #. type: Plain text
 #: amulecmd.1:198
 msgid "Show statistics tree."
-msgstr "İstatistikler ağacını gösterir."
+msgstr "顯示統計資訊。"
 
 #. type: Plain text
 #: amulecmd.1:202
@@ -894,30 +870,26 @@ msgid ""
 "argument to this command, which tells how many entries of the client version "
 "subtree should be shown. Passing 0, or omitting it means `unlimited'."
 msgstr ""
-"0-255 arası I<E<lt>sayıE<gt>> isteğe bağlı argüman olarak komuta "
-"aktarılabilir, bu kaç tane istemci sürümü alt ağacının gösterileceğini "
-"belirtir. 0 kullanımı ya da hiçbir argüman kullanılmaması `sınırsız' "
-"anlamına gelir."
+"I<E<lt>編號E<gt>> 是這個指令的參數之一,用來指定要顯示多少個客戶端程式的版本"
+"附加版本;須為 0-255 的數字,輸入 0 或略過不輸入則表示「不限」。"
 
 #. type: Plain text
 #: amulecmd.1:205
 msgid ""
 "Example: `statistics 5' will show only the top 5 versions for each client "
 "type."
-msgstr ""
-"Örneğin `statistics 5' her istemcinin en çok kullanılan 5 sürümünü gösterir."
+msgstr "範例:「statistics 5」只會顯示每個客戶端種類的前 5 個版本。"
 
 #. type: Plain text
 #: amulecmd.1:207
 msgid "Show connection status, current up/download speeds, etc."
-msgstr ""
-"Bağlantı durumunu, sürmekte olan indirmeleri ve aktarmaları vs. gösterir."
+msgstr "顯示 連線狀態、目前的上傳/下載速度 等等。"
 
 #. type: SS
 #: amulecmd.1:212 amuleweb.1:137
 #, no-wrap
 msgid "Languages"
-msgstr "Diller"
+msgstr "語言"
 
 #. type: Plain text
 #: amulecmd.1:218 amuleweb.1:143
@@ -928,16 +900,15 @@ msgid ""
 "character set to use and I<modifier> allows the user to select a specific "
 "instance of localization data within a single category."
 msgstr ""
-"B<-l> seçeneği için I<E<lt>dilE<gt>> parametresi şu biçimde kullanılmalıdır: "
-"I<dil>[B<_>I<DİL>][B<.>I<kodlama>][B<@>I<niteleyici>] ki burada I<dil> "
-"birinci dil, I<DİL> lehçe/bölge, I<kodlama> karakter setidir ve "
-"I<niteleyici> kullanıcıya belli bir kategori içinde belli yerelleştirme "
-"verileri kullanma olanağı sağlar."
+"B<-l> 選項的 I<E<lt>語系E<gt>> 參數有以下幾種樣式:I<lang>[B<_>I<LANG>][B<."
+">I<encoding>][B<@>I<modifier>]。其中:I<lang> 是主要的語系代碼,I<LANG> 是語"
+"系次分類、使用地區代碼,I<encoding> 是使用的編碼,I<modifier> 則讓使用者用一"
+"個代號就指定一組語系設定。例如:「zh_TW.UTF-8 at Taiwan」"
 
 #. type: Plain text
 #: amulecmd.1:220 amuleweb.1:145
 msgid "For example, the following strings are valid:"
-msgstr "Örnek olarak, aşağıdaki dizeler geçerlidir:"
+msgstr "例如,以下的字串都有效:"
 
 #. type: Plain text
 #: amulecmd.1:234 amuleweb.1:159
@@ -945,8 +916,8 @@ msgid ""
 "Though all the above strings are accepted as valid language definitions, "
 "I<encoding> and I<modifier> are yet unused."
 msgstr ""
-"Yukarıdaki tüm dizeler geçerlidir ancak I<kodlama> ve I<niteleyici> henüz "
-"kullanılmamaktadır."
+"雖然上面這些都是合於規定的語系設定參數,但 I<encoding> 和 I<modifier> 目前已"
+"經沒在使用了。"
 
 #. type: Plain text
 #: amulecmd.1:237 amuleweb.1:162
@@ -954,17 +925,14 @@ msgid ""
 "In addition to the format above, you can also specify full language names in "
 "English - so B<-l german> is also valid and is equal to B<-l de_DE>."
 msgstr ""
-"Yukarıdakilere ek olarak dil isimlerini İngilizce olarak belirtebilirsiniz - "
-"yani B<-l german> ile B<-l de_DE> eşdeğerdir ve ikisi de geçerlidir."
+"你也可以使用完整的英文名稱來設定語系,例如:B<-l german> 也等於 B<-l de_DE>。"
 
 #. type: Plain text
 #: amulecmd.1:240 amuleweb.1:165
 msgid ""
 "When no locale is defined, either on command-line or in config file, system "
 "default language will be used."
-msgstr ""
-"Ne komut satırında ne de yapılandırma dosyasında hiçbir dil belirtilmediği "
-"zaman sistemin varsayılan dili kullanılacaktır."
+msgstr "沒有在命令列或設定檔中設定語系時,會使用系統預設語言。"
 
 #. type: Plain text
 #: amulecmd.1:242 amuleweb.1:173
@@ -975,43 +943,42 @@ msgstr "~/.aMule/remote.conf"
 #: amulecmd.1:242 amuleweb.1:177
 #, no-wrap
 msgid "EXAMPLE"
-msgstr "ÖRNEK"
+msgstr "範例"
 
 #. type: Plain text
 #: amulecmd.1:244
 msgid "Typically amulecmd will be first run as:"
-msgstr "Tipik olarak amulecmd ilk defada şu şekilde başlayacaktır:"
+msgstr "通常 amulecmd 會優先以這樣執行:"
 
 #. type: Plain text
 #: amulecmd.1:246
 msgid "B<amulecmd> B<-h> I<hostname> B<-p> I<ECport> B<-P> I<ECpassword> B<-w>"
 msgstr ""
-"B<amulecmd> B<-h> I<bilgisayaradı> B<-p> I<DBport> B<-P> I<DBşifre> B<-w>"
+"B<amulecmd> B<-h> I<主機名稱> B<-p> I<外部連線通訊埠> B<-P> I<外部連線密碼> "
+"B<-w>"
 
 #. type: Plain text
 #: amulecmd.1:248 amuleweb.1:183
 msgid "or"
-msgstr "ya da"
+msgstr "或"
 
 #. type: Plain text
 #: amulecmd.1:250
 msgid "B<amulecmd> B<--create-config-from>=I</home/username/.aMule/amule.conf>"
 msgstr ""
-"B<amulecmd> B<--create-config-from>=I</home/kullanıcıadı/.aMule/amule.conf>"
+"B<amulecmd> B<--create-config-from>=I</home/username/.aMule/amule.conf>"
 
 #. type: Plain text
 #: amulecmd.1:252 amuleweb.1:187
 msgid ""
 "These will save settings to I<$HOME/.aMule/remote.conf>, and later you only "
 "need to type:"
-msgstr ""
-"Ayarları I<$HOME/.aMule/remote.conf> dosyasına kayıt eder ve daha sonra "
-"sadece şunu girmeniz yeterli olacaktır:"
+msgstr "這樣就會將設定儲存到 I<$HOME/.aMule/remote.conf>,然後你只需要再輸入:"
 
 #. type: Plain text
 #: amulecmd.1:256
 msgid "Of course, you don't have to follow this example."
-msgstr "Tabii ki bu örneğe harfiyen uymanız zorunlu değildir."
+msgstr "當然,你可以不必都遵照這個範例。"
 
 #. type: TH
 #: amuled.1:1
@@ -1034,28 +1001,28 @@ msgstr "aMule Daemon"
 #. type: Plain text
 #: amuled.1:6
 msgid "amuled - the all-platform eMule p2p client - daemonized version"
-msgstr "amuled - her platformda çalışan eMule p2p istemcisi - daemon sürümü"
+msgstr "amuled - 跨平台的 eMule P2P 客戶端程式 背景常駐程式版"
 
 #. type: Plain text
 #: amuled.1:9 ../../src/utils/cas/docs/cas.1:11
 msgid "[B<-c> I<E<lt>pathE<gt>>]"
-msgstr "[B<-c> I<E<lt>yolE<gt>>]"
+msgstr "[B<-c> I<E<lt>路徑E<gt>>]"
 
 #. type: Plain text
 #: amuled.1:11
 msgid "[B<-p> I<E<lt>pathE<gt>>]"
-msgstr "[B<-p> I<E<lt>yolE<gt>>]"
+msgstr "[B<-p> I<E<lt>路徑E<gt>>]"
 
 #. type: Plain text
 #: amuled.1:32
 msgid "Forks to background."
-msgstr "Kendisini arkaplana çatallar."
+msgstr "在背景開啟新程式。"
 
 #. type: TP
 #: amuled.1:32
 #, no-wrap
 msgid "B<[ -p> I<E<lt>pathE<gt>>, B<--pid-file>=I<E<lt>pathE<gt>> B<]>"
-msgstr "B<[ -p> I<E<lt>yolE<gt>>, B<--pid-file>=I<E<lt>yolE<gt>> B<]>"
+msgstr "B<[ -p> I<E<lt>路徑E<gt>>, B<--pid-file>=I<E<lt>路徑E<gt>> B<]>"
 
 #. type: Plain text
 #: amuled.1:36
@@ -1063,13 +1030,13 @@ msgid ""
 "After fork, create a pid-file in the I<E<lt>pathE<gt>>.  I<E<lt>pathE<gt>> "
 "has to contain the filename."
 msgstr ""
-"Çatallamadan sonra I<E<lt>yolE<gt>> konumunda bir pid-file dosyası yaratır. "
-"I<E<lt>yolE<gt>>un dosya ismini içermesi gerekir."
+"開啟新程式後,在 I<E<lt>路徑E<gt>> 下建立 pid 檔案。I<E<lt>路徑E<gt>> 裏必須"
+"有檔案名稱。"
 
 #. type: Plain text
 #: amuled.1:39
 msgid "Configure EC (External Connections)."
-msgstr "DB (Dış Bağlantılar) Kurulumu"
+msgstr "設定 EC (外部連線)。"
 
 #. type: TH
 #: amulegui.1:1
@@ -1092,12 +1059,12 @@ msgstr "aMuleGUI"
 #. type: Plain text
 #: amulegui.1:6
 msgid "amulegui - aMule control program with GUI"
-msgstr "amulegui - Grafik arayüzlü aMule yönetme programı"
+msgstr "amulegui - 圖形介面的 aMule 控制程式"
 
 #. type: Plain text
 #: amulegui.1:14
 msgid "[B<-t> I<E<lt>numE<gt>>]"
-msgstr "[B<-t> I<E<lt>sayıE<gt>>]"
+msgstr "[B<-t> I<E<lt>號碼E<gt>>]"
 
 #. type: Plain text
 #: amulegui.1:24
@@ -1106,15 +1073,14 @@ msgid ""
 "EC. You can manage your amule program with it. It provides almost the same "
 "functionalities as amule, even if the core works on another computer."
 msgstr ""
-"B<amulegui> istemci bir programdır ve amule ya da amuled'e DB yoluyla "
-"bağlanabilir. aMule'ü bu şekilde yönetebilirsiniz. Çekirdeğin başka bir "
-"bilgisayarda çalışmasına rağmen amule'ün neredeyse tüm işlevlerine erişim "
-"sağlar."
+"B<amulegui> 是個客戶端程式,可以經由外部連線和 amule 或 amuled 連線,可以用它"
+"來管理 amule 程式。甚至就算核心程式是在別台電腦上執行時,它也能提供和 amule "
+"幾乎一樣的功能。"
 
 #. type: Plain text
 #: amulegui.1:39
 msgid "Skip connection dialog."
-msgstr "Bağlantı diyaloğunu geç."
+msgstr "跳過連線對話。"
 
 #. type: Plain text
 #: amulegui.1:57
@@ -1122,16 +1088,13 @@ msgid ""
 "This manpage was written by Julien Delange for Debian E<lt>julien AT gunnm "
 "DOT orgE<gt>"
 msgstr ""
-"Bu man sayfası Debian için Julien Delange E<lt>julien AT gunnm DOT orgE<gt> "
-"tarafından yazılmıştır."
+"說明文件撰寫者: Julien Delange for Debian E<lt>julien AT gunnm DOT orgE<gt>"
 
 #. type: Plain text
 #: amulegui.1:58
 msgid ""
 "This manpage was rewritten by Vollstrecker E<lt>amule at vollstreckernet.deE<gt>"
-msgstr ""
-"Bu kılavuz sayfası Vollstrecker E<lt>amule at vollstreckernet.deE<gt> "
-"tarafından yeniden yazılmıştır"
+msgstr "說明文件撰寫者: Vollstrecker E<lt>amule at vollstreckernet.deE<gt>"
 
 #. type: TH
 #: amuleweb.1:1
@@ -1148,32 +1111,32 @@ msgstr "aMule webserver v2.3.1"
 #. type: Plain text
 #: amuleweb.1:6
 msgid "amuleweb - aMule web server"
-msgstr "amuleweb - aMule web sunucusu"
+msgstr "amuleweb - aMule 網頁伺服器"
 
 #. type: Plain text
 #: amuleweb.1:15
 msgid "[B<-l> I<E<lt>langE<gt>>]"
-msgstr "[B<-l> I<E<lt>dilE<gt>>]"
+msgstr "[B<-l> I<E<lt>語言E<gt>>]"
 
 #. type: Plain text
 #: amuleweb.1:18
 msgid "[B<-t> I<E<lt>nameE<gt>>] [B<-s> I<E<lt>portE<gt>>]"
-msgstr "[B<-t> I<E<lt>isimE<gt>>] [B<-s> I<E<lt>portE<gt>>]"
+msgstr "[B<-t> I<E<lt>名稱E<gt>>] [B<-s> I<E<lt>通訊埠tE<gt>>]"
 
 #. type: Plain text
 #: amuleweb.1:20
 msgid "[B<-U> I<E<lt>portE<gt>>]"
-msgstr "[B<-U> I<E<lt>portE<gt>>]"
+msgstr "[B<-U> I<E<lt>通訊埠E<gt>>]"
 
 #. type: Plain text
 #: amuleweb.1:24
 msgid "[B<-A> I<E<lt>passwordE<gt>>] [B<-G> I<E<lt>passwordE<gt>>]"
-msgstr "[B<-A> I<E<lt>şifreE<gt>>] [B<-G> I<E<lt>şifreE<gt>>]"
+msgstr "[B<-A> I<E<lt>密碼E<gt>>] [B<-G> I<E<lt>密碼E<gt>>]"
 
 #. type: Plain text
 #: amuleweb.1:40
 msgid "[B<--amule-config-file>=I<E<lt>pathE<gt>>]"
-msgstr "[B<--amule-config-file>=I<E<lt>yolE<gt>>]"
+msgstr "[B<--amule-config-file>=I<E<lt>路徑E<gt>>]"
 
 #. type: Plain text
 #: amuleweb.1:46
@@ -1183,32 +1146,28 @@ msgid ""
 "Options can be specified via command-line or via config-file.  Command-line "
 "options take precedence over config-file options."
 msgstr ""
-"B<amuleweb> amule'e bir ağ tarayıcısı ile erişmenize olanak sağlar. "
-"amuleweb'i amule ile aynı anda ya da ayrı olarak, daha sonra ne zaman "
-"isterseniz başlatabilirsiniz. Seçenekleri komut satırı ya da yapılandırma "
-"dosyası ile belirtmek mümkündür. Komut satırı ile belirtilen seçenekler "
-"yapılandırma dosyası ile belirtilenlerden daha yüksek önceliklidir."
+"B<amuleweb> 可以經由網頁瀏覽器來管理 amule。你可以和 B<amule>(1) 一起執行 "
+"amuleweb,也可以稍候再另外執行。可以在命令列或是用用設定檔指定參數,命令列參"
+"數會優先於設定檔的參數。"
 
 #. type: TP
 #: amuleweb.1:74
 #, no-wrap
 msgid "B<[ -t> I<E<lt>nameE<gt>>, B<--template>=I<E<lt>nameE<gt>> B<]>"
-msgstr "B<[ -t> I<E<lt>isimE<gt>>, B<--template>=I<E<lt>isimE<gt>> B<]>"
+msgstr "B<[ -t> I<E<lt>名稱E<gt>>, B<--template>=I<E<lt>名稱E<gt>> B<]>"
 
 #. type: Plain text
 #: amuleweb.1:77
 msgid ""
 "Loads the template named I<E<lt>nameE<gt>>. See the B<SKIN SUPPORT> section "
 "for details."
-msgstr ""
-"Adı I<E<lt>isimE<gt>> olan şablonu yükler. Ayrıntılar için B<TEMA DESTEĞİ> "
-"bölümüne bakınız."
+msgstr "載入 I<E<lt>名稱E<gt>> 這個模板。詳細請參考 B<外觀面板支援> 章節。"
 
 #. type: TP
 #: amuleweb.1:77
 #, no-wrap
 msgid "B<[ -s> I<E<lt>portE<gt>>, B<--server-port>=I<E<lt>portE<gt>> B<]>"
-msgstr "B<[ -s> I<E<lt>portE<gt>>, B<--server-port>=I<E<lt>portE<gt>> B<]>"
+msgstr "B<[ -s> I<E<lt>通訊埠E<gt>>, B<--server-port>=I<E<lt>通訊埠E<gt>> B<]>"
 
 #. type: Plain text
 #: amuleweb.1:80
@@ -1216,67 +1175,65 @@ msgid ""
 "Webserver's HTTP port. This is the port you must point your browser to "
 "(default: I<4711>)."
 msgstr ""
-"Web sunucusunun HTTP portu. Bu ağ tarayıcınızda kullanmanız gereken port "
-"numarasıdır (varsayılan: I<4711>). "
+"網頁伺服器的 HTTP 連接埠:要用瀏覽器連線時必須加以指定 (預設:I<4711>)。"
 
 #. type: Plain text
 #: amuleweb.1:84
 msgid "Enable UPnP."
-msgstr "UPnP'yi etkinleştirir."
+msgstr "啟用 UPnP。"
 
 #. type: TP
 #: amuleweb.1:84
 #, no-wrap
 msgid "B<[ -U> I<E<lt>portE<gt>>, B<--upnp-port> I<E<lt>portE<gt>> B<]>"
-msgstr "B<[ -U> I<E<lt>portE<gt>>, B<--upnp-port> I<E<lt>portE<gt>> B<]>"
+msgstr "B<[ -U> I<E<lt>通訊埠E<gt>>, B<--upnp-port> I<E<lt>通訊埠E<gt>> B<]>"
 
 #. type: Plain text
 #: amuleweb.1:87
 msgid "UPnP port."
-msgstr "UPnP port numarası."
+msgstr "UPnP 通訊埠。"
 
 #. type: Plain text
 #: amuleweb.1:90
 msgid "Enables using gzip compression in HTTP traffic to save bandwidth."
-msgstr ""
-"Bant genişliğinden tasarruf etmek için gzip sıkıştırmasını etkinleştirir."
+msgstr "在 HTTP 傳輸時啟用 gzip 壓縮以節省頻寬。"
 
 #. type: Plain text
 #: amuleweb.1:93
 msgid "Disables using gzip compression (this is the default)."
-msgstr "Gzip sıkıştırmasını devre dışı bırakır (bu varsayılan değerdir)."
+msgstr "停用 gzip 壓縮 (這是預設值)。"
 
 #. type: TP
 #: amuleweb.1:93
 #, no-wrap
 msgid "B<[ -A> I<E<lt>passwdE<gt>>, B<--admin-pass>=I<E<lt>passwdE<gt>> B<]>"
-msgstr "B<[ -A> I<E<lt>şifreE<gt>>, B<--admin-pass>=I<E<lt>şifreE<gt>> B<]>"
+msgstr "B<[ -A> I<E<lt>密碼E<gt>>, B<--admin-pass>=I<E<lt>密碼E<gt>> B<]>"
 
 #. type: Plain text
 #: amuleweb.1:96
 msgid "Full access password for webserver."
-msgstr "Sunucuya tam erişim için şifre (parola)."
+msgstr "網站伺服器的完整存取密碼。"
 
 #. type: TP
 #: amuleweb.1:96
 #, no-wrap
 msgid "B<[ -G> I<E<lt>passwdE<gt>>, B<--guest-pass>=I<E<lt>passwdE<gt>> B<]>"
-msgstr "B<[ -G> I<E<lt>şifreE<gt>>, B<--guest-pass>=I<E<lt>şifreE<gt>> B<]>"
+msgstr "B<[ -G> I<E<lt>密碼E<gt>>, B<--guest-pass>=I<E<lt>密碼E<gt>> B<]>"
 
 #. type: Plain text
 #: amuleweb.1:99
 msgid "Guest password for webserver."
-msgstr "Web sunucusu için misafir şifresi."
+msgstr "網站伺服器的訪客密碼。"
 
 #. type: Plain text
 #: amuleweb.1:102
 msgid "Allows guest access."
-msgstr "Misafir erişimini etkinleştirir."
+msgstr "允許訪客連線。"
 
 #. type: Plain text
 #: amuleweb.1:105
 msgid "Denies guest access (default)."
-msgstr "Misafir erişimine izin vermez (varsayılan değer)."
+msgstr "禁止訪客連線 (預設)。"
 
 #. type: Plain text
 #: amuleweb.1:111
@@ -1287,27 +1244,25 @@ msgid ""
 "aMule.  (Of course, this works only for those settings that can be set in "
 "aMule's Preferences-E<gt>Remote Controls.)"
 msgstr ""
-"web sunucusu ayarlarını aMule'den/aMule'e yükler/kaydeder. Bu amuleweb'in "
-"komut satırı ve yapılandırma dosyası ayarlarını görmezden gelmesine yol "
-"açar. Ayarlar kaydedilirken hiçbiri yapılandırma dosyasına yazılmaz, aMule'e "
-"yazılır. (Tabii ki bu sadece aMule'ün Ayarlar-E<gt>Uzak Denetiminde "
-"kurulabilen değerler için geçerlidir.)"
+"從遠端的 aMule 載入網頁伺服器設定/將設定儲存到遠端。這個會使 amuleweb 忽略命"
+"令列與設定檔內的設定、並從遠端載入新設定;儲存時則只會寫入遠端 aMule 的設定。"
+"(當然,只限於 aMule 的 偏好設定 E<gt> 遠端控制 裏的幾個設定項目)"
 
 #. type: Plain text
 #: amuleweb.1:114
 msgid "Disable PHP interpreter (deprecated)"
-msgstr "PHP yorumlayıcısını devre dışı bırakır (eskimiş)"
+msgstr "停用 PHP 解譯器 (不建議)"
 
 #. type: Plain text
 #: amuleweb.1:117
 msgid "Recompiles PHP pages on each request."
-msgstr "PHP sayfalarını her sorguda yeniden derler."
+msgstr "爲每個要求重編譯 PHP 頁面。"
 
 #. type: TP
 #: amuleweb.1:126
 #, no-wrap
 msgid "B<[ --amule-config-file>=I<E<lt>pathE<gt>> B<]>"
-msgstr "B<[ --amule-config-file>=I<E<lt>yolE<gt>> B<]>"
+msgstr "B<[ --amule-config-file>=I<E<lt>路徑E<gt>> B<]>"
 
 #. type: Plain text
 #: amuleweb.1:132
@@ -1317,17 +1272,15 @@ msgid ""
 "line and config-file settings to be ignored, preferences to be read from the "
 "given config file, and also implies the B<-q -L> options."
 msgstr ""
-"aMule yapılandırma dosyasına erişim yolu.  B<DOĞRUDAN KULLANMAYIN!> aMule bu "
-"seçeneği amuleweb'i aMule ile başlatırken kullanır.  Bu seçenek diğer tüm "
-"komut satırı ve yapılandırma dosyası ayarlarının görmezden gelinmesine, "
-"ayarların verilen yapılandırma dosyasından okunmasına yol açar ve B<-q -L> "
-"seçeneklerinin kullanılacağı anlamına da gelir."
+"aMule 設定擋路徑。B<請不要直接使用!>這個選項會導致原有命令列和設定檔的設定都"
+"被忽略都被忽略。 啟動 aMule 後在開啟 amuleweb 時會用這個選項,從指定的設定檔"
+"讀取偏好設定,並自行加上 B<-q -L> 選項。"
 
 #. type: SH
 #: amuleweb.1:165
 #, no-wrap
 msgid "SKIN SUPPORT"
-msgstr "TEMA DESTEĞİ"
+msgstr "外觀面板支援"
 
 #. type: Plain text
 #: amuleweb.1:169
@@ -1338,11 +1291,10 @@ msgid ""
 "places: first in I<~/.aMule/webserver/> and then in I</usr/share/amule/"
 "webserver/> if you installed with --prefix=/usr."
 msgstr ""
-"B<amuleweb> bilgileri çeşitli temalarda görüntüleyebilir. Bu temalara şablon "
-"adı verilir ve amuleweb'in belli bir şablonu yüklemesini B<-t> komut satırı "
-"seçeneği ile sağlayabilirsiniz. Şablonlar iki konumda aranır: önce I<~/."
-"aMule/webserver/> konumunda, sonra da, kurulum --prefix=/usr ile yapıldıysa "
-"I</usr/share/amule/webserver/> konumunda."
+"B<amuleweb> 可以用不同的外觀面板顯示資訊;這些面板稱為「模板」,你可以用在命"
+"令列用 B<-t> 選項讓 amuleweb 載入指定的模板。程式會在兩個地方搜尋模板:先從 "
+"I<~/.aMule/webserver/>,然後如果是用 --prefix=/usr 安裝程式,就會再到 I</usr/"
+"share/amule/webserver/> 搜尋。"
 
 #. type: Plain text
 #: amuleweb.1:171
@@ -1350,8 +1302,8 @@ msgid ""
 "Each template must be in a subdirectory of the template name, and this "
 "directory must contain all files the template needs."
 msgstr ""
-"Her şablonun şablon isminin alt dizininde bulunması gerekir ve bu dizinin "
-"şablonun ihtiyaç duyduğu tüm dosyaları bulundurması şarttır."
+"每個模板都必須被放在以該模板名稱命名的子目錄下,這個目錄裏也必須包含所有模板"
+"需要的檔案。"
 
 #. type: Plain text
 #: amuleweb.1:175
@@ -1366,7 +1318,7 @@ msgstr "I<$(pkgdatadir)>/webserver/"
 #. type: Plain text
 #: amuleweb.1:179
 msgid "Typically amuleweb will be first run as:"
-msgstr "Tipik olarak amuleweb ilk defada şu şekilde başlayacaktır:"
+msgstr "通常 amuleweb 會優先以這樣執行:"
 
 #. type: Plain text
 #: amuleweb.1:181
@@ -1374,14 +1326,14 @@ msgid ""
 "B<amuleweb> B<-h> I<hostname> B<-p> I<ECport> B<-P> I<ECpassword> B<-s> "
 "I<HTTPport> B<-A> I<AdminPassword> B<-w>"
 msgstr ""
-"B<amuleweb> B<-h> I<hostismi> B<-p> I<DBport> B<-P> I<DBşifresi> B<-s> "
-"I<HTTPport> B<-A> I<AdminŞifresi> B<-w>"
+"B<amuleweb> B<-h> I<主機名稱> B<-p> I<外部連線通訊埠> B<-P> I<外部連線密碼> "
+"B<-s> I<HTTP 通訊埠> B<-A> I<管理者密碼> B<-w>"
 
 #. type: Plain text
 #: amuleweb.1:185
 msgid "B<amuleweb> B<--create-config-from>=I</home/username/.aMule/amule.conf>"
 msgstr ""
-"B<amuleweb> B<--create-config-from>=I</home/kullanıcıadı/.aMule/amule.conf>"
+"B<amuleweb> B<--create-config-from>=I</home/username/.aMule/amule.conf>"
 
 #. type: Plain text
 #: amuleweb.1:191
@@ -1389,8 +1341,7 @@ msgid ""
 "Of course, you may specify any more or less options on the first example "
 "line, and you may also totally omit it."
 msgstr ""
-"Tabii ki ilk örnek satırında daha az ya da fazla seçenek belirtebilirsiniz, "
-"hatta onu tamamen görmezden gelebilirsiniz."
+"當然,你可以指定比第一行範例裏更多或更少的選項,甚至您也可以完全不使用。"
 
 #. type: TH
 #: ed2k.1:1
@@ -1402,22 +1353,22 @@ msgstr "ED2K"
 #: ed2k.1:1
 #, no-wrap
 msgid "aMule eD2k link parser v1.5.1"
-msgstr "aMule eD2k bağlantı çözümleyicisi v1.5.1"
+msgstr "aMule 的 eD2k 連結分析程式 v1.5.1"
 
 #. type: Plain text
 #: ed2k.1:6
 msgid "ed2k - aMule eD2k link parser"
-msgstr "ed2k - aMule eD2k bağlantı çözümleyicisi"
+msgstr "ed2k - aMule 的 eD2k 連結分析程式"
 
 #. type: Plain text
 #: ed2k.1:10
 msgid "[B<-c> I<E<lt>pathE<gt>>] [B<-t> I<E<lt>numE<gt>>]"
-msgstr "[B<-c> I<E<lt>yolE<gt>>] [B<-t> I<E<lt>sayıE<gt>>]"
+msgstr "[B<-c> I<E<lt>路徑E<gt>>] [B<-t> I<E<lt>號碼E<gt>>]"
 
 #. type: Plain text
 #: ed2k.1:13
 msgid "I<E<lt>eD2k-linkE<gt>>"
-msgstr "I<E<lt>eD2k-bağlantısıE<gt>>"
+msgstr "I<E<lt>eD2k 連結E<gt>>"
 
 #. type: Plain text
 #: ed2k.1:21
@@ -1425,35 +1376,30 @@ msgid ""
 "Sends the given I<E<lt>eD2k-linkE<gt>> to aMule, i.e. writes it to the file "
 "~/.aMule/ED2KLinks, which will be checked by aMule every second for links."
 msgstr ""
-"Herhangi bir I<E<lt>eD2k-bağlantısınıE<gt>> aMule'e gönderir, yani onu ~/."
-"aMule/ED2KLinks dosyasına yazar ki bu dosya aMule tarafından her saniye "
-"bağlantılar için sorgulanır."
+"將指定的 I<E<lt>eD2k 連結E<gt>> 傳送給 aMule,會寫入 aMule 隨時都在檢查有無新"
+"增連結的 ~/.aMule/ED2KLinks 檔案裏。"
 
 #. type: Plain text
 #: ed2k.1:30
 msgid ""
 "Loads all link found in the emulecollection given as I<E<lt>ed2k-linkE<gt>>"
-msgstr ""
-"Bir emule koleksiyonunda I<E<lt>ed2k-bağlantısıE<gt>> şeklinde bulunan tüm "
-"bağlantıları yükler"
+msgstr "載入所有以 I<E<lt>eD2k 連結E<gt>> 方式指定的 eMule 收藏庫裏找到的連結"
 
 #. type: Plain text
 #: ed2k.1:33
 msgid ""
 "Lists all link found in the emulecollection given as I<E<lt>ed2k-linkE<gt>>"
-msgstr ""
-"Bir emule koleksiyonunda I<E<lt>ed2k-bağlantısıE<gt>> şeklinde bulunan tüm "
-"bağlantıları listeler"
+msgstr "列出所有以 I<E<lt>eD2k 連結E<gt>> 方式指定的 eMule 收藏庫裏找到的連結"
 
 #. type: Plain text
 #: ed2k.1:53
 msgid "a magnet link;"
-msgstr "bir magnet bağlantısı;"
+msgstr "magnet 連結;"
 
 #. type: Plain text
 #: ed2k.1:55
 msgid "an emulecollection file."
-msgstr "bir emulecollection dosyası."
+msgstr "eMule 收藏庫檔案。"
 
 #. type: Plain text
 #: ed2k.1:60
@@ -1463,11 +1409,9 @@ msgid ""
 "B<ed2k E<lt>link1E<gt> -t2 E<lt>link2E<gt>> will download I<E<lt>link1E<gt>> "
 "in standard category and I<E<lt>link2E<gt>> in category 2."
 msgstr ""
-"B<Parametrelerin giriş sırası önemlidir.> Birden fazla bağlantı "
-"girebilirsiniz ve her bağlantının kendine özel parametreleri olabilir. "
-"Örneğin B<ed2k E<lt>bağlantı1E<gt> -t2 E<lt>bağlantı2E<gt>> "
-"I<E<lt>bağlantı1E<gt>> dosyasını standart kategoriye ve "
-"I<E<lt>bağlantı2E<gt>> dosyasını ikinci kategoriye indirecektir."
+"B<指定參數時的順序很重要。>你可以指定兩個以上的連結、每個連結都有自己的參數。"
+"例如:B<ed2k E<lt>連結一E<gt> -t2 E<lt>連結二E<gt>> 會將 I<E<lt>連結一E<gt>> "
+"放在「預設分類」、將 I<E<lt>連結二E<gt>> 放在「分類2」。"
 
 #. type: Plain text
 #: ed2k.1:62
@@ -1489,22 +1433,20 @@ msgstr "aLinkCreator"
 #. type: Plain text
 #: ../../src/utils/aLinkCreator/docs/alc.1:5
 msgid "aLinkCreator - the aMule eD2k link creator"
-msgstr "aLinkCreator - aMule eD2k bağlantı yaratıcısı"
+msgstr "aLinkCreator - aMule 的 eD2k 連結建立程式"
 
 #. type: Plain text
 #: ../../src/utils/aLinkCreator/docs/alc.1:9
 msgid ""
 "B<alc> is a graphical utility to create an eD2k link to any file on your "
 "computer."
-msgstr ""
-"B<alc> bilgisayarınızdaki herhangi bir dosya için eD2k bağlantısı "
-"yaratabilen grafik arayüzlü bir araçtır."
+msgstr "B<alc> 是可以用來建立你電腦上任何檔案的 eD2k 連結的圖形介面工具程式。"
 
 #. type: Plain text
 #: ../../src/utils/aLinkCreator/docs/alc.1:11
 #: ../../src/utils/wxCas/docs/wxcas.1:16
 msgid "This app doesn't take any arguments."
-msgstr "Bu uygulama hiçbir argüman almaz."
+msgstr "這個應用程式不接受任何引數。"
 
 #. type: TH
 #: ../../src/utils/aLinkCreator/docs/alcc.1:1
@@ -1516,17 +1458,17 @@ msgstr "ALCC"
 #: ../../src/utils/aLinkCreator/docs/alcc.1:1
 #, no-wrap
 msgid "aMule eD2k links calculator"
-msgstr "aMule eD2k bağlantı hesaplayıcısı"
+msgstr "aMule 的 eD2k 連結計算程式"
 
 #. type: Plain text
 #: ../../src/utils/aLinkCreator/docs/alcc.1:6
 msgid "alcc - text based eD2k links calculator for aMule"
-msgstr "alcc - aMule için metin temelli eD2k bağlantı hesaplayıcısı"
+msgstr "alcc - aMule 的文字介面 eD2k 連結計算程式"
 
 #. type: Plain text
 #: ../../src/utils/aLinkCreator/docs/alcc.1:11
 msgid "I<E<lt>inputfiles_listE<gt>>"
-msgstr "I<E<lt>girdidosya_listesiE<gt>>"
+msgstr "I<E<lt>i輸入檔案清單E<gt>>"
 
 #. type: Plain text
 #: ../../src/utils/aLinkCreator/docs/alcc.1:16
@@ -1534,18 +1476,17 @@ msgid ""
 "Compute the eD2k links of all the input files given in the "
 "I<E<lt>inputfiles_listE<gt>> (There can be one or more files)."
 msgstr ""
-"I<E<lt>girdidosya_listesiE<gt>>nde girilen tüm dosyaların eD2k "
-"bağlantılarını hesaplar (bir ya da birden fazla dosya olabilir)"
+"計算 I<E<lt>輸入檔案清單E<gt>> 裏所有檔案的 eD2k 連結。(可接受一個或多個檔案)"
 
 #. type: Plain text
 #: ../../src/utils/aLinkCreator/docs/alcc.1:19
 msgid "Compute and add part hashes to the computed eD2k links."
-msgstr "Bölümler için hash değerlerini hesaplar ve eD2k bağlantılarına ekler."
+msgstr "計算並將暫存檔 hash 值新增到已計算好的 eD2k 連結裏。"
 
 #. type: Plain text
 #: ../../src/utils/aLinkCreator/docs/alcc.1:26
 msgid "Be verbose - show also calculation steps."
-msgstr "Geveze olur - hesap adımlarını da gösterir."
+msgstr "詳細模式 - 也顯示計算的過程。"
 
 #. type: TH
 #: ../../src/utils/cas/docs/cas.1:1
@@ -1562,7 +1503,7 @@ msgstr "cas v0.8"
 #. type: Plain text
 #: ../../src/utils/cas/docs/cas.1:6
 msgid "cas - c aMule statistics"
-msgstr "cas - c aMule istatistikleri"
+msgstr "cas - 以 C 語言撰寫的 aMule 統計資訊程式"
 
 #. type: Plain text
 #: ../../src/utils/cas/docs/cas.1:18
@@ -1571,9 +1512,8 @@ msgid ""
 "signature file to console (in a human readable form). For this to work, you "
 "must enable the \"Online Signature\" option in aMule's preferences."
 msgstr ""
-"B<cas> çevrimiçi aMule imza dosyanızı konsolda (insanların okuyabileceği bir "
-"şekilde) görüntülemeye yarayan bir programdır. Bunun çalışması için aMule'ün "
-"ayarlarında \"Çevrim İçi İmza\" seçeneğini etkinleştirmeniz gerekmektedir."
+"B<cas> 是可以在終端機界面以人類可閱讀的形式顯示你的 aMule 線上簽名識別檔的程"
+"式。要使用這個功能,你必須在偏好設定裏啟用「線上簽名識別」。"
 
 #. type: Plain text
 #: ../../src/utils/cas/docs/cas.1:22
@@ -1582,8 +1522,8 @@ msgid ""
 "I<=E<lt>PATHE<gt>> to this option, to specify the location it should be "
 "written to."
 msgstr ""
-"Çevrimiçi imza resmini yazar. Yazılacağı konumu belirtmek için İsteğinize "
-"bağlı olarak bu seçeneğe I<=E<lt>YOLE<gt>> ekleyebilirsiniz."
+"除存線上簽名識別圖片。你也可以在選項中加入 I<=E<lt>路徑E<gt>> 來指定要儲存的地"
+"方。"
 
 #. type: Plain text
 #: ../../src/utils/cas/docs/cas.1:26
@@ -1592,22 +1532,18 @@ msgid ""
 "I<=E<lt>PATHE<gt>> to this option, to specify the location it should be "
 "written to."
 msgstr ""
-"Resim ve istatistikleri bir HTML sayfasına yazar. Yazılacağı konumu "
-"belirtmek için İsteğinize bağlı olarak bu seçeneğe I<=E<lt>YOLE<gt>> "
-"ekleyebilirsiniz."
+"有統計資訊與圖片的 HTML 檔案。你也可以在選項中加入 I<=E<lt>路徑E<gt>> 來指定要"
+"儲存的地方。"
 
 #. type: Plain text
 #: ../../src/utils/cas/docs/cas.1:34
 msgid "Without any options, it prints online signature data to stdout."
-msgstr ""
-"Hiçbir seçenek belirtilmediği zaman çevrimiçi imzayı standart çıktıda yazar."
+msgstr "如果沒有選項,會在標準輸出顯示線上簽名識別。"
 
 #. type: Plain text
 #: ../../src/utils/cas/docs/cas.1:36
 msgid "B<cas> was written by Pedro de Oliveira E<lt>falso at rdk.homeip.netE<gt>"
-msgstr ""
-"B<cas> Pedro de Oliveira E<lt>falso at rdk.homeip.netE<gt> tarafından "
-"yazılmıştır"
+msgstr "B<cas> 的作者:Pedro de Oliveira E<lt>falso at rdk.homeip.netE<gt>"
 
 #. type: Plain text
 #: ../../src/utils/cas/docs/cas.1:38
@@ -1639,7 +1575,7 @@ msgstr "wxCas"
 #. type: Plain text
 #: ../../src/utils/wxCas/docs/wxcas.1:5
 msgid "wxcas - wx c aMule statistics"
-msgstr "wxcas - wx c aMule istatistikleri"
+msgstr "wxcas - 以 C 語言、wxWidgets 撰寫的 aMule 統計資訊程式"
 
 #. type: Plain text
 #: ../../src/utils/wxCas/docs/wxcas.1:11
@@ -1648,9 +1584,8 @@ msgid ""
 "file in a nice wx Window on your Desktop.  For this to work, you must enable "
 "the \"Online Signature\" option in aMule's preferences."
 msgstr ""
-"B<wxcas> çevrimiçi imzanızın içeriklerini güzel bir wx penceresinde "
-"görüntüler. Bunun çalışması için aMule'ün ayarlarında \"Çevrim İçi İmza\" "
-"seçeneğini etkinleştirmeniz gerekmektedir."
+"B<wxcas> 是可以在桌面以更佳的 wx 視窗顯示你的 aMule 線上簽名識別檔的程式。要"
+"使用這個功能,你必須在偏好設定裏啟用「線上簽名識別」。"
 
 #. type: Plain text
 #: ../../src/utils/wxCas/docs/wxcas.1:14
@@ -1658,8 +1593,8 @@ msgid ""
 "Based on Pedro de Oliveira's B<cas>(1).  B<wxcas> was written by ThePolish "
 "E<lt>thepolish at vipmail.ruE<gt>"
 msgstr ""
-"Pedro de Oliveira'nın B<cas>(1) programına dayalıdır. B<wxcas> ThePolish "
-"E<lt>thepolish at vipmail.ruE<gt> tarafından yazılmıştır"
+"改寫自 Pedro de Oliveira 的 B<cas>(1), B<wxcas>的作者:ThePolish "
+"E<lt>thepolish at vipmail.ruE<gt>"
 
 #. type: TH
 #: ../../src/utils/xas/docs/xas.1:1
@@ -1676,12 +1611,12 @@ msgstr "xas v1.9"
 #. type: Plain text
 #: ../../src/utils/xas/docs/xas.1:5
 msgid "xas - X-Chat aMule Statistics"
-msgstr "xas - X-Chat aMule İstatistikleri"
+msgstr "xas - 用於 X-Chat 的 aMule 統計資訊程式"
 
 #. type: Plain text
 #: ../../src/utils/xas/docs/xas.1:7
 msgid "B<none>"
-msgstr "B<boş>"
+msgstr "B<無>"
 
 #. type: Plain text
 #: ../../src/utils/xas/docs/xas.1:12
@@ -1691,11 +1626,9 @@ msgid ""
 "in. These are taken from your Online Signature file.  For this to work, you "
 "must enable the \"Online Signature\" option in aMule's preferences."
 msgstr ""
-"B<xas> xchat için bir eklentidir. Yüklemek için xchat yardım belgelerine "
-"bakınız. Yüklendikten sonra /xas yazdığınızda istatistikleri bulunduğunuz "
-"kanala yollar. Bu bilgiler Çevrimiçi İmza dosyanızdan okunur. Bunun "
-"çalışması için aMule'ün ayarlarında \"Çevrim İçi İmza\" seçeneğini "
-"etkinleştirmeniz gerekmektedir."
+"B<xas> 是 xchat 的插件,請參考你的 xchat 相關文件以瞭解如何載入。載入之後,輸"
+"入 /xas 就會把從你的線上簽名識別檔取得統計資訊傳到你目前所在的頻道。要使用這"
+"個功能,你必須在偏好設定裏啟用「線上簽名識別」。"
 
 #. type: Plain text
 #: ../../src/utils/xas/docs/xas.1:14
@@ -1703,14 +1636,10 @@ msgid ""
 "To enable it on every startup of xchat you can just run the autstart-xas "
 "script (in /usr/bin if you installed with --prefix=/usr)."
 msgstr ""
-"xchat programının her başlayışında yüklenmesi için autstart-xas scriptini "
-"çalıştırmanız yeterli olacaktır (--prefix=/usr ile kurduysanız /usr/bin "
-"dizininde bulunur)."
+"你可以執行 autstart-xas (如果是用 --prefix=/usr 安裝程式,就在 /usr/bin 下) "
+"在每次啟動 xchat 時都啟用它。"
 
 #. type: Plain text
 #: ../../src/utils/xas/docs/xas.1:16
 msgid "B<xas> was originally written by niet"
-msgstr "B<xas> başlangıçta niet tarafından yazılmıştır"
-
-#~ msgid "January 2010"
-#~ msgstr "Ocak 2010"
+msgstr "B<xas> 的原作者:niet"
diff --git a/docs/man/po4a.config b/docs/man/po4a.config
index d8b9fd2..a304341 100644
--- a/docs/man/po4a.config
+++ b/docs/man/po4a.config
@@ -1,4 +1,4 @@
-[po4a_langs] de es fr hu it ru tr
+[po4a_langs] de es fr hu it ru tr zh_TW
 [po4a_paths] po/manpages.pot $lang:po/manpages-$lang.po
 [options] --master-charset UTF-8 --localized-charset UTF-8 --addendum-charset UTF-8
 [po4a_alias:man] man opt:"-o untranslated=als,B_untranslated,RB_untranslated,IP,SS_untranslated"
diff --git a/m4/GeoIP.m4 b/m4/GeoIP.m4
index 4beec71..c7bd07c 100644
--- a/m4/GeoIP.m4
+++ b/m4/GeoIP.m4
@@ -16,7 +16,7 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -53,7 +53,7 @@ AC_DEFUN([MULE_CHECK_GEOIP],
 				AC_COMPILE_IFELSE([
 					AC_LANG_PROGRAM([[
 						#include <GeoIP.h>
-						#ifdef _WINSOCK2_H
+						#if (defined _WINSOCK2API_ || defined _WINSOCK2_H)
 							I do know it's not the best approach, but at least works with MinGW stock headers.
 							(tested with w32api-3.12)
 						#endif
diff --git a/m4/boost.m4 b/m4/boost.m4
new file mode 100644
index 0000000..9769613
--- /dev/null
+++ b/m4/boost.m4
@@ -0,0 +1,612 @@
+#
+# This file is part of the aMule Project.
+#
+# Copyright (c) 2011 aMule Team ( admin at amule.org / http://www.amule.org/ )
+#
+# This file is a heavily modified version of boost.m4 from
+# http://github.com/tsuna/boost.m4.
+#
+# Original license follows.
+#
+
+# boost.m4: Locate Boost headers and libraries for autoconf-based projects.
+# Copyright (C) 2007, 2008, 2009, 2010, 2011  Benoit Sigoure <tsuna at lrde.epita.fr>
+#
+# 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 3 of the License, or
+# (at your option) any later version.
+#
+# Additional permission under section 7 of the GNU General Public
+# License, version 3 ("GPLv3"):
+#
+# If you convey this file as part of a work that contains a
+# configuration script generated by Autoconf, you may do so under
+# terms of your choice.
+#
+# 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/>.
+
+
+m4_define([_BOOST_SERIAL], [m4_translit([
+# serial 16
+], [#
+], [])])
+
+# Original sources can be found at http://github.com/tsuna/boost.m4
+# You can fetch the latest version of the script by doing:
+#   wget http://github.com/tsuna/boost.m4/raw/master/build-aux/boost.m4
+
+m4_pattern_forbid([^_?(BOOST|Boost)_])
+
+# -----------------------------------------------------------------------------
+# MULE_CHECK_BOOST(MINIMUM-BOOST-VERSION)
+#
+# Adds a configure flag --with-boost[=DIR]. You may optionally specify the
+# location of boost headers (or sources), if they are in a non-standard
+# location. If --with-boost if not given, nothing is done. Otherwise it
+# checks for the required minumum Boost version, and Boost.Asio. If everything
+# is fine, defines ASIO_SOCKETS. If the Boost sources are found, also defines
+# HAVE_BOOST_SOURCES. Other flags defined for using Boost:
+#   - BOOST_CPPFLAGS
+#   - BOOST_SYSTEM_LDFLAGS
+#   - BOOST_SYSTEM_LIBS
+# -----------------------------------------------------------------------------
+AC_DEFUN([MULE_CHECK_BOOST],
+[
+	AC_ARG_WITH([boost],
+		[AS_HELP_STRING([--with-boost@<:@=DIR@:>@], [use Boost.Asio for networking])],
+		[with_boost=${withval:-yes}],
+		[with_boost=no]
+	)
+	AS_IF([test ${with_boost:-no} != no], [
+		BOOST_REQUIRE([$1], [with_boost=disabled])
+		AS_IF([test ${with_boost:-no} != disabled], [
+			_BOOST_FIND_COMPILER_TAG
+			AC_MSG_CHECKING([for Boost sources])
+			MULE_BACKUP([CPPFLAGS])
+			MULE_APPEND([CPPFLAGS], [$BOOST_CPPFLAGS])
+			AC_COMPILE_IFELSE([
+				AC_LANG_PROGRAM([[#include <boost/../libs/system/src/error_code.cpp>]])
+			], [
+				AC_DEFINE([HAVE_BOOST_SOURCES], [1], [Define to 1 if you have the Boost sources])
+				AC_MSG_RESULT([yes])
+			], [
+				AC_MSG_RESULT([no])
+				BOOST_SYSTEM([mt])
+				AS_IF([test ${boost_cv_lib_system:-no} != yes], [
+					MULE_WARNING([Boost support has been disabled because Boost.System not found])
+					with_boost=disabled
+				])
+			])
+			MULE_RESTORE([CPPFLAGS])
+			BOOST_FIND_HEADER([boost/asio.hpp], [
+				MULE_WARNING([Boost support has been disabled because Boost.Asio not found])
+				with_boost=disabled
+			], [AC_DEFINE([ASIO_SOCKETS], [1], [Define to 1 if you have <boost/asio.hpp> and are using Boost.Asio for networking.])])
+		], [MULE_WARNING([Boost support has been disabled because of insufficient Boost version.])])
+	])
+])
+
+# _BOOST_SED_CPP(SED-PROGRAM, PROGRAM,
+#                [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# --------------------------------------------------------
+# Same as AC_EGREP_CPP, but leave the result in conftest.i.
+#
+# SED-PROGRAM is *not* overquoted, as in AC_EGREP_CPP.  It is expanded
+# in double-quotes, so escape your double quotes.
+#
+# It could be useful to turn this into a macro which extracts the
+# value of any macro.
+m4_define([_BOOST_SED_CPP],
+[AC_LANG_PREPROC_REQUIRE()dnl
+AC_REQUIRE([AC_PROG_SED])dnl
+AC_LANG_CONFTEST([AC_LANG_SOURCE([[$2]])])
+AS_IF([dnl eval is necessary to expand ac_cpp.
+dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell.
+dnl Beware of Windows end-of-lines, for instance if we are running
+dnl some Windows programs under Wine.  In that case, boost/version.hpp
+dnl is certainly using "\r\n", but the regular Unix shell will only
+dnl strip `\n' with backquotes, not the `\r'.  This results in
+dnl boost_cv_lib_version='1_37\r' for instance, which breaks
+dnl everything else.
+dnl Cannot use 'dnl' after [$4] because a trailing dnl may break AC_CACHE_CHECK
+(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+  tr -d '\r' |
+  $SED -n -e "$1" >conftest.i 2>&1],
+  [$3],
+  [$4])
+rm -rf conftest*
+])# AC_EGREP_CPP
+
+
+
+# BOOST_REQUIRE([VERSION], [ACTION-IF-NOT-FOUND])
+# -----------------------------------------------
+# Look for Boost.  If version is given, it must either be a literal of the form
+# "X.Y.Z" where X, Y and Z are integers (the ".Z" part being optional) or a
+# variable "$var".
+# Defines the value BOOST_CPPFLAGS.  This macro only checks for headers with
+# the required version, it does not check for any of the Boost libraries.
+# On failure, calls the optional
+# ACTION-IF-NOT-FOUND action if one was supplied.
+# Otherwise aborts with an error message.
+AC_DEFUN([BOOST_REQUIRE],
+[AC_REQUIRE([AC_PROG_CXX])dnl
+AC_REQUIRE([AC_PROG_GREP])dnl
+echo "$as_me: this is boost.m4[]_BOOST_SERIAL" >&AS_MESSAGE_LOG_FD
+boost_save_IFS=$IFS
+boost_version_req=$1
+IFS=.
+set x $boost_version_req 0 0 0
+IFS=$boost_save_IFS
+shift
+boost_version_req=`expr "$[1]" '*' 100000 + "$[2]" '*' 100 + "$[3]"`
+boost_version_req_string=$[1].$[2].$[3]
+AC_ARG_VAR([BOOST_ROOT],[Location of Boost installation])dnl
+# If BOOST_ROOT is set and the user has not provided a value to
+# --with-boost, then treat BOOST_ROOT as if it the user supplied it.
+if test x"$BOOST_ROOT" != x; then
+  if test x"$with_boost" = x; then
+    AC_MSG_NOTICE([Detected BOOST_ROOT; continuing with --with-boost=$BOOST_ROOT])
+    with_boost=$BOOST_ROOT
+  else
+    AC_MSG_NOTICE([Detected BOOST_ROOT=$BOOST_ROOT, but overridden by --with-boost=$with_boost])
+  fi
+fi
+AC_SUBST([DISTCHECK_CONFIGURE_FLAGS],
+         ["$DISTCHECK_CONFIGURE_FLAGS '--with-boost=$with_boost'"])dnl
+boost_save_CPPFLAGS=$CPPFLAGS
+  AC_CACHE_CHECK([for Boost headers version >= $boost_version_req_string],
+    [boost_cv_inc_path],
+    [boost_cv_inc_path=no
+m4_pattern_allow([^BOOST_VERSION$])dnl
+    AC_LANG_CONFTEST([AC_LANG_PROGRAM([[#include <boost/version.hpp>
+#if !defined BOOST_VERSION
+# error BOOST_VERSION is not defined
+#elif BOOST_VERSION < $boost_version_req
+# error Boost headers version < $boost_version_req
+#endif
+]])])
+    # If the user provided a value to --with-boost, use it and only it.
+    case $with_boost in #(
+      ''|yes) set x '' /opt/local/include /usr/local/include /opt/include \
+                 /usr/include C:/Boost/include;; #(
+      *)      set x "$with_boost/include" "$with_boost";;
+    esac
+    shift
+    for boost_dir
+    do
+    # Without --layout=system, Boost (or at least some versions) installs
+    # itself in <prefix>/include/boost-<version>.  This inner loop helps to
+    # find headers in such directories.
+    #
+    # Any ${boost_dir}/boost-x_xx directories are searched in reverse version
+    # order followed by ${boost_dir}.  The final '.' is a sentinel for
+    # searching $boost_dir" itself.  Entries are whitespace separated.
+    #
+    # I didn't indent this loop on purpose (to avoid over-indented code)
+    boost_layout_system_search_list=`cd "$boost_dir" 2>/dev/null \
+        && ls -1 | "${GREP}" '^boost-' | sort -rn -t- -k2 \
+        && echo .`
+    for boost_inc in $boost_layout_system_search_list
+    do
+      if test x"$boost_inc" != x.; then
+        boost_inc="$boost_dir/$boost_inc"
+      else
+        boost_inc="$boost_dir" # Uses sentinel in boost_layout_system_search_list
+      fi
+      if test x"$boost_inc" != x; then
+        # We are going to check whether the version of Boost installed
+        # in $boost_inc is usable by running a compilation that
+        # #includes it.  But if we pass a -I/some/path in which Boost
+        # is not installed, the compiler will just skip this -I and
+        # use other locations (either from CPPFLAGS, or from its list
+        # of system include directories).  As a result we would use
+        # header installed on the machine instead of the /some/path
+        # specified by the user.  So in that precise case (trying
+        # $boost_inc), make sure the version.hpp exists.
+        #
+        # Use test -e as there can be symlinks.
+        test -e "$boost_inc/boost/version.hpp" || continue
+        CPPFLAGS="$CPPFLAGS -I$boost_inc"
+      fi
+      AC_COMPILE_IFELSE([], [boost_cv_inc_path=yes], [boost_cv_version=no])
+      if test x"$boost_cv_inc_path" = xyes; then
+        if test x"$boost_inc" != x; then
+          boost_cv_inc_path=$boost_inc
+        fi
+        break 2
+      fi
+    done
+    done
+    ])
+    case $boost_cv_inc_path in #(
+      no)
+        boost_errmsg="cannot find Boost headers version >= $boost_version_req_string"
+        m4_if([$2], [],  [AC_MSG_ERROR([$boost_errmsg])],
+                        [AC_MSG_NOTICE([$boost_errmsg])])
+        $2
+        ;;#(
+      yes)
+        BOOST_CPPFLAGS=
+        ;;#(
+      *)
+        AC_SUBST([BOOST_CPPFLAGS], ["-I$boost_cv_inc_path"])dnl
+        ;;
+    esac
+  if test x"$boost_cv_inc_path" != xno; then
+  AC_CACHE_CHECK([for Boost's header version],
+    [boost_cv_lib_version],
+    [m4_pattern_allow([^BOOST_LIB_VERSION$])dnl
+     _BOOST_SED_CPP([/^boost-lib-version = /{s///;s/\"//g;p;q;}],
+                    [#include <boost/version.hpp>
+boost-lib-version = BOOST_LIB_VERSION],
+    [boost_cv_lib_version=`cat conftest.i`])])
+    # e.g. "134" for 1_34_1 or "135" for 1_35
+    boost_major_version=`echo "$boost_cv_lib_version" | sed 's/_//;s/_.*//'`
+    case $boost_major_version in #(
+      '' | *[[!0-9]]*)
+        AC_MSG_ERROR([invalid value: boost_major_version=$boost_major_version])
+        ;;
+    esac
+fi
+CPPFLAGS=$boost_save_CPPFLAGS
+])# BOOST_REQUIRE
+
+# BOOST_FIND_HEADER([HEADER-NAME], [ACTION-IF-NOT-FOUND], [ACTION-IF-FOUND])
+# --------------------------------------------------------------------------
+# Wrapper around AC_CHECK_HEADER for Boost headers.  Useful to check for
+# some parts of the Boost library which are only made of headers and don't
+# require linking (such as Boost.Foreach).
+#
+# Default ACTION-IF-NOT-FOUND: Fail with a fatal error unless Boost couldn't be
+# found in the first place, in which case by default a notice is issued to the
+# user.  Presumably if we haven't died already it's because it's OK to not have
+# Boost, which is why only a notice is issued instead of a hard error.
+#
+# Default ACTION-IF-FOUND: define the preprocessor symbol HAVE_<HEADER-NAME> in
+# case of success # (where HEADER-NAME is written LIKE_THIS, e.g.,
+# HAVE_BOOST_FOREACH_HPP).
+AC_DEFUN([BOOST_FIND_HEADER],
+[AC_REQUIRE([BOOST_REQUIRE])dnl
+if test x"$boost_cv_inc_path" = xno; then
+  m4_default([$2], [AC_MSG_NOTICE([Boost not available, not searching for $1])])
+else
+boost_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+AC_CHECK_HEADER([$1],
+  [m4_default([$3], [AC_DEFINE(AS_TR_CPP([HAVE_$1]), [1],
+                               [Define to 1 if you have <$1>])])],
+  [m4_default([$2], [AC_MSG_ERROR([cannot find $1])])])
+CPPFLAGS=$boost_save_CPPFLAGS
+fi
+])# BOOST_FIND_HEADER
+
+
+# BOOST_FIND_LIB([LIB-NAME], [PREFERRED-RT-OPT], [HEADER-NAME], [CXX-TEST],
+#                [CXX-PROLOGUE])
+# -------------------------------------------------------------------------
+# Look for the Boost library LIB-NAME (e.g., LIB-NAME = `thread', for
+# libboost_thread).  Check that HEADER-NAME works and check that
+# libboost_LIB-NAME can link with the code CXX-TEST.  The optional argument
+# CXX-PROLOGUE can be used to include some C++ code before the `main'
+# function.
+#
+# Invokes BOOST_FIND_HEADER([HEADER-NAME]) (see above).
+#
+# Boost libraries typically come compiled with several flavors (with different
+# runtime options) so PREFERRED-RT-OPT is the preferred suffix.  A suffix is one
+# or more of the following letters: sgdpn (in that order).  s = static
+# runtime, d = debug build, g = debug/diagnostic runtime, p = STLPort build,
+# n = (unsure) STLPort build without iostreams from STLPort (it looks like `n'
+# must always be used along with `p').  Additionally, PREFERRED-RT-OPT can
+# start with `mt-' to indicate that there is a preference for multi-thread
+# builds.  Some sample values for PREFERRED-RT-OPT: (nothing), mt, d, mt-d, gdp
+# ...  If you want to make sure you have a specific version of Boost
+# (eg, >= 1.33) you *must* invoke BOOST_REQUIRE before this macro.
+AC_DEFUN([BOOST_FIND_LIB],
+[AC_REQUIRE([BOOST_REQUIRE])dnl
+AC_REQUIRE([_BOOST_FIND_COMPILER_TAG])dnl
+if test x"$boost_cv_inc_path" = xno; then
+  AC_MSG_NOTICE([Boost not available, not searching for the Boost $1 library])
+else
+dnl The else branch is huge and wasn't indented on purpose.
+AS_VAR_PUSHDEF([Boost_lib], [boost_cv_lib_$1])dnl
+AS_VAR_PUSHDEF([Boost_lib_LDFLAGS], [boost_cv_lib_$1_LDFLAGS])dnl
+AS_VAR_PUSHDEF([Boost_lib_LDPATH], [boost_cv_lib_$1_LDPATH])dnl
+AS_VAR_PUSHDEF([Boost_lib_LIBS], [boost_cv_lib_$1_LIBS])dnl
+BOOST_FIND_HEADER([$3], [:], [:])
+boost_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+# Now let's try to find the library.  The algorithm is as follows: first look
+# for a given library name according to the user's PREFERRED-RT-OPT.  For each
+# library name, we prefer to use the ones that carry the tag (toolset name).
+# Each library is searched through the various standard paths were Boost is
+# usually installed.  If we can't find the standard variants, we try to
+# enforce -mt (for instance on MacOSX, libboost_threads.dylib doesn't exist
+# but there's -obviously- libboost_threads-mt.dylib).
+AC_CACHE_CHECK([for the Boost $1 library], [Boost_lib],
+  [Boost_lib=no
+dnl Prefer the multithreaded library
+  boost_rtopt=
+  boost_mt=-mt
+  boost_save_ac_objext=$ac_objext
+  # Generate the test file.
+  AC_LANG_CONFTEST([AC_LANG_PROGRAM([#include <$3>
+$5], [$4])])
+dnl Optimization hacks: compiling C++ is slow, especially with Boost.  What
+dnl we're trying to do here is guess the right combination of link flags
+dnl (LIBS / LDFLAGS) to use a given library.  This can take several
+dnl iterations before it succeeds and is thus *very* slow.  So what we do
+dnl instead is that we compile the code first (and thus get an object file,
+dnl typically conftest.o).  Then we try various combinations of link flags
+dnl until we succeed to link conftest.o in an executable.  The problem is
+dnl that the various TRY_LINK / COMPILE_IFELSE macros of Autoconf always
+dnl remove all the temporary files including conftest.o.  So the trick here
+dnl is to temporarily change the value of ac_objext so that conftest.o is
+dnl preserved accross tests.  This is obviously fragile and I will burn in
+dnl hell for not respecting Autoconf's documented interfaces, but in the
+dnl mean time, it optimizes the macro by a factor of 5 to 30.
+dnl Another small optimization: the first argument of AC_COMPILE_IFELSE left
+dnl empty because the test file is generated only once above (before we
+dnl start the for loops).
+  AC_COMPILE_IFELSE([],
+    [ac_objext=do_not_rm_me_plz],
+    [AC_MSG_ERROR([cannot compile a test that uses Boost $1])])
+  ac_objext=$boost_save_ac_objext
+  boost_failed_libs=
+# Don't bother to ident the 6 nested for loops, only the 2 innermost ones
+# matter.
+for boost_tag_ in -$boost_cv_lib_tag ''; do
+for boost_ver_ in -$boost_cv_lib_version ''; do
+for boost_mt_ in $boost_mt -mt ''; do
+for boost_rtopt_ in $boost_rtopt '' -d; do
+  for boost_lib in \
+    boost_$1$boost_tag_$boost_mt_$boost_rtopt_$boost_ver_ \
+    boost_$1$boost_tag_$boost_rtopt_$boost_ver_ \
+    boost_$1$boost_tag_$boost_mt_$boost_ver_ \
+    boost_$1$boost_tag_$boost_ver_
+  do
+    # Avoid testing twice the same lib
+    case $boost_failed_libs in #(
+      *@$boost_lib@*) continue;;
+    esac
+    # If with_boost is empty, we'll search in /lib first, which is not quite
+    # right so instead we'll try to a location based on where the headers are.
+    boost_tmp_lib=$with_boost
+    test x"$with_boost" = x && boost_tmp_lib=${boost_cv_inc_path%/include}
+    for boost_ldpath in "$boost_tmp_lib/lib" '' \
+             /opt/local/lib* /usr/local/lib* /opt/lib* /usr/lib* \
+             "$with_boost" C:/Boost/lib /lib*
+    do
+      test -e "$boost_ldpath" || continue
+      boost_save_LDFLAGS=$LDFLAGS
+      Boost_lib_LIBS="-l$boost_lib"
+      boost_save_LIBS=$LIBS
+      LIBS="$Boost_lib_LIBS $LIBS"
+      test x"$boost_ldpath" != x && LDFLAGS="$LDFLAGS -L$boost_ldpath"
+dnl First argument of AC_LINK_IFELSE left empty because the test file is
+dnl generated only once above (before we start the for loops).
+      _BOOST_AC_LINK_IFELSE([],
+                            [Boost_lib=yes], [Boost_lib=no])
+      ac_objext=$boost_save_ac_objext
+      LDFLAGS=$boost_save_LDFLAGS
+      LIBS=$boost_save_LIBS
+      if test x"$Boost_lib" = xyes; then
+        Boost_lib_LDFLAGS="-L$boost_ldpath -Wl,-R$boost_ldpath"
+        Boost_lib_LDPATH="$boost_ldpath"
+        break 6
+      else
+        boost_failed_libs="$boost_failed_libs@$boost_lib@"
+        Boost_lib_LDFLAGS=
+        Boost_lib_LDPATH=
+        Boost_lib_LIBS=
+      fi
+    done
+  done
+done
+done
+done
+done
+rm -f conftest.$ac_objext
+])
+AC_SUBST(AS_TR_CPP([BOOST_$1_LDFLAGS]), [$Boost_lib_LDFLAGS])dnl
+AC_SUBST(AS_TR_CPP([BOOST_$1_LDPATH]), [$Boost_lib_LDPATH])dnl
+AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])dnl
+AC_SUBST(AS_TR_CPP([BOOST_$1_LIBS]), [$Boost_lib_LIBS])dnl
+CPPFLAGS=$boost_save_CPPFLAGS
+AS_VAR_POPDEF([Boost_lib])dnl
+AS_VAR_POPDEF([Boost_lib_LDFLAGS])dnl
+AS_VAR_POPDEF([Boost_lib_LDPATH])dnl
+AS_VAR_POPDEF([Boost_lib_LIBS])dnl
+fi
+])# BOOST_FIND_LIB
+
+
+# --------------------------------------- #
+# Checks for the various Boost libraries. #
+# --------------------------------------- #
+
+# List of boost libraries: http://www.boost.org/libs/libraries.htm
+# The page http://beta.boost.org/doc/libs is useful: it gives the first release
+# version of each library (among other things).
+
+# BOOST_DEFUN(LIBRARY, CODE)
+# --------------------------
+# Define BOOST_<LIBRARY-UPPERCASE> as a macro that runs CODE.
+#
+# Use indir to avoid the warning on underquoted macro name given to AC_DEFUN.
+m4_define([BOOST_DEFUN],
+[m4_indir([AC_DEFUN],
+          m4_toupper([BOOST_$1]),
+[m4_pushdef([BOOST_Library], [$1])dnl
+$2
+m4_popdef([BOOST_Library])dnl
+])
+])
+
+
+# BOOST_SYSTEM([PREFERRED-RT-OPT])
+# --------------------------------
+# Look for Boost.System.  For the documentation of PREFERRED-RT-OPT, see the
+# documentation of BOOST_FIND_LIB above.  This library was introduced in Boost
+# 1.35.0.
+BOOST_DEFUN([System],
+[BOOST_FIND_LIB([system], [$1],
+                [boost/system/error_code.hpp],
+                [boost::system::error_code e; e.clear();])
+])# BOOST_SYSTEM
+
+
+# ----------------- #
+# Internal helpers. #
+# ----------------- #
+
+
+# _BOOST_gcc_test(MAJOR, MINOR)
+# -----------------------------
+# Internal helper for _BOOST_FIND_COMPILER_TAG.
+m4_define([_BOOST_gcc_test],
+["defined __GNUC__ && __GNUC__ == $1 && __GNUC_MINOR__ == $2 && !defined __ICC @ gcc$1$2"])dnl
+
+
+# _BOOST_FIND_COMPILER_TAG()
+# --------------------------
+# Internal.  When Boost is installed without --layout=system, each library
+# filename will hold a suffix that encodes the compiler used during the
+# build.  The Boost build system seems to call this a `tag'.
+AC_DEFUN([_BOOST_FIND_COMPILER_TAG],
+[AC_REQUIRE([AC_PROG_CXX])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_CACHE_CHECK([for the toolset name used by Boost for $CXX], [boost_cv_lib_tag],
+[boost_cv_lib_tag=unknown
+if test x$boost_cv_inc_path != xno; then
+  # The following tests are mostly inspired by boost/config/auto_link.hpp
+  # The list is sorted to most recent/common to oldest compiler (in order
+  # to increase the likelihood of finding the right compiler with the
+  # least number of compilation attempt).
+  # Beware that some tests are sensible to the order (for instance, we must
+  # look for MinGW before looking for GCC3).
+  # I used one compilation test per compiler with a #error to recognize
+  # each compiler so that it works even when cross-compiling (let me know
+  # if you know a better approach).
+  # Known missing tags (known from Boost's tools/build/v2/tools/common.jam):
+  #   como, edg, kcc, bck, mp, sw, tru, xlc
+  # I'm not sure about my test for `il' (be careful: Intel's ICC pre-defines
+  # the same defines as GCC's).
+  for i in \
+    _BOOST_gcc_test(4, 6) \
+    _BOOST_gcc_test(4, 5) \
+    _BOOST_gcc_test(4, 4) \
+    _BOOST_gcc_test(4, 3) \
+    _BOOST_gcc_test(4, 2) \
+    _BOOST_gcc_test(4, 1) \
+    _BOOST_gcc_test(4, 0) \
+    "defined __GNUC__ && __GNUC__ == 3 && !defined __ICC \
+     && (defined WIN32 || defined WINNT || defined _WIN32 || defined __WIN32 \
+         || defined __WIN32__ || defined __WINNT || defined __WINNT__) @ mgw" \
+    _BOOST_gcc_test(3, 4) \
+    _BOOST_gcc_test(3, 3) \
+    "defined _MSC_VER && _MSC_VER >= 1500 @ vc90" \
+    "defined _MSC_VER && _MSC_VER == 1400 @ vc80" \
+    _BOOST_gcc_test(3, 2) \
+    "defined _MSC_VER && _MSC_VER == 1310 @ vc71" \
+    _BOOST_gcc_test(3, 1) \
+    _BOOST_gcc_test(3, 0) \
+    "defined __BORLANDC__ @ bcb" \
+    "defined __ICC && (defined __unix || defined __unix__) @ il" \
+    "defined __ICL @ iw" \
+    "defined _MSC_VER && _MSC_VER == 1300 @ vc7" \
+    _BOOST_gcc_test(2, 95) \
+    "defined __MWERKS__ && __MWERKS__ <= 0x32FF @ cw9" \
+    "defined _MSC_VER && _MSC_VER < 1300 && !defined UNDER_CE @ vc6" \
+    "defined _MSC_VER && _MSC_VER < 1300 && defined UNDER_CE @ evc4" \
+    "defined __MWERKS__ && __MWERKS__ <= 0x31FF @ cw8"
+  do
+    boost_tag_test=`expr "X$i" : 'X\([[^@]]*\) @ '`
+    boost_tag=`expr "X$i" : 'X[[^@]]* @ \(.*\)'`
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#if $boost_tag_test
+/* OK */
+#else
+# error $boost_tag_test
+#endif
+]])], [boost_cv_lib_tag=$boost_tag; break], [])
+  done
+  case $boost_cv_lib_tag in #(
+    # Some newer (>= 1.35?) versions of Boost seem to only use "gcc" as opposed
+    # to "gcc41" for instance.
+    *-gcc | *'-gcc ') :;; #(  Don't re-add -gcc: it's already in there.
+    gcc*)
+      boost_tag_x=
+      case $host_os in #(
+        darwin*)
+          if test $boost_major_version -ge 136; then
+            # The `x' added in r46793 of Boost.
+            boost_tag_x=x
+          fi;;
+      esac
+      # We can specify multiple tags in this variable because it's used by
+      # BOOST_FIND_LIB that does a `for tag in -$boost_cv_lib_tag' ...
+      boost_cv_lib_tag="$boost_tag_x$boost_cv_lib_tag -${boost_tag_x}gcc"
+      ;; #(
+    unknown)
+      AC_MSG_WARN([[could not figure out which toolset name to use for $CXX]])
+      boost_cv_lib_tag=
+      ;;
+  esac
+fi])dnl end of AC_CACHE_CHECK
+])# _BOOST_FIND_COMPILER_TAG
+
+
+# _BOOST_AC_LINK_IFELSE(PROGRAM, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# -------------------------------------------------------------------
+# Fork of _AC_LINK_IFELSE that preserves conftest.o across calls.  Fragile,
+# will break when Autoconf changes its internals.  Requires that you manually
+# rm -f conftest.$ac_objext in between to really different tests, otherwise
+# you will try to link a conftest.o left behind by a previous test.
+# Used to aggressively optimize BOOST_FIND_LIB (see the big comment in this
+# macro).
+#
+# Don't use "break" in the actions, as it would short-circuit some code
+# this macro runs after the actions.
+m4_define([_BOOST_AC_LINK_IFELSE],
+[m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl
+rm -f conftest$ac_exeext
+boost_save_ac_ext=$ac_ext
+boost_use_source=:
+# If we already have a .o, re-use it.  We change $ac_ext so that $ac_link
+# tries to link the existing object file instead of compiling from source.
+test -f conftest.$ac_objext && ac_ext=$ac_objext && boost_use_source=false &&
+  _AS_ECHO_LOG([re-using the existing conftest.$ac_objext])
+AS_IF([_AC_DO_STDERR($ac_link) && {
+	 test -z "$ac_[]_AC_LANG_ABBREV[]_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_executable_p conftest$ac_exeext
+dnl FIXME: use AS_TEST_X instead when 2.61 is widespread enough.
+       }],
+      [$2],
+      [if $boost_use_source; then
+         _AC_MSG_LOG_CONFTEST
+       fi
+       $3])
+ac_objext=$boost_save_ac_objext
+ac_ext=$boost_save_ac_ext
+dnl Delete also the IPA/IPO (Inter Procedural Analysis/Optimization)
+dnl information created by the PGI compiler (conftest_ipa8_conftest.oo),
+dnl as it would interfere with the next link command.
+rm -f core conftest.err conftest_ipa8_conftest.oo \
+      conftest$ac_exeext m4_ifval([$1], [conftest.$ac_ext])[]dnl
+])# _BOOST_AC_LINK_IFELSE
+
+# Local Variables:
+# mode: autoconf
+# End:
diff --git a/m4/build-tools.m4 b/m4/build-tools.m4
index 40c57af..b60d3b5 100644
--- a/m4/build-tools.m4
+++ b/m4/build-tools.m4
@@ -16,7 +16,7 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/m4/cryptopp.m4 b/m4/cryptopp.m4
index ecdbd1d..db62f58 100644
--- a/m4/cryptopp.m4
+++ b/m4/cryptopp.m4
@@ -16,7 +16,7 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,21 +30,21 @@ dnl --------------------------------------------------------------------------
 dnl
 dnl This macro sets these variables:
 dnl - CRYPTOPP_PREFIX
-dnl 	This is the user or system directory where crypto++ is installed or sources
+dnl	This is the user or system directory where crypto++ is installed or sources
 dnl - CRYPTOPP_VERSION_STRING
-dnl 	Something like "5.5.2"
+dnl	Something like "5.5.2"
 dnl - CRYPTOPP_VERSION_NUMBER
-dnl 	Something like 5005002
+dnl	Something like 5005002
 dnl - CRYPTOPP_STYLE
-dnl 	"sources", "installed" or "gentoo_debian"
+dnl	"sources", "installed" or "gentoo_debian"
 dnl - CRYPTOPP_LIB_NAME
-dnl 	"cryptopp" or "crypto++"
+dnl	"cryptopp" or "crypto++"
 dnl - CRYPTOPP_INCLUDE_PREFIX
-dnl 	The string that goes here: #include <@CRYPTOPP_INCLUDE_PREFIX@/rsa.h>
+dnl	The string that goes here: #include <@CRYPTOPP_INCLUDE_PREFIX@/rsa.h>
 dnl - CRYPTOPP_CPPFLAGS
-dnl 	Flags to be added to CPPFLAGS
+dnl	Flags to be added to CPPFLAGS
 dnl - CRYPTOPP_LDFLAGS
-dnl 	Flags to be added to LDFLAGS
+dnl	Flags to be added to LDFLAGS
 dnl - CRYPTOPP_LIBS
 dnl	Library to be added to LIBS
 dnl
@@ -52,11 +52,11 @@ dnl The CRYPTOPP_CPPFLAGS, CRYPTOPP_LDFLAGS and CRYPTOPP_LIBS variables are also
 dnl
 dnl Worth notice:
 dnl - cryptopp_includedir
-dnl 	The string that goes in -I on CPPFLAGS
+dnl	The string that goes in -I on CPPFLAGS
 dnl - cryptopp_libdir
-dnl 	The string that goes in -L on LDFLAGS
+dnl	The string that goes in -L on LDFLAGS
 dnl - cryptopp_header_path
-dnl 	The file we use to discover the version of cryptopp
+dnl	The file we use to discover the version of cryptopp
 dnl
 AC_DEFUN([MULE_CHECK_CRYPTOPP],
 [dnl
diff --git a/m4/fallocate.m4 b/m4/fallocate.m4
index 1f05ce7..c57da00 100644
--- a/m4/fallocate.m4
+++ b/m4/fallocate.m4
@@ -16,7 +16,7 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/m4/gdlib.m4 b/m4/gdlib.m4
index aebe206..1f14017 100644
--- a/m4/gdlib.m4
+++ b/m4/gdlib.m4
@@ -16,7 +16,7 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/m4/libpng.m4 b/m4/libpng.m4
index 759cb22..78bd40f 100644
--- a/m4/libpng.m4
+++ b/m4/libpng.m4
@@ -16,7 +16,7 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -95,9 +95,9 @@ m4_define([REQUIRED_VERSION_MICRO], [m4_bregexp(REQUIRED_VERSION, [\([0-9]+\)\.\
 			SAVED_LDFLAGS=$LDFLAGS
 			SAVED_LIBS=$LIBS
 
-			CFLAGS+=" $LIBPNG_CFLAGS"
-			LDFLAGS+=" $LIBPNG_LDFLAGS"
-			LIBS+=" $LIBPNG_LIBS"
+			CFLAGS="$CFLAGS $LIBPNG_CFLAGS"
+			LDFLAGS="$LDFLAGS $LIBPNG_LDFLAGS"
+			LIBS="$LIBS $LIBPNG_LIBS"
 
 			AC_LINK_IFELSE([
 				AC_LANG_PROGRAM([[
diff --git a/m4/libupnp.m4 b/m4/libupnp.m4
index ceea5e9..f340a4d 100644
--- a/m4/libupnp.m4
+++ b/m4/libupnp.m4
@@ -27,15 +27,15 @@ dnl --------------------------------------------------------------------------
 dnl
 dnl This macro sets these variables:
 dnl - LIBUPNP_VERSION
-dnl 	Something like "1.6.7"
+dnl	Something like "1.6.7"
 dnl - LIBUPNP_CPPFLAGS
-dnl 	Flags to be added to CPPFLAGS
+dnl	Flags to be added to CPPFLAGS
 dnl - LIBUPNP_CFLAGS
-dnl 	Flags to be added to CFLAGS
+dnl	Flags to be added to CFLAGS
 dnl - LIBUPNP_LDFLAGS
-dnl 	Flags to be added to LDFLAGS
+dnl	Flags to be added to LDFLAGS
 dnl - LIBUPNP_LIBS
-dnl 	Library to be added to LIBS
+dnl	Library to be added to LIBS
 dnl
 dnl The LIBUPNP_CPPFLAGS, LIBUPNP_CFLAGS, LIBUPNP_LDFLAGS and LIBUPNP_LIBS variables are also substituted.
 dnl
diff --git a/m4/nls.m4 b/m4/nls.m4
index 980430c..dbf0c50 100644
--- a/m4/nls.m4
+++ b/m4/nls.m4
@@ -16,7 +16,7 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/m4/pkg.m4 b/m4/pkg.m4
index 23ab998..fe5e74d 100644
--- a/m4/pkg.m4
+++ b/m4/pkg.m4
@@ -1,5 +1,5 @@
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
-# 
+#
 # Copyright (c) 2004-2011 Scott James Remnant ( scott at netsplit.com ).
 #
 # This program is free software; you can redistribute it and/or modify
@@ -39,7 +39,7 @@ if test -n "$PKG_CONFIG"; then
 		AC_MSG_RESULT([no])
 		PKG_CONFIG=""
 	fi
-		
+
 fi[]dnl
 ])# PKG_PROG_PKG_CONFIG
 
@@ -118,7 +118,7 @@ if test $pkg_failed = yes; then
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
 	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
-        else 
+        else
 	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
diff --git a/m4/plasmamule.m4 b/m4/plasmamule.m4
index 346d71b..a651a53 100644
--- a/m4/plasmamule.m4
+++ b/m4/plasmamule.m4
@@ -36,7 +36,7 @@ AC_DEFUN([PLASMAMULE_CHECKS],
 			],
 			[DISABLE_PLASMAMULE])
 	])
-	
+
 	MULE_IF_ENABLED([debug],
         [
 		DEBUGFLAG="-D__DEBUG__"
diff --git a/m4/readline.m4 b/m4/readline.m4
index dd6b84c..eb9957b 100644
--- a/m4/readline.m4
+++ b/m4/readline.m4
@@ -37,7 +37,7 @@ AC_DEFUN([VL_LIB_READLINE], [
       vl_cv_lib_readline="no"
       LIBS="$ORIG_LIBS"
       READLINE_LIBS=""
-    else 
+    else
       READLINE_LIBS="$vl_cv_lib_readline"
     fi
   ])
diff --git a/m4/wxwin.m4 b/m4/wxwin.m4
index ec9c8d0..670a4df 100644
--- a/m4/wxwin.m4
+++ b/m4/wxwin.m4
@@ -3,7 +3,7 @@ dnl Author:          wxWidgets development team,
 dnl                  Francesco Montorsi,
 dnl                  Bob McCown (Mac-testing)
 dnl Creation date:   24/11/2001
-dnl RCS-ID:          $Id: wxwin.m4 10580 2011-06-13 10:24:37Z gonosztopi $
+dnl RCS-ID:          $Id: wxwin.m4 10680 2011-11-20 18:08:59Z gonosztopi $
 dnl ---------------------------------------------------------------------------
 
 dnl ===========================================================================
@@ -345,7 +345,7 @@ dnl     WXRC_CHECK([HAVE_WXRC=1], [HAVE_WXRC=0])
 dnl     if test "x$HAVE_WXRC" != x1; then
 dnl         AC_MSG_ERROR([
 dnl                The wxrc program was not installed or not found.
-dnl     
+dnl
 dnl                Please check the wxWidgets installation.
 dnl         ])
 dnl     fi
@@ -374,13 +374,13 @@ dnl
 AC_DEFUN([WXRC_CHECK],
 [
   AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler])
-    
+
   if test "x$WX_CONFIG_NAME" = x; then
     AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.])
   else
-    
+
     AC_MSG_CHECKING([for wxrc])
-    
+
     if test "x$WXRC" = x ; then
       dnl wx-config --utility is a new addition to wxWidgets:
       _WX_PRIVATE_CHECK_VERSION(2,5,3)
@@ -396,7 +396,7 @@ AC_DEFUN([WXRC_CHECK],
       AC_MSG_RESULT([$WXRC])
       ifelse([$1], , :, [$1])
     fi
-    
+
     AC_SUBST(WXRC)
   fi
 ])
@@ -404,11 +404,11 @@ AC_DEFUN([WXRC_CHECK],
 dnl ---------------------------------------------------------------------------
 dnl WX_LIKE_LIBNAME([output-var] [prefix], [name])
 dnl
-dnl Sets the "output-var" variable to the name of a library named with same 
+dnl Sets the "output-var" variable to the name of a library named with same
 dnl wxWidgets rule.
-dnl E.g. for output-var=='lib', name=='test', prefix='mine', sets 
+dnl E.g. for output-var=='lib', name=='test', prefix='mine', sets
 dnl      the $lib variable to:
-dnl          'mine_gtk2ud_test-2.8' 
+dnl          'mine_gtk2ud_test-2.8'
 dnl      if WX_PORT=gtk2, WX_UNICODE=1, WX_DEBUG=1 and WX_VERSION=28
 dnl ---------------------------------------------------------------------------
 AC_DEFUN([WX_LIKE_LIBNAME],
@@ -686,7 +686,7 @@ AC_DEFUN([WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS],
 
 
 dnl ---------------------------------------------------------------------------
-dnl _WX_SELECTEDCONFIG_CHECKFOR([RESULTVAR], [STRING], [MSG] 
+dnl _WX_SELECTEDCONFIG_CHECKFOR([RESULTVAR], [STRING], [MSG]
 dnl                             [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
 dnl
 dnl Outputs the given MSG. Then searches the given STRING in the wxWidgets
@@ -701,9 +701,9 @@ AC_DEFUN([_WX_SELECTEDCONFIG_CHECKFOR],
             dnl so we will detect the wxWidgets relative build setting and use it
             AC_MSG_CHECKING([$3])
 
-            dnl set WX_$1 variable to 1 if the $WX_SELECTEDCONFIG contains the $2 
+            dnl set WX_$1 variable to 1 if the $WX_SELECTEDCONFIG contains the $2
             dnl string or to 0 otherwise.
-            dnl NOTE: 'expr match STRING REGEXP' cannot be used since on Mac it 
+            dnl NOTE: 'expr match STRING REGEXP' cannot be used since on Mac it
             dnl       doesn't work; we use 'expr STRING : REGEXP' instead
             WX_$1=$(expr "$WX_SELECTEDCONFIG" : ".*$2.*")
 
@@ -934,7 +934,7 @@ AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG],
 dnl ---------------------------------------------------------------------------
 dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN, WX_STANDARD_OPTIONS_SUMMARY_MSG_END
 dnl
-dnl Like WX_STANDARD_OPTIONS_SUMMARY_MSG macro but these two macros also gives info 
+dnl Like WX_STANDARD_OPTIONS_SUMMARY_MSG macro but these two macros also gives info
 dnl about the configuration of the package which used the wxpresets.
 dnl
 dnl Typical usage:
diff --git a/m4/zlib.m4 b/m4/zlib.m4
index 66496f3..0e30925 100644
--- a/m4/zlib.m4
+++ b/m4/zlib.m4
@@ -16,7 +16,7 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/platforms/MacOSX/cocoa-mule/AddLinkDialogController.h b/platforms/MacOSX/cocoa-mule/AddLinkDialogController.h
index d027b6d..c2b9e04 100644
--- a/platforms/MacOSX/cocoa-mule/AddLinkDialogController.h
+++ b/platforms/MacOSX/cocoa-mule/AddLinkDialogController.h
@@ -7,7 +7,7 @@
     IBOutlet id m_dlg;
 
 	bool m_dlg_result;
-	
+
 	NSString *m_link_val;
 }
 
diff --git a/platforms/MacOSX/cocoa-mule/AddLinkDialogController.m b/platforms/MacOSX/cocoa-mule/AddLinkDialogController.m
index 00bdaf4..c28bb74 100644
--- a/platforms/MacOSX/cocoa-mule/AddLinkDialogController.m
+++ b/platforms/MacOSX/cocoa-mule/AddLinkDialogController.m
@@ -5,22 +5,22 @@
 - (bool)showDlg:(NSWindow *)window {
 
 	[m_link setStringValue:@""];
-	
+
 	[NSApp beginSheet: m_dlg modalForWindow: window
 		modalDelegate: nil didEndSelector: nil contextInfo: nil];
-					
+
 	[NSApp runModalForWindow: m_dlg];
-	
+
 	[NSApp endSheet: m_dlg];
 
     [m_dlg orderOut: self];
-	
+
 	return m_dlg_result;
 }
 
 - (IBAction)closeOK:(id)sender {
 	[NSApp stopModal];
-	 
+
 	m_link_val = [m_link stringValue];
 	m_dlg_result = true;
 }
diff --git a/platforms/MacOSX/cocoa-mule/AppController.h b/platforms/MacOSX/cocoa-mule/AppController.h
index 28920c1..1339e89 100644
--- a/platforms/MacOSX/cocoa-mule/AppController.h
+++ b/platforms/MacOSX/cocoa-mule/AppController.h
@@ -5,18 +5,18 @@
 
 @interface AppController : NSObject {
     IBOutlet id m_main_tabview;
-	
+
 	IBOutlet id m_dload_controller;
 	IBOutlet id m_search_controller;
 	IBOutlet id m_shared_controller;
-	
+
 	IBOutlet id m_add_link_dlg;
-	
+
 	IBOutlet id m_connection_status_text;
-	
+
 	ECRemoteConnection *m_connection;
 	amuleData *m_data;
-	
+
 	int m_daemon_pid;
 
 	NSString *m_targetaddr;
diff --git a/platforms/MacOSX/cocoa-mule/AppController.mm b/platforms/MacOSX/cocoa-mule/AppController.mm
index 31534d1..b7ef2f1 100644
--- a/platforms/MacOSX/cocoa-mule/AppController.mm
+++ b/platforms/MacOSX/cocoa-mule/AppController.mm
@@ -11,7 +11,7 @@
 
 - (IBAction)show_Networks:(id)sender {
 	[m_main_tabview selectTabViewItemAtIndex: 2];
-	
+
 
 //	ECLoginPacket *p = [ECLoginPacket loginPacket:@"123456" withVersion:@"0.1"];
 //	NSOutputStream *stream = [NSOutputStream outputStreamToMemory];
@@ -21,7 +21,7 @@
 //	[stream open];
 //	[p writeToSocket:stream];
 //	id data = [stream propertyForKey:NSStreamDataWrittenToMemoryStreamKey];
-// 	int off = [data length];
+//	int off = [data length];
 //	NSLog(@"off=%d", off);
 //	[m_connection sendPacket:p];
 }
@@ -48,7 +48,7 @@
 -(IBAction)show_About:(id)sender {
 }
 
-- (IBAction)addLink:(id)sender;{	
+- (IBAction)addLink:(id)sender;{
 	bool dlgResult = [m_add_link_dlg showDlg:nil];
 	if ( dlgResult ) {
 		ECPacket *packet = [ECPacket packetWithOpcode:EC_OP_ADD_LINK];
@@ -59,13 +59,13 @@
 
 - (bool)askCoreParams {
 	LoginDialogController *dlg = [[LoginDialogController alloc] init];
-	
+
 	bool dlgResult = [dlg showDlg:nil];
 
 	m_targetaddr = dlg.host;
 	m_targetport = dlg.port;
 	m_corepass = dlg.pass;
-	
+
 	return dlgResult;
 }
 
@@ -76,12 +76,12 @@
 	if ([m_dload_controller respondsToSelector:@selector(saveGui)]) {
 		[m_dload_controller performSelector:@selector(saveGui)];
 	}
-	
+
 	//
 	// Save main window
 	//
 	[[NSUserDefaults standardUserDefaults] setInteger:[m_main_tabview indexOfTabViewItem: [m_main_tabview selectedTabViewItem] ] forKey:@"activeTab"];
-	
+
 	//
 	// If we have slave daemon process, terminate it
 	//
@@ -105,21 +105,21 @@
 	NSUserDefaults *args = [NSUserDefaults standardUserDefaults];
 	NSString *mode = [args stringForKey:@"mode"];
 	NSLog(@"amule controller started, mode = [%@]\n", mode);
-	
-	
+
+
 	[[NSApplication sharedApplication] setDelegate:self];
-	
+
 	[self restoreMainWindow];
-	
+
 	m_targetaddr = 0;
 	m_targetport = 0;
 	m_corepass = nil;
-	
+
 	m_daemon_pid = 0;
 	if ( (mode != nil) && ([mode compare:@"guitest"] == NSOrderedSame) ) {
 		NSLog(@"Started in GUI test mode - will not connect to core");
 		return;
-	}	
+	}
 
 	if ( (mode != nil) && ([mode compare:@"remote"] == NSOrderedSame) ) {
 		m_targetaddr = @"127.0.0.1";
@@ -138,13 +138,13 @@
 		m_targetaddr = @"127.0.0.1";
 		m_targetport = 4712;
 		if ( [self startDaemon] == -1 ) {
-			NSRunCriticalAlertPanel(@"Daemon startup error", 
+			NSRunCriticalAlertPanel(@"Daemon startup error",
 							@"Unable to start core daemon (amuled)",
 							@"OK", nil,nil);
 			[[NSApplication sharedApplication] terminate:self];
 		}
 	}
-	
+
 	m_connection = [ECRemoteConnection remoteConnection];
 	[m_connection retain];
 	m_data = [amuleData initWithConnection:m_connection];
@@ -171,7 +171,7 @@
 		}
 	}
 	if ( m_connection.error ) {
-		NSRunCriticalAlertPanel(@"Connection error", 
+		NSRunCriticalAlertPanel(@"Connection error",
                         @"Unable to start communication with daemon",
                         @"OK", nil,nil);
 		exit(-1);
diff --git a/platforms/MacOSX/cocoa-mule/DownloadsViewController.h b/platforms/MacOSX/cocoa-mule/DownloadsViewController.h
index 261cd0e..cb2bbb8 100644
--- a/platforms/MacOSX/cocoa-mule/DownloadsViewController.h
+++ b/platforms/MacOSX/cocoa-mule/DownloadsViewController.h
@@ -5,7 +5,7 @@
 @interface DownloadsViewController : NSObject {
 
 	IBOutlet NSTableView *m_tableview;
-	
+
 	amuleFileSet *m_fileset;
 	amuleData *m_amuledata;
 }
diff --git a/platforms/MacOSX/cocoa-mule/DownloadsViewController.mm b/platforms/MacOSX/cocoa-mule/DownloadsViewController.mm
index 243de0d..a93952d 100644
--- a/platforms/MacOSX/cocoa-mule/DownloadsViewController.mm
+++ b/platforms/MacOSX/cocoa-mule/DownloadsViewController.mm
@@ -75,7 +75,7 @@
 - (void)awakeFromNib {
 	[m_tableview setDelegate:self];
 	[m_tableview setDataSource:self];
-	
+
 	//
 	// load column status
 	//
diff --git a/platforms/MacOSX/cocoa-mule/EC.h b/platforms/MacOSX/cocoa-mule/EC.h
index 5dba2e6..5c13354 100644
--- a/platforms/MacOSX/cocoa-mule/EC.h
+++ b/platforms/MacOSX/cocoa-mule/EC.h
@@ -6,9 +6,9 @@
 @interface ECTag : NSObject {
 	ECTagTypes m_type;
     ECTagNames m_name;
-	
+
 	int m_size;
-	
+
 	NSMutableArray *m_subtags;
 }
 
@@ -105,7 +105,7 @@ typedef struct {
 @end
 
 @interface ECTagString : ECTagData {
-	// string 
+	// string
 	NSString *m_val;
 }
 
@@ -127,7 +127,7 @@ typedef struct {
 - (void)initWithOpcode:(ec_opcode_t) opcode;
 
 - (void)writeToSocket:(NSOutputStream *) socket;
- 
+
 @property (readonly) ec_opcode_t opcode;
 
 @end
@@ -139,7 +139,7 @@ typedef struct {
 
 - (NSString *)getMD5_Str:(NSString *) str;
 
- at end	
+ at end
 
 @interface ECLoginRequestPacket : ECPacket
 {
@@ -159,9 +159,9 @@ typedef struct {
 		LOGIN_PASS_SENT,
 		LOGIN_OK
 	} m_state;
-	
+
 	ECRemoteConnection *m_connection;
-	
+
 	NSString *m_pass;
 }
 
@@ -184,9 +184,9 @@ typedef struct {
 @interface ECRemoteConnection : NSObject {
 	NSInputStream *m_istream;
 	NSOutputStream *m_ostream;
-	
+
 	NSMutableData *m_rxbuf;
-	
+
 	int m_rx_size;
 	int m_remaining_size;
 
@@ -194,11 +194,11 @@ typedef struct {
 	NSData *m_txbuf;
 	int m_tx_ptr;
 	int m_tx_size;
-		
+
 	amuleLoginHandler *m_login_handler;
-	
+
     id delegate;
-	
+
 	bool m_error;
 }
 
diff --git a/platforms/MacOSX/cocoa-mule/EC.mm b/platforms/MacOSX/cocoa-mule/EC.mm
index 3033e86..5022962 100644
--- a/platforms/MacOSX/cocoa-mule/EC.mm
+++ b/platforms/MacOSX/cocoa-mule/EC.mm
@@ -16,14 +16,14 @@
 		NSLog(@"[EC] buffer for tag is too short");
 		return nil;
 	}
-	
+
 	uint16_t name16 = *(uint16_t *)(*buffer);
 	name16 = ntohs(name16);
 	bool have_subtags = (name16 & 1) != 0;
 	name16 >>= 1;
 	ECTagNames tag_name = (ECTagNames)(name16);
 	*buffer += sizeof(name16);
-	
+
 	uint8_t type8 = *(*buffer);
 	ECTagTypes tag_type = (ECTagTypes)type8;
 	*buffer += sizeof(type8);
@@ -31,7 +31,7 @@
 	uint32_t size32 = *(uint32_t *)(*buffer);
 	size32 = ntohl(size32);
 	*buffer += sizeof(uint32_t);
-	
+
 	NSMutableArray *subtags = have_subtags ? [ECTag readSubtags:buffer withLenght:(length-3)] : nil;
 
 	switch (tag_type) {
@@ -60,7 +60,7 @@
 		tag->m_name = tag_name;
 		tag->m_subtags = subtags;
 	}
-	return tag;	
+	return tag;
 }
 
 + (NSMutableArray *)readSubtags:(uint8_t **) buffer withLenght:(int) length {
@@ -76,7 +76,7 @@
 			[array addObject:tag];
 		}
 	}
-	
+
 	return array;
 }
 
@@ -185,8 +185,8 @@
 	tag->m_size = 1;
 	tag->m_type = EC_TAGTYPE_UINT8;
 	tag->m_name = name;
-	
-	return tag;	
+
+	return tag;
 }
 
 + (id)tagFromBuffer:(uint8_t **) buffer {
@@ -194,15 +194,15 @@
 	tag->m_val = **buffer;
 	tag->m_size = 1;
 	tag->m_type = EC_TAGTYPE_UINT8;
-	
+
 	*buffer += 1;
-	
+
 	return tag;
 }
 
 - (void)writeToSocket:(NSOutputStream *) socket {
 	[super writeToSocket:socket];
-	
+
 	[socket write:&m_val maxLength:sizeof(m_val)];
 }
 
@@ -218,17 +218,17 @@
 	tag->m_size = 2;
 	tag->m_type = EC_TAGTYPE_UINT16;
 	tag->m_name = name;
-	
-	return tag;	
+
+	return tag;
 }
 
 + (id)tagFromBuffer:(uint8_t **) buffer {
 	ECTagInt16 *tag = [[ECTagInt16 alloc] init];
-	
+
 	tag->m_val = ntohs(*((uint16_t *)(*buffer)));
 	tag->m_size = 2;
 	tag->m_type = EC_TAGTYPE_UINT16;
-	
+
 	*buffer += 2;
 
 	return tag;
@@ -247,17 +247,17 @@
 	tag->m_size = 4;
 	tag->m_type = EC_TAGTYPE_UINT32;
 	tag->m_name = name;
-	
-	return tag;	
+
+	return tag;
 }
 
 + (id)tagFromBuffer:(uint8_t **) buffer {
 	ECTagInt32 *tag = [[ECTagInt32 alloc] init];
-	
+
 	tag->m_val = ntohl(*((uint32_t *)(*buffer)));
 	tag->m_size = 4;
 	tag->m_type = EC_TAGTYPE_UINT32;
-	
+
 	*buffer += 4;
 
 	return tag;
@@ -276,8 +276,8 @@
 	tag->m_size = 8;
 	tag->m_type = EC_TAGTYPE_UINT64;
 	tag->m_name = name;
-	
-	return tag;	
+
+	return tag;
 }
 
 
@@ -288,22 +288,22 @@
 	uint32 val32 = *((uint32_t *)(*buffer));
 	hi = ntohl(val32);
 	*buffer += 4;
-	
+
 	val32 = *((uint32_t *)(*buffer));
 	lo = ntohl(val32);
 	*buffer += 4;
-	
+
 	tag->m_val = (hi << 32) | lo;
 	tag->m_size = 8;
 	tag->m_type = EC_TAGTYPE_UINT64;
-	
+
 	return tag;
 }
 
 
 - (void)writeToSocket:(NSOutputStream *) socket {
 	[super writeToSocket:socket];
-	
+
 	uint32_t val32 = m_val >> 32;
 	val32 = htonl(val32);
 	[socket write:(uint8_t *)&val32 maxLength:sizeof(val32)];
@@ -320,7 +320,7 @@
 
 - (void)writeToSocket:(NSOutputStream *) socket {
 	[super writeToSocket:socket];
-	
+
 	[socket write:(const uint8_t *)[m_data bytes] maxLength:m_size];
 }
 
@@ -334,7 +334,7 @@
 
 	tag->m_data = [NSData dataWithBytes: *buffer length: length];
 	[tag->m_data retain];
-	
+
 	return tag;
 }
 
@@ -351,7 +351,7 @@
 	CC_MD5_Init(&ctx);
 	CC_MD5_Update(&ctx, [string UTF8String], [string length]);
 	CC_MD5_Final(md5data, &ctx);
-	
+
 	tag->m_data = [NSData dataWithBytes: md5data length: sizeof(md5data)];
 	[tag->m_data retain];
 	tag->m_size = 16;
@@ -363,13 +363,13 @@
 
 + (id)tagFromBuffer:(uint8_t **) buffer {
 	ECTagMD5 *tag = [[ECTagMD5 alloc] init];
-	
+
 	tag->m_data = 0;
 	tag->m_val.lo = *((uint64_t *)(*buffer));
 	(*buffer) += 8;
 	tag->m_val.hi = *((uint64_t *)(*buffer));
 	(*buffer) += 8;
-	
+
 	return tag;
 }
 
@@ -415,7 +415,7 @@
 
 	tag->m_val = [NSString stringWithCString:(char *)(*buffer) encoding:NSUTF8StringEncoding];
 	*buffer += [tag->m_val length] + 1;
-	
+
 	return tag;
 }
 
@@ -429,7 +429,7 @@
 	ECPacket *p = [[ECPacket alloc] init];
 
 	[p initWithOpcode:opcode];
-	
+
 	return p;
 }
 
@@ -450,7 +450,7 @@
 	}
 	ECPacket *p = [[ECPacket alloc] init];
 	uint8_t *data = buffer;
-	
+
 	p->m_flags = ntohl(*((uint32_t *)data));
 	data += 4;
 	uint32_t packet_size = ntohl(*((uint32_t *)data));
@@ -475,7 +475,7 @@
 			}
 		}
 	}
-	
+
 	return p;
 }
 
@@ -483,7 +483,7 @@
 	// 1 (command) + 2 (tag count)
 	int packet_size = [self getSize] + 1 + 2;
 
-// No need for zlib on client side	
+// No need for zlib on client side
 //	if ( packet_size > MaxUncompressedPacket ) {
 //		m_flags |= (Int32)ECFlags.EC_FLAG_ZLIB;
 //	}
@@ -541,7 +541,7 @@
 //						 md5data[12],md5data[13],md5data[14],md5data[15]
 //						 ];
 	NSString *saltMD5 = [p getMD5_Str: saltStr];
-	
+
 	NSString *newPass = [NSString stringWithFormat:@"%@%@", [p getMD5_Str: password], saltMD5];
 
 	NSLog(@"[EC] using salt=%@ saltHash=%@ newPass=%@\n", saltStr, saltMD5, newPass);
@@ -559,18 +559,18 @@
 
 + (id)loginPacket:(NSString *) version {
 	ECLoginRequestPacket *p = [[ECLoginRequestPacket alloc] init];
-	
+
 	[p initWithOpcode:EC_OP_AUTH_REQ];
-	
+
 	ECTagString *version_tag = [ECTagString tagFromString:version withName:EC_TAG_CLIENT_VERSION];
 	[p->m_subtags addObject:version_tag];
-	
+
 	ECTagString *client_name_tag = [ECTagString tagFromString:@"cocoa-frontend" withName:EC_TAG_CLIENT_NAME];
 	[p->m_subtags addObject:client_name_tag];
-	
+
 	ECTagInt64 *proto_version_tag = [ECTagInt64 tagFromInt64:EC_CURRENT_PROTOCOL_VERSION withName:EC_TAG_PROTOCOL_VERSION];
 	[p->m_subtags addObject:proto_version_tag];
-	
+
 	return p;
 }
 
@@ -584,13 +584,13 @@
 
 + (id)remoteConnection {
 	ECRemoteConnection *p = [[ECRemoteConnection alloc] init];
-	
+
 	//
 	// rx buffer can be resized as needed
 	//
 	p->m_rxbuf = [NSMutableData dataWithLength:1024];
 	[p->m_rxbuf retain];
-	
+
 	p->m_login_handler = [amuleLoginHandler initWithConnection:p];
 	[p->m_login_handler retain];
 	//
@@ -600,7 +600,7 @@
 //	p->m_txbuf = [NSMutableData dataWithLength:1024];
 //	[p->m_txbuf retain];
 	p->m_txbuf = nil;
-	
+
 	return p;
 }
 
@@ -610,7 +610,7 @@
 
 	[m_istream release];
 	[m_ostream release];
-	
+
 	[super dealloc];
 }
 
@@ -633,10 +633,10 @@
 
 - (void)connectToAddress:(NSString *) hostname withPort:(int)trgport {
 	m_error = false;
-	
+
 	NSHost *host = [NSHost hostWithName:hostname];
 	NSString *addr = nil;
-	
+
 	//
 	// On Mac localhost has ipv6 address (linklocal), but amuled listen
 	// only on ipv4
@@ -657,10 +657,10 @@
 
 	[m_istream retain];
 	[m_ostream retain];
-	
+
 	[m_istream setDelegate:self];
 	[m_ostream setDelegate:self];
-	
+
 	[m_istream scheduleInRunLoop:[NSRunLoop currentRunLoop]
             forMode:NSDefaultRunLoopMode];
 
@@ -669,7 +669,7 @@
 
 	[m_istream open];
 	[m_ostream open];
-	
+
 	m_remaining_size = 8;
 	m_rx_size = 0;
 }
@@ -677,7 +677,7 @@
 - (void)sendLogin:(NSString *) password {
 
 	[m_login_handler usePass: password];
-	
+
 	ECLoginRequestPacket *p = [ECLoginRequestPacket loginPacket:@"0.1"];
 	[self sendPacket:p];
 }
@@ -685,11 +685,11 @@
 - (void)sendPacket:(ECPacket *) packet {
 	NSOutputStream *memstream = [NSOutputStream outputStreamToMemory];
 	[memstream open];
-	
+
 	[packet writeToSocket:memstream];
 	id data = [memstream propertyForKey:NSStreamDataWrittenToMemoryStreamKey];
-	
- 	m_tx_size = [data length];
+
+	m_tx_size = [data length];
 	NSLog(@"[EC] sending packet %d bytes\n", m_tx_size);
 	m_tx_ptr = [m_ostream write:(const uint8_t *)[data bytes] maxLength:[data length]];
 	NSLog(@"[EC] %d bytes sent\n", m_tx_ptr);
@@ -779,7 +779,7 @@
 					int packet_length = [m_rxbuf length] - packet_offset;
 					ECPacket *packet = [ECPacket packetFromBuffer:packet_start withLength:packet_length];
 					packet_offset += m_rx_size;
-					
+
 					if ( [m_login_handler loginOK] ) {
 #ifdef EC_RX_DEBUG
 						NSLog(@"[EC] calling delegate\n");
@@ -797,7 +797,7 @@
 			}
             break;
         }
-		
+
         case NSStreamEventHasSpaceAvailable:
 		{
 			if ( m_txbuf != nil ) {
@@ -832,9 +832,9 @@
 
 + (id)initWithConnection:(ECRemoteConnection *) connection {
 
-	amuleLoginHandler *obj = [[amuleLoginHandler alloc] init]; 
+	amuleLoginHandler *obj = [[amuleLoginHandler alloc] init];
 	obj->m_connection = connection;
-	
+
 	obj->m_state = LOGIN_REQUEST_SENT;
 
 	return obj;
@@ -851,16 +851,16 @@
 			break;
 		case LOGIN_REQUEST_SENT:
 			if ( packet.opcode == EC_OP_AUTH_SALT ) {
-				
+
 				uint64_t salt = [packet tagInt64ByName:EC_TAG_PASSWD_SALT];
 				ECLoginAuthPacket *auth_packet = [ECLoginAuthPacket loginPacket:m_pass withSalt:salt];
 				[m_connection sendPacket:auth_packet];
-				
+
 				m_state = LOGIN_PASS_SENT;
 			} else {
 				NSLog(@"[EC]: error - expecting packet with EC_OP_AUTH_SALT, not [%d]\n", packet.opcode);
 				m_state = LOGIN_IDLE;
-			} 
+			}
 			break;
 		case LOGIN_PASS_SENT:
 			if ( packet.opcode == EC_OP_AUTH_OK ) {
diff --git a/platforms/MacOSX/cocoa-mule/LoginDialogController.h b/platforms/MacOSX/cocoa-mule/LoginDialogController.h
index a4d0e30..21f7be8 100644
--- a/platforms/MacOSX/cocoa-mule/LoginDialogController.h
+++ b/platforms/MacOSX/cocoa-mule/LoginDialogController.h
@@ -2,8 +2,8 @@
 
 @interface LoginDialogController : NSObject {
     IBOutlet id m_dlg;
-	
-	
+
+
     IBOutlet NSTextField *m_host_field;
     IBOutlet NSTextField *m_port_field;
     IBOutlet NSTextField *m_pass_field;
diff --git a/platforms/MacOSX/cocoa-mule/LoginDialogController.m b/platforms/MacOSX/cocoa-mule/LoginDialogController.m
index 01cd715..080d8fa 100644
--- a/platforms/MacOSX/cocoa-mule/LoginDialogController.m
+++ b/platforms/MacOSX/cocoa-mule/LoginDialogController.m
@@ -15,20 +15,20 @@
 	if ( default_host != nil ) {
 		[m_host_field setStringValue: default_host];
 	}
-	
+
 	NSString *default_port = [[NSUserDefaults standardUserDefaults] stringForKey:@"LastTargetPort"];
 	if ( default_port != nil ) {
 		[m_port_field setStringValue:[[NSUserDefaults standardUserDefaults] stringForKey:@"LastTargetPort"]];
 	}
 	[NSApp beginSheet: m_dlg modalForWindow: window
 		modalDelegate: nil didEndSelector: nil contextInfo: nil];
-					
+
 	[NSApp runModalForWindow: m_dlg];
-	
+
 	[NSApp endSheet: m_dlg];
 
     [m_dlg orderOut: self];
-	
+
 	return m_dlg_result;
 }
 
@@ -40,12 +40,12 @@
 
 - (IBAction)closeOK:(id)sender {
 	m_dlg_result = true;
-	
+
 	m_host = [m_host_field stringValue];
 	NSString *port = [m_port_field stringValue];
 	m_port = [port intValue];
 	m_pass = [m_pass_field stringValue];
-	
+
     [NSApp stopModal];
 }
 
diff --git a/platforms/MacOSX/cocoa-mule/SearchViewController.mm b/platforms/MacOSX/cocoa-mule/SearchViewController.mm
index a8da2b0..cf28cf0 100644
--- a/platforms/MacOSX/cocoa-mule/SearchViewController.mm
+++ b/platforms/MacOSX/cocoa-mule/SearchViewController.mm
@@ -3,7 +3,7 @@
 @implementation SearchViewController
 
 - (IBAction)startSearch:(id)sender {
-    
+
 }
 
 - (void)linkAmuleData:(amuleData *)amuledata {
diff --git a/platforms/MacOSX/cocoa-mule/SharedFilesViewController.mm b/platforms/MacOSX/cocoa-mule/SharedFilesViewController.mm
index 7678a67..0d3b599 100644
--- a/platforms/MacOSX/cocoa-mule/SharedFilesViewController.mm
+++ b/platforms/MacOSX/cocoa-mule/SharedFilesViewController.mm
@@ -39,7 +39,7 @@
 - (void)awakeFromNib {
 	[m_table_view setDelegate:self];
 	[m_table_view setDataSource:self];
-	
+
 	//
 	// load column status
 	//
diff --git a/platforms/MacOSX/cocoa-mule/SourceViewController.h b/platforms/MacOSX/cocoa-mule/SourceViewController.h
index a4bfe89..d190ff9 100644
--- a/platforms/MacOSX/cocoa-mule/SourceViewController.h
+++ b/platforms/MacOSX/cocoa-mule/SourceViewController.h
@@ -2,12 +2,12 @@
 
 @interface BaseItem : NSObject {
 	NSString *m_text;
-	
+
 	NSString *m_view_id;
-	
+
 	NSMutableArray *m_subitems;
 	int m_subitems_count;
-	
+
 	NSImage *m_icon;
 }
 
@@ -28,7 +28,7 @@
 
 @interface CategoryItemFactory : BaseItem
 {
-	
+
 }
 
 + (BaseItem *)initFilesItem;
@@ -41,14 +41,14 @@ enum {
 	RootItemNetwork = 0,
 	RootItemFiles,
 	RootItemSearch,
-	
+
 	RootItemLast
 };
 
 
 @interface amuleSourceListDataSource : NSObject
 {
-	BaseItem *g_root_items[RootItemLast];   
+	BaseItem *g_root_items[RootItemLast];
 }
 
 + (amuleSourceListDataSource *)initWithData;
diff --git a/platforms/MacOSX/cocoa-mule/SourceViewController.m b/platforms/MacOSX/cocoa-mule/SourceViewController.m
index 64c22bd..6beeb14 100644
--- a/platforms/MacOSX/cocoa-mule/SourceViewController.m
+++ b/platforms/MacOSX/cocoa-mule/SourceViewController.m
@@ -6,17 +6,17 @@
 	BaseItem *node = [[BaseItem alloc] init];
 	node->m_text = [NSString stringWithString:text];
 	[node->m_text retain];
-	
+
 	node->m_subitems = [NSMutableArray arrayWithCapacity:16];
 	[node->m_subitems retain];
 	node->m_subitems_count = 0;
-	
+
 	node->m_view_id = viewId;
 	if ( viewId != nil ) {
 		[node->m_view_id retain];
-	}       
-	
-	
+	}
+
+
 //	NSString* imageName = [[NSBundle mainBundle] pathForResource:@"Client_Transfer" ofType:@"png"];
 //	NSImage* imageObj = [[NSImage alloc] initWithContentsOfFile:imageName];
 	NSString *imageName = @"Client_Transfer";
@@ -24,7 +24,7 @@
 	[imageObj retain];
 	assert(imageObj);
 	node->m_icon = imageObj;
-	
+
 	return node;
 }
 
@@ -32,7 +32,7 @@
 {
 	[m_text release];
 	[m_subitems release];
-	
+
 	[super dealloc];
 }
 
@@ -73,17 +73,17 @@
 
 + (BaseItem *)initFilesItem {
 	BaseItem *it = [BaseItem initWithText:@"Files" withViewId:nil];
-	
+
 	BaseItem *all = [BaseItem initWithText:@"All files" withViewId:@"all"];
 	BaseItem *dl = [BaseItem initWithText:@"Downloads" withViewId:@"downloads"];
 	BaseItem *ul = [BaseItem initWithText:@"Uploads" withViewId:@"upload"];
 	BaseItem *sh = [BaseItem initWithText:@"Shared" withViewId:@"shared"];
-	
+
 	[it addSubItem:all];
 	[it addSubItem:dl];
 	[it addSubItem:ul];
 	[it addSubItem:sh];
-	
+
 	return it;
 }
 
@@ -107,7 +107,7 @@
 	obj->g_root_items[RootItemFiles] = [CategoryItemFactory initFilesItem];
 	obj->g_root_items[RootItemNetwork] = [CategoryItemFactory initNetworksItem];
 	obj->g_root_items[RootItemSearch] = [CategoryItemFactory initSearchItem];
-	
+
 	return obj;
 }
 
@@ -135,7 +135,7 @@
 	return [item itemAtIndex: index];
 }
 
-- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item 
+- (id)outlineView:(NSOutlineView *)outlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item
 {
 	NSString *columnId = [tableColumn identifier];
 	if ( [columnId compare:@"status"] == NSOrderedSame ) {
@@ -198,7 +198,7 @@
     result.origin.x += PADDING_BEFORE_IMAGE;
 
 	result.size = [m_icon size];
-	
+
     return result;
 }
 
@@ -226,18 +226,18 @@
 }
 
 - (void)drawInteriorWithFrame:(NSRect)bounds inView:(NSView *)controlView {
-	
+
     NSRect imageRect = [self imageRectForBounds:bounds];
 
 	[m_icon setFlipped:[controlView isFlipped]];
 	[m_icon drawInRect:imageRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
-	
+
     NSRect titleRect = [self titleRectForBounds:bounds];
     NSAttributedString *title = [self attributedStringValue];
     if ([title length] > 0) {
         [title drawInRect:titleRect];
     }
-	
+
 }
 
 @end
@@ -246,7 +246,7 @@
 
 - (void)awakeFromNib {
 	[m_outline_view setDelegate:self];
-	
+
 	id datasource = [amuleSourceListDataSource initWithData];
 
 	[m_outline_view setDataSource:datasource];
@@ -257,7 +257,7 @@
 		id item = [m_outline_view itemAtRow:i];
 		[m_outline_view expandItem:item];
 	}
-	
+
 }
 
 - (void)outlineViewSelectionDidChange:(NSNotification *)notification {
@@ -265,8 +265,8 @@
 	id item = [m_outline_view itemAtRow:selRow];
 	id viewId = [item viewId];
 	NSLog(@"select tab=%@\n", viewId);
-	
-	[m_tab_view selectTabViewItemWithIdentifier:viewId]; 
+
+	[m_tab_view selectTabViewItemWithIdentifier:viewId];
 }
 
 - (BOOL)outlineView:(NSOutlineView *)outlineView shouldSelectItem:(id)item {
diff --git a/platforms/MacOSX/cocoa-mule/amuleData.h b/platforms/MacOSX/cocoa-mule/amuleData.h
index 4bd9424..5469d25 100644
--- a/platforms/MacOSX/cocoa-mule/amuleData.h
+++ b/platforms/MacOSX/cocoa-mule/amuleData.h
@@ -20,20 +20,20 @@
 
 @end
 
- at interface DownloadingFile : amuleFile {	
+ at interface DownloadingFile : amuleFile {
 	int m_src_count;
 	int m_non_current_src_count;
 	int m_xfer_src_count;
 	int m_a4af_src_count;
-	
+
 	uint64_t m_size_done;
 	uint64_t m_size_xfer;
-	
+
 	int m_prio;
 	bool m_auto_prio;
-	
+
 	int m_speed;
-	
+
 }
 
 + (id)createFromEC:(ECTagMD5 *) tag;
@@ -60,7 +60,7 @@
 @interface SearchFile : amuleFile {
 	int m_src_count;
 	int m_complete_src_count;
-	
+
 	bool m_known;
 }
 
@@ -74,17 +74,17 @@
 
 @end
 
- at interface SharedFile : amuleFile {	
+ at interface SharedFile : amuleFile {
 	int m_req_count;
 	int m_req_count_all;
 	int m_accept_count;
 	int m_accept_count_all;
-	
+
 	uint64_t m_size_xfer;
 	uint64_t m_size_xfer_all;
-	
+
 	int m_prio;
-	bool m_auto_prio;	
+	bool m_auto_prio;
 }
 
 + (id)createFromEC:(ECTagMD5 *) tag;
@@ -109,7 +109,7 @@
 @interface amuleFileSet : NSObject {
 	NSMutableDictionary *m_file_dict;
 	NSMutableArray *m_file_array;
-	
+
 	id m_gui_controller;
 }
 
diff --git a/platforms/MacOSX/cocoa-mule/amuleData.mm b/platforms/MacOSX/cocoa-mule/amuleData.mm
index 1b356ea..27d7cc1 100644
--- a/platforms/MacOSX/cocoa-mule/amuleData.mm
+++ b/platforms/MacOSX/cocoa-mule/amuleData.mm
@@ -28,13 +28,13 @@
 	NSString *res = nil;
 	double dnum = number;
 	if ( number < 1024 ) { // bytes
-		res = [NSString stringWithFormat:@"%llu bytes", number]; 
+		res = [NSString stringWithFormat:@"%llu bytes", number];
 	} else if ( number < 1024*1024 ) { // K
-		res = [NSString stringWithFormat:@"%0.2f Kb", dnum / 1024.0]; 
+		res = [NSString stringWithFormat:@"%0.2f Kb", dnum / 1024.0];
 	} else if ( number < 1024*1024*1024 ) { // M
-		res = [NSString stringWithFormat:@"%.2f Mb", dnum / 1048576.0]; 
+		res = [NSString stringWithFormat:@"%.2f Mb", dnum / 1048576.0];
 	} else {
-		res = [NSString stringWithFormat:@"%.2f Gb", dnum / 1073741824.0]; 
+		res = [NSString stringWithFormat:@"%.2f Gb", dnum / 1073741824.0];
 	}
 	return res;
 }
@@ -65,28 +65,28 @@
 
 + (id)createFromEC: (ECTagMD5 *) tag {
 	DownloadingFile *obj = [[DownloadingFile alloc] init];
-	
+
 	obj->m_hash = [tag getMD5Data];
-	
+
 	ECTag *nametag = [tag tagByName: EC_TAG_PARTFILE_NAME];
 	ECTagString *stag = (ECTagString *)nametag;
 	obj->m_name = stag.stringValue;;
-	
+
 	obj->m_size = [tag tagInt64ByName: EC_TAG_PARTFILE_SIZE_FULL];
 	NSLog(@"[EC]: added partfile [%@]\n", obj->m_name);
 	[obj updateFromEC:tag];
-	
+
 	return obj;
 }
 
 - (void)updateFromEC:(ECTagMD5 *) tag {
 	NSLog(@"[EC]: updating partfile [%@]\n", m_name);
-	
+
 	m_size_done = [tag tagInt64ByName: EC_TAG_PARTFILE_SIZE_DONE];
 	m_size_xfer = [tag tagInt64ByName:EC_TAG_PARTFILE_SIZE_XFER];
-	
+
 	m_speed = [tag tagInt64ByName:EC_TAG_PARTFILE_SPEED];
-	
+
 	m_src_count = [tag tagInt64ByName: EC_TAG_PARTFILE_SOURCE_COUNT];
 	m_non_current_src_count = [tag tagInt64ByName: EC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT];
 	m_xfer_src_count = [tag tagInt64ByName: EC_TAG_PARTFILE_SOURCE_COUNT_XFER];
@@ -144,7 +144,7 @@
 
 + (id)createFromEC: (ECTagMD5 *) tag {
 	SearchFile *obj = [[SearchFile alloc] init];
-	
+
 	obj->m_hash = [tag getMD5Data];
 
 	ECTag *nametag = [tag tagByName: EC_TAG_PARTFILE_NAME];
@@ -154,9 +154,9 @@
 	obj->m_size = [tag tagInt64ByName: EC_TAG_PARTFILE_SIZE_FULL];
 
 	obj->m_known = ([tag tagByName: EC_TAG_KNOWNFILE] == nil) ? false : true;
-	
+
 	[obj updateFromEC:tag];
-	
+
 	return obj;
 }
 
@@ -190,15 +190,15 @@
 	SharedFile *obj = [[SharedFile alloc] init];
 
 	obj->m_hash = [tag getMD5Data];
-	
+
 	ECTag *nametag = [tag tagByName: EC_TAG_PARTFILE_NAME];
 	ECTagString *stag = (ECTagString *)nametag;
 	obj->m_name = stag.stringValue;;
-	
+
 	obj->m_size = [tag tagInt64ByName: EC_TAG_PARTFILE_SIZE_FULL];
-		
+
 	[obj updateFromEC:tag];
-	
+
 	return obj;
 }
 
@@ -241,10 +241,10 @@
 	m_req_count_all = [tag tagInt64ByName: EC_TAG_KNOWNFILE_REQ_COUNT_ALL];
 	m_accept_count = [tag tagInt64ByName: EC_TAG_KNOWNFILE_ACCEPT_COUNT];
 	m_accept_count_all = [tag tagInt64ByName: EC_TAG_KNOWNFILE_ACCEPT_COUNT_ALL];
-	
+
 	m_size_xfer = [tag tagInt64ByName: EC_TAG_KNOWNFILE_XFERRED];
 	m_size_xfer_all = [tag tagInt64ByName: EC_TAG_KNOWNFILE_XFERRED_ALL];
-	
+
 	m_prio = [tag tagInt64ByName:EC_TAG_PARTFILE_PRIO];
 	if ( m_prio > 10 ) {
 		m_auto_prio = true;
@@ -252,7 +252,7 @@
 	} else {
 		m_auto_prio = false;
 	}
-	
+
 }
 
 @end
@@ -275,7 +275,7 @@
 	id objKey = [object key];
 	[m_file_dict setObject:object forKey:objKey];
 	[m_file_array addObject:object];
-	
+
 	[self reloadGui];
 }
 
@@ -343,13 +343,13 @@
 + (id)initWithConnection:(ECRemoteConnection *) connection {
 	amuleData *obj = [[amuleData alloc] init];
 	connection.delegate = obj;
-	
+
 	obj->m_connection = connection;
-	
+
 	obj->m_downloads = [[amuleFileSet alloc] init];
 	obj->m_shared = [[amuleFileSet alloc] init];
 	obj->m_search_results = [[amuleFileSet alloc] init];
-	 
+
 	return obj;
 }
 
@@ -377,7 +377,7 @@
 }
 
 - (void)handleError {
-		NSRunCriticalAlertPanel(@"Daemon communication error", 
+		NSRunCriticalAlertPanel(@"Daemon communication error",
 						@"Connection with core daemon (amuled) failed",
 						@"Quit", nil,nil);
 		exit(-1);
@@ -471,11 +471,11 @@
 	if ( avail ) {
 		[searchtag.subtags addObject:[ECTagInt32 tagFromInt32:avail withName:EC_TAG_SEARCH_AVAILABILITY]];
 	}
-	
+
 	[packet.subtags addObject:searchtag];
-	
+
 	[m_connection sendPacket:packet];
-	
+
 	m_search_running = true;
 }
 
@@ -483,7 +483,7 @@
 	ECPacket *packet = [ECPacket packetWithOpcode:EC_OP_SEARCH_STOP];
 
 	[m_connection sendPacket:packet];
-	
+
 	m_search_running = false;
 }
 
diff --git a/platforms/Windows/MSVC10/PCH.h b/platforms/Windows/MSVC10/PCH.h
index 5269328..636dfa7 100644
--- a/platforms/Windows/MSVC10/PCH.h
+++ b/platforms/Windows/MSVC10/PCH.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/platforms/Windows/MSVC10/aMule-MSVC10E-ExtLibs29.sln b/platforms/Windows/MSVC10/aMule-MSVC10E-ExtLibs29.sln
index 65367d7..5f58236 100644
--- a/platforms/Windows/MSVC10/aMule-MSVC10E-ExtLibs29.sln
+++ b/platforms/Windows/MSVC10/aMule-MSVC10E-ExtLibs29.sln
@@ -4,41 +4,41 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "buildlibext", "libs\libext\
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\..\..\cryptopp\cryptlib.vcxproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxregex.vcxproj", "{56A4B526-BB81-5D01-AAA9-16D23BBB169D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxregex.vcxproj", "{56A4B526-BB81-5D01-AAA9-16D23BBB169D}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxzlib.vcxproj", "{8B867186-A0B5-5479-B824-E176EDD27C40}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxzlib.vcxproj", "{8B867186-A0B5-5479-B824-E176EDD27C40}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxpng.vcxproj", "{8ACC122A-CA6A-5AA6-9C97-9CDD2E533DB0}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxpng.vcxproj", "{8ACC122A-CA6A-5AA6-9C97-9CDD2E533DB0}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxjpeg.vcxproj", "{6053CC38-CDEE-584C-8BC8-4B000D800FC7}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxjpeg.vcxproj", "{6053CC38-CDEE-584C-8BC8-4B000D800FC7}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxtiff.vcxproj", "{75596CE6-5AE7-55C9-B890-C07B0A657A83}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxtiff.vcxproj", "{75596CE6-5AE7-55C9-B890-C07B0A657A83}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxexpat.vcxproj", "{A1A8355B-0988-528E-9CC2-B971D6266669}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxexpat.vcxproj", "{A1A8355B-0988-528E-9CC2-B971D6266669}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_base.vcxproj", "{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_base.vcxproj", "{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_net.vcxproj", "{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_net.vcxproj", "{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_core.vcxproj", "{6744DAD8-9C70-574A-BFF2-9F8DDDB24A75}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_core.vcxproj", "{6744DAD8-9C70-574A-BFF2-9F8DDDB24A75}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_adv.vcxproj", "{24C45343-FD20-5C92-81C1-35A2AE841E79}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_adv.vcxproj", "{24C45343-FD20-5C92-81C1-35A2AE841E79}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_media.vcxproj", "{8BD8F8D9-4275-5B42-A8F4-F1DB2970A550}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_media.vcxproj", "{8BD8F8D9-4275-5B42-A8F4-F1DB2970A550}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_html.vcxproj", "{33CC42F9-7756-5587-863C-8D4461B7C5DD}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_html.vcxproj", "{33CC42F9-7756-5587-863C-8D4461B7C5DD}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_qa.vcxproj", "{E21129E0-7C08-5936-9D8C-0D60B5319BA7}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_qa.vcxproj", "{E21129E0-7C08-5936-9D8C-0D60B5319BA7}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_xml.vcxproj", "{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_xml.vcxproj", "{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_xrc.vcxproj", "{09F2F96A-1CC6-5E43-AF1D-956EC2A4888D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_xrc.vcxproj", "{09F2F96A-1CC6-5E43-AF1D-956EC2A4888D}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_aui.vcxproj", "{A16D3832-0F42-57CE-8F48-50E06649ADE8}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_aui.vcxproj", "{A16D3832-0F42-57CE-8F48-50E06649ADE8}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_richtext.vcxproj", "{7FB0902D-8579-5DCE-B883-DAF66A885005}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_richtext.vcxproj", "{7FB0902D-8579-5DCE-B883-DAF66A885005}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_gl.vcxproj", "{DA8B15EF-6750-5928-BC0E-C748213CF9B2}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "..\..\..\..\wxWidgets29\build\msw\wx_vc10_gl.vcxproj", "{DA8B15EF-6750-5928-BC0E-C748213CF9B2}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/platforms/Windows/MSVC10/aMule-MSVC10E.sln b/platforms/Windows/MSVC10/aMule-MSVC10E.sln
index e1230f8..b47ec08 100644
--- a/platforms/Windows/MSVC10/aMule-MSVC10E.sln
+++ b/platforms/Windows/MSVC10/aMule-MSVC10E.sln
@@ -1,8 +1,14 @@
 Microsoft Visual Studio Solution File, Format Version 11.00
 # Visual C++ Express 2010
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMule", "aMule\aMule.vcxproj", "{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmuleec", "libs\libmuleec\libmuleec.vcxproj", "{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmulecommon", "libs\libmulecommon\libmulecommon.vcxproj", "{293E6133-239A-4ED4-838E-9182B07C6B35}"
 EndProject
@@ -11,8 +17,14 @@ EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aLinkCreator", "aLinkCreator\aLinkCreator.vcxproj", "{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleCMD", "aMuleCMD\aMuleCMD.vcxproj", "{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleGUI", "aMuleGUI\aMuleGUI.vcxproj", "{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ed2k", "ed2k\ed2k.vcxproj", "{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}"
 EndProject
@@ -21,13 +33,21 @@ EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGeoIP", "libs\libGeoIP\libGeoIP.vcxproj", "{8CA0F896-7689-4CE0-9D16-99C9C83847E1}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleD", "aMuleD\aMuleD.vcxproj", "{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleWeb", "aMuleWeb\aMuleWeb.vcxproj", "{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxCas", "wxCas\wxCas.vcxproj", "{5FCAFC30-922E-446F-8DF5-D71819AB6356}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alcc", "aLinkCreator\alcc.vcxproj", "{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsocket", "libs\libsocket\libsocket.vcxproj", "{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
@@ -148,6 +168,14 @@ Global
 		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release|Win32.Build.0 = Release|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release29|Win32.ActiveCfg = Release29|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release29|Win32.Build.0 = Release29|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Debug|Win32.ActiveCfg = Debug|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Debug|Win32.Build.0 = Debug|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Debug29|Win32.ActiveCfg = Debug29|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Debug29|Win32.Build.0 = Debug29|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Release|Win32.ActiveCfg = Release|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Release|Win32.Build.0 = Release|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Release29|Win32.ActiveCfg = Release29|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Release29|Win32.Build.0 = Release29|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/platforms/Windows/MSVC10/aMule/aMule.vcxproj b/platforms/Windows/MSVC10/aMule/aMule.vcxproj
index 39505d2..3ed82a7 100644
--- a/platforms/Windows/MSVC10/aMule/aMule.vcxproj
+++ b/platforms/Windows/MSVC10/aMule/aMule.vcxproj
@@ -396,6 +396,7 @@
     <ClInclude Include="..\..\..\..\src\kademlia\utils\KadClientSearcher.h" />
     <ClInclude Include="..\..\..\..\src\kademlia\utils\KadUDPKey.h" />
     <ClInclude Include="..\..\..\..\src\kademlia\utils\UInt128.h" />
+    <ClInclude Include="..\..\..\..\src\LibSocket.h" />
     <ClInclude Include="..\..\..\..\src\libs\ec\cpp\ECID.h" />
     <ClInclude Include="..\..\..\..\src\ED2KLink.h" />
     <ClInclude Include="..\..\..\..\src\EditServerListDlg.h" />
@@ -519,6 +520,14 @@
       <Project>{16c7a051-9097-41a5-ba26-fec1ea1f16ef}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters b/platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters
index 37cc08f..f9ca241 100644
--- a/platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters
+++ b/platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters
@@ -893,6 +893,9 @@
     <ClInclude Include="..\..\..\..\src\ClientRef.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\src\LibSocket.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\version.rc">
diff --git a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj b/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
index cb81ef1..f607618 100644
--- a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
+++ b/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
@@ -208,6 +208,14 @@
       <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj b/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj
index e6944aa..5ed4dbc 100644
--- a/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj
+++ b/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj
@@ -298,6 +298,7 @@
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\..\src\GapList.h" />
+    <ClInclude Include="..\PCH.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\version.rc" />
@@ -311,6 +312,14 @@
       <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj.filters b/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj.filters
index e133e17..18c2def 100644
--- a/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj.filters
+++ b/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj.filters
@@ -299,6 +299,9 @@
     <ClInclude Include="..\..\..\..\src\GapList.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\PCH.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\version.rc">
diff --git a/platforms/Windows/MSVC10/aMuleGUI/aMuleGUI.vcxproj b/platforms/Windows/MSVC10/aMuleGUI/aMuleGUI.vcxproj
index 0abe96e..e2823aa 100644
--- a/platforms/Windows/MSVC10/aMuleGUI/aMuleGUI.vcxproj
+++ b/platforms/Windows/MSVC10/aMuleGUI/aMuleGUI.vcxproj
@@ -397,6 +397,14 @@
       <Project>{16c7a051-9097-41a5-ba26-fec1ea1f16ef}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj b/platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj
index 0115ff8..75ef1c7 100644
--- a/platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj
+++ b/platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj
@@ -221,6 +221,14 @@
       <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/libs/libGeoIP/readme.txt b/platforms/Windows/MSVC10/libs/libGeoIP/readme.txt
index 10ff1c6..47fc2f6 100644
--- a/platforms/Windows/MSVC10/libs/libGeoIP/readme.txt
+++ b/platforms/Windows/MSVC10/libs/libGeoIP/readme.txt
@@ -1,7 +1,7 @@
 How to build aMule with GeoIP support
 
 The MaxMind GeoIP library can detect the country an IP adress comes from. aMule uses this information
-to display a little country flag for each source or ed2k server. 
+to display a little country flag for each source or ed2k server.
 Since this is an external library it is disabled by default. This is how to enable it:
 
 Download the free GeoIP C library from http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz
diff --git a/platforms/Windows/MSVC10/libs/libext/buildlibext.vcxproj b/platforms/Windows/MSVC10/libs/libext/buildlibext.vcxproj
index f04d26f..bba0851 100644
--- a/platforms/Windows/MSVC10/libs/libext/buildlibext.vcxproj
+++ b/platforms/Windows/MSVC10/libs/libext/buildlibext.vcxproj
@@ -100,7 +100,7 @@ lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxwidgets\li
     <PostBuildEvent>
       <Message>join external libs</Message>
       <Command>if not exist ..\..\$(Configuration) mkdir ..\..\$(Configuration)
-lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29ud_media.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxjpegd.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29ud_adv.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxregexud.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29ud_richtext.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxzlibd.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxbase29ud.lib" "..\..\..\..\..\..\wxWidgets [...]
+lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw30ud_media.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxjpegd.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw30ud_adv.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxregexud.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw30ud_richtext.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxzlibd.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxbase30ud.lib" "..\..\..\..\..\..\wxWidgets [...]
 </Command>
     </PostBuildEvent>
   </ItemDefinitionGroup>
@@ -112,80 +112,80 @@ lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets29\
     <PostBuildEvent>
       <Message>join external libs</Message>
       <Command>if not exist ..\..\$(Configuration) mkdir ..\..\$(Configuration)
-lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29u_media.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxjpeg.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29u_adv.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxregexu.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29u_richtext.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxzlib.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxbase29u.lib" "..\..\..\..\..\..\wxWidgets29\lib\ [...]
+lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw30u_media.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxjpeg.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw30u_adv.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxregexu.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw30u_richtext.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxzlib.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxbase30u.lib" "..\..\..\..\..\..\wxWidgets29\lib\ [...]
 </Command>
     </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_adv.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_adv.vcxproj">
       <Project>{24c45343-fd20-5c92-81c1-35a2ae841e79}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_aui.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_aui.vcxproj">
       <Project>{a16d3832-0f42-57ce-8f48-50e06649ade8}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_base.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_base.vcxproj">
       <Project>{3fcc50c2-81e9-5db2-b8d8-2129427568b1}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_core.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_core.vcxproj">
       <Project>{6744dad8-9c70-574a-bff2-9f8dddb24a75}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_gl.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_gl.vcxproj">
       <Project>{da8b15ef-6750-5928-bc0e-c748213cf9b2}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_html.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_html.vcxproj">
       <Project>{33cc42f9-7756-5587-863c-8d4461b7c5dd}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_media.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_media.vcxproj">
       <Project>{8bd8f8d9-4275-5b42-a8f4-f1db2970a550}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_net.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_net.vcxproj">
       <Project>{69f2ede4-7d21-5738-9bc0-f66f61c9ae00}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_qa.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_qa.vcxproj">
       <Project>{e21129e0-7c08-5936-9d8c-0d60b5319ba7}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_richtext.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_richtext.vcxproj">
       <Project>{7fb0902d-8579-5dce-b883-daf66a885005}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxexpat.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxexpat.vcxproj">
       <Project>{a1a8355b-0988-528e-9cc2-b971d6266669}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxjpeg.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxjpeg.vcxproj">
       <Project>{6053cc38-cdee-584c-8bc8-4b000d800fc7}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxpng.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxpng.vcxproj">
       <Project>{8acc122a-ca6a-5aa6-9c97-9cdd2e533db0}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxregex.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxregex.vcxproj">
       <Project>{56a4b526-bb81-5d01-aaa9-16d23bbb169d}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxtiff.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxtiff.vcxproj">
       <Project>{75596ce6-5ae7-55c9-b890-c07b0a657a83}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxzlib.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_wxzlib.vcxproj">
       <Project>{8b867186-a0b5-5479-b824-e176edd27c40}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_xml.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_xml.vcxproj">
       <Project>{3e6dca27-5fa3-53ec-bbd6-2d42294b7ae6}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_xrc.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc10_xrc.vcxproj">
       <Project>{09f2f96a-1cc6-5e43-af1d-956ec2a4888d}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj b/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
index d7b11ee..531002d 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
+++ b/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
@@ -73,8 +73,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -83,26 +83,32 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+    </ProjectReference>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+    </ProjectReference>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -111,19 +117,25 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+    </ProjectReference>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+    </ProjectReference>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp" />
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters b/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
index 63fd690..4acf0b3 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
+++ b/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
@@ -15,54 +15,54 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECPacket.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSocket.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECTag.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\RemoteConnect.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECCodes.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECCodes.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECFileConfig.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECFileConfig.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECID.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECID.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECPacket.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSocket.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTag.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTagTypes.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTagTypes.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\RemoteConnect.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.h">
       <Filter>Header Files</Filter>
     </ClInclude>
   </ItemGroup>
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj b/platforms/Windows/MSVC10/libs/libsocket/libsocket.vcxproj
similarity index 67%
copy from platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
copy to platforms/Windows/MSVC10/libs/libsocket/libsocket.vcxproj
index d7b11ee..7e19850 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
+++ b/platforms/Windows/MSVC10/libs/libsocket/libsocket.vcxproj
@@ -18,8 +18,36 @@
       <Platform>Win32</Platform>
     </ProjectConfiguration>
   </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\..\src\LibSocket.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\LibSocketAsio.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\src\LibSocketWX.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\..\src\LibSocket.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\libmulecommon\libmulecommon.vcxproj">
+      <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
+  </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}</ProjectGuid>
+    <ProjectGuid>{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}</ProjectGuid>
     <RootNamespace>libmuleec</RootNamespace>
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
@@ -73,8 +101,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\boost;$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -88,8 +116,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\boost;$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -101,8 +129,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\boost;$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -116,8 +144,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\boost;$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -125,32 +153,6 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECCodes.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECFileConfig.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECID.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTagTypes.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\libmulecommon\libmulecommon.vcxproj">
-      <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/platforms/Windows/MSVC10/libs/libsocket/libsocket.vcxproj.filters b/platforms/Windows/MSVC10/libs/libsocket/libsocket.vcxproj.filters
new file mode 100644
index 0000000..41348b3
--- /dev/null
+++ b/platforms/Windows/MSVC10/libs/libsocket/libsocket.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A31D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-6251BE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83B1121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\..\src\LibSocket.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\src\LibSocketAsio.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\src\LibSocketWX.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\..\src\LibSocket.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC10/makeconfig.cmd b/platforms/Windows/MSVC10/makeconfig.cmd
index e08dbcf..0eaf27d 100644
--- a/platforms/Windows/MSVC10/makeconfig.cmd
+++ b/platforms/Windows/MSVC10/makeconfig.cmd
@@ -21,12 +21,22 @@ echo SVNDATE is %svnv%
 echo #define SVNDATE "rev. %svnv%">>config.h
 echo #define VERSION "SVN">>config.h
 echo #define __PRERELEASE__>>config.h
-goto finish
+goto boost1
 
 :nosvnversion
 echo release build, version from ^<common/ClientVersion.h^>
 echo #include ^<src/include/common/ClientVersion.h^> >>config.h
 
+:boost1
+if not exist ..\boost\boost\asio.hpp goto boost2
+if not exist ..\boost\libs\system\src\error_code.cpp goto boost2
+echo Boost detected, using Asio sockets
+echo #define ASIO_SOCKETS>>config.h
+echo #define HAVE_BOOST_SOURCES>>config.h
+goto finish
+:boost2
+echo no Boost found, using wx sockets
+
 :finish
 echo #define CRYPTOPP_INCLUDE_PREFIX	../cryptopp>>config.h
 echo #define PACKAGE "amule">>config.h
diff --git a/platforms/Windows/MSVC9/PCH.cpp b/platforms/Windows/MSVC12/PCH.cpp
similarity index 100%
rename from platforms/Windows/MSVC9/PCH.cpp
rename to platforms/Windows/MSVC12/PCH.cpp
diff --git a/platforms/Windows/MSVC9/PCH.h b/platforms/Windows/MSVC12/PCH.h
similarity index 99%
rename from platforms/Windows/MSVC9/PCH.h
rename to platforms/Windows/MSVC12/PCH.h
index 5269328..636dfa7 100644
--- a/platforms/Windows/MSVC9/PCH.h
+++ b/platforms/Windows/MSVC12/PCH.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/platforms/Windows/MSVC9/README - MSVC.txt b/platforms/Windows/MSVC12/README - MSVC.txt
similarity index 88%
rename from platforms/Windows/MSVC9/README - MSVC.txt
rename to platforms/Windows/MSVC12/README - MSVC.txt
index de7bbe0..ebad3c4 100644
--- a/platforms/Windows/MSVC9/README - MSVC.txt	
+++ b/platforms/Windows/MSVC12/README - MSVC.txt	
@@ -1,7 +1,8 @@
-How to build aMule with Visual Studio
+How to build aMule with Visual Studio 2010 Express Edition
+
 See also http://www.amule.org/wiki/index.php/HowTo_compile_with_Visual_Studio
 
-This solution for Microsoft's Visual Studio 2008 has been configured to be as easy as possible to set up. 
+This solution for Microsoft's Visual Studio 2010 has been configured to be as easy as possible to set up. 
 
 However, given the size of the aMule project and the libraries it uses, along with limitations in the way Visual Studio works,
 a couple of items must be setup separately. Additionally, some source code files might need patching due to incompatibilities 
@@ -35,15 +36,14 @@ and give you a warning about redefined symbols, go to the properties on the cryp
 the "Configuration Properties"->"C/C++"->"Code generation"->"Runtime library" to "Multithreaded DLL (/MD)"
  in the release build or "Multithreaded Debug DLL (/MDd)" for the debug build. 
 
-There are four solutions:
-1) aMule-MSVCE.sln
+There are 3 solutions:
+1) aMule-MSVC10E.sln
    which includes aMule, aMule tools and aMule's internal libs
-2) aMule-MSVCE-ExtLibs.sln
+2) aMule-MSVC10E-ExtLibs.sln
    includes only wxWidgets and Crypto++ and builds a single library libext.lib from them. You must first build this solution before building aMule-MSVCE.sln
-3) aMule-MSVCE-ExtLibs29.sln
+3) aMule-MSVC10E-ExtLibs29.sln
    same but using wxWidgets 2.9
-4) aMule-MSVC.sln
-   includes everything and is organized in folders. It only works with the commercial edition of MSVC and is outdated now.
+
 
 The Debug/Release configs build against wxWidgets 2.8 (stable), Debug29/Release29 configs build against wxWidgets 2.9 (unstable)
 
@@ -74,3 +74,7 @@ Studio won't allow it. Change this lines to be a single-line quoted text. In the
 
 And that should be it. Feel free to ask in the aMule forum at forum.amule.org, "Compilation problems" section if you have further
 doubts.
+
+If you want to run aMule from inside Visual Studio, always set
+_NO_DEBUG_HEAP=1
+in Properties / Debugging / Environment!
diff --git a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj b/platforms/Windows/MSVC12/aLinkCreator/aLinkCreator.vcxproj
similarity index 57%
copy from platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
copy to platforms/Windows/MSVC12/aLinkCreator/aLinkCreator.vcxproj
index cb81ef1..b582ded 100644
--- a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
+++ b/platforms/Windows/MSVC12/aLinkCreator/aLinkCreator.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -19,36 +19,40 @@
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}</ProjectGuid>
-    <RootNamespace>aMuleCMD</RootNamespace>
+    <ProjectGuid>{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}</ProjectGuid>
+    <RootNamespace>aLinkCreator</RootNamespace>
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -66,19 +70,22 @@
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">false</LinkIncremental>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -87,13 +94,13 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
+      <SubSystem>Windows</SubSystem>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <DataExecutionPrevention>
       </DataExecutionPrevention>
@@ -104,8 +111,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -113,13 +120,13 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
+      <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -128,12 +135,13 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -142,25 +150,25 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
+      <SubSystem>Windows</SubSystem>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <DataExecutionPrevention>
       </DataExecutionPrevention>
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>NDEBUG;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -168,13 +176,13 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
+      <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -184,19 +192,23 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\..\src\ExternalConnector.cpp" />
-    <ClCompile Include="..\..\..\..\src\LoggerConsole.cpp" />
-    <ClCompile Include="..\..\..\..\src\NetworkFunctions.cpp" />
-    <ClCompile Include="..\..\..\..\src\OtherFunctions.cpp" />
-    <ClCompile Include="..\..\..\..\src\TextClient.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\alc.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\alcframe.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\alcpix.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\md4.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\..\src\ExternalConnector.h" />
-    <ClInclude Include="..\..\..\..\src\NetworkFunctions.h" />
-    <ClInclude Include="..\..\..\..\src\OtherFunctions.h" />
-    <ClInclude Include="..\..\..\..\src\TextClient.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alc.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alcc.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alcframe.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alcpix.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\bithelp.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\md4.h" />
   </ItemGroup>
   <ItemGroup>
+    <ResourceCompile Include="..\..\..\..\src\utils\aLinkCreator\alc.rc" />
     <ResourceCompile Include="..\version.rc" />
   </ItemGroup>
   <ItemGroup>
@@ -204,10 +216,6 @@
       <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\libs\libmuleec\libmuleec.vcxproj">
-      <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters b/platforms/Windows/MSVC12/aLinkCreator/aLinkCreator.vcxproj.filters
similarity index 53%
copy from platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
copy to platforms/Windows/MSVC12/aLinkCreator/aLinkCreator.vcxproj.filters
index 63fd690..6b24c4c 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
+++ b/platforms/Windows/MSVC12/aLinkCreator/aLinkCreator.vcxproj.filters
@@ -15,55 +15,51 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\alc.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECPacket.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\alcframe.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSocket.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\alcpix.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECTag.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\RemoteConnect.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\md4.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECCodes.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECFileConfig.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECID.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.h">
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alc.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECPacket.h">
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alcc.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSocket.h">
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alcframe.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.h">
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alcpix.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTag.h">
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\bithelp.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTagTypes.h">
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\RemoteConnect.h">
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\md4.h">
       <Filter>Header Files</Filter>
     </ClInclude>
   </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+    <ResourceCompile Include="..\..\..\..\src\utils\aLinkCreator\alc.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj b/platforms/Windows/MSVC12/aLinkCreator/alcc.vcxproj
similarity index 64%
copy from platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
copy to platforms/Windows/MSVC12/aLinkCreator/alcc.vcxproj
index cb81ef1..493fce7 100644
--- a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
+++ b/platforms/Windows/MSVC12/aLinkCreator/alcc.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -19,36 +19,40 @@
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}</ProjectGuid>
-    <RootNamespace>aMuleCMD</RootNamespace>
+    <ProjectGuid>{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}</ProjectGuid>
+    <RootNamespace>alcc</RootNamespace>
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -61,24 +65,27 @@
   <PropertyGroup>
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)ALC\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)ALC\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)ALC\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)ALC\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">false</LinkIncremental>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -87,8 +94,8 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -104,8 +111,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -113,8 +120,8 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -128,12 +135,13 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -142,8 +150,8 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -155,12 +163,12 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -168,8 +176,8 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -184,19 +192,18 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\..\src\ExternalConnector.cpp" />
-    <ClCompile Include="..\..\..\..\src\LoggerConsole.cpp" />
-    <ClCompile Include="..\..\..\..\src\NetworkFunctions.cpp" />
-    <ClCompile Include="..\..\..\..\src\OtherFunctions.cpp" />
-    <ClCompile Include="..\..\..\..\src\TextClient.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\alcc.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\md4.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\..\src\ExternalConnector.h" />
-    <ClInclude Include="..\..\..\..\src\NetworkFunctions.h" />
-    <ClInclude Include="..\..\..\..\src\OtherFunctions.h" />
-    <ClInclude Include="..\..\..\..\src\TextClient.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alcc.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\bithelp.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.h" />
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\md4.h" />
   </ItemGroup>
   <ItemGroup>
+    <ResourceCompile Include="..\..\..\..\src\utils\aLinkCreator\alc.rc" />
     <ResourceCompile Include="..\version.rc" />
   </ItemGroup>
   <ItemGroup>
@@ -204,10 +211,6 @@
       <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\libs\libmuleec\libmuleec.vcxproj">
-      <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC12/aLinkCreator/alcc.vcxproj.filters b/platforms/Windows/MSVC12/aLinkCreator/alcc.vcxproj.filters
new file mode 100644
index 0000000..fcea5e8
--- /dev/null
+++ b/platforms/Windows/MSVC12/aLinkCreator/alcc.vcxproj.filters
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\alcc.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\utils\aLinkCreator\src\md4.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\alcc.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\bithelp.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\utils\aLinkCreator\src\md4.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+    <ResourceCompile Include="..\..\..\..\src\utils\aLinkCreator\alc.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC9/aMule-MSVCE-ExtLibs.sln b/platforms/Windows/MSVC12/aMule-MSVC12E-ExtLibs.sln
similarity index 71%
rename from platforms/Windows/MSVC9/aMule-MSVCE-ExtLibs.sln
rename to platforms/Windows/MSVC12/aMule-MSVC12E-ExtLibs.sln
index c9b8694..a2d5aef 100644
--- a/platforms/Windows/MSVC9/aMule-MSVCE-ExtLibs.sln
+++ b/platforms/Windows/MSVC12/aMule-MSVC12E-ExtLibs.sln
@@ -1,82 +1,64 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "buildlibext", "libs\libext\buildlibext.vcproj", "{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}"
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Express 2013 for Windows Desktop
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "buildlibext", "libs\libext\buildlibext.vcxproj", "{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}"
 	ProjectSection(ProjectDependencies) = postProject
-		{C4590207-2D76-445F-833D-D59BB14D2C51} = {C4590207-2D76-445F-833D-D59BB14D2C51}
-		{4740520C-ADF1-464D-97C5-85FCFEECF76D} = {4740520C-ADF1-464D-97C5-85FCFEECF76D}
-		{C963A510-37EB-4D71-85B9-2380FCD4B3D3} = {C963A510-37EB-4D71-85B9-2380FCD4B3D3}
-		{99A6CD35-A635-4E39-93FF-F9A359E356D2} = {99A6CD35-A635-4E39-93FF-F9A359E356D2}
-		{6B245136-054C-4400-BF21-D30B05C231CD} = {6B245136-054C-4400-BF21-D30B05C231CD}
-		{AE383B44-EE53-4353-9BF0-2F3767D6CE51} = {AE383B44-EE53-4353-9BF0-2F3767D6CE51}
-		{B535BE44-FCCC-4911-862F-A7ED6CC6B597} = {B535BE44-FCCC-4911-862F-A7ED6CC6B597}
-		{4F88C347-8C7A-47C1-84C8-D4E154A33D30} = {4F88C347-8C7A-47C1-84C8-D4E154A33D30}
-		{3EA1CE4C-C6FA-42C0-A152-10FDA37FE935} = {3EA1CE4C-C6FA-42C0-A152-10FDA37FE935}
-		{BA59346E-5EB2-4D25-94A7-132D9C953A05} = {BA59346E-5EB2-4D25-94A7-132D9C953A05}
-		{46B97E73-8E57-42C1-A46E-AF0495D625DD} = {46B97E73-8E57-42C1-A46E-AF0495D625DD}
-		{8E917A7A-CC97-45C8-80A1-2EBD30936D23} = {8E917A7A-CC97-45C8-80A1-2EBD30936D23}
 		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
-		{A960D0AD-C20E-4FD6-B477-6509232C7D94} = {A960D0AD-C20E-4FD6-B477-6509232C7D94}
-		{456E58BD-84CA-4190-A88B-0A9B30DFD6D6} = {456E58BD-84CA-4190-A88B-0A9B30DFD6D6}
-		{83E249BF-12A0-4D0D-B9A5-B9560FDE0BA1} = {83E249BF-12A0-4D0D-B9A5-B9560FDE0BA1}
-		{FE8C58CE-6828-4125-8563-28F929D307C2} = {FE8C58CE-6828-4125-8563-28F929D307C2}
-		{474A0ED2-5969-47F0-B37F-7BC05C44F99B} = {474A0ED2-5969-47F0-B37F-7BC05C44F99B}
-		{8CF291F4-6284-4118-98A7-9D2146C6D5EA} = {8CF291F4-6284-4118-98A7-9D2146C6D5EA}
-		{4C6519FA-63B7-4631-B087-A17A368DBCD9} = {4C6519FA-63B7-4631-B087-A17A368DBCD9}
-		{64DD39FC-B3FA-4625-86BA-D8A7AE7D1D2C} = {64DD39FC-B3FA-4625-86BA-D8A7AE7D1D2C}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\..\..\cryptopp\cryptlib.vcproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "..\..\..\..\wxWidgets\build\msw\wx_wxregex.vcxproj", "{A960D0AD-C20E-4FD6-B477-6509232C7D94}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "..\..\..\..\wxWidgets\build\msw\wx_wxregex.vcproj", "{A960D0AD-C20E-4FD6-B477-6509232C7D94}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "..\..\..\..\wxWidgets\build\msw\wx_wxzlib.vcxproj", "{99A6CD35-A635-4E39-93FF-F9A359E356D2}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "..\..\..\..\wxWidgets\build\msw\wx_wxzlib.vcproj", "{99A6CD35-A635-4E39-93FF-F9A359E356D2}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "..\..\..\..\wxWidgets\build\msw\wx_wxpng.vcxproj", "{4F88C347-8C7A-47C1-84C8-D4E154A33D30}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "..\..\..\..\wxWidgets\build\msw\wx_wxpng.vcproj", "{4F88C347-8C7A-47C1-84C8-D4E154A33D30}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "..\..\..\..\wxWidgets\build\msw\wx_wxjpeg.vcxproj", "{4C6519FA-63B7-4631-B087-A17A368DBCD9}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "..\..\..\..\wxWidgets\build\msw\wx_wxjpeg.vcproj", "{4C6519FA-63B7-4631-B087-A17A368DBCD9}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "..\..\..\..\wxWidgets\build\msw\wx_wxtiff.vcxproj", "{456E58BD-84CA-4190-A88B-0A9B30DFD6D6}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "..\..\..\..\wxWidgets\build\msw\wx_wxtiff.vcproj", "{456E58BD-84CA-4190-A88B-0A9B30DFD6D6}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "..\..\..\..\wxWidgets\build\msw\wx_wxexpat.vcxproj", "{474A0ED2-5969-47F0-B37F-7BC05C44F99B}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "..\..\..\..\wxWidgets\build\msw\wx_wxexpat.vcproj", "{474A0ED2-5969-47F0-B37F-7BC05C44F99B}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "..\..\..\..\wxWidgets\build\msw\wx_base.vcxproj", "{3EA1CE4C-C6FA-42C0-A152-10FDA37FE935}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "..\..\..\..\wxWidgets\build\msw\wx_base.vcproj", "{3EA1CE4C-C6FA-42C0-A152-10FDA37FE935}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "..\..\..\..\wxWidgets\build\msw\wx_net.vcxproj", "{C963A510-37EB-4D71-85B9-2380FCD4B3D3}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "..\..\..\..\wxWidgets\build\msw\wx_net.vcproj", "{C963A510-37EB-4D71-85B9-2380FCD4B3D3}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "..\..\..\..\wxWidgets\build\msw\wx_core.vcxproj", "{83E249BF-12A0-4D0D-B9A5-B9560FDE0BA1}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "..\..\..\..\wxWidgets\build\msw\wx_core.vcproj", "{83E249BF-12A0-4D0D-B9A5-B9560FDE0BA1}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "..\..\..\..\wxWidgets\build\msw\wx_adv.vcxproj", "{FE8C58CE-6828-4125-8563-28F929D307C2}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "..\..\..\..\wxWidgets\build\msw\wx_adv.vcproj", "{FE8C58CE-6828-4125-8563-28F929D307C2}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "..\..\..\..\wxWidgets\build\msw\wx_media.vcxproj", "{6B245136-054C-4400-BF21-D30B05C231CD}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "..\..\..\..\wxWidgets\build\msw\wx_media.vcproj", "{6B245136-054C-4400-BF21-D30B05C231CD}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "odbc", "..\..\..\..\wxWidgets\build\msw\wx_odbc.vcxproj", "{B535BE44-FCCC-4911-862F-A7ED6CC6B597}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "odbc", "..\..\..\..\wxWidgets\build\msw\wx_odbc.vcproj", "{B535BE44-FCCC-4911-862F-A7ED6CC6B597}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dbgrid", "..\..\..\..\wxWidgets\build\msw\wx_dbgrid.vcxproj", "{C4590207-2D76-445F-833D-D59BB14D2C51}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dbgrid", "..\..\..\..\wxWidgets\build\msw\wx_dbgrid.vcproj", "{C4590207-2D76-445F-833D-D59BB14D2C51}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "..\..\..\..\wxWidgets\build\msw\wx_html.vcxproj", "{8E917A7A-CC97-45C8-80A1-2EBD30936D23}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "..\..\..\..\wxWidgets\build\msw\wx_html.vcproj", "{8E917A7A-CC97-45C8-80A1-2EBD30936D23}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "..\..\..\..\wxWidgets\build\msw\wx_qa.vcxproj", "{AE383B44-EE53-4353-9BF0-2F3767D6CE51}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "..\..\..\..\wxWidgets\build\msw\wx_qa.vcproj", "{AE383B44-EE53-4353-9BF0-2F3767D6CE51}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "..\..\..\..\wxWidgets\build\msw\wx_xml.vcxproj", "{46B97E73-8E57-42C1-A46E-AF0495D625DD}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "..\..\..\..\wxWidgets\build\msw\wx_xml.vcproj", "{46B97E73-8E57-42C1-A46E-AF0495D625DD}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "..\..\..\..\wxWidgets\build\msw\wx_xrc.vcxproj", "{BA59346E-5EB2-4D25-94A7-132D9C953A05}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "..\..\..\..\wxWidgets\build\msw\wx_xrc.vcproj", "{BA59346E-5EB2-4D25-94A7-132D9C953A05}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "..\..\..\..\wxWidgets\build\msw\wx_aui.vcxproj", "{64DD39FC-B3FA-4625-86BA-D8A7AE7D1D2C}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "..\..\..\..\wxWidgets\build\msw\wx_aui.vcproj", "{64DD39FC-B3FA-4625-86BA-D8A7AE7D1D2C}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "..\..\..\..\wxWidgets\build\msw\wx_richtext.vcxproj", "{4740520C-ADF1-464D-97C5-85FCFEECF76D}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "..\..\..\..\wxWidgets\build\msw\wx_richtext.vcproj", "{4740520C-ADF1-464D-97C5-85FCFEECF76D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "..\..\..\..\wxWidgets\build\msw\wx_gl.vcxproj", "{8CF291F4-6284-4118-98A7-9D2146C6D5EA}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "..\..\..\..\wxWidgets\build\msw\wx_gl.vcproj", "{8CF291F4-6284-4118-98A7-9D2146C6D5EA}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\..\..\cryptopp\cryptlib.vcxproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Release|Win32 = Release|Win32
 		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.Build.0 = Debug|Win32
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.ActiveCfg = Release|Win32
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.Build.0 = Release|Win32
+		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.ActiveCfg = Debug|Win32
+		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.Build.0 = Debug|Win32
+		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.ActiveCfg = Release|Win32
+		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.Build.0 = Release|Win32
 		{A960D0AD-C20E-4FD6-B477-6509232C7D94}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
 		{A960D0AD-C20E-4FD6-B477-6509232C7D94}.Debug|Win32.Build.0 = Unicode Debug|Win32
 		{A960D0AD-C20E-4FD6-B477-6509232C7D94}.Release|Win32.ActiveCfg = Unicode Release|Win32
@@ -157,10 +139,10 @@ Global
 		{8CF291F4-6284-4118-98A7-9D2146C6D5EA}.Debug|Win32.Build.0 = Unicode Debug|Win32
 		{8CF291F4-6284-4118-98A7-9D2146C6D5EA}.Release|Win32.ActiveCfg = Unicode Release|Win32
 		{8CF291F4-6284-4118-98A7-9D2146C6D5EA}.Release|Win32.Build.0 = Unicode Release|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.Build.0 = Debug|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.ActiveCfg = Release|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.Build.0 = Release|Win32
+		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.Build.0 = Debug|Win32
+		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.ActiveCfg = Release|Win32
+		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/platforms/Windows/MSVC9/aMule-MSVCE-ExtLibs29.sln b/platforms/Windows/MSVC12/aMule-MSVC12E-ExtLibs30.sln
similarity index 69%
rename from platforms/Windows/MSVC9/aMule-MSVCE-ExtLibs29.sln
rename to platforms/Windows/MSVC12/aMule-MSVC12E-ExtLibs30.sln
index 7a02b6b..12b9070 100644
--- a/platforms/Windows/MSVC9/aMule-MSVCE-ExtLibs29.sln
+++ b/platforms/Windows/MSVC12/aMule-MSVC12E-ExtLibs30.sln
@@ -1,65 +1,49 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "buildlibext", "libs\libext\buildlibext.vcproj", "{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}"
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Express 2013 for Windows Desktop
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "buildlibext", "libs\libext\buildlibext.vcxproj", "{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}"
 	ProjectSection(ProjectDependencies) = postProject
-		{7FB0902D-8579-5DCE-B883-DAF66A885005} = {7FB0902D-8579-5DCE-B883-DAF66A885005}
-		{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00} = {69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}
-		{8B867186-A0B5-5479-B824-E176EDD27C40} = {8B867186-A0B5-5479-B824-E176EDD27C40}
-		{8BD8F8D9-4275-5B42-A8F4-F1DB2970A550} = {8BD8F8D9-4275-5B42-A8F4-F1DB2970A550}
-		{E21129E0-7C08-5936-9D8C-0D60B5319BA7} = {E21129E0-7C08-5936-9D8C-0D60B5319BA7}
-		{8ACC122A-CA6A-5AA6-9C97-9CDD2E533DB0} = {8ACC122A-CA6A-5AA6-9C97-9CDD2E533DB0}
-		{3FCC50C2-81E9-5DB2-B8D8-2129427568B1} = {3FCC50C2-81E9-5DB2-B8D8-2129427568B1}
-		{09F2F96A-1CC6-5E43-AF1D-956EC2A4888D} = {09F2F96A-1CC6-5E43-AF1D-956EC2A4888D}
-		{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6} = {3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}
-		{33CC42F9-7756-5587-863C-8D4461B7C5DD} = {33CC42F9-7756-5587-863C-8D4461B7C5DD}
 		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
-		{56A4B526-BB81-5D01-AAA9-16D23BBB169D} = {56A4B526-BB81-5D01-AAA9-16D23BBB169D}
-		{75596CE6-5AE7-55C9-B890-C07B0A657A83} = {75596CE6-5AE7-55C9-B890-C07B0A657A83}
-		{6744DAD8-9C70-574A-BFF2-9F8DDDB24A75} = {6744DAD8-9C70-574A-BFF2-9F8DDDB24A75}
-		{24C45343-FD20-5C92-81C1-35A2AE841E79} = {24C45343-FD20-5C92-81C1-35A2AE841E79}
-		{A1A8355B-0988-528E-9CC2-B971D6266669} = {A1A8355B-0988-528E-9CC2-B971D6266669}
-		{DA8B15EF-6750-5928-BC0E-C748213CF9B2} = {DA8B15EF-6750-5928-BC0E-C748213CF9B2}
-		{6053CC38-CDEE-584C-8BC8-4B000D800FC7} = {6053CC38-CDEE-584C-8BC8-4B000D800FC7}
-		{A16D3832-0F42-57CE-8F48-50E06649ADE8} = {A16D3832-0F42-57CE-8F48-50E06649ADE8}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\..\..\cryptopp\cryptlib.vcproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\..\..\cryptopp\cryptlib.vcxproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxregex.vcproj", "{56A4B526-BB81-5D01-AAA9-16D23BBB169D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxregex.vcxproj", "{56A4B526-BB81-5D01-AAA9-16D23BBB169D}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxzlib.vcproj", "{8B867186-A0B5-5479-B824-E176EDD27C40}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxzlib.vcxproj", "{8B867186-A0B5-5479-B824-E176EDD27C40}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxpng.vcproj", "{8ACC122A-CA6A-5AA6-9C97-9CDD2E533DB0}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxpng.vcxproj", "{8ACC122A-CA6A-5AA6-9C97-9CDD2E533DB0}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxjpeg.vcproj", "{6053CC38-CDEE-584C-8BC8-4B000D800FC7}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxjpeg.vcxproj", "{6053CC38-CDEE-584C-8BC8-4B000D800FC7}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxtiff.vcproj", "{75596CE6-5AE7-55C9-B890-C07B0A657A83}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxtiff.vcxproj", "{75596CE6-5AE7-55C9-B890-C07B0A657A83}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxexpat.vcproj", "{A1A8355B-0988-528E-9CC2-B971D6266669}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxexpat.vcxproj", "{A1A8355B-0988-528E-9CC2-B971D6266669}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_base.vcproj", "{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_base.vcxproj", "{3FCC50C2-81E9-5DB2-B8D8-2129427568B1}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_net.vcproj", "{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_net.vcxproj", "{69F2EDE4-7D21-5738-9BC0-F66F61C9AE00}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_core.vcproj", "{6744DAD8-9C70-574A-BFF2-9F8DDDB24A75}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_core.vcxproj", "{6744DAD8-9C70-574A-BFF2-9F8DDDB24A75}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_adv.vcproj", "{24C45343-FD20-5C92-81C1-35A2AE841E79}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_adv.vcxproj", "{24C45343-FD20-5C92-81C1-35A2AE841E79}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_media.vcproj", "{8BD8F8D9-4275-5B42-A8F4-F1DB2970A550}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_media.vcxproj", "{8BD8F8D9-4275-5B42-A8F4-F1DB2970A550}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_html.vcproj", "{33CC42F9-7756-5587-863C-8D4461B7C5DD}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_html.vcxproj", "{33CC42F9-7756-5587-863C-8D4461B7C5DD}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_qa.vcproj", "{E21129E0-7C08-5936-9D8C-0D60B5319BA7}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_qa.vcxproj", "{E21129E0-7C08-5936-9D8C-0D60B5319BA7}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_xml.vcproj", "{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_xml.vcxproj", "{3E6DCA27-5FA3-53EC-BBD6-2D42294B7AE6}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_xrc.vcproj", "{09F2F96A-1CC6-5E43-AF1D-956EC2A4888D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_xrc.vcxproj", "{09F2F96A-1CC6-5E43-AF1D-956EC2A4888D}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_aui.vcproj", "{A16D3832-0F42-57CE-8F48-50E06649ADE8}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_aui.vcxproj", "{A16D3832-0F42-57CE-8F48-50E06649ADE8}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_richtext.vcproj", "{7FB0902D-8579-5DCE-B883-DAF66A885005}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_richtext.vcxproj", "{7FB0902D-8579-5DCE-B883-DAF66A885005}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "..\..\..\..\wxWidgets29\build\msw\wx_vc9_gl.vcproj", "{DA8B15EF-6750-5928-BC0E-C748213CF9B2}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "..\..\..\..\wxWidgets30\build\msw\wx_vc10_gl.vcxproj", "{DA8B15EF-6750-5928-BC0E-C748213CF9B2}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -67,10 +51,10 @@ Global
 		Release|Win32 = Release|Win32
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.ActiveCfg = Debug29|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.Build.0 = Debug29|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.ActiveCfg = Release29|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.Build.0 = Release29|Win32
+		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.ActiveCfg = Debug30|Win32
+		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.Build.0 = Debug30|Win32
+		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.ActiveCfg = Release30|Win32
+		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.Build.0 = Release30|Win32
 		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.ActiveCfg = Debug|Win32
 		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.Build.0 = Debug|Win32
 		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/platforms/Windows/MSVC10/aMule-MSVC10E.sln b/platforms/Windows/MSVC12/aMule-MSVC12E.sln
similarity index 51%
copy from platforms/Windows/MSVC10/aMule-MSVC10E.sln
copy to platforms/Windows/MSVC12/aMule-MSVC12E.sln
index e1230f8..4731c90 100644
--- a/platforms/Windows/MSVC10/aMule-MSVC10E.sln
+++ b/platforms/Windows/MSVC12/aMule-MSVC12E.sln
@@ -1,8 +1,16 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual C++ Express 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Express 2013 for Windows Desktop
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMule", "aMule\aMule.vcxproj", "{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmuleec", "libs\libmuleec\libmuleec.vcxproj", "{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmulecommon", "libs\libmulecommon\libmulecommon.vcxproj", "{293E6133-239A-4ED4-838E-9182B07C6B35}"
 EndProject
@@ -11,8 +19,14 @@ EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aLinkCreator", "aLinkCreator\aLinkCreator.vcxproj", "{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleCMD", "aMuleCMD\aMuleCMD.vcxproj", "{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleGUI", "aMuleGUI\aMuleGUI.vcxproj", "{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ed2k", "ed2k\ed2k.vcxproj", "{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}"
 EndProject
@@ -21,133 +35,149 @@ EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGeoIP", "libs\libGeoIP\libGeoIP.vcxproj", "{8CA0F896-7689-4CE0-9D16-99C9C83847E1}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleD", "aMuleD\aMuleD.vcxproj", "{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleWeb", "aMuleWeb\aMuleWeb.vcxproj", "{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxCas", "wxCas\wxCas.vcxproj", "{5FCAFC30-922E-446F-8DF5-D71819AB6356}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alcc", "aLinkCreator\alcc.vcxproj", "{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsocket", "libs\libsocket\libsocket.vcxproj", "{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
-		Debug29|Win32 = Debug29|Win32
+		Debug30|Win32 = Debug30|Win32
 		Release|Win32 = Release|Win32
-		Release29|Win32 = Release29|Win32
+		Release30|Win32 = Release30|Win32
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug|Win32.ActiveCfg = Debug|Win32
 		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug|Win32.Build.0 = Debug|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug29|Win32.Build.0 = Debug29|Win32
+		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug30|Win32.Build.0 = Debug30|Win32
 		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release|Win32.ActiveCfg = Release|Win32
 		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release|Win32.Build.0 = Release|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release29|Win32.ActiveCfg = Release29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release29|Win32.Build.0 = Release29|Win32
+		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release30|Win32.ActiveCfg = Release30|Win32
+		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release30|Win32.Build.0 = Release30|Win32
 		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug|Win32.ActiveCfg = Debug|Win32
 		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug|Win32.Build.0 = Debug|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug29|Win32.Build.0 = Debug29|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug30|Win32.Build.0 = Debug30|Win32
 		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release|Win32.ActiveCfg = Release|Win32
 		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release|Win32.Build.0 = Release|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release29|Win32.ActiveCfg = Release29|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release29|Win32.Build.0 = Release29|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release30|Win32.ActiveCfg = Release30|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release30|Win32.Build.0 = Release30|Win32
 		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug|Win32.ActiveCfg = Debug|Win32
 		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug|Win32.Build.0 = Debug|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug29|Win32.Build.0 = Debug29|Win32
+		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug30|Win32.Build.0 = Debug30|Win32
 		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release|Win32.ActiveCfg = Release|Win32
 		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release|Win32.Build.0 = Release|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release29|Win32.ActiveCfg = Release29|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release29|Win32.Build.0 = Release29|Win32
+		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release30|Win32.ActiveCfg = Release30|Win32
+		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release30|Win32.Build.0 = Release30|Win32
 		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug|Win32.ActiveCfg = Debug|Win32
 		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug|Win32.Build.0 = Debug|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug29|Win32.Build.0 = Debug29|Win32
+		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug30|Win32.Build.0 = Debug30|Win32
 		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release|Win32.ActiveCfg = Release|Win32
 		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release|Win32.Build.0 = Release|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release29|Win32.ActiveCfg = Release29|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release29|Win32.Build.0 = Release29|Win32
+		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release30|Win32.ActiveCfg = Release30|Win32
+		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release30|Win32.Build.0 = Release30|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug|Win32.ActiveCfg = Debug|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug|Win32.Build.0 = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug29|Win32.Build.0 = Debug29|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug30|Win32.Build.0 = Debug30|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release|Win32.ActiveCfg = Release|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release|Win32.Build.0 = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release29|Win32.ActiveCfg = Release29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release29|Win32.Build.0 = Release29|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release30|Win32.ActiveCfg = Release30|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release30|Win32.Build.0 = Release30|Win32
 		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug|Win32.ActiveCfg = Debug|Win32
 		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug|Win32.Build.0 = Debug|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug29|Win32.Build.0 = Debug29|Win32
+		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug30|Win32.Build.0 = Debug30|Win32
 		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release|Win32.ActiveCfg = Release|Win32
 		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release|Win32.Build.0 = Release|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release29|Win32.ActiveCfg = Release29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release29|Win32.Build.0 = Release29|Win32
+		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release30|Win32.ActiveCfg = Release30|Win32
+		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release30|Win32.Build.0 = Release30|Win32
 		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug|Win32.ActiveCfg = Debug|Win32
 		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug|Win32.Build.0 = Debug|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug29|Win32.Build.0 = Debug29|Win32
+		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug30|Win32.Build.0 = Debug30|Win32
 		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release|Win32.ActiveCfg = Release|Win32
 		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release|Win32.Build.0 = Release|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release29|Win32.ActiveCfg = Release29|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release29|Win32.Build.0 = Release29|Win32
+		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release30|Win32.ActiveCfg = Release30|Win32
+		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release30|Win32.Build.0 = Release30|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug|Win32.ActiveCfg = Debug|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug|Win32.Build.0 = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug29|Win32.ActiveCfg = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug29|Win32.Build.0 = Debug|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug30|Win32.ActiveCfg = Debug|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug30|Win32.Build.0 = Debug|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release|Win32.ActiveCfg = Release|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release|Win32.Build.0 = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release29|Win32.ActiveCfg = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release29|Win32.Build.0 = Release|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release30|Win32.ActiveCfg = Release|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release30|Win32.Build.0 = Release|Win32
 		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug|Win32.ActiveCfg = Debug|Win32
 		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug|Win32.Build.0 = Debug|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug29|Win32.Build.0 = Debug29|Win32
+		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug30|Win32.Build.0 = Debug30|Win32
 		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release|Win32.ActiveCfg = Release|Win32
 		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release|Win32.Build.0 = Release|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release29|Win32.ActiveCfg = Release29|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release29|Win32.Build.0 = Release29|Win32
+		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release30|Win32.ActiveCfg = Release30|Win32
+		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release30|Win32.Build.0 = Release30|Win32
 		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug|Win32.ActiveCfg = Debug|Win32
 		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug|Win32.Build.0 = Debug|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug29|Win32.ActiveCfg = Debug|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug29|Win32.Build.0 = Debug|Win32
+		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug30|Win32.ActiveCfg = Debug|Win32
+		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug30|Win32.Build.0 = Debug|Win32
 		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release|Win32.ActiveCfg = Release|Win32
 		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release|Win32.Build.0 = Release|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release29|Win32.ActiveCfg = Release|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release29|Win32.Build.0 = Release|Win32
+		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release30|Win32.ActiveCfg = Release|Win32
+		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release30|Win32.Build.0 = Release|Win32
 		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug|Win32.ActiveCfg = Debug|Win32
 		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug|Win32.Build.0 = Debug|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug29|Win32.Build.0 = Debug29|Win32
+		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug30|Win32.Build.0 = Debug30|Win32
 		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release|Win32.ActiveCfg = Release|Win32
 		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release|Win32.Build.0 = Release|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release29|Win32.ActiveCfg = Release29|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release29|Win32.Build.0 = Release29|Win32
+		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release30|Win32.ActiveCfg = Release30|Win32
+		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release30|Win32.Build.0 = Release30|Win32
 		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug|Win32.ActiveCfg = Debug|Win32
 		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug|Win32.Build.0 = Debug|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug29|Win32.Build.0 = Debug29|Win32
+		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug30|Win32.Build.0 = Debug30|Win32
 		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release|Win32.ActiveCfg = Release|Win32
 		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release|Win32.Build.0 = Release|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release29|Win32.ActiveCfg = Release29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release29|Win32.Build.0 = Release29|Win32
+		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release30|Win32.ActiveCfg = Release30|Win32
+		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release30|Win32.Build.0 = Release30|Win32
 		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug|Win32.ActiveCfg = Debug|Win32
 		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug|Win32.Build.0 = Debug|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug29|Win32.Build.0 = Debug29|Win32
+		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug30|Win32.Build.0 = Debug30|Win32
 		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release|Win32.ActiveCfg = Release|Win32
 		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release|Win32.Build.0 = Release|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release29|Win32.ActiveCfg = Release29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release29|Win32.Build.0 = Release29|Win32
+		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release30|Win32.ActiveCfg = Release30|Win32
+		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release30|Win32.Build.0 = Release30|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug|Win32.ActiveCfg = Debug|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug|Win32.Build.0 = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug29|Win32.Build.0 = Debug29|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug30|Win32.Build.0 = Debug30|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release|Win32.ActiveCfg = Release|Win32
 		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release|Win32.Build.0 = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release29|Win32.ActiveCfg = Release29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release29|Win32.Build.0 = Release29|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release30|Win32.ActiveCfg = Release30|Win32
+		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release30|Win32.Build.0 = Release30|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Debug|Win32.ActiveCfg = Debug|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Debug|Win32.Build.0 = Debug|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Debug30|Win32.ActiveCfg = Debug30|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Debug30|Win32.Build.0 = Debug30|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Release|Win32.ActiveCfg = Release|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Release|Win32.Build.0 = Release|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Release30|Win32.ActiveCfg = Release30|Win32
+		{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}.Release30|Win32.Build.0 = Release30|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/platforms/Windows/MSVC10/aMule/aMule.vcxproj b/platforms/Windows/MSVC12/aMule/aMule.vcxproj
similarity index 88%
copy from platforms/Windows/MSVC10/aMule/aMule.vcxproj
copy to platforms/Windows/MSVC12/aMule/aMule.vcxproj
index 39505d2..4b7d4af 100644
--- a/platforms/Windows/MSVC10/aMule/aMule.vcxproj
+++ b/platforms/Windows/MSVC12/aMule/aMule.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -24,31 +24,35 @@
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -66,13 +70,14 @@
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">false</LinkIncremental>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP /Zm120 %(AdditionalOptions)</AdditionalOptions>
@@ -88,7 +93,7 @@
       <ForcedIncludeFiles>$(SolutionDir)PCH.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <AdditionalOptions>
       </AdditionalOptions>
@@ -117,7 +122,7 @@
       <ForcedIncludeFiles>$(SolutionDir)PCH.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";wxUSE_NO_MANIFEST=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";wxUSE_NO_MANIFEST=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
@@ -132,11 +137,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP /Zm150 %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;ENABLE_NLS;ENABLE_IP2COUNTRY;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -148,7 +153,7 @@
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -160,11 +165,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP /Zm120 %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;ENABLE_NLS;ENABLE_IP2COUNTRY;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -175,7 +180,7 @@
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -244,7 +249,12 @@
     <ClCompile Include="..\..\..\..\src\HTTPDownload.cpp" />
     <ClCompile Include="..\..\..\..\src\IP2Country.cpp" />
     <ClCompile Include="..\..\..\..\src\IPFilter.cpp" />
-    <ClCompile Include="..\..\..\..\src\IPFilterScanner.cpp" />
+    <ClCompile Include="..\..\..\..\src\IPFilterScanner.cpp">
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">4018</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4018</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4018</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">4018</DisableSpecificWarnings>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\src\KadDlg.cpp" />
     <ClCompile Include="..\..\..\..\src\kademlia\kademlia\Entry.cpp" />
     <ClCompile Include="..\..\..\..\src\kademlia\kademlia\Indexed.cpp" />
@@ -279,9 +289,9 @@
     <ClCompile Include="..\..\..\..\src\OtherFunctions.cpp" />
     <ClCompile Include="..\..\..\..\src\Packet.cpp" />
     <ClCompile Include="..\..\..\..\src\Parser.cpp">
-      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\PartFile.cpp" />
@@ -290,9 +300,9 @@
     <ClCompile Include="..\..\..\..\src\SharedFilePeersListCtrl.cpp" />
     <ClCompile Include="..\..\..\..\src\SourceListCtrl.cpp" />
     <ClCompile Include="..\PCH.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\PlatformSpecific.cpp" />
@@ -304,9 +314,9 @@
     <ClCompile Include="..\..\..\..\src\RLE.cpp" />
     <ClCompile Include="..\..\..\..\src\SafeFile.cpp" />
     <ClCompile Include="..\..\..\..\src\Scanner.cpp">
-      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\SearchDlg.cpp" />
@@ -396,6 +406,7 @@
     <ClInclude Include="..\..\..\..\src\kademlia\utils\KadClientSearcher.h" />
     <ClInclude Include="..\..\..\..\src\kademlia\utils\KadUDPKey.h" />
     <ClInclude Include="..\..\..\..\src\kademlia\utils\UInt128.h" />
+    <ClInclude Include="..\..\..\..\src\LibSocket.h" />
     <ClInclude Include="..\..\..\..\src\libs\ec\cpp\ECID.h" />
     <ClInclude Include="..\..\..\..\src\ED2KLink.h" />
     <ClInclude Include="..\..\..\..\src\EditServerListDlg.h" />
@@ -519,6 +530,14 @@
       <Project>{16c7a051-9097-41a5-ba26-fec1ea1f16ef}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters b/platforms/Windows/MSVC12/aMule/aMule.vcxproj.filters
similarity index 97%
copy from platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters
copy to platforms/Windows/MSVC12/aMule/aMule.vcxproj.filters
index 37cc08f..f9ca241 100644
--- a/platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters
+++ b/platforms/Windows/MSVC12/aMule/aMule.vcxproj.filters
@@ -893,6 +893,9 @@
     <ClInclude Include="..\..\..\..\src\ClientRef.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\..\..\src\LibSocket.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\version.rc">
diff --git a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj b/platforms/Windows/MSVC12/aMuleCMD/aMuleCMD.vcxproj
similarity index 86%
copy from platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
copy to platforms/Windows/MSVC12/aMuleCMD/aMuleCMD.vcxproj
index cb81ef1..d30e837 100644
--- a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
+++ b/platforms/Windows/MSVC12/aMuleCMD/aMuleCMD.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -24,31 +24,35 @@
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -66,12 +70,12 @@
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">false</LinkIncremental>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -128,11 +132,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -155,11 +159,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
@@ -208,6 +212,14 @@
       <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC12/aMuleCMD/aMuleCMD.vcxproj.filters b/platforms/Windows/MSVC12/aMuleCMD/aMuleCMD.vcxproj.filters
new file mode 100644
index 0000000..207a34d
--- /dev/null
+++ b/platforms/Windows/MSVC12/aMuleCMD/aMuleCMD.vcxproj.filters
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\ExternalConnector.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\LoggerConsole.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\NetworkFunctions.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\OtherFunctions.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\TextClient.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\src\ExternalConnector.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\NetworkFunctions.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\OtherFunctions.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\TextClient.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj b/platforms/Windows/MSVC12/aMuleD/aMuleD.vcxproj
similarity index 86%
copy from platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj
copy to platforms/Windows/MSVC12/aMuleD/aMuleD.vcxproj
index e6944aa..1cf2a7a 100644
--- a/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj
+++ b/platforms/Windows/MSVC12/aMuleD/aMuleD.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -24,31 +24,35 @@
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -66,12 +70,12 @@
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">false</LinkIncremental>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -130,11 +134,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP /Zm120 %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;AMULE_DAEMON;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -158,11 +162,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP /Zm120 %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;AMULE_DAEMON;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -201,7 +205,12 @@
     <ClCompile Include="..\..\..\..\src\ClientRef.cpp" />
     <ClCompile Include="..\..\..\..\src\ClientTCPSocket.cpp" />
     <ClCompile Include="..\..\..\..\src\ClientUDPSocket.cpp" />
-    <ClCompile Include="..\..\..\..\src\IPFilterScanner.cpp" />
+    <ClCompile Include="..\..\..\..\src\IPFilterScanner.cpp">
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">4018</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4018</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4018</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">4018</DisableSpecificWarnings>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\src\kademlia\routing\Contact.cpp" />
     <ClCompile Include="..\..\..\..\src\CorruptionBlackBox.cpp" />
     <ClCompile Include="..\..\..\..\src\DataToText.cpp" />
@@ -240,16 +249,16 @@
     <ClCompile Include="..\..\..\..\src\Packet.cpp" />
     <ClCompile Include="..\..\..\..\src\kademlia\net\PacketTracking.cpp" />
     <ClCompile Include="..\..\..\..\src\Parser.cpp">
-      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4065;%(DisableSpecificWarnings)</DisableSpecificWarnings>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\PartFile.cpp" />
     <ClCompile Include="..\PCH.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\PlatformSpecific.cpp" />
@@ -263,9 +272,9 @@
     <ClCompile Include="..\..\..\..\src\kademlia\routing\RoutingZone.cpp" />
     <ClCompile Include="..\..\..\..\src\SafeFile.cpp" />
     <ClCompile Include="..\..\..\..\src\Scanner.cpp">
-      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
       <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4003;%(DisableSpecificWarnings)</DisableSpecificWarnings>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\kademlia\kademlia\Search.cpp" />
@@ -298,6 +307,7 @@
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\..\..\src\GapList.h" />
+    <ClInclude Include="..\PCH.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\version.rc" />
@@ -311,6 +321,14 @@
       <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj.filters b/platforms/Windows/MSVC12/aMuleD/aMuleD.vcxproj.filters
similarity index 96%
copy from platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj.filters
copy to platforms/Windows/MSVC12/aMuleD/aMuleD.vcxproj.filters
index e133e17..18c2def 100644
--- a/platforms/Windows/MSVC10/aMuleD/aMuleD.vcxproj.filters
+++ b/platforms/Windows/MSVC12/aMuleD/aMuleD.vcxproj.filters
@@ -299,6 +299,9 @@
     <ClInclude Include="..\..\..\..\src\GapList.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\PCH.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\version.rc">
diff --git a/platforms/Windows/MSVC10/aMuleGUI/aMuleGUI.vcxproj b/platforms/Windows/MSVC12/aMuleGUI/aMuleGUI.vcxproj
similarity index 88%
copy from platforms/Windows/MSVC10/aMuleGUI/aMuleGUI.vcxproj
copy to platforms/Windows/MSVC12/aMuleGUI/aMuleGUI.vcxproj
index 0abe96e..dda5118 100644
--- a/platforms/Windows/MSVC10/aMuleGUI/aMuleGUI.vcxproj
+++ b/platforms/Windows/MSVC12/aMuleGUI/aMuleGUI.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -24,31 +24,35 @@
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -66,13 +70,15 @@
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">false</LinkIncremental>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP /Zm120 %(AdditionalOptions)</AdditionalOptions>
@@ -88,7 +94,7 @@
       <ForcedIncludeFiles>$(SolutionDir)PCH.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
@@ -115,7 +121,7 @@
       <ForcedIncludeFiles>$(SolutionDir)PCH.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
@@ -130,11 +136,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP /Zm120 %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;CLIENT_GUI;ENABLE_NLS;ENABLE_IP2COUNTRY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -146,7 +152,7 @@
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -158,11 +164,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP /Zm120 %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;CLIENT_GUI;ENABLE_NLS;ENABLE_IP2COUNTRY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>Use</PrecompiledHeader>
@@ -173,7 +179,7 @@
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
       <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -241,9 +247,9 @@
     <ClCompile Include="..\..\..\..\src\SharedFilePeersListCtrl.cpp" />
     <ClCompile Include="..\..\..\..\src\SourceListCtrl.cpp" />
     <ClCompile Include="..\PCH.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">Create</PrecompiledHeader>
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\Preferences.cpp" />
@@ -397,6 +403,14 @@
       <Project>{16c7a051-9097-41a5-ba26-fec1ea1f16ef}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters b/platforms/Windows/MSVC12/aMuleGUI/aMuleGUI.vcxproj.filters
similarity index 58%
copy from platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters
copy to platforms/Windows/MSVC12/aMuleGUI/aMuleGUI.vcxproj.filters
index 37cc08f..b3b9b09 100644
--- a/platforms/Windows/MSVC10/aMule/aMule.vcxproj.filters
+++ b/platforms/Windows/MSVC12/aMuleGUI/aMuleGUI.vcxproj.filters
@@ -1,23 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
     <Filter Include="Header Files">
       <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
       <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
     </Filter>
-    <Filter Include="Source Files KAD">
-      <UniqueIdentifier>{cc8a6595-b6d5-4afe-8d44-0e3fed36e009}</UniqueIdentifier>
-    </Filter>
     <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
-    </Filter>
-    <Filter Include="Header Files KAD">
-      <UniqueIdentifier>{ac85d3b7-e7e5-48af-ba9c-3bbd46cebb91}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+      <UniqueIdentifier>{26a80d8b-0652-4504-9031-910968275e24}</UniqueIdentifier>
     </Filter>
   </ItemGroup>
   <ItemGroup>
@@ -30,7 +23,7 @@
     <ClCompile Include="..\..\..\..\src\amule-gui.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\amule.cpp">
+    <ClCompile Include="..\..\..\..\src\amule-remote-gui.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\amuleAppCommon.cpp">
@@ -39,24 +32,9 @@
     <ClCompile Include="..\..\..\..\src\amuleDlg.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\AsyncDNS.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\BarShader.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\BaseClient.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\CanceledFileList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\CaptchaDialog.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\CaptchaGenerator.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\CatDialog.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -72,21 +50,9 @@
     <ClCompile Include="..\..\..\..\src\ClientCredits.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ClientCreditsList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\ClientDetailDialog.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ClientList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ClientTCPSocket.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ClientUDPSocket.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\ColorFrameCtrl.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -96,30 +62,15 @@
     <ClCompile Include="..\..\..\..\src\CommentDialogLst.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\CorruptionBlackBox.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\DataToText.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\DeadSourceList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\DirectoryTreeCtrl.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\DownloadClient.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\DownloadListCtrl.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\DownloadQueue.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ECSpecialCoreTags.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\ECSpecialMuleTags.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -129,36 +80,12 @@
     <ClCompile Include="..\..\..\..\src\EditServerListDlg.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\EMSocket.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\EncryptedDatagramSocket.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\EncryptedStreamSocket.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ExternalConn.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\FileArea.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\FileAutoClose.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\FileDetailDialog.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\FileDetailListCtrl.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\Friend.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\FriendList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\FriendListCtrl.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -177,21 +104,12 @@
     <ClCompile Include="..\..\..\..\src\IP2Country.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\IPFilter.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\KadDlg.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\KnownFile.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\KnownFileList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ListenSocket.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\Logger.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -222,9 +140,6 @@
     <ClCompile Include="..\..\..\..\src\MuleTrayIcon.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\MuleUDPSocket.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\muuli_wdr.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -240,21 +155,9 @@
     <ClCompile Include="..\..\..\..\src\Packet.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\Parser.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\PartFile.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\PartFileConvert.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\PartFileConvertDlg.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\PlatformSpecific.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\Preferences.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -264,72 +167,36 @@
     <ClCompile Include="..\..\..\..\src\Proxy.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\RandomFunctions.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\RC4Encrypt.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\RLE.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\SafeFile.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\Scanner.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\SearchDlg.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\SearchFile.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\SearchList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\SearchListCtrl.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\Server.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ServerConnect.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ServerList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\ServerListCtrl.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ServerSocket.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ServerUDPSocket.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\ServerWnd.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\SHA.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\SHAHashSet.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\SharedFileList.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\SharedFilesCtrl.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\SharedFilesWnd.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\StateMachine.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\Statistics.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -345,30 +212,12 @@
     <ClCompile Include="..\..\..\..\src\TerminationProcess.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\TerminationProcessAmuleweb.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ThreadScheduler.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\ThreadTasks.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\Timer.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="..\..\..\..\src\TransferWnd.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\UploadBandwidthThrottler.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\UploadClient.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\UploadQueue.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\UserEvents.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -381,48 +230,9 @@
     <ClCompile Include="..\..\..\..\src\SourceListCtrl.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\IPFilterScanner.cpp">
+    <ClCompile Include="..\..\..\..\src\Friend.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\routing\Contact.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\utils\UInt128.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\kademlia\Entry.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\kademlia\Indexed.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\kademlia\Kademlia.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\net\KademliaUDPListener.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\net\PacketTracking.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\kademlia\Prefs.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\routing\RoutingBin.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\routing\RoutingZone.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\kademlia\Search.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\kademlia\SearchManager.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
-    <ClCompile Include="..\..\..\..\src\kademlia\kademlia\UDPFirewallTester.cpp">
-      <Filter>Source Files KAD</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\..\src\ClientRef.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -434,33 +244,21 @@
     <ClInclude Include="..\..\..\..\src\AddFriend.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\amule.h">
+    <ClInclude Include="..\..\..\..\src\amule-remote-gui.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\amuleDlg.h">
+    <ClInclude Include="..\..\..\..\src\amule.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\amuleIPV4Address.h">
+    <ClInclude Include="..\..\..\..\src\amuleDlg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\..\src\ArchSpecific.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\AsyncDNS.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\BarShader.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\CanceledFileList.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\CaptchaDialog.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\CaptchaGenerator.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\CatDialog.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -485,12 +283,6 @@
     <ClInclude Include="..\..\..\..\src\ClientList.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\ClientTCPSocket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\ClientUDPSocket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\ColorFrameCtrl.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -503,18 +295,12 @@
     <ClInclude Include="..\..\..\..\src\Constants.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\CorruptionBlackBox.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\CryptoPP_Inc.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\..\src\DataToText.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\DeadSourceList.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\DirectoryTreeCtrl.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -533,27 +319,12 @@
     <ClInclude Include="..\..\..\..\src\EditServerListDlg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\EMSocket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\EncryptedDatagramSocket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\EncryptedStreamSocket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\ExternalConn.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\..\src\ExternalConnector.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\FileArea.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\FileAutoClose.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\FileDetailDialog.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -581,21 +352,12 @@
     <ClInclude Include="..\..\..\..\src\GuiEvents.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\HTTPDownload.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\inetdownload.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\InternalEvents.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\..\src\IP2Country.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\IPFilter.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\KadDlg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -647,15 +409,9 @@
     <ClInclude Include="..\..\..\..\src\MuleTrayIcon.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\MuleUDPSocket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\muuli_wdr.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\NetworkFunctions.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\Observable.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -671,21 +427,9 @@
     <ClInclude Include="..\..\..\..\src\OtherStructs.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\Packet.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\PartFile.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\PartFileConvert.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\PartFileConvertDlg.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\PlatformSpecific.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\Preferences.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -719,9 +463,6 @@
     <ClInclude Include="..\..\..\..\src\SearchDlg.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\SearchExpr.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\SearchFile.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -734,21 +475,9 @@
     <ClInclude Include="..\..\..\..\src\Server.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\ServerConnect.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\ServerList.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\ServerListCtrl.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\ServerSocket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\ServerUDPSocket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\ServerWnd.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -779,9 +508,6 @@
     <ClInclude Include="..\..\..\..\src\StatTree.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\Tag.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\TerminationProcess.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -791,9 +517,6 @@
     <ClInclude Include="..\..\..\..\src\ThreadTasks.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\ThrottledSocket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\Timer.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -803,15 +526,9 @@
     <ClInclude Include="..\..\..\..\src\Types.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\updownclient.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\UploadBandwidthThrottler.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\UploadQueue.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\UPnPCompatibility.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -827,68 +544,14 @@
     <ClInclude Include="..\..\..\..\src\SourceListCtrl.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\IPFilterScanner.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\..\..\src\BitVector.h">
       <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\..\src\include\common\MacrosProgramSpecific.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\routing\Contact.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\utils\UInt128.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\kademlia\Defines.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\kademlia\Entry.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\kademlia\Error.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\kademlia\Indexed.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\utils\KadClientSearcher.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\kademlia\Kademlia.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\net\KademliaUDPListener.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\utils\KadUDPKey.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\routing\Maps.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\net\PacketTracking.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\kademlia\Prefs.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\routing\RoutingBin.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\routing\RoutingZone.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\kademlia\Search.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\kademlia\SearchManager.h">
-      <Filter>Header Files KAD</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\..\src\kademlia\kademlia\UDPFirewallTester.h">
-      <Filter>Header Files KAD</Filter>
+    <ClInclude Include="..\..\..\..\src\UpDownClientEC.h">
+      <Filter>Header Files</Filter>
     </ClInclude>
     <ClInclude Include="..\..\..\..\src\ClientRef.h">
       <Filter>Header Files</Filter>
@@ -898,8 +561,6 @@
     <ResourceCompile Include="..\version.rc">
       <Filter>Resource Files</Filter>
     </ResourceCompile>
-    <ResourceCompile Include="..\..\..\..\amule.rc">
-      <Filter>Resource Files</Filter>
-    </ResourceCompile>
+    <ResourceCompile Include="..\..\..\..\amule.rc" />
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj b/platforms/Windows/MSVC12/aMuleWeb/aMuleWeb.vcxproj
similarity index 83%
copy from platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj
copy to platforms/Windows/MSVC12/aMuleWeb/aMuleWeb.vcxproj
index 0115ff8..1a0e2d8 100644
--- a/platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj
+++ b/platforms/Windows/MSVC12/aMuleWeb/aMuleWeb.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -24,31 +24,35 @@
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -66,12 +70,12 @@
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">false</LinkIncremental>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -128,11 +132,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\src\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets30\src\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;WITH_LIBPNG;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -155,11 +159,11 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\src\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets30\src\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;WITH_LIBPNG;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
@@ -190,7 +194,12 @@
     <ClCompile Include="..\..\..\..\src\OtherFunctions.cpp" />
     <ClCompile Include="..\..\..\..\src\webserver\src\php_amule_lib.cpp" />
     <ClCompile Include="..\..\..\..\src\webserver\src\php_core_lib.cpp" />
-    <ClCompile Include="..\..\..\..\src\webserver\src\php_lexer.c" />
+    <ClCompile Include="..\..\..\..\src\webserver\src\php_lexer.c">
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">4018;4244;4996</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4018;4244;4996</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4018;4244;4996</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">4018;4244;4996</DisableSpecificWarnings>
+    </ClCompile>
     <ClCompile Include="..\..\..\..\src\webserver\src\php_parser.c" />
     <ClCompile Include="..\..\..\..\src\webserver\src\php_syntree.cpp" />
     <ClCompile Include="..\..\..\..\src\RLE.cpp" />
@@ -221,6 +230,14 @@
       <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\libs\libsocket\libsocket.vcxproj">
+      <Project>{5a9ec6a5-68a3-43c8-960e-f7f99b16f1d1}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC12/aMuleWeb/aMuleWeb.vcxproj.filters b/platforms/Windows/MSVC12/aMuleWeb/aMuleWeb.vcxproj.filters
new file mode 100644
index 0000000..de7d17b
--- /dev/null
+++ b/platforms/Windows/MSVC12/aMuleWeb/aMuleWeb.vcxproj.filters
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\ExternalConnector.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\LoggerConsole.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\NetworkFunctions.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\OtherFunctions.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\webserver\src\php_amule_lib.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\webserver\src\php_core_lib.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\webserver\src\php_lexer.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\webserver\src\php_parser.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\webserver\src\php_syntree.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\RLE.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\webserver\src\WebInterface.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\webserver\src\WebServer.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\webserver\src\WebSocket.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\src\ExternalConnector.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\NetworkFunctions.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\OtherFunctions.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\webserver\src\php_core_lib.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\webserver\src\php_parser.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\webserver\src\php_syntree.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\webserver\src\WebInterface.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\webserver\src\WebServer.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\webserver\src\WebSocket.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC12/ed2k/ed2k.vcxproj b/platforms/Windows/MSVC12/ed2k/ed2k.vcxproj
new file mode 100644
index 0000000..487a337
--- /dev/null
+++ b/platforms/Windows/MSVC12/ed2k/ed2k.vcxproj
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}</ProjectGuid>
+    <RootNamespace>ed2k</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;USE_STD_STRING;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"ED2K Links Handler\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <Optimization>Full</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>USE_STD_STRING;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"ED2K Links Handler\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Console</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\ED2KLinkParser.cpp" />
+    <ClCompile Include="..\..\..\..\src\MagnetURI.cpp" />
+    <ClCompile Include="..\..\..\..\src\MuleCollection.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\src\FileLock.h" />
+    <ClInclude Include="..\..\..\..\src\MagnetURI.h" />
+    <ClInclude Include="..\..\..\..\src\MuleCollection.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\version.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\libs\libmulecommon\libmulecommon.vcxproj">
+      <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC12/ed2k/ed2k.vcxproj.filters b/platforms/Windows/MSVC12/ed2k/ed2k.vcxproj.filters
new file mode 100644
index 0000000..b06619b
--- /dev/null
+++ b/platforms/Windows/MSVC12/ed2k/ed2k.vcxproj.filters
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\ED2KLinkParser.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\MagnetURI.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\MuleCollection.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\src\FileLock.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\MagnetURI.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\MuleCollection.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj b/platforms/Windows/MSVC12/fileview/fileview.vcxproj
similarity index 57%
copy from platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
copy to platforms/Windows/MSVC12/fileview/fileview.vcxproj
index cb81ef1..f3f7b78 100644
--- a/platforms/Windows/MSVC10/aMuleCMD/aMuleCMD.vcxproj
+++ b/platforms/Windows/MSVC12/fileview/fileview.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -19,36 +19,40 @@
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}</ProjectGuid>
-    <RootNamespace>aMuleCMD</RootNamespace>
+    <ProjectGuid>{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}</ProjectGuid>
+    <RootNamespace>fileview</RootNamespace>
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -66,19 +70,20 @@
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">false</LinkIncremental>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_SCL_SECURE_NO_WARNINGS;wxUSE_GUI=0;USE_WX_EXTENSIONS;MULEUNIT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -86,12 +91,8 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Console</SubSystem>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -104,20 +105,16 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;wxUSE_GUI=0;USE_WX_EXTENSIONS;MULEUNIT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Console</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
@@ -128,12 +125,13 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_SCL_SECURE_NO_WARNINGS;wxUSE_GUI=0;USE_WX_EXTENSIONS;MULEUNIT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -141,12 +139,8 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Console</SubSystem>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -155,24 +149,20 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;wxUSE_GUI=0;USE_WX_EXTENSIONS;MULEUNIT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
-    <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Console</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
@@ -184,30 +174,31 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\..\src\ExternalConnector.cpp" />
-    <ClCompile Include="..\..\..\..\src\LoggerConsole.cpp" />
-    <ClCompile Include="..\..\..\..\src\NetworkFunctions.cpp" />
+    <ClCompile Include="..\..\..\..\src\CFile.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\fileview\eD2kFiles.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\fileview\FileView.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\fileview\KadFiles.cpp" />
     <ClCompile Include="..\..\..\..\src\OtherFunctions.cpp" />
-    <ClCompile Include="..\..\..\..\src\TextClient.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\..\..\src\ExternalConnector.h" />
-    <ClInclude Include="..\..\..\..\src\NetworkFunctions.h" />
-    <ClInclude Include="..\..\..\..\src\OtherFunctions.h" />
-    <ClInclude Include="..\..\..\..\src\TextClient.h" />
+    <ClCompile Include="..\..\..\..\src\utils\fileview\Print.cpp" />
+    <ClCompile Include="..\..\..\..\src\SafeFile.cpp">
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">4101</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">4101</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">4101</DisableSpecificWarnings>
+      <DisableSpecificWarnings Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">4101</DisableSpecificWarnings>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\Tag.cpp" />
+    <ClCompile Include="..\..\..\..\src\kademlia\utils\UInt128.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <ResourceCompile Include="..\version.rc" />
+    <ClInclude Include="..\..\..\..\src\utils\fileview\eD2kFiles.h" />
+    <ClInclude Include="..\..\..\..\src\utils\fileview\KadFiles.h" />
+    <ClInclude Include="..\..\..\..\src\utils\fileview\Print.h" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\libs\libmulecommon\libmulecommon.vcxproj">
       <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\libs\libmuleec\libmuleec.vcxproj">
-      <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC12/fileview/fileview.vcxproj.filters b/platforms/Windows/MSVC12/fileview/fileview.vcxproj.filters
new file mode 100644
index 0000000..f5ef557
--- /dev/null
+++ b/platforms/Windows/MSVC12/fileview/fileview.vcxproj.filters
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\CFile.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\utils\fileview\eD2kFiles.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\utils\fileview\FileView.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\utils\fileview\KadFiles.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\OtherFunctions.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\utils\fileview\Print.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\SafeFile.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\Tag.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\kademlia\utils\UInt128.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\src\utils\fileview\eD2kFiles.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\utils\fileview\KadFiles.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\src\utils\fileview\Print.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC9/fixwxGUIDs.pl b/platforms/Windows/MSVC12/fixwxGUIDs.pl
similarity index 51%
rename from platforms/Windows/MSVC9/fixwxGUIDs.pl
rename to platforms/Windows/MSVC12/fixwxGUIDs.pl
index dea9156..0a98f47 100644
--- a/platforms/Windows/MSVC9/fixwxGUIDs.pl
+++ b/platforms/Windows/MSVC12/fixwxGUIDs.pl
@@ -7,17 +7,19 @@
 # When you then open your solution, all GUIDs are updated.
 #
 # To avoid this:
-# 1) Open and close wx.dsw, creating the .vcproj
-# 2) Run this script. It will replace the new GUIDs in the wx vcproj by the old ones from the aMule-MSVCE-ExtLibs.sln .
-# 3) Now load aMule-MSVCE-ExtLibs.sln. It won't be changed anymore.
+# 1) Open and close wx.dsw with VS9 to convert to wx.sln (VS10 can't open them)
+# 2) Open and close wx.sln, creating the .vcxproj
+# 3) Run this script. It will replace the new GUIDs in the wx vcxproj by the old ones from the aMule-MSVC10E-ExtLibs.sln .
+# 4) Now load aMule-MSVCE-ExtLibs.sln. It won't be changed anymore.
 #
 
 use strict;
 
-open(sln, 'aMule-MSVCE-ExtLibs.sln');
-#Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "..\..\wxWidgets\build\msw\wx_wxregex.vcproj", "{B4ACF599-824F-4806-8390-414B2DF64922}"
+open(sln, 'aMule-MSVC10E-ExtLibs.sln') or die $!;
+#Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "..\..\..\..\wxWidgets\build\msw\wx_wxregex.vcxproj", "{A960D0AD-C20E-4FD6-B477-6509232C7D94}"
+#    <ProjectGuid>{B499DD81-BCA2-42D8-986C-E0FBAAC25B13}</ProjectGuid>
 while (<sln>) {
-	if (/^Project.*, \"(.+)\", (\".+\")/) {
+	if (/^Project.*, \"(.+)\", \"(.+)\"/) {
 		my ($path, $guid) = ($1, $2);
 		next unless $path =~ /\\wxWidgets/;
 		$path =~ s-\\-/-g;
@@ -26,8 +28,8 @@ while (<sln>) {
 		my @content = <prj>;
 		close prj;
 		foreach (@content) {
-			if (/ProjectGUID=/) {
-				$_ = "\tProjectGUID=$guid\n";
+			if (/<ProjectGuid>/) {
+				$_ = "    <ProjectGuid>$guid</ProjectGuid>\n";
 				print $_;
 				last;
 			}
diff --git a/platforms/Windows/MSVC9/libs/libGeoIP/GeoIP.cmd b/platforms/Windows/MSVC12/libs/libGeoIP/GeoIP.cmd
similarity index 74%
rename from platforms/Windows/MSVC9/libs/libGeoIP/GeoIP.cmd
rename to platforms/Windows/MSVC12/libs/libGeoIP/GeoIP.cmd
index 5c7c77f..720043f 100644
--- a/platforms/Windows/MSVC9/libs/libGeoIP/GeoIP.cmd
+++ b/platforms/Windows/MSVC12/libs/libGeoIP/GeoIP.cmd
@@ -10,7 +10,6 @@ echo // Dummy > GeoIP.c
 :c_exist
 if exist geoip_x.c goto finish
 echo creating GeoIP_X.c
-echo #pragma warning(disable:4996) > GeoIP_X.c
-echo #include "GeoIP.c" >> GeoIP_X.c
+echo #include "GeoIP_X.hpp" >> GeoIP_X.c
 :finish
 
diff --git a/platforms/Windows/MSVC12/libs/libGeoIP/GeoIP_X.hpp b/platforms/Windows/MSVC12/libs/libGeoIP/GeoIP_X.hpp
new file mode 100644
index 0000000..4317a16
--- /dev/null
+++ b/platforms/Windows/MSVC12/libs/libGeoIP/GeoIP_X.hpp
@@ -0,0 +1,11 @@
+#pragma warning(disable:4996) 
+#define ssize_t int
+#include <stdio.h>
+#include <io.h>
+char PACKAGE_VERSION[] = "";
+ssize_t pread(int fildes, void *buf, size_t nbyte, size_t offset)
+{
+	lseek(fildes, offset, SEEK_SET);
+	return read(fildes, buf, nbyte);
+}
+#include "GeoIP.c" 
diff --git a/platforms/Windows/MSVC12/libs/libGeoIP/libGeoIP.vcxproj b/platforms/Windows/MSVC12/libs/libGeoIP/libGeoIP.vcxproj
new file mode 100644
index 0000000..1a896a0
--- /dev/null
+++ b/platforms/Windows/MSVC12/libs/libGeoIP/libGeoIP.vcxproj
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{8CA0F896-7689-4CE0-9D16-99C9C83847E1}</ProjectGuid>
+    <RootNamespace>libGeoIP</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
+      <Optimization>Full</Optimization>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="GeoIP_X.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="GeoIP.h" />
+    <ClInclude Include="GeoIP_X.hpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="GeoIP.cmd">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">create dummy files</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">GeoIP.cmd
+</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">GeoIP_X.c;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">create dummy files</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">GeoIP.cmd
+</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">GeoIP_X.c;%(Outputs)</Outputs>
+    </CustomBuild>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC12/libs/libGeoIP/libGeoIP.vcxproj.filters b/platforms/Windows/MSVC12/libs/libGeoIP/libGeoIP.vcxproj.filters
new file mode 100644
index 0000000..78db5a3
--- /dev/null
+++ b/platforms/Windows/MSVC12/libs/libGeoIP/libGeoIP.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="GeoIP_X.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="GeoIP.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="GeoIP_X.hpp">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="GeoIP.cmd" />
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC9/libs/libGeoIP/readme.txt b/platforms/Windows/MSVC12/libs/libGeoIP/readme.txt
similarity index 99%
rename from platforms/Windows/MSVC9/libs/libGeoIP/readme.txt
rename to platforms/Windows/MSVC12/libs/libGeoIP/readme.txt
index 10ff1c6..47fc2f6 100644
--- a/platforms/Windows/MSVC9/libs/libGeoIP/readme.txt
+++ b/platforms/Windows/MSVC12/libs/libGeoIP/readme.txt
@@ -1,7 +1,7 @@
 How to build aMule with GeoIP support
 
 The MaxMind GeoIP library can detect the country an IP adress comes from. aMule uses this information
-to display a little country flag for each source or ed2k server. 
+to display a little country flag for each source or ed2k server.
 Since this is an external library it is disabled by default. This is how to enable it:
 
 Download the free GeoIP C library from http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz
diff --git a/platforms/Windows/MSVC10/libs/libext/buildlibext.vcxproj b/platforms/Windows/MSVC12/libs/libext/buildlibext.vcxproj
similarity index 75%
copy from platforms/Windows/MSVC10/libs/libext/buildlibext.vcxproj
copy to platforms/Windows/MSVC12/libs/libext/buildlibext.vcxproj
index f04d26f..b0b5bf1 100644
--- a/platforms/Windows/MSVC10/libs/libext/buildlibext.vcxproj
+++ b/platforms/Windows/MSVC12/libs/libext/buildlibext.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -23,31 +23,35 @@
     <RootNamespace>MSVCExpressExtLibs</RootNamespace>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -63,10 +67,10 @@
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <PreBuildEvent>
@@ -92,7 +96,7 @@ lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxwidgets\li
 </Command>
     </PostBuildEvent>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <PreBuildEvent>
       <Command>
       </Command>
@@ -100,11 +104,11 @@ lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxwidgets\li
     <PostBuildEvent>
       <Message>join external libs</Message>
       <Command>if not exist ..\..\$(Configuration) mkdir ..\..\$(Configuration)
-lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29ud_media.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxjpegd.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29ud_adv.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxregexud.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29ud_richtext.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxzlibd.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxbase29ud.lib" "..\..\..\..\..\..\wxWidgets [...]
+lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxmsw30ud_media.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxjpegd.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxmsw30ud_adv.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxregexud.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxmsw30ud_richtext.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxzlibd.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxbase30ud.lib" "..\..\..\..\..\..\wxWidgets [...]
 </Command>
     </PostBuildEvent>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <PreBuildEvent>
       <Command>
       </Command>
@@ -112,80 +116,80 @@ lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets29\
     <PostBuildEvent>
       <Message>join external libs</Message>
       <Command>if not exist ..\..\$(Configuration) mkdir ..\..\$(Configuration)
-lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29u_media.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxjpeg.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29u_adv.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxregexu.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxmsw29u_richtext.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxzlib.lib" "..\..\..\..\..\..\wxWidgets29\lib\vc_lib\wxbase29u.lib" "..\..\..\..\..\..\wxWidgets29\lib\ [...]
+lib /LTCG /out:..\..\$(Configuration)\libext.lib "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxmsw30u_media.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxjpeg.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxmsw30u_adv.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxregexu.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxmsw30u_richtext.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxzlib.lib" "..\..\..\..\..\..\wxWidgets30\lib\vc_lib\wxbase30u.lib" "..\..\..\..\..\..\wxWidgets30\lib\ [...]
 </Command>
     </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_adv.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_adv.vcxproj">
       <Project>{24c45343-fd20-5c92-81c1-35a2ae841e79}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_aui.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_aui.vcxproj">
       <Project>{a16d3832-0f42-57ce-8f48-50e06649ade8}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_base.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_base.vcxproj">
       <Project>{3fcc50c2-81e9-5db2-b8d8-2129427568b1}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_core.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_core.vcxproj">
       <Project>{6744dad8-9c70-574a-bff2-9f8dddb24a75}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_gl.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_gl.vcxproj">
       <Project>{da8b15ef-6750-5928-bc0e-c748213cf9b2}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_html.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_html.vcxproj">
       <Project>{33cc42f9-7756-5587-863c-8d4461b7c5dd}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_media.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_media.vcxproj">
       <Project>{8bd8f8d9-4275-5b42-a8f4-f1db2970a550}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_net.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_net.vcxproj">
       <Project>{69f2ede4-7d21-5738-9bc0-f66f61c9ae00}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_qa.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_qa.vcxproj">
       <Project>{e21129e0-7c08-5936-9d8c-0d60b5319ba7}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_richtext.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_richtext.vcxproj">
       <Project>{7fb0902d-8579-5dce-b883-daf66a885005}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxexpat.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxexpat.vcxproj">
       <Project>{a1a8355b-0988-528e-9cc2-b971d6266669}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxjpeg.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxjpeg.vcxproj">
       <Project>{6053cc38-cdee-584c-8bc8-4b000d800fc7}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxpng.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxpng.vcxproj">
       <Project>{8acc122a-ca6a-5aa6-9c97-9cdd2e533db0}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxregex.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxregex.vcxproj">
       <Project>{56a4b526-bb81-5d01-aaa9-16d23bbb169d}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxtiff.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxtiff.vcxproj">
       <Project>{75596ce6-5ae7-55c9-b890-c07b0a657a83}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_wxzlib.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_wxzlib.vcxproj">
       <Project>{8b867186-a0b5-5479-b824-e176edd27c40}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_xml.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_xml.vcxproj">
       <Project>{3e6dca27-5fa3-53ec-bbd6-2d42294b7ae6}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\..\..\..\wxWidgets29\build\msw\wx_vc9_xrc.vcxproj">
+    <ProjectReference Include="..\..\..\..\..\..\wxWidgets30\build\msw\wx_vc10_xrc.vcxproj">
       <Project>{09f2f96a-1cc6-5e43-af1d-956ec2a4888d}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
diff --git a/platforms/Windows/MSVC12/libs/libext/buildlibext.vcxproj.filters b/platforms/Windows/MSVC12/libs/libext/buildlibext.vcxproj.filters
new file mode 100644
index 0000000..1dc06d7
--- /dev/null
+++ b/platforms/Windows/MSVC12/libs/libext/buildlibext.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="dummy.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj b/platforms/Windows/MSVC12/libs/libmulecommon/libmulecommon.vcxproj
similarity index 55%
copy from platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
copy to platforms/Windows/MSVC12/libs/libmulecommon/libmulecommon.vcxproj
index d7b11ee..9e5c6b8 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
+++ b/platforms/Windows/MSVC12/libs/libmulecommon/libmulecommon.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -19,36 +19,40 @@
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}</ProjectGuid>
-    <RootNamespace>libmuleec</RootNamespace>
+    <ProjectGuid>{293E6133-239A-4ED4-838E-9182B07C6B35}</ProjectGuid>
+    <RootNamespace>libmulecommon</RootNamespace>
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -64,17 +68,17 @@
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -88,8 +92,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -97,12 +101,12 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -112,12 +116,12 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -126,30 +130,42 @@
     </ClCompile>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\libs\common\FileFunctions.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\libs\common\Format.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\libs\common\MD5Sum.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\libs\common\MuleDebug.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\libs\common\Path.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\libs\common\strerror_r.c" />
+    <ClCompile Include="..\..\..\..\..\src\libs\common\StringFunctions.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\libs\common\TextFile.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECCodes.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECFileConfig.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECID.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTagTypes.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\libmulecommon\libmulecommon.vcxproj">
-      <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
+    <CustomBuild Include="..\..\..\..\..\src\include\common\ClientVersion.h">
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">Create config.h</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">cd "$(SolutionDir)..\..\.."
+"$(SolutionDir)makeconfig.cmd"</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create config.h</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cd "$(SolutionDir)..\..\.."
+"$(SolutionDir)makeconfig.cmd"</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">Create config.h</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">cd "$(SolutionDir)..\..\.."
+"$(SolutionDir)makeconfig.cmd"</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)..\..\..\config.h;%(Outputs)</Outputs>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create config.h</Message>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cd "$(SolutionDir)..\..\.."
+"$(SolutionDir)makeconfig.cmd"</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\..\..\config.h;%(Outputs)</Outputs>
+    </CustomBuild>
+    <ClInclude Include="..\..\..\..\..\src\libs\common\FileFunctions.h" />
+    <ClInclude Include="..\..\..\..\..\src\libs\common\Format.h" />
+    <ClInclude Include="..\..\..\..\..\src\libs\common\MD5Sum.h" />
+    <ClInclude Include="..\..\..\..\..\src\libs\common\MuleDebug.h" />
+    <ClInclude Include="..\..\..\..\..\src\libs\common\Path.h" />
+    <ClInclude Include="..\..\..\..\..\src\libs\common\strerror_r.h" />
+    <ClInclude Include="..\..\..\..\..\src\libs\common\StringFunctions.h" />
+    <ClInclude Include="..\..\..\..\..\src\libs\common\TextFile.h" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters b/platforms/Windows/MSVC12/libs/libmulecommon/libmulecommon.vcxproj.filters
similarity index 53%
copy from platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
copy to platforms/Windows/MSVC12/libs/libmulecommon/libmulecommon.vcxproj.filters
index 63fd690..51c2d38 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
+++ b/platforms/Windows/MSVC12/libs/libmulecommon/libmulecommon.vcxproj.filters
@@ -15,55 +15,60 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\common\FileFunctions.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECPacket.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\common\Format.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSocket.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\common\MD5Sum.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\common\MuleDebug.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECTag.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\common\Path.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\RemoteConnect.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\common\StringFunctions.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\src\libs\common\TextFile.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\src\libs\common\strerror_r.c">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECCodes.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\common\FileFunctions.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECFileConfig.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\common\Format.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECID.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\common\MD5Sum.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\common\MuleDebug.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECPacket.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\common\Path.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSocket.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\common\StringFunctions.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\common\TextFile.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTag.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\common\strerror_r.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTagTypes.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\RemoteConnect.h">
+  </ItemGroup>
+  <ItemGroup>
+    <CustomBuild Include="..\..\..\..\..\src\include\common\ClientVersion.h">
       <Filter>Header Files</Filter>
-    </ClInclude>
+    </CustomBuild>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj b/platforms/Windows/MSVC12/libs/libmuleec/libmuleec.vcxproj
similarity index 73%
copy from platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
copy to platforms/Windows/MSVC12/libs/libmuleec/libmuleec.vcxproj
index d7b11ee..048e229 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
+++ b/platforms/Windows/MSVC12/libs/libmuleec/libmuleec.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -24,31 +24,35 @@
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -64,17 +68,17 @@
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -83,26 +87,32 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+    </ProjectReference>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+    </ProjectReference>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -111,19 +121,25 @@
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+    </ProjectReference>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>true</LinkLibraryDependencies>
+    </ProjectReference>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp" />
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters b/platforms/Windows/MSVC12/libs/libmuleec/libmuleec.vcxproj.filters
similarity index 58%
copy from platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
copy to platforms/Windows/MSVC12/libs/libmuleec/libmuleec.vcxproj.filters
index 63fd690..4acf0b3 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
+++ b/platforms/Windows/MSVC12/libs/libmuleec/libmuleec.vcxproj.filters
@@ -15,54 +15,54 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECPacket.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSocket.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECTag.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\RemoteConnect.cpp">
+    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECCodes.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECCodes.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECFileConfig.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECFileConfig.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECID.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECID.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECPacket.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSocket.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTag.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTagTypes.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTagTypes.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\RemoteConnect.h">
+    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.h">
       <Filter>Header Files</Filter>
     </ClInclude>
   </ItemGroup>
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj b/platforms/Windows/MSVC12/libs/libmuleexternalwxlistctrl/libmuleexternalwxlistctrl.vcxproj
similarity index 63%
copy from platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
copy to platforms/Windows/MSVC12/libs/libmuleexternalwxlistctrl/libmuleexternalwxlistctrl.vcxproj
index d7b11ee..01e527a 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
+++ b/platforms/Windows/MSVC12/libs/libmuleexternalwxlistctrl/libmuleexternalwxlistctrl.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -19,36 +19,40 @@
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}</ProjectGuid>
-    <RootNamespace>libmuleec</RootNamespace>
+    <ProjectGuid>{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}</ProjectGuid>
+    <RootNamespace>libmuleexternalwxlistctrl</RootNamespace>
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -64,17 +68,17 @@
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -88,7 +92,7 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
@@ -97,12 +101,12 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -112,11 +116,11 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
@@ -126,30 +130,10 @@
     </ClCompile>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\extern\wxWidgets\listctrl.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECCodes.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECFileConfig.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECID.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTagTypes.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\libmulecommon\libmulecommon.vcxproj">
-      <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
+    <ClInclude Include="..\..\..\..\..\src\extern\wxWidgets\listctrl.h" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC12/libs/libmuleexternalwxlistctrl/libmuleexternalwxlistctrl.vcxproj.filters b/platforms/Windows/MSVC12/libs/libmuleexternalwxlistctrl/libmuleexternalwxlistctrl.vcxproj.filters
new file mode 100644
index 0000000..e6451a4
--- /dev/null
+++ b/platforms/Windows/MSVC12/libs/libmuleexternalwxlistctrl/libmuleexternalwxlistctrl.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\..\src\extern\wxWidgets\listctrl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\..\src\extern\wxWidgets\listctrl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj b/platforms/Windows/MSVC12/libs/libsocket/libsocket.vcxproj
similarity index 58%
copy from platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
copy to platforms/Windows/MSVC12/libs/libsocket/libsocket.vcxproj
index d7b11ee..3642857 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj
+++ b/platforms/Windows/MSVC12/libs/libsocket/libsocket.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -18,37 +18,69 @@
       <Platform>Win32</Platform>
     </ProjectConfiguration>
   </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\..\src\LibSocket.cpp" />
+    <ClCompile Include="..\..\..\..\..\src\LibSocketAsio.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\src\LibSocketWX.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\..\src\LibSocket.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\libmulecommon\libmulecommon.vcxproj">
+      <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
+      <Private>true</Private>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
+    </ProjectReference>
+  </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}</ProjectGuid>
+    <ProjectGuid>{5A9EC6A5-68A3-43C8-960E-F7F99B16F1D1}</ProjectGuid>
     <RootNamespace>libmuleec</RootNamespace>
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -64,17 +96,17 @@
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\boost;$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -88,8 +120,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\boost;$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -97,12 +129,12 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\boost;$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -112,12 +144,12 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\boost;$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -125,32 +157,6 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.cpp" />
-    <ClCompile Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECCodes.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECFileConfig.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECID.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECPacket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSocket.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTag.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\ECTagTypes.h" />
-    <ClInclude Include="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\libmulecommon\libmulecommon.vcxproj">
-      <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
-  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/platforms/Windows/MSVC12/libs/libsocket/libsocket.vcxproj.filters b/platforms/Windows/MSVC12/libs/libsocket/libsocket.vcxproj.filters
new file mode 100644
index 0000000..41348b3
--- /dev/null
+++ b/platforms/Windows/MSVC12/libs/libsocket/libsocket.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A31D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-6251BE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83B1121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\..\src\LibSocket.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\src\LibSocketAsio.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\..\src\LibSocketWX.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\..\src\LibSocket.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC9/makeconfig.cmd b/platforms/Windows/MSVC12/makeconfig.cmd
similarity index 77%
rename from platforms/Windows/MSVC9/makeconfig.cmd
rename to platforms/Windows/MSVC12/makeconfig.cmd
index e08dbcf..0eaf27d 100644
--- a/platforms/Windows/MSVC9/makeconfig.cmd
+++ b/platforms/Windows/MSVC12/makeconfig.cmd
@@ -21,12 +21,22 @@ echo SVNDATE is %svnv%
 echo #define SVNDATE "rev. %svnv%">>config.h
 echo #define VERSION "SVN">>config.h
 echo #define __PRERELEASE__>>config.h
-goto finish
+goto boost1
 
 :nosvnversion
 echo release build, version from ^<common/ClientVersion.h^>
 echo #include ^<src/include/common/ClientVersion.h^> >>config.h
 
+:boost1
+if not exist ..\boost\boost\asio.hpp goto boost2
+if not exist ..\boost\libs\system\src\error_code.cpp goto boost2
+echo Boost detected, using Asio sockets
+echo #define ASIO_SOCKETS>>config.h
+echo #define HAVE_BOOST_SOURCES>>config.h
+goto finish
+:boost2
+echo no Boost found, using wx sockets
+
 :finish
 echo #define CRYPTOPP_INCLUDE_PREFIX	../cryptopp>>config.h
 echo #define PACKAGE "amule">>config.h
diff --git a/platforms/Windows/MSVC9/version.rc b/platforms/Windows/MSVC12/version.rc
similarity index 100%
rename from platforms/Windows/MSVC9/version.rc
rename to platforms/Windows/MSVC12/version.rc
diff --git a/platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj b/platforms/Windows/MSVC12/wxCas/wxCas.vcxproj
similarity index 56%
copy from platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj
copy to platforms/Windows/MSVC12/wxCas/wxCas.vcxproj
index 0115ff8..ed2d750 100644
--- a/platforms/Windows/MSVC10/aMuleWeb/aMuleWeb.vcxproj
+++ b/platforms/Windows/MSVC12/wxCas/wxCas.vcxproj
@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug29|Win32">
-      <Configuration>Debug29</Configuration>
+    <ProjectConfiguration Include="Debug30|Win32">
+      <Configuration>Debug30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
-    <ProjectConfiguration Include="Release29|Win32">
-      <Configuration>Release29</Configuration>
+    <ProjectConfiguration Include="Release30|Win32">
+      <Configuration>Release30</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
     <ProjectConfiguration Include="Release|Win32">
@@ -19,36 +19,40 @@
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}</ProjectGuid>
-    <RootNamespace>aMuleWeb</RootNamespace>
+    <ProjectGuid>{5FCAFC30-922E-446F-8DF5-D71819AB6356}</ProjectGuid>
+    <RootNamespace>wxCas</RootNamespace>
     <Keyword>Win32Proj</Keyword>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="Configuration">
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
     <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
     <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v120</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'" Label="PropertySheets">
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -66,19 +70,21 @@
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">$(Configuration)\</IntDir>
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">$(Configuration)\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">false</LinkIncremental>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;ENABLE_NLS;ENABLE_IP2COUNTRY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -87,13 +93,13 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Web Server\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"Graphical aMule Statistics\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
+      <SubSystem>Windows</SubSystem>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <DataExecutionPrevention>
       </DataExecutionPrevention>
@@ -104,8 +110,8 @@
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;ENABLE_NLS;ENABLE_IP2COUNTRY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -113,13 +119,13 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Web Server\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;wxUSE_NO_MANIFEST=1;VER_FILEDESCRIPTION_STR=\"Graphical aMule Statistics\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
+      <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -128,12 +134,12 @@
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\src\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;WITH_LIBPNG;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswud;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;ENABLE_NLS;ENABLE_IP2COUNTRY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -142,25 +148,25 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Web Server\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"Graphical aMule Statistics\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
+      <SubSystem>Windows</SubSystem>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <DataExecutionPrevention>
       </DataExecutionPrevention>
       <TargetMachine>MachineX86</TargetMachine>
     </Link>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release29|Win32'">
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release30|Win32'">
     <ClCompile>
       <AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
       <Optimization>Full</Optimization>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets29\include;$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib;$(SolutionDir)..\..\..\..\wxWidgets29\src\png;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;WITH_LIBPNG;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..\..\wxWidgets30\lib\vc_lib\mswu;$(SolutionDir)..\..\..\src\libs;$(SolutionDir)..\..\..\src;$(SolutionDir)..\..\..\src\include;$(SolutionDir)..\..\..\;$(SolutionDir)..\..\..\..\wxWidgets30\src\zlib;$(SolutionDir)libs\libGeoIP;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;ENABLE_NLS;ENABLE_IP2COUNTRY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -168,13 +174,13 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <ResourceCompile>
-      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Web Server\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"Graphical aMule Statistics\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\wxWidgets30\include;$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>ws2_32.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>comctl32.lib;ws2_32.lib;rpcrt4.lib;shlwapi.lib;$(OutDir)libext.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <SubSystem>Console</SubSystem>
+      <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
       <EnableCOMDATFolding>true</EnableCOMDATFolding>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
@@ -184,43 +190,34 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\..\src\ExternalConnector.cpp" />
-    <ClCompile Include="..\..\..\..\src\LoggerConsole.cpp" />
-    <ClCompile Include="..\..\..\..\src\NetworkFunctions.cpp" />
-    <ClCompile Include="..\..\..\..\src\OtherFunctions.cpp" />
-    <ClCompile Include="..\..\..\..\src\webserver\src\php_amule_lib.cpp" />
-    <ClCompile Include="..\..\..\..\src\webserver\src\php_core_lib.cpp" />
-    <ClCompile Include="..\..\..\..\src\webserver\src\php_lexer.c" />
-    <ClCompile Include="..\..\..\..\src\webserver\src\php_parser.c" />
-    <ClCompile Include="..\..\..\..\src\webserver\src\php_syntree.cpp" />
-    <ClCompile Include="..\..\..\..\src\RLE.cpp" />
-    <ClCompile Include="..\..\..\..\src\webserver\src\WebInterface.cpp" />
-    <ClCompile Include="..\..\..\..\src\webserver\src\WebServer.cpp" />
-    <ClCompile Include="..\..\..\..\src\webserver\src\WebSocket.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\linuxmon.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\onlinesig.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcas.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcascte.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcasframe.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcaspix.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcasprefs.cpp" />
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcasprint.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\..\src\ExternalConnector.h" />
-    <ClInclude Include="..\..\..\..\src\NetworkFunctions.h" />
-    <ClInclude Include="..\..\..\..\src\OtherFunctions.h" />
-    <ClInclude Include="..\..\..\..\src\webserver\src\php_core_lib.h" />
-    <ClInclude Include="..\..\..\..\src\webserver\src\php_parser.h" />
-    <ClInclude Include="..\..\..\..\src\webserver\src\php_syntree.h" />
-    <ClInclude Include="..\..\..\..\src\webserver\src\WebInterface.h" />
-    <ClInclude Include="..\..\..\..\src\webserver\src\WebServer.h" />
-    <ClInclude Include="..\..\..\..\src\webserver\src\WebSocket.h" />
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\linuxmon.h" />
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\onlinesig.h" />
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcas.h" />
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcascte.h" />
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcasframe.h" />
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcaspix.h" />
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcasprefs.h" />
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcasprint.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\version.rc" />
+    <ResourceCompile Include="..\..\..\..\src\utils\wxCas\wxcas.rc" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\libs\libmulecommon\libmulecommon.vcxproj">
       <Project>{293e6133-239a-4ed4-838e-9182b07c6b35}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
-    <ProjectReference Include="..\libs\libmuleec\libmuleec.vcxproj">
-      <Project>{5a9ec6a5-68a3-43c8-960e-f7f03b16f1d1}</Project>
-      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
-    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters b/platforms/Windows/MSVC12/wxCas/wxCas.vcxproj.filters
similarity index 50%
copy from platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
copy to platforms/Windows/MSVC12/wxCas/wxCas.vcxproj.filters
index 63fd690..794320d 100644
--- a/platforms/Windows/MSVC10/libs/libmuleec/libmuleec.vcxproj.filters
+++ b/platforms/Windows/MSVC12/wxCas/wxCas.vcxproj.filters
@@ -15,55 +15,63 @@
     </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\linuxmon.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECPacket.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\onlinesig.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSocket.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcas.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcascte.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\ECTag.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcasframe.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\libs\ec\cpp\RemoteConnect.cpp">
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcaspix.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcasprefs.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\utils\wxCas\src\wxcasprint.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECCodes.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECFileConfig.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECID.h">
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\linuxmon.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECMuleSocket.h">
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\onlinesig.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECPacket.h">
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcas.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSocket.h">
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcascte.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECSpecialTags.h">
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcasframe.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTag.h">
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcaspix.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\ECTagTypes.h">
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcasprefs.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\..\src\libs\ec\cpp\RemoteConnect.h">
+    <ClInclude Include="..\..\..\..\src\utils\wxCas\src\wxcasprint.h">
       <Filter>Header Files</Filter>
     </ClInclude>
   </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\version.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+    <ResourceCompile Include="..\..\..\..\src\utils\wxCas\wxcas.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/platforms/Windows/MSVC9/UnitTests/FileDataIO/FileDataIO.vcproj b/platforms/Windows/MSVC9/UnitTests/FileDataIO/FileDataIO.vcproj
deleted file mode 100644
index 0246d58..0000000
--- a/platforms/Windows/MSVC9/UnitTests/FileDataIO/FileDataIO.vcproj
+++ /dev/null
@@ -1,216 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="FileDataIO"
-	ProjectGUID="{C27E39F5-BA92-4245-A537-7B7852508900}"
-	RootNamespace="FileDataIO"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_DEBUG;_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				MinimalRebuild="true"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="2"
-				IgnoreAllDefaultLibraries="false"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\src\CFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\unittests\tests\FileDataIOTest.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\MemFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\SafeFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\Tag.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/UnitTests/FormatTest/FormatTest.vcproj b/platforms/Windows/MSVC9/UnitTests/FormatTest/FormatTest.vcproj
deleted file mode 100644
index 7b0fb07..0000000
--- a/platforms/Windows/MSVC9/UnitTests/FormatTest/FormatTest.vcproj
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="Format"
-	ProjectGUID="{269AD4B7-8245-4476-9179-E4659F6E217F}"
-	RootNamespace="FormatTest"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_DEBUG;_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				MinimalRebuild="true"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\unittests\tests\FormatTest.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/UnitTests/NetworkFunctions/NetworkFunctions.vcproj b/platforms/Windows/MSVC9/UnitTests/NetworkFunctions/NetworkFunctions.vcproj
deleted file mode 100644
index c11ba6e..0000000
--- a/platforms/Windows/MSVC9/UnitTests/NetworkFunctions/NetworkFunctions.vcproj
+++ /dev/null
@@ -1,203 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="NetworkFunctions"
-	ProjectGUID="{6B452F4F-43C9-408E-BDF3-C70FCA9F257D}"
-	RootNamespace="NetworkFunctions"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_DEBUG;_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				MinimalRebuild="true"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\src\NetworkFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\unittests\tests\NetworkFunctionsTest.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/UnitTests/RangeMap/RangeMap.vcproj b/platforms/Windows/MSVC9/UnitTests/RangeMap/RangeMap.vcproj
deleted file mode 100644
index 7e13314..0000000
--- a/platforms/Windows/MSVC9/UnitTests/RangeMap/RangeMap.vcproj
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="RangeMap"
-	ProjectGUID="{9A19C692-FFBD-467C-B8A8-63166F421940}"
-	RootNamespace="RangeMap"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_DEBUG;_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				MinimalRebuild="true"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\unittests\tests\RangeMapTest.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/UnitTests/StringFunctions/StringFunctions.vcproj b/platforms/Windows/MSVC9/UnitTests/StringFunctions/StringFunctions.vcproj
deleted file mode 100644
index 96d76f0..0000000
--- a/platforms/Windows/MSVC9/UnitTests/StringFunctions/StringFunctions.vcproj
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="StringFunctions"
-	ProjectGUID="{5A024799-C5ED-41CF-BF0C-914A11799234}"
-	RootNamespace="StringFunctions"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_DEBUG;_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				MinimalRebuild="true"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\unittests";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;MULEUNIT;USE_WX_EXTENSIONS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\unittests\tests\StringFunctionsTest.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/UnitTests/libmuleunittest/libmuleunittest.vcproj b/platforms/Windows/MSVC9/UnitTests/libmuleunittest/libmuleunittest.vcproj
deleted file mode 100644
index bc4c4b6..0000000
--- a/platforms/Windows/MSVC9/UnitTests/libmuleunittest/libmuleunittest.vcproj
+++ /dev/null
@@ -1,195 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="libmuleunittest"
-	ProjectGUID="{5FE132E5-83CB-4880-B2D9-CA828E008786}"
-	RootNamespace="libmuleunittest"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs""
-				PreprocessorDefinitions="_DEBUG;_LIB;MULEUNIT"
-				MinimalRebuild="true"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs""
-				PreprocessorDefinitions="_LIB;MULEUNIT"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\unittests\muleunit\main.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\unittests\muleunit\test.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\unittests\muleunit\testcase.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\unittests\muleunit\testregistry.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\unittests\muleunit\test.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\unittests\muleunit\testcase.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\unittests\muleunit\testregistry.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/aLinkCreator/aLinkCreator.vcproj b/platforms/Windows/MSVC9/aLinkCreator/aLinkCreator.vcproj
deleted file mode 100644
index 6598bb7..0000000
--- a/platforms/Windows/MSVC9/aLinkCreator/aLinkCreator.vcproj
+++ /dev/null
@@ -1,414 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="aLinkCreator"
-	ProjectGUID="{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}"
-	RootNamespace="aLinkCreator"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;HAVE_CONFIG_H"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\""
-				PreprocessorDefinitions="NDEBUG;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;HAVE_CONFIG_H"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\""
-				PreprocessorDefinitions="NDEBUG;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\alc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\alcframe.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\alcpix.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\md4.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\alc.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\alcc.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\alcframe.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\alcpix.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\bithelp.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\md4.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\alc.rc"
-				>
-			</File>
-			<File
-				RelativePath="..\version.rc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/aLinkCreator/alcc.vcproj b/platforms/Windows/MSVC9/aLinkCreator/alcc.vcproj
deleted file mode 100644
index ee24b1f..0000000
--- a/platforms/Windows/MSVC9/aLinkCreator/alcc.vcproj
+++ /dev/null
@@ -1,394 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="alcc"
-	ProjectGUID="{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}"
-	RootNamespace="alcc"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)ALC"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;HAVE_CONFIG_H"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)ALC"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)ALC"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;HAVE_CONFIG_H"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)ALC"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Link Creator\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\alcc.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\md4.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\alcc.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\bithelp.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\ed2khash.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\src\md4.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\utils\aLinkCreator\alc.rc"
-				>
-			</File>
-			<File
-				RelativePath="..\version.rc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/aMule-MSVC.sln b/platforms/Windows/MSVC9/aMule-MSVC.sln
deleted file mode 100644
index 3b04219..0000000
--- a/platforms/Windows/MSVC9/aMule-MSVC.sln
+++ /dev/null
@@ -1,367 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wxWidgets", "wxWidgets", "{04ECC032-1961-45B0-B0C3-0064A8E3B880}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "external libraries", "external libraries", "{138CD730-94FC-41BA-92BB-E88E1DF41CC3}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "aMule libraries", "aMule libraries", "{29E96B92-653C-431E-BE45-756B048E5A11}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "aMule Applications", "aMule Applications", "{CB2CC2C4-0882-434D-8B96-4984740BCC23}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".NET Remote GUI", ".NET Remote GUI", "{D176CBB0-E9BB-4827-8A37-2F05423EC07F}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Monolithic build", "Monolithic build", "{91C69AB8-8B41-4320-99F8-CB97A5258E2D}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extras", "Extras", "{9AC4A7BC-3E72-4C97-81FF-D8708331CC54}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnitTests", "UnitTests", "{660C24AD-2ABA-406B-B56A-BF9AE52AD432}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{02262EFC-86BC-45B1-8401-A26BB365E717}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Remote access clients", "Remote access clients", "{BD53B16D-3577-4245-A420-070A890D35AB}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Daemon", "Daemon", "{B601F0F8-B6DC-4DF5-B4CD-2E1807E0E68D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\cryptopp\cryptlib.vcproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxregex", "..\..\wxWidgets\build\msw\wx_wxregex.vcproj", "{80B284D2-4BD6-45A0-8BC6-869A1838DD03}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "..\..\wxWidgets\build\msw\wx_wxzlib.vcproj", "{0CFF4FC9-1446-49A2-BC73-10C7C74552B4}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "..\..\wxWidgets\build\msw\wx_wxpng.vcproj", "{8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "..\..\wxWidgets\build\msw\wx_wxjpeg.vcproj", "{548481EF-9B67-43B3-86FB-BA0D723A33F2}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxtiff", "..\..\wxWidgets\build\msw\wx_wxtiff.vcproj", "{A6E63596-B39C-4A12-B8DF-1B49223D1A1C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxexpat", "..\..\wxWidgets\build\msw\wx_wxexpat.vcproj", "{848C4A27-35BF-4A39-9D94-7D44230A8C7A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "..\..\wxWidgets\build\msw\wx_base.vcproj", "{589673C3-7482-404F-885C-8EBCB9F87EB8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "..\..\wxWidgets\build\msw\wx_net.vcproj", "{EC85BF8B-F045-44BE-A6DF-14345BE67039}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "..\..\wxWidgets\build\msw\wx_core.vcproj", "{0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "adv", "..\..\wxWidgets\build\msw\wx_adv.vcproj", "{345799D6-A1CF-445E-9549-261F234036DC}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "media", "..\..\wxWidgets\build\msw\wx_media.vcproj", "{EC8B4DF1-2154-4600-8B9E-54B123614AAF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "odbc", "..\..\wxWidgets\build\msw\wx_odbc.vcproj", "{25567CA5-A4DE-47BA-8C53-42118249A54F}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dbgrid", "..\..\wxWidgets\build\msw\wx_dbgrid.vcproj", "{D4A94342-E8FA-4912-AB37-0571502B0FE1}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "html", "..\..\wxWidgets\build\msw\wx_html.vcproj", "{8CECC224-BB6F-4F79-9CF1-CD664304AFE9}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qa", "..\..\wxWidgets\build\msw\wx_qa.vcproj", "{919C67BA-FAA4-41F5-96E8-C51879D2A0D5}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml", "..\..\wxWidgets\build\msw\wx_xml.vcproj", "{0B8669B5-1DE4-4015-8749-AF6CDD8CA800}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xrc", "..\..\wxWidgets\build\msw\wx_xrc.vcproj", "{C66CC441-3866-4692-B5C9-EB4C40C3F7D8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aui", "..\..\wxWidgets\build\msw\wx_aui.vcproj", "{E8A05113-6B2E-404C-9D60-29706157C374}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "richtext", "..\..\wxWidgets\build\msw\wx_richtext.vcproj", "{83BBCFD0-6974-4CDF-A392-C5BE6F46AF89}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gl", "..\..\wxWidgets\build\msw\wx_gl.vcproj", "{2A0C506D-80AE-4C15-B7EA-00E58CA0F30C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmuleec", "libs\libmuleec\libmuleec.vcproj", "{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmulecommon", "libs\libmulecommon\libmulecommon.vcproj", "{293E6133-239A-4ED4-838E-9182B07C6B35}"
-	ProjectSection(ProjectDependencies) = postProject
-		{589673C3-7482-404F-885C-8EBCB9F87EB8} = {589673C3-7482-404F-885C-8EBCB9F87EB8}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libkad", "libs\libkad\libkad.vcproj", "{DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMule", "aMule\aMule.vcproj", "{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}"
-	ProjectSection(ProjectDependencies) = postProject
-		{345799D6-A1CF-445E-9549-261F234036DC} = {345799D6-A1CF-445E-9549-261F234036DC}
-		{DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE} = {DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE}
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234} = {0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234}
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF} = {16C7A051-9097-41A5-BA26-FEC1EA1F16EF}
-		{80B284D2-4BD6-45A0-8BC6-869A1838DD03} = {80B284D2-4BD6-45A0-8BC6-869A1838DD03}
-		{A6E63596-B39C-4A12-B8DF-1B49223D1A1C} = {A6E63596-B39C-4A12-B8DF-1B49223D1A1C}
-		{8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D} = {8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D}
-		{0CFF4FC9-1446-49A2-BC73-10C7C74552B4} = {0CFF4FC9-1446-49A2-BC73-10C7C74552B4}
-		{EC85BF8B-F045-44BE-A6DF-14345BE67039} = {EC85BF8B-F045-44BE-A6DF-14345BE67039}
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}
-		{548481EF-9B67-43B3-86FB-BA0D723A33F2} = {548481EF-9B67-43B3-86FB-BA0D723A33F2}
-		{589673C3-7482-404F-885C-8EBCB9F87EB8} = {589673C3-7482-404F-885C-8EBCB9F87EB8}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmuleexternalwxlistctrl", "libs\libmuleexternalwxlistctrl\libmuleexternalwxlistctrl.vcproj", "{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aLinkCreator", "aLinkCreator\aLinkCreator.vcproj", "{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234} = {0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234}
-		{80B284D2-4BD6-45A0-8BC6-869A1838DD03} = {80B284D2-4BD6-45A0-8BC6-869A1838DD03}
-		{589673C3-7482-404F-885C-8EBCB9F87EB8} = {589673C3-7482-404F-885C-8EBCB9F87EB8}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmuleunittest", "UnitTests\libmuleunittest\libmuleunittest.vcproj", "{5FE132E5-83CB-4880-B2D9-CA828E008786}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{589673C3-7482-404F-885C-8EBCB9F87EB8} = {589673C3-7482-404F-885C-8EBCB9F87EB8}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FileDataIO", "UnitTests\FileDataIO\FileDataIO.vcproj", "{C27E39F5-BA92-4245-A537-7B7852508900}"
-	ProjectSection(ProjectDependencies) = postProject
-		{DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE} = {DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE}
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{5FE132E5-83CB-4880-B2D9-CA828E008786} = {5FE132E5-83CB-4880-B2D9-CA828E008786}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Format", "UnitTests\FormatTest\FormatTest.vcproj", "{269AD4B7-8245-4476-9179-E4659F6E217F}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StringFunctions", "UnitTests\StringFunctions\StringFunctions.vcproj", "{5A024799-C5ED-41CF-BF0C-914A11799234}"
-	ProjectSection(ProjectDependencies) = postProject
-		{5FE132E5-83CB-4880-B2D9-CA828E008786} = {5FE132E5-83CB-4880-B2D9-CA828E008786}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetworkFunctions", "UnitTests\NetworkFunctions\NetworkFunctions.vcproj", "{6B452F4F-43C9-408E-BDF3-C70FCA9F257D}"
-	ProjectSection(ProjectDependencies) = postProject
-		{EC85BF8B-F045-44BE-A6DF-14345BE67039} = {EC85BF8B-F045-44BE-A6DF-14345BE67039}
-		{5FE132E5-83CB-4880-B2D9-CA828E008786} = {5FE132E5-83CB-4880-B2D9-CA828E008786}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RangeMap", "UnitTests\RangeMap\RangeMap.vcproj", "{9A19C692-FFBD-467C-B8A8-63166F421940}"
-	ProjectSection(ProjectDependencies) = postProject
-		{5FE132E5-83CB-4880-B2D9-CA828E008786} = {5FE132E5-83CB-4880-B2D9-CA828E008786}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleCMD", "aMuleCMD\aMuleCMD.vcproj", "{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}"
-	ProjectSection(ProjectDependencies) = postProject
-		{919C67BA-FAA4-41F5-96E8-C51879D2A0D5} = {919C67BA-FAA4-41F5-96E8-C51879D2A0D5}
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{0CFF4FC9-1446-49A2-BC73-10C7C74552B4} = {0CFF4FC9-1446-49A2-BC73-10C7C74552B4}
-		{EC85BF8B-F045-44BE-A6DF-14345BE67039} = {EC85BF8B-F045-44BE-A6DF-14345BE67039}
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}
-		{589673C3-7482-404F-885C-8EBCB9F87EB8} = {589673C3-7482-404F-885C-8EBCB9F87EB8}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleGUI", "aMuleGUI\aMuleGUI.vcproj", "{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}"
-	ProjectSection(ProjectDependencies) = postProject
-		{345799D6-A1CF-445E-9549-261F234036DC} = {345799D6-A1CF-445E-9549-261F234036DC}
-		{DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE} = {DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE}
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234} = {0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234}
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF} = {16C7A051-9097-41A5-BA26-FEC1EA1F16EF}
-		{80B284D2-4BD6-45A0-8BC6-869A1838DD03} = {80B284D2-4BD6-45A0-8BC6-869A1838DD03}
-		{A6E63596-B39C-4A12-B8DF-1B49223D1A1C} = {A6E63596-B39C-4A12-B8DF-1B49223D1A1C}
-		{8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D} = {8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D}
-		{0CFF4FC9-1446-49A2-BC73-10C7C74552B4} = {0CFF4FC9-1446-49A2-BC73-10C7C74552B4}
-		{EC85BF8B-F045-44BE-A6DF-14345BE67039} = {EC85BF8B-F045-44BE-A6DF-14345BE67039}
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}
-		{548481EF-9B67-43B3-86FB-BA0D723A33F2} = {548481EF-9B67-43B3-86FB-BA0D723A33F2}
-		{589673C3-7482-404F-885C-8EBCB9F87EB8} = {589673C3-7482-404F-885C-8EBCB9F87EB8}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ed2k", "ed2k\ed2k.vcproj", "{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Debug|Win32.Build.0 = Debug|Win32
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.ActiveCfg = Release|Win32
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.Build.0 = Release|Win32
-		{80B284D2-4BD6-45A0-8BC6-869A1838DD03}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{80B284D2-4BD6-45A0-8BC6-869A1838DD03}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{80B284D2-4BD6-45A0-8BC6-869A1838DD03}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{80B284D2-4BD6-45A0-8BC6-869A1838DD03}.Release|Win32.Build.0 = Unicode Release|Win32
-		{0CFF4FC9-1446-49A2-BC73-10C7C74552B4}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{0CFF4FC9-1446-49A2-BC73-10C7C74552B4}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{0CFF4FC9-1446-49A2-BC73-10C7C74552B4}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{0CFF4FC9-1446-49A2-BC73-10C7C74552B4}.Release|Win32.Build.0 = Unicode Release|Win32
-		{8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D}.Release|Win32.Build.0 = Unicode Release|Win32
-		{548481EF-9B67-43B3-86FB-BA0D723A33F2}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{548481EF-9B67-43B3-86FB-BA0D723A33F2}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{548481EF-9B67-43B3-86FB-BA0D723A33F2}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{548481EF-9B67-43B3-86FB-BA0D723A33F2}.Release|Win32.Build.0 = Unicode Release|Win32
-		{A6E63596-B39C-4A12-B8DF-1B49223D1A1C}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{A6E63596-B39C-4A12-B8DF-1B49223D1A1C}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{A6E63596-B39C-4A12-B8DF-1B49223D1A1C}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{A6E63596-B39C-4A12-B8DF-1B49223D1A1C}.Release|Win32.Build.0 = Unicode Release|Win32
-		{848C4A27-35BF-4A39-9D94-7D44230A8C7A}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{848C4A27-35BF-4A39-9D94-7D44230A8C7A}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{848C4A27-35BF-4A39-9D94-7D44230A8C7A}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{848C4A27-35BF-4A39-9D94-7D44230A8C7A}.Release|Win32.Build.0 = Unicode Release|Win32
-		{589673C3-7482-404F-885C-8EBCB9F87EB8}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{589673C3-7482-404F-885C-8EBCB9F87EB8}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{589673C3-7482-404F-885C-8EBCB9F87EB8}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{589673C3-7482-404F-885C-8EBCB9F87EB8}.Release|Win32.Build.0 = Unicode Release|Win32
-		{EC85BF8B-F045-44BE-A6DF-14345BE67039}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{EC85BF8B-F045-44BE-A6DF-14345BE67039}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{EC85BF8B-F045-44BE-A6DF-14345BE67039}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{EC85BF8B-F045-44BE-A6DF-14345BE67039}.Release|Win32.Build.0 = Unicode Release|Win32
-		{0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234}.Release|Win32.Build.0 = Unicode Release|Win32
-		{345799D6-A1CF-445E-9549-261F234036DC}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{345799D6-A1CF-445E-9549-261F234036DC}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{345799D6-A1CF-445E-9549-261F234036DC}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{345799D6-A1CF-445E-9549-261F234036DC}.Release|Win32.Build.0 = Unicode Release|Win32
-		{EC8B4DF1-2154-4600-8B9E-54B123614AAF}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{EC8B4DF1-2154-4600-8B9E-54B123614AAF}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{EC8B4DF1-2154-4600-8B9E-54B123614AAF}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{EC8B4DF1-2154-4600-8B9E-54B123614AAF}.Release|Win32.Build.0 = Unicode Release|Win32
-		{25567CA5-A4DE-47BA-8C53-42118249A54F}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{25567CA5-A4DE-47BA-8C53-42118249A54F}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{25567CA5-A4DE-47BA-8C53-42118249A54F}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{25567CA5-A4DE-47BA-8C53-42118249A54F}.Release|Win32.Build.0 = Unicode Release|Win32
-		{D4A94342-E8FA-4912-AB37-0571502B0FE1}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{D4A94342-E8FA-4912-AB37-0571502B0FE1}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{D4A94342-E8FA-4912-AB37-0571502B0FE1}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{D4A94342-E8FA-4912-AB37-0571502B0FE1}.Release|Win32.Build.0 = Unicode Release|Win32
-		{8CECC224-BB6F-4F79-9CF1-CD664304AFE9}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{8CECC224-BB6F-4F79-9CF1-CD664304AFE9}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{8CECC224-BB6F-4F79-9CF1-CD664304AFE9}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{8CECC224-BB6F-4F79-9CF1-CD664304AFE9}.Release|Win32.Build.0 = Unicode Release|Win32
-		{919C67BA-FAA4-41F5-96E8-C51879D2A0D5}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{919C67BA-FAA4-41F5-96E8-C51879D2A0D5}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{919C67BA-FAA4-41F5-96E8-C51879D2A0D5}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{919C67BA-FAA4-41F5-96E8-C51879D2A0D5}.Release|Win32.Build.0 = Unicode Release|Win32
-		{0B8669B5-1DE4-4015-8749-AF6CDD8CA800}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{0B8669B5-1DE4-4015-8749-AF6CDD8CA800}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{0B8669B5-1DE4-4015-8749-AF6CDD8CA800}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{0B8669B5-1DE4-4015-8749-AF6CDD8CA800}.Release|Win32.Build.0 = Unicode Release|Win32
-		{C66CC441-3866-4692-B5C9-EB4C40C3F7D8}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{C66CC441-3866-4692-B5C9-EB4C40C3F7D8}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{C66CC441-3866-4692-B5C9-EB4C40C3F7D8}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{C66CC441-3866-4692-B5C9-EB4C40C3F7D8}.Release|Win32.Build.0 = Unicode Release|Win32
-		{E8A05113-6B2E-404C-9D60-29706157C374}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{E8A05113-6B2E-404C-9D60-29706157C374}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{E8A05113-6B2E-404C-9D60-29706157C374}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{E8A05113-6B2E-404C-9D60-29706157C374}.Release|Win32.Build.0 = Unicode Release|Win32
-		{83BBCFD0-6974-4CDF-A392-C5BE6F46AF89}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{83BBCFD0-6974-4CDF-A392-C5BE6F46AF89}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{83BBCFD0-6974-4CDF-A392-C5BE6F46AF89}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{83BBCFD0-6974-4CDF-A392-C5BE6F46AF89}.Release|Win32.Build.0 = Unicode Release|Win32
-		{2A0C506D-80AE-4C15-B7EA-00E58CA0F30C}.Debug|Win32.ActiveCfg = Unicode Debug|Win32
-		{2A0C506D-80AE-4C15-B7EA-00E58CA0F30C}.Debug|Win32.Build.0 = Unicode Debug|Win32
-		{2A0C506D-80AE-4C15-B7EA-00E58CA0F30C}.Release|Win32.ActiveCfg = Unicode Release|Win32
-		{2A0C506D-80AE-4C15-B7EA-00E58CA0F30C}.Release|Win32.Build.0 = Unicode Release|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug|Win32.Build.0 = Debug|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release|Win32.ActiveCfg = Release|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release|Win32.Build.0 = Release|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug|Win32.ActiveCfg = Debug|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug|Win32.Build.0 = Debug|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release|Win32.ActiveCfg = Release|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release|Win32.Build.0 = Release|Win32
-		{DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE}.Debug|Win32.ActiveCfg = Debug|Win32
-		{DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE}.Debug|Win32.Build.0 = Debug|Win32
-		{DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE}.Release|Win32.ActiveCfg = Release|Win32
-		{DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE}.Release|Win32.Build.0 = Release|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug|Win32.Build.0 = Debug|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release|Win32.ActiveCfg = Release|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release|Win32.Build.0 = Release|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug|Win32.Build.0 = Debug|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release|Win32.ActiveCfg = Release|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release|Win32.Build.0 = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug|Win32.Build.0 = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release|Win32.ActiveCfg = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release|Win32.Build.0 = Release|Win32
-		{5FE132E5-83CB-4880-B2D9-CA828E008786}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5FE132E5-83CB-4880-B2D9-CA828E008786}.Debug|Win32.Build.0 = Debug|Win32
-		{5FE132E5-83CB-4880-B2D9-CA828E008786}.Release|Win32.ActiveCfg = Release|Win32
-		{5FE132E5-83CB-4880-B2D9-CA828E008786}.Release|Win32.Build.0 = Release|Win32
-		{C27E39F5-BA92-4245-A537-7B7852508900}.Debug|Win32.ActiveCfg = Debug|Win32
-		{C27E39F5-BA92-4245-A537-7B7852508900}.Debug|Win32.Build.0 = Debug|Win32
-		{C27E39F5-BA92-4245-A537-7B7852508900}.Release|Win32.ActiveCfg = Release|Win32
-		{C27E39F5-BA92-4245-A537-7B7852508900}.Release|Win32.Build.0 = Release|Win32
-		{269AD4B7-8245-4476-9179-E4659F6E217F}.Debug|Win32.ActiveCfg = Debug|Win32
-		{269AD4B7-8245-4476-9179-E4659F6E217F}.Release|Win32.ActiveCfg = Release|Win32
-		{5A024799-C5ED-41CF-BF0C-914A11799234}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5A024799-C5ED-41CF-BF0C-914A11799234}.Debug|Win32.Build.0 = Debug|Win32
-		{5A024799-C5ED-41CF-BF0C-914A11799234}.Release|Win32.ActiveCfg = Release|Win32
-		{5A024799-C5ED-41CF-BF0C-914A11799234}.Release|Win32.Build.0 = Release|Win32
-		{6B452F4F-43C9-408E-BDF3-C70FCA9F257D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{6B452F4F-43C9-408E-BDF3-C70FCA9F257D}.Debug|Win32.Build.0 = Debug|Win32
-		{6B452F4F-43C9-408E-BDF3-C70FCA9F257D}.Release|Win32.ActiveCfg = Release|Win32
-		{6B452F4F-43C9-408E-BDF3-C70FCA9F257D}.Release|Win32.Build.0 = Release|Win32
-		{9A19C692-FFBD-467C-B8A8-63166F421940}.Debug|Win32.ActiveCfg = Debug|Win32
-		{9A19C692-FFBD-467C-B8A8-63166F421940}.Debug|Win32.Build.0 = Debug|Win32
-		{9A19C692-FFBD-467C-B8A8-63166F421940}.Release|Win32.ActiveCfg = Release|Win32
-		{9A19C692-FFBD-467C-B8A8-63166F421940}.Release|Win32.Build.0 = Release|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug|Win32.ActiveCfg = Debug|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug|Win32.Build.0 = Debug|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release|Win32.ActiveCfg = Release|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release|Win32.Build.0 = Release|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug|Win32.ActiveCfg = Debug|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug|Win32.Build.0 = Debug|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release|Win32.ActiveCfg = Release|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release|Win32.Build.0 = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug|Win32.Build.0 = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release|Win32.ActiveCfg = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(NestedProjects) = preSolution
-		{04ECC032-1961-45B0-B0C3-0064A8E3B880} = {138CD730-94FC-41BA-92BB-E88E1DF41CC3}
-		{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {138CD730-94FC-41BA-92BB-E88E1DF41CC3}
-		{80B284D2-4BD6-45A0-8BC6-869A1838DD03} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{0CFF4FC9-1446-49A2-BC73-10C7C74552B4} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{8FD8AC4A-CE8A-4AC8-8FD4-97D022B1B89D} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{548481EF-9B67-43B3-86FB-BA0D723A33F2} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{A6E63596-B39C-4A12-B8DF-1B49223D1A1C} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{848C4A27-35BF-4A39-9D94-7D44230A8C7A} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{589673C3-7482-404F-885C-8EBCB9F87EB8} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{EC85BF8B-F045-44BE-A6DF-14345BE67039} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{0DAC806D-B4B8-4CF6-BCD3-D6A7C683D234} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{345799D6-A1CF-445E-9549-261F234036DC} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{EC8B4DF1-2154-4600-8B9E-54B123614AAF} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{25567CA5-A4DE-47BA-8C53-42118249A54F} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{D4A94342-E8FA-4912-AB37-0571502B0FE1} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{8CECC224-BB6F-4F79-9CF1-CD664304AFE9} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{919C67BA-FAA4-41F5-96E8-C51879D2A0D5} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{0B8669B5-1DE4-4015-8749-AF6CDD8CA800} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{C66CC441-3866-4692-B5C9-EB4C40C3F7D8} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{E8A05113-6B2E-404C-9D60-29706157C374} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{83BBCFD0-6974-4CDF-A392-C5BE6F46AF89} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{2A0C506D-80AE-4C15-B7EA-00E58CA0F30C} = {04ECC032-1961-45B0-B0C3-0064A8E3B880}
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1} = {29E96B92-653C-431E-BE45-756B048E5A11}
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {29E96B92-653C-431E-BE45-756B048E5A11}
-		{DBADF72E-2572-403F-B0D6-AC8C9B3ECCFE} = {29E96B92-653C-431E-BE45-756B048E5A11}
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF} = {29E96B92-653C-431E-BE45-756B048E5A11}
-		{D176CBB0-E9BB-4827-8A37-2F05423EC07F} = {CB2CC2C4-0882-434D-8B96-4984740BCC23}
-		{91C69AB8-8B41-4320-99F8-CB97A5258E2D} = {CB2CC2C4-0882-434D-8B96-4984740BCC23}
-		{9AC4A7BC-3E72-4C97-81FF-D8708331CC54} = {CB2CC2C4-0882-434D-8B96-4984740BCC23}
-		{BD53B16D-3577-4245-A420-070A890D35AB} = {CB2CC2C4-0882-434D-8B96-4984740BCC23}
-		{B601F0F8-B6DC-4DF5-B4CD-2E1807E0E68D} = {CB2CC2C4-0882-434D-8B96-4984740BCC23}
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE} = {91C69AB8-8B41-4320-99F8-CB97A5258E2D}
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5} = {9AC4A7BC-3E72-4C97-81FF-D8708331CC54}
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6} = {9AC4A7BC-3E72-4C97-81FF-D8708331CC54}
-		{02262EFC-86BC-45B1-8401-A26BB365E717} = {660C24AD-2ABA-406B-B56A-BF9AE52AD432}
-		{5FE132E5-83CB-4880-B2D9-CA828E008786} = {660C24AD-2ABA-406B-B56A-BF9AE52AD432}
-		{C27E39F5-BA92-4245-A537-7B7852508900} = {02262EFC-86BC-45B1-8401-A26BB365E717}
-		{269AD4B7-8245-4476-9179-E4659F6E217F} = {02262EFC-86BC-45B1-8401-A26BB365E717}
-		{5A024799-C5ED-41CF-BF0C-914A11799234} = {02262EFC-86BC-45B1-8401-A26BB365E717}
-		{6B452F4F-43C9-408E-BDF3-C70FCA9F257D} = {02262EFC-86BC-45B1-8401-A26BB365E717}
-		{9A19C692-FFBD-467C-B8A8-63166F421940} = {02262EFC-86BC-45B1-8401-A26BB365E717}
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA} = {BD53B16D-3577-4245-A420-070A890D35AB}
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7} = {BD53B16D-3577-4245-A420-070A890D35AB}
-	EndGlobalSection
-EndGlobal
diff --git a/platforms/Windows/MSVC9/aMule-MSVCE.sln b/platforms/Windows/MSVC9/aMule-MSVCE.sln
deleted file mode 100644
index e3f9a2b..0000000
--- a/platforms/Windows/MSVC9/aMule-MSVCE.sln
+++ /dev/null
@@ -1,216 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMule", "aMule\aMule.vcproj", "{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF} = {16C7A051-9097-41A5-BA26-FEC1EA1F16EF}
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1} = {8CA0F896-7689-4CE0-9D16-99C9C83847E1}
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6} = {F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmuleec", "libs\libmuleec\libmuleec.vcproj", "{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmulecommon", "libs\libmulecommon\libmulecommon.vcproj", "{293E6133-239A-4ED4-838E-9182B07C6B35}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmuleexternalwxlistctrl", "libs\libmuleexternalwxlistctrl\libmuleexternalwxlistctrl.vcproj", "{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aLinkCreator", "aLinkCreator\aLinkCreator.vcproj", "{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6} = {F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleCMD", "aMuleCMD\aMuleCMD.vcproj", "{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6} = {F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleGUI", "aMuleGUI\aMuleGUI.vcproj", "{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF} = {16C7A051-9097-41A5-BA26-FEC1EA1F16EF}
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1} = {8CA0F896-7689-4CE0-9D16-99C9C83847E1}
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6} = {F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ed2k", "ed2k\ed2k.vcproj", "{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libext", "libs\libext\libext.vcproj", "{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fileview", "fileview\fileview.vcproj", "{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6} = {F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGeoIP", "libs\libGeoIP\libGeoIP.vcproj", "{8CA0F896-7689-4CE0-9D16-99C9C83847E1}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleD", "aMuleD\aMuleD.vcproj", "{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6} = {F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aMuleWeb", "aMuleWeb\aMuleWeb.vcproj", "{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1} = {5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6} = {F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxCas", "wxCas\wxCas.vcproj", "{5FCAFC30-922E-446F-8DF5-D71819AB6356}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6} = {F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alcc", "aLinkCreator\alcc.vcproj", "{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}"
-	ProjectSection(ProjectDependencies) = postProject
-		{293E6133-239A-4ED4-838E-9182B07C6B35} = {293E6133-239A-4ED4-838E-9182B07C6B35}
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6} = {F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Debug29|Win32 = Debug29|Win32
-		Release|Win32 = Release|Win32
-		Release29|Win32 = Release29|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug|Win32.Build.0 = Debug|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Debug29|Win32.Build.0 = Debug29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release|Win32.ActiveCfg = Release|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release|Win32.Build.0 = Release|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release29|Win32.ActiveCfg = Release29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}.Release29|Win32.Build.0 = Release29|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug|Win32.Build.0 = Debug|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Debug29|Win32.Build.0 = Debug29|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release|Win32.ActiveCfg = Release|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release|Win32.Build.0 = Release|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release29|Win32.ActiveCfg = Release29|Win32
-		{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}.Release29|Win32.Build.0 = Release29|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug|Win32.ActiveCfg = Debug|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug|Win32.Build.0 = Debug|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Debug29|Win32.Build.0 = Debug29|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release|Win32.ActiveCfg = Release|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release|Win32.Build.0 = Release|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release29|Win32.ActiveCfg = Release29|Win32
-		{293E6133-239A-4ED4-838E-9182B07C6B35}.Release29|Win32.Build.0 = Release29|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug|Win32.Build.0 = Debug|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Debug29|Win32.Build.0 = Debug29|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release|Win32.ActiveCfg = Release|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release|Win32.Build.0 = Release|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release29|Win32.ActiveCfg = Release29|Win32
-		{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}.Release29|Win32.Build.0 = Release29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug|Win32.Build.0 = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Debug29|Win32.Build.0 = Debug29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release|Win32.ActiveCfg = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release|Win32.Build.0 = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release29|Win32.ActiveCfg = Release29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB5}.Release29|Win32.Build.0 = Release29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug|Win32.ActiveCfg = Debug|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug|Win32.Build.0 = Debug|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Debug29|Win32.Build.0 = Debug29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release|Win32.ActiveCfg = Release|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release|Win32.Build.0 = Release|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release29|Win32.ActiveCfg = Release29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}.Release29|Win32.Build.0 = Release29|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug|Win32.ActiveCfg = Debug|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug|Win32.Build.0 = Debug|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Debug29|Win32.Build.0 = Debug29|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release|Win32.ActiveCfg = Release|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release|Win32.Build.0 = Release|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release29|Win32.ActiveCfg = Release29|Win32
-		{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}.Release29|Win32.Build.0 = Release29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug|Win32.Build.0 = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug29|Win32.ActiveCfg = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Debug29|Win32.Build.0 = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release|Win32.ActiveCfg = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release|Win32.Build.0 = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release29|Win32.ActiveCfg = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}.Release29|Win32.Build.0 = Release|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug|Win32.Build.0 = Debug|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Debug29|Win32.Build.0 = Debug29|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.ActiveCfg = Release|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release|Win32.Build.0 = Release|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release29|Win32.ActiveCfg = Release29|Win32
-		{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}.Release29|Win32.Build.0 = Release29|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug|Win32.Build.0 = Debug|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Debug29|Win32.Build.0 = Debug29|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release|Win32.ActiveCfg = Release|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release|Win32.Build.0 = Release|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release29|Win32.ActiveCfg = Release29|Win32
-		{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}.Release29|Win32.Build.0 = Release29|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug|Win32.ActiveCfg = Debug|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug|Win32.Build.0 = Debug|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug29|Win32.ActiveCfg = Debug|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Debug29|Win32.Build.0 = Debug|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release|Win32.ActiveCfg = Release|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release|Win32.Build.0 = Release|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release29|Win32.ActiveCfg = Release|Win32
-		{8CA0F896-7689-4CE0-9D16-99C9C83847E1}.Release29|Win32.Build.0 = Release|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug|Win32.ActiveCfg = Debug|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug|Win32.Build.0 = Debug|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Debug29|Win32.Build.0 = Debug29|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release|Win32.ActiveCfg = Release|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release|Win32.Build.0 = Release|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release29|Win32.ActiveCfg = Release29|Win32
-		{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}.Release29|Win32.Build.0 = Release29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug|Win32.ActiveCfg = Debug|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug|Win32.Build.0 = Debug|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Debug29|Win32.Build.0 = Debug29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release|Win32.ActiveCfg = Release|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release|Win32.Build.0 = Release|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release29|Win32.ActiveCfg = Release29|Win32
-		{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}.Release29|Win32.Build.0 = Release29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug|Win32.ActiveCfg = Debug|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug|Win32.Build.0 = Debug|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Debug29|Win32.Build.0 = Debug29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release|Win32.ActiveCfg = Release|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release|Win32.Build.0 = Release|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release29|Win32.ActiveCfg = Release29|Win32
-		{5FCAFC30-922E-446F-8DF5-D71819AB6356}.Release29|Win32.Build.0 = Release29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug|Win32.Build.0 = Debug|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug29|Win32.ActiveCfg = Debug29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Debug29|Win32.Build.0 = Debug29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release|Win32.ActiveCfg = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release|Win32.Build.0 = Release|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release29|Win32.ActiveCfg = Release29|Win32
-		{FF560C5D-4369-4DEF-B2EC-6F507D994DB6}.Release29|Win32.Build.0 = Release29|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/platforms/Windows/MSVC9/aMule/aMule.vcproj b/platforms/Windows/MSVC9/aMule/aMule.vcproj
deleted file mode 100644
index 6176676..0000000
--- a/platforms/Windows/MSVC9/aMule/aMule.vcproj
+++ /dev/null
@@ -1,1648 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="aMule"
-	ProjectGUID="{5FCAFC30-922E-446F-8DF5-D71819ABC2FE}"
-	RootNamespace="aMule"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;ENABLE_NLS;ENABLE_IP2COUNTRY;HAVE_CONFIG_H"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;ENABLE_NLS;ENABLE_IP2COUNTRY;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;ENABLE_NLS;ENABLE_IP2COUNTRY;HAVE_CONFIG_H"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;ENABLE_NLS;ENABLE_IP2COUNTRY;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"All-Platform P2P Client Based on eMule\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\AddFriend.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amule-gui.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amule.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amuleAppCommon.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amuleDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\AsyncDNS.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\BarShader.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\BaseClient.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CanceledFileList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CaptchaDialog.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CaptchaGenerator.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CatDialog.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ChatSelector.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ChatWnd.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientCredits.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientCreditsList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientDetailDialog.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientRef.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientTCPSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientUDPSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ColorFrameCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CommentDialog.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CommentDialogLst.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CorruptionBlackBox.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DataToText.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DeadSourceList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DirectoryTreeCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadClient.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadQueue.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ECSpecialCoreTags.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ECSpecialMuleTags.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ED2KLink.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EditServerListDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EMSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EncryptedDatagramSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EncryptedStreamSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConn.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileArea.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileAutoClose.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileDetailDialog.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileDetailListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Friend.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FriendList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FriendListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GapList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GenericClientListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GetTickCount.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GuiEvents.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\HTTPDownload.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IP2Country.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IPFilter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IPFilterScanner.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KadDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KnownFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KnownFileList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ListenSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Logger.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MagnetURI.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MemFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleCollection.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleColour.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleGifCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleNotebook.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleTextCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleTrayIcon.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleUDPSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\muuli_wdr.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\NetworkFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OScopeCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Packet.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Parser.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4065"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4065"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4065"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4065"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PartFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PartFileConvert.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PartFileConvertDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\PCH.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PlatformSpecific.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Preferences.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PrefsUnifiedDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Proxy.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RandomFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RC4Encrypt.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RLE.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SafeFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Scanner.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4003"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4003"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4003"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4003"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Server.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerConnect.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerUDPSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerWnd.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SHA.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SHAHashSet.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFileList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilePeersListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilesCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilesWnd.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SourceListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StateMachine.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Statistics.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StatisticsDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StatTree.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Tag.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TerminationProcess.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TerminationProcessAmuleweb.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ThreadScheduler.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ThreadTasks.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Timer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TransferWnd.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UploadBandwidthThrottler.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UploadClient.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UploadQueue.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UserEvents.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\AddFriend.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amule.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amuleDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amuleIPV4Address.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ArchSpecific.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\AsyncDNS.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\BarShader.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\BitVector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CanceledFileList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CaptchaDialog.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CaptchaGenerator.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CatDialog.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ChatSelector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ChatWnd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientCredits.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientCreditsList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientDetailDialog.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientRef.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientTCPSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientUDPSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ColorFrameCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CommentDialog.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CommentDialogLst.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Constants.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CorruptionBlackBox.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CryptoPP_Inc.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DataToText.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DeadSourceList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DirectoryTreeCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadQueue.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\libs\ec\cpp\ECID.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ED2KLink.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EditServerListDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EMSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EncryptedDatagramSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EncryptedStreamSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConn.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConnector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileArea.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileAutoClose.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileDetailDialog.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileDetailListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileLock.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Friend.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FriendList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FriendListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GapList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GenericClientListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GetTickCount.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GuiEvents.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\HTTPDownload.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\inetdownload.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\InternalEvents.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IP2Country.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IPFilter.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IPFilterScanner.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KadDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KnownFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KnownFileList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ListenSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Logger.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\include\common\Macros.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MagnetURI.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MD4Hash.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MemFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleCollection.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleColour.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleGifCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleNotebook.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleTextCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleThread.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleTrayIcon.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleUDPSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\muuli_wdr.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\NetworkFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Observable.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ObservableQueue.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OScopeCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherStructs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Packet.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PartFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PartFileConvert.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PartFileConvertDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\PCH.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PlatformSpecific.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Preferences.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PrefsUnifiedDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Proxy.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RandomFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RangeMap.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RC4Encrypt.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RLE.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SafeFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Scanner.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ScopedPtr.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchExpr.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Server.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerConnect.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerUDPSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerWnd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SHA.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SHAHashSet.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFileList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilePeersListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilesCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilesWnd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SourceListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StateMachine.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Statistics.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StatisticsDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StatTree.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Tag.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TerminationProcess.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ThreadScheduler.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ThreadTasks.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ThrottledSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Timer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TransferWnd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Types.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\updownclient.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UploadBandwidthThrottler.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UploadQueue.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UPnPCompatibility.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UserEvents.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\..\..\..\amule.rc"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCResourceCompilerTool"
-						PreprocessorDefinitions="_UNICODE;UNICODE;MSVC"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug29|Win32"
-					>
-					<Tool
-						Name="VCResourceCompilerTool"
-						PreprocessorDefinitions="_UNICODE;UNICODE;MSVC"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\version.rc"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files KAD"
-			>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\Contact.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Defines.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Entry.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Error.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Indexed.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\utils\KadClientSearcher.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Kademlia.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\net\KademliaUDPListener.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\utils\KadUDPKey.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\Maps.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\net\PacketTracking.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Prefs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\RoutingBin.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\RoutingZone.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Search.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\SearchManager.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\UDPFirewallTester.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\utils\UInt128.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Source Files KAD"
-			>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\Contact.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Entry.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Indexed.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Kademlia.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\net\KademliaUDPListener.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\net\PacketTracking.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Prefs.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\RoutingBin.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\RoutingZone.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Search.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\SearchManager.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\UDPFirewallTester.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\utils\UInt128.cpp"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/aMuleCMD/aMuleCMD.vcproj b/platforms/Windows/MSVC9/aMuleCMD/aMuleCMD.vcproj
deleted file mode 100644
index c3f6c62..0000000
--- a/platforms/Windows/MSVC9/aMuleCMD/aMuleCMD.vcproj
+++ /dev/null
@@ -1,396 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="aMuleCMD"
-	ProjectGUID="{EC3DE6B0-0C01-4D64-928A-4ADDB09472BA}"
-	RootNamespace="aMuleCMD"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Text Client\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConnector.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\LoggerConsole.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\NetworkFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TextClient.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConnector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\NetworkFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TextClient.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\version.rc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/aMuleD/aMuleD.vcproj b/platforms/Windows/MSVC9/aMuleD/aMuleD.vcproj
deleted file mode 100644
index e23b16b..0000000
--- a/platforms/Windows/MSVC9/aMuleD/aMuleD.vcproj
+++ /dev/null
@@ -1,836 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="aMuleD"
-	ProjectGUID="{10E42FDA-AA34-4F8E-BC7C-B51EACA4E75F}"
-	RootNamespace="aMuleD"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;AMULE_DAEMON"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Daemon\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;AMULE_DAEMON"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Daemon\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;AMULE_DAEMON"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Daemon\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;AMULE_DAEMON"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Daemon\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\amule.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amuleAppCommon.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amuled.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\AsyncDNS.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\BaseClient.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CanceledFileList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientCredits.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientCreditsList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientRef.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientTCPSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientUDPSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\Contact.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CorruptionBlackBox.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DataToText.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DeadSourceList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadClient.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadQueue.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ECSpecialCoreTags.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ECSpecialMuleTags.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ED2KLink.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EMSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EncryptedDatagramSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EncryptedStreamSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Entry.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConn.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileArea.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileAutoClose.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Friend.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FriendList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GapList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GetTickCount.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GuiEvents.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\HTTPDownload.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Indexed.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IPFilter.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IPFilterScanner.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Kademlia.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\net\KademliaUDPListener.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KnownFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KnownFileList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ListenSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Logger.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MagnetURI.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MemFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleUDPSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\NetworkFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Packet.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\net\PacketTracking.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Parser.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4065"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4065"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4065"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4065"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PartFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\PCH.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PlatformSpecific.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Preferences.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Prefs.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Proxy.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RandomFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RC4Encrypt.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RLE.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\RoutingBin.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\routing\RoutingZone.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SafeFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Scanner.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4003"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4003"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4003"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						DisableSpecificWarnings="4003"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\Search.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\SearchManager.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Server.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerConnect.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerUDPSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SHA.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SHAHashSet.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFileList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StateMachine.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Statistics.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StatTree.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Tag.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TerminationProcess.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TerminationProcessAmuleweb.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ThreadScheduler.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ThreadTasks.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Timer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\kademlia\UDPFirewallTester.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\utils\UInt128.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UploadBandwidthThrottler.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UploadClient.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UploadQueue.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UserEvents.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\GapList.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\version.rc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/aMuleGUI/aMuleGUI.vcproj b/platforms/Windows/MSVC9/aMuleGUI/aMuleGUI.vcproj
deleted file mode 100644
index dc785a6..0000000
--- a/platforms/Windows/MSVC9/aMuleGUI/aMuleGUI.vcproj
+++ /dev/null
@@ -1,1118 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="aMuleGUI"
-	ProjectGUID="{9E601FE7-C3E1-48A8-8EAB-A1EEB501FBC7}"
-	RootNamespace="aMuleGUI"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;CLIENT_GUI;ENABLE_NLS;ENABLE_IP2COUNTRY"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;CLIENT_GUI;ENABLE_NLS;ENABLE_IP2COUNTRY"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;CLIENT_GUI;ENABLE_NLS;ENABLE_IP2COUNTRY"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP /Zm120"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;CLIENT_GUI;ENABLE_NLS;ENABLE_IP2COUNTRY"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderThrough="$(SolutionDir)PCH.h"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-				ForcedIncludeFiles="$(SolutionDir)PCH.h"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Remote GUI\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\AddFriend.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amule-gui.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amule-remote-gui.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amuleAppCommon.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amuleDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\BarShader.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CatDialog.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ChatSelector.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ChatWnd.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientCredits.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientDetailDialog.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientRef.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ColorFrameCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CommentDialog.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CommentDialogLst.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DataToText.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DirectoryTreeCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ECSpecialMuleTags.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ED2KLink.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EditServerListDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileDetailDialog.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileDetailListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Friend.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FriendListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GapList.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GenericClientListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GetTickCount.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GuiEvents.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\HTTPDownload.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IP2Country.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KadDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KnownFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Logger.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MagnetURI.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MemFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleCollection.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleColour.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleGifCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleNotebook.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleTextCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleTrayIcon.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\muuli_wdr.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\NetworkFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OScopeCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Packet.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PartFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\PCH.cpp"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release29|Win32"
-					>
-					<Tool
-						Name="VCCLCompilerTool"
-						UsePrecompiledHeader="1"
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Preferences.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PrefsUnifiedDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Proxy.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RLE.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SafeFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Server.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerWnd.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SHA.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilePeersListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilesCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilesWnd.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SourceListCtrl.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Statistics.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StatisticsDlg.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StatTree.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Tag.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TerminationProcess.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Timer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TransferWnd.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UserEvents.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\AddFriend.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amule-remote-gui.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amule.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\amuleDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ArchSpecific.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\BarShader.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\BitVector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CatDialog.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ChatSelector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ChatWnd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientCredits.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientCreditsList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientDetailDialog.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ClientRef.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ColorFrameCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CommentDialog.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CommentDialogLst.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Constants.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\CryptoPP_Inc.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DataToText.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DirectoryTreeCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\DownloadQueue.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\libs\ec\cpp\ECID.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ED2KLink.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\EditServerListDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConn.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConnector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileDetailDialog.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileDetailListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FileLock.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Friend.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FriendList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\FriendListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GapList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GenericClientListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GetTickCount.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\GuiEvents.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\InternalEvents.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\IP2Country.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KadDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KnownFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\KnownFileList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ListenSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Logger.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\include\common\Macros.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MagnetURI.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MD4Hash.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MemFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleCollection.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleColour.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleGifCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleNotebook.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleTextCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleThread.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleTrayIcon.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\muuli_wdr.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Observable.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ObservableQueue.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OScopeCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherStructs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PartFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\PCH.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Preferences.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\PrefsUnifiedDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Proxy.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RandomFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RangeMap.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RC4Encrypt.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RLE.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SafeFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Scanner.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ScopedPtr.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchFile.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SearchListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Server.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ServerWnd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SHA.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SHAHashSet.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFileList.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilePeersListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilesCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SharedFilesWnd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SourceListCtrl.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StateMachine.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Statistics.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StatisticsDlg.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\StatTree.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TerminationProcess.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ThreadScheduler.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\ThreadTasks.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Timer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\TransferWnd.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Types.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UpDownClientEC.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UploadBandwidthThrottler.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UPnPCompatibility.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\UserEvents.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			>
-			<File
-				RelativePath="..\..\..\..\amule.rc"
-				>
-			</File>
-			<File
-				RelativePath="..\version.rc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/aMuleWeb/aMuleWeb.vcproj b/platforms/Windows/MSVC9/aMuleWeb/aMuleWeb.vcproj
deleted file mode 100644
index af33db9..0000000
--- a/platforms/Windows/MSVC9/aMuleWeb/aMuleWeb.vcproj
+++ /dev/null
@@ -1,448 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="aMuleWeb"
-	ProjectGUID="{EC3DE6B0-0C01-4D64-928A-4ADDB09473BA}"
-	RootNamespace="aMuleWeb"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Web Server\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Web Server\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib";"$(SolutionDir)..\..\..\..\wxWidgets29\src\png""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;WITH_LIBPNG;HAVE_CONFIG_H"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Web Server\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib";"$(SolutionDir)..\..\..\..\wxWidgets29\src\png""
-				PreprocessorDefinitions="_CONSOLE;wxUSE_GUI=0;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS;WITH_LIBPNG;HAVE_CONFIG_H"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"aMule Web Server\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="ws2_32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConnector.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\LoggerConsole.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\NetworkFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\php_amule_lib.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\php_core_lib.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\php_lexer.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\php_parser.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\php_syntree.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\RLE.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\WebInterface.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\WebServer.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\WebSocket.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\ExternalConnector.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\NetworkFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\php_core_lib.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\php_parser.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\php_syntree.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\WebInterface.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\WebServer.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\webserver\src\WebSocket.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\version.rc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/ed2k/ed2k.vcproj b/platforms/Windows/MSVC9/ed2k/ed2k.vcproj
deleted file mode 100644
index 5ecb65c..0000000
--- a/platforms/Windows/MSVC9/ed2k/ed2k.vcproj
+++ /dev/null
@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="ed2k"
-	ProjectGUID="{FF560C5D-4369-4DEF-B2EC-6F507D554DB6}"
-	RootNamespace="ed2k"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;USE_STD_STRING;_SCL_SECURE_NO_WARNINGS"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"ED2K Links Handler\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="USE_STD_STRING;_SCL_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"ED2K Links Handler\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\ED2KLinkParser.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MagnetURI.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleCollection.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\FileLock.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MagnetURI.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\MuleCollection.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\version.rc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/fileview/fileview.vcproj b/platforms/Windows/MSVC9/fileview/fileview.vcproj
deleted file mode 100644
index 8c6435a..0000000
--- a/platforms/Windows/MSVC9/fileview/fileview.vcproj
+++ /dev/null
@@ -1,398 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="fileview"
-	ProjectGUID="{02A90868-EC36-4EA2-8D46-3B0BB33AEAC6}"
-	RootNamespace="fileview"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_SCL_SECURE_NO_WARNINGS;wxUSE_GUI=0;USE_WX_EXTENSIONS;MULEUNIT"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_SCL_SECURE_NO_WARNINGS;wxUSE_GUI=0;USE_WX_EXTENSIONS;MULEUNIT"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_SCL_SECURE_NO_WARNINGS;wxUSE_GUI=0;USE_WX_EXTENSIONS;MULEUNIT"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_SCL_SECURE_NO_WARNINGS;wxUSE_GUI=0;USE_WX_EXTENSIONS;MULEUNIT"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\CFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\fileview\eD2kFiles.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\fileview\FileView.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\fileview\KadFiles.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\OtherFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\fileview\Print.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\SafeFile.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\Tag.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\kademlia\utils\UInt128.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\utils\fileview\eD2kFiles.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\fileview\KadFiles.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\fileview\Print.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/libs/libGeoIP/libGeoIP.vcproj b/platforms/Windows/MSVC9/libs/libGeoIP/libGeoIP.vcproj
deleted file mode 100644
index 6b1c19d..0000000
--- a/platforms/Windows/MSVC9/libs/libGeoIP/libGeoIP.vcproj
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="libGeoIP"
-	ProjectGUID="{8CA0F896-7689-4CE0-9D16-99C9C83847E1}"
-	RootNamespace="libGeoIP"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="WIN32;_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""
-				PreprocessorDefinitions="WIN32;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath=".\GeoIP_X.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath=".\GeoIP.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-		<File
-			RelativePath=".\GeoIP.cmd"
-			>
-			<FileConfiguration
-				Name="Debug|Win32"
-				>
-				<Tool
-					Name="VCCustomBuildTool"
-					Description="create dummy files"
-					CommandLine="GeoIP.cmd&#x0D;&#x0A;"
-					Outputs="GeoIP_X.c"
-				/>
-			</FileConfiguration>
-			<FileConfiguration
-				Name="Release|Win32"
-				>
-				<Tool
-					Name="VCCustomBuildTool"
-					Description="create dummy files"
-					CommandLine="GeoIP.cmd&#x0D;&#x0A;"
-					Outputs="GeoIP_X.c"
-				/>
-			</FileConfiguration>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/libs/libext/buildlibext.vcproj b/platforms/Windows/MSVC9/libs/libext/buildlibext.vcproj
deleted file mode 100644
index a7e75c9..0000000
--- a/platforms/Windows/MSVC9/libs/libext/buildlibext.vcproj
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="buildlibext"
-	ProjectGUID="{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}"
-	RootNamespace="MSVCExpressExtLibs"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="10"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				Description=""
-				CommandLine=""
-				Outputs=""
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				Description="join external libs"
-				CommandLine="if not exist ..\..\$(ConfigurationName) mkdir ..\..\$(ConfigurationName)&#x0D;&#x0A;lib /out:..\..\$(ConfigurationName)\libext.lib "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxmsw28ud_media.lib" "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxjpegd.lib" "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxmsw28ud_adv.lib" "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxregexud.lib" "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxmsw28ud_richtext.lib" &q [...]
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="10"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				Description=""
-				CommandLine=""
-				Outputs=""
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				Description="join external libs"
-				CommandLine="if not exist ..\..\$(ConfigurationName) mkdir ..\..\$(ConfigurationName)&#x0D;&#x0A;lib /out:..\..\$(ConfigurationName)\libext.lib "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxmsw28u_media.lib" "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxjpeg.lib" "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxmsw28u_adv.lib" "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxregexu.lib" "..\..\..\..\..\..\wxwidgets\lib\vc_lib\wxmsw28u_richtext.lib" ". [...]
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="10"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				Description=""
-				CommandLine=""
-				Outputs=""
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				Description="join external libs"
-				CommandLine="if not exist ..\..\$(ConfigurationName) mkdir ..\..\$(ConfigurationName)&#x0D;&#x0A;lib /out:..\..\$(ConfigurationName)\libext.lib "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxmsw29ud_media.lib" "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxjpegd.lib" "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxmsw29ud_adv.lib" "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxregexud.lib" "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxmsw29ud_richtext.li [...]
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="10"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				Description=""
-				CommandLine=""
-				Outputs=""
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				Description="join external libs"
-				CommandLine="if not exist ..\..\$(ConfigurationName) mkdir ..\..\$(ConfigurationName)&#x0D;&#x0A;lib /out:..\..\$(ConfigurationName)\libext.lib "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxmsw29u_media.lib" "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxjpeg.lib" "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxmsw29u_adv.lib" "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxregexu.lib" "..\..\..\..\..\..\wxwidgets29\lib\vc_lib\wxmsw29u_richtext.lib&quo [...]
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/libs/libext/libext.vcproj b/platforms/Windows/MSVC9/libs/libext/libext.vcproj
deleted file mode 100644
index 02f371e..0000000
--- a/platforms/Windows/MSVC9/libs/libext/libext.vcproj
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="libext"
-	ProjectGUID="{F8C2C7F5-CBF1-46C1-81C9-22AD406B52C6}"
-	RootNamespace="MSVCExpressExtLibs"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				Description=""
-				CommandLine=""
-				Outputs=""
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)\libext.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine=""
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				Description=""
-				CommandLine=""
-				Outputs=""
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				LinkLibraryDependencies="true"
-				OutputFile="$(OutDir)\libext.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine=""
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				Description=""
-				CommandLine=""
-				Outputs=""
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="$(OutDir)\libext.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine=""
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="2"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-				CommandLine=""
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-				Description=""
-				CommandLine=""
-				Outputs=""
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-				LinkLibraryDependencies="true"
-				OutputFile="$(OutDir)\libext.lib"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine=""
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/libs/libmulecommon/libmulecommon.vcproj b/platforms/Windows/MSVC9/libs/libmulecommon/libmulecommon.vcproj
deleted file mode 100644
index 2b20e8c..0000000
--- a/platforms/Windows/MSVC9/libs/libmulecommon/libmulecommon.vcproj
+++ /dev/null
@@ -1,394 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="libmulecommon"
-	ProjectGUID="{293E6133-239A-4ED4-838E-9182B07C6B35}"
-	RootNamespace="libmulecommon"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\FileFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\Format.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\MD5Sum.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\MuleDebug.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\Path.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\StringFunctions.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\TextFile.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\src\include\common\ClientVersion.h"
-				>
-				<FileConfiguration
-					Name="Debug|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Create config.h"
-						CommandLine="cd "$(SolutionDir)..\..\.."&#x0D;&#x0A;"$(SolutionDir)makeconfig.cmd""
-						Outputs=""$(SolutionDir)..\..\..\config.h""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Create config.h"
-						CommandLine="cd "$(SolutionDir)..\..\.."&#x0D;&#x0A;"$(SolutionDir)makeconfig.cmd""
-						Outputs=""$(SolutionDir)..\..\..\config.h""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug29|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Create config.h"
-						CommandLine="cd "$(SolutionDir)..\..\.."&#x0D;&#x0A;"$(SolutionDir)makeconfig.cmd""
-						Outputs=""$(SolutionDir)..\..\..\config.h""
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release29|Win32"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-						Description="Create config.h"
-						CommandLine="cd "$(SolutionDir)..\..\.."&#x0D;&#x0A;"$(SolutionDir)makeconfig.cmd""
-						Outputs=""$(SolutionDir)..\..\..\config.h""
-					/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\FileFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\Format.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\MD5Sum.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\MuleDebug.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\Path.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\StringFunctions.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\common\TextFile.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/libs/libmuleec/libmuleec.vcproj b/platforms/Windows/MSVC9/libs/libmuleec/libmuleec.vcproj
deleted file mode 100644
index 9eb005b..0000000
--- a/platforms/Windows/MSVC9/libs/libmuleec/libmuleec.vcproj
+++ /dev/null
@@ -1,358 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="libmuleec"
-	ProjectGUID="{5A9EC6A5-68A3-43C8-960E-F7F03B16F1D1}"
-	RootNamespace="libmuleec"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib\""
-				PreprocessorDefinitions="_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib\""
-				PreprocessorDefinitions="_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECPacket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECSocket.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECTag.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECCodes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECFileConfig.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECID.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECMuleSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECPacket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECSocket.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECSpecialTags.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECTag.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\ECTagTypes.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\..\src\libs\ec\cpp\RemoteConnect.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/libs/libmuleexternalwxlistctrl/libmuleexternalwxlistctrl.vcproj b/platforms/Windows/MSVC9/libs/libmuleexternalwxlistctrl/libmuleexternalwxlistctrl.vcproj
deleted file mode 100644
index a7e9410..0000000
--- a/platforms/Windows/MSVC9/libs/libmuleexternalwxlistctrl/libmuleexternalwxlistctrl.vcproj
+++ /dev/null
@@ -1,302 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="libmuleexternalwxlistctrl"
-	ProjectGUID="{16C7A051-9097-41A5-BA26-FEC1EA1F16EF}"
-	RootNamespace="libmuleexternalwxlistctrl"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_LIB;_CRT_SECURE_NO_WARNINGS"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;_LIB;_CRT_SECURE_NO_WARNINGS"
-				ExceptionHandling="2"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="4"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\..\""
-				PreprocessorDefinitions="_LIB;USE_WX_EXTENSIONS;_CRT_SECURE_NO_WARNINGS"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLibrarianTool"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\src\extern\wxWidgets\listctrl.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\..\src\extern\wxWidgets\listctrl.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/platforms/Windows/MSVC9/wxCas/wxCas.vcproj b/platforms/Windows/MSVC9/wxCas/wxCas.vcproj
deleted file mode 100644
index 393ec52..0000000
--- a/platforms/Windows/MSVC9/wxCas/wxCas.vcproj
+++ /dev/null
@@ -1,428 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9,00"
-	Name="wxCas"
-	ProjectGUID="{5FCAFC30-922E-446F-8DF5-D71819AB6356}"
-	RootNamespace="wxCas"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;ENABLE_NLS;ENABLE_IP2COUNTRY"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"Graphical aMule Statistics\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..\..\wxWidgets\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;ENABLE_NLS;ENABLE_IP2COUNTRY"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"Graphical aMule Statistics\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Debug29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="0"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswud";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="_DEBUG;__DEBUG__;USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;ENABLE_NLS;ENABLE_IP2COUNTRY"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"Graphical aMule Statistics\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release29|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalOptions="/MP"
-				Optimization="3"
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..\..\wxWidgets29\lib\vc_lib\mswu";"$(SolutionDir)..\..\..\src\libs";"$(SolutionDir)..\..\..\src";"$(SolutionDir)..\..\..\src\include";"$(SolutionDir)..\..\..\";"$(SolutionDir)..\..\..\..\wxWidgets29\src\zlib";"$(SolutionDir)libs\libGeoIP""
-				PreprocessorDefinitions="USE_WX_EXTENSIONS;CONVAMULE_CPP;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;ENABLE_NLS;ENABLE_IP2COUNTRY"
-				RuntimeLibrary="0"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_UNICODE;UNICODE;VER_FILEDESCRIPTION_STR=\"Graphical aMule Statistics\";VER_INTERNALNAME_STR=\"$(ProjectName)\";VER_ORIGINALFILENAME_STR=\"$(TargetFileName)\""
-				AdditionalIncludeDirectories=""$(SolutionDir)..\..\..\..\wxWidgets29\include";"$(SolutionDir)..\..\..";"$(SolutionDir)..\..\..\src\include""
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="comctl32.lib ws2_32.lib rpcrt4.lib shlwapi.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\linuxmon.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\onlinesig.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcas.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcascte.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcasframe.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcaspix.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcasprefs.cpp"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcasprint.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\linuxmon.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\onlinesig.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcas.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcascte.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcasframe.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcaspix.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcasprefs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\src\wxcasprint.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\version.rc"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\utils\wxCas\wxcas.rc"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e577b68..1b195dd 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -37,9 +37,9 @@ src/kademlia/routing/RoutingZone.cpp
 src/KnownFile.cpp
 src/KnownFileList.cpp
 src/libs/common/Format.cpp
-src/libs/ec/cpp/ECSocket.cpp
 src/libs/ec/cpp/ECSpecialTags.cpp
 src/libs/ec/cpp/RemoteConnect.cpp
+src/LibSocketAsio.cpp
 src/ListenSocket.cpp
 src/Logger.cpp
 src/MuleNotebook.cpp
@@ -48,8 +48,6 @@ src/MuleTrayIcon.cpp
 src/muuli_wdr.cpp
 src/OScopeCtrl.cpp
 src/OtherFunctions.cpp
-src/OtherStructs.h
-src/Parser.cpp
 src/PartFileConvert.cpp
 src/PartFileConvertDlg.cpp
 src/PartFile.cpp
@@ -83,10 +81,8 @@ src/UserEvents.h
 src/utils/aLinkCreator/src/alcc.cpp
 src/utils/aLinkCreator/src/alc.cpp
 src/utils/aLinkCreator/src/alcframe.cpp
-src/utils/aLinkCreator/src/bithelp.h
 src/utils/aLinkCreator/src/ed2khash.cpp
 src/utils/aLinkCreator/src/md4.cpp
-src/utils/fileview/Print.h
 src/utils/wxCas/src/linuxmon.cpp
 src/utils/wxCas/src/onlinesig.cpp
 src/utils/wxCas/src/wxcas.cpp
diff --git a/po/amule.pot b/po/amule.pot
index 3692d61..0569926 100644
--- a/po/amule.pot
+++ b/po/amule.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -37,108 +37,108 @@ msgstr ""
 msgid "Failed to open ED2KLinks file."
 msgstr ""
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr ""
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr ""
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr ""
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
 msgstr ""
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr ""
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr ""
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
 msgstr ""
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr ""
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
 msgstr ""
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr ""
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr ""
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -148,11 +148,11 @@ msgid ""
 "Check your network to make sure the port is open for output and input."
 msgstr ""
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr ""
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr ""
 
@@ -197,143 +197,143 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr ""
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr ""
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr ""
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr ""
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr ""
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr ""
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr ""
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr ""
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr ""
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr ""
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr ""
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr ""
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr ""
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr ""
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr ""
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr ""
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr ""
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr ""
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr ""
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr ""
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr ""
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr ""
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -341,7 +341,7 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -350,19 +350,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr ""
@@ -439,9 +439,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr ""
 
@@ -449,7 +449,7 @@ msgstr ""
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr ""
 
@@ -483,7 +483,7 @@ msgstr ""
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr ""
 
@@ -500,7 +500,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr ""
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr ""
 
@@ -541,7 +541,7 @@ msgstr ""
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -556,80 +556,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr ""
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr ""
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr ""
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr ""
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr ""
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr ""
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr ""
 
@@ -649,7 +649,7 @@ msgstr ""
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr ""
 
@@ -661,106 +661,106 @@ msgstr ""
 msgid "Connect to remote amule"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr ""
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr ""
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr ""
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr ""
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr ""
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr ""
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr ""
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -768,7 +768,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -776,7 +776,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr ""
 
@@ -918,12 +918,12 @@ msgid "Client Details"
 msgstr ""
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr ""
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr ""
 
@@ -975,64 +975,64 @@ msgstr ""
 msgid "Not Available"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1047,7 +1047,7 @@ msgstr ""
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr ""
 
@@ -1088,33 +1088,33 @@ msgstr ""
 msgid "Auto [Hi]"
 msgstr ""
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr ""
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr ""
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr ""
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr ""
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr ""
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr ""
 
@@ -1131,12 +1131,12 @@ msgid "Queue Full"
 msgstr ""
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr ""
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr ""
 
@@ -1196,7 +1196,7 @@ msgstr ""
 msgid "Remote Server"
 msgstr ""
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr ""
@@ -1222,7 +1222,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr ""
 
@@ -1263,11 +1263,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr ""
 
@@ -1280,17 +1280,17 @@ msgid "Progress"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr ""
@@ -1315,7 +1315,7 @@ msgstr ""
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1323,7 +1323,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr ""
 
@@ -1375,11 +1375,11 @@ msgstr ""
 msgid "Copy magnet URI to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr ""
 
@@ -1395,34 +1395,34 @@ msgstr ""
 msgid "&Open the file"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1526,233 +1526,233 @@ msgstr ""
 msgid "External connections disabled in config file"
 msgstr ""
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr ""
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr ""
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
 msgstr ""
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr ""
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr ""
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr ""
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr ""
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr ""
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr ""
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr ""
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr ""
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr ""
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr ""
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr ""
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr ""
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr ""
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr ""
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr ""
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr ""
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr ""
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr ""
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr ""
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr ""
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr ""
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr ""
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr ""
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1760,23 +1760,23 @@ msgid ""
 "Type '%s <command>' to get detailed info on <command>.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr ""
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr ""
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1784,59 +1784,59 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr ""
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr ""
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr ""
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr ""
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr ""
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
 "Ok, exiting %s...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1845,47 +1845,47 @@ msgid ""
 "Exiting...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr ""
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr ""
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr ""
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr ""
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr ""
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr ""
 
@@ -1898,8 +1898,8 @@ msgstr ""
 msgid "%.1f%% done"
 msgstr ""
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr ""
@@ -1916,7 +1916,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr ""
 
@@ -2042,31 +2042,31 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr ""
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2098,7 +2098,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr ""
@@ -2141,7 +2141,7 @@ msgstr[1] ""
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2156,103 +2156,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr ""
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr ""
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr ""
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr ""
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2278,69 +2278,74 @@ msgstr ""
 msgid "Unable to get error description for error %d"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr ""
 
+#: src/LibSocketAsio.cpp:1259
+#, c-format
+msgid "Asio thread %d started"
+msgstr ""
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2349,16 +2354,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr ""
 
@@ -2366,8 +2371,8 @@ msgstr ""
 msgid "Cut"
 msgstr ""
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr ""
 
@@ -2376,7 +2381,7 @@ msgid "Paste"
 msgstr ""
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr ""
 
@@ -2386,7 +2391,7 @@ msgstr ""
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr ""
@@ -2463,7 +2468,7 @@ msgid "ServerIP: "
 msgstr ""
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr ""
 
@@ -2498,7 +2503,7 @@ msgstr ""
 msgid "Online Signature: Disabled"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr ""
@@ -2539,7 +2544,7 @@ msgstr ""
 msgid "Show aMule"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr ""
 
@@ -2614,7 +2619,7 @@ msgstr ""
 msgid "Name:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr ""
 
@@ -2642,38 +2647,38 @@ msgstr ""
 msgid "File Type"
 msgstr ""
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr ""
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr ""
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr ""
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr ""
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr ""
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr ""
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr ""
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr ""
 
@@ -2694,11 +2699,11 @@ msgid "KB"
 msgstr ""
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr ""
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr ""
 
@@ -2726,7 +2731,7 @@ msgstr ""
 msgid "Hide Known Files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr ""
 
@@ -2783,7 +2788,7 @@ msgstr ""
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr ""
 
@@ -2807,7 +2812,7 @@ msgstr ""
 msgid "Last seen complete :"
 msgstr ""
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr ""
 
@@ -2893,27 +2898,27 @@ msgstr ""
 msgid "File Quality"
 msgstr ""
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr ""
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr ""
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr ""
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr ""
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr ""
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr ""
 
@@ -2958,7 +2963,7 @@ msgid "Userhash :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr ""
 
@@ -3185,9 +3190,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr ""
 
@@ -3273,7 +3278,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr ""
 
@@ -3391,7 +3396,7 @@ msgstr ""
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr ""
 
@@ -3630,7 +3635,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr ""
 
@@ -3712,8 +3717,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr ""
 
@@ -4087,82 +4092,86 @@ msgid "Enable Verbose Debug-Logging."
 msgstr ""
 
 #: src/muuli_wdr.cpp:3169
+msgid "Only to Logfile"
+msgstr ""
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr ""
 
@@ -4171,135 +4180,135 @@ msgstr ""
 msgid "Disabled [%s]"
 msgstr ""
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr ""
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr ""
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr ""
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr ""
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr ""
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr ""
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr ""
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr ""
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr ""
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr ""
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr ""
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr ""
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr ""
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr ""
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr ""
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr ""
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr ""
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr ""
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr ""
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr ""
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr ""
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr ""
 
@@ -4315,23 +4324,23 @@ msgstr ""
 msgid "Filehash"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr ""
 
@@ -4441,7 +4450,7 @@ msgstr ""
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4452,267 +4461,267 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr ""
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr ""
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr ""
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr ""
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr ""
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr ""
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr ""
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr ""
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr ""
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr ""
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr ""
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr ""
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr ""
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr ""
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr ""
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr ""
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr ""
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr ""
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr ""
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr ""
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr ""
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr ""
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr ""
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr ""
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr ""
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr ""
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr ""
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr ""
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr ""
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr ""
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr ""
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr ""
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr ""
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr ""
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr ""
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr ""
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr ""
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr ""
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr ""
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr ""
 
@@ -4720,7 +4729,7 @@ msgstr ""
 msgid "Directories"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr ""
 
@@ -4771,7 +4780,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4781,211 +4790,215 @@ msgid ""
 "these settings."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+msgid "- Protocol obfuscation support changed.\n"
+msgstr ""
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
 "If you do not restart now, don't complain if anything bad happens.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
 "Click on the button \"List\" by this checkbox to enter an URL."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr ""
 
@@ -5013,7 +5026,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr ""
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr ""
 
@@ -5122,7 +5135,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr ""
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5149,98 +5162,98 @@ msgstr ""
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr ""
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr ""
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr ""
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr ""
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr ""
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr ""
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5275,7 +5288,7 @@ msgid "Static"
 msgstr ""
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr ""
 
@@ -5299,8 +5312,8 @@ msgstr ""
 msgid "Servers (%i)"
 msgstr ""
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr ""
 
@@ -5356,82 +5369,82 @@ msgstr ""
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr ""
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr ""
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr ""
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr ""
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr ""
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr ""
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr ""
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr ""
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5609,84 +5622,88 @@ msgstr ""
 msgid "Shares File List"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr ""
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr ""
 
@@ -5694,235 +5711,235 @@ msgstr ""
 msgid "Remote File Name"
 msgstr ""
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr ""
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr ""
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr ""
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr ""
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr ""
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr ""
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr ""
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr ""
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr ""
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr ""
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr ""
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr ""
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr ""
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr ""
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr ""
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr ""
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr ""
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr ""
 
@@ -5978,7 +5995,7 @@ msgstr ""
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr ""
 
@@ -6032,13 +6049,13 @@ msgstr ""
 msgid "Now connecting"
 msgstr ""
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr ""
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr ""
 
@@ -6423,21 +6440,21 @@ msgid ""
 "Use '%s' instead.\n"
 msgstr ""
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr ""
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6507,7 +6524,7 @@ msgstr ""
 msgid "Download completed"
 msgstr ""
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr ""
 
@@ -6527,160 +6544,160 @@ msgstr ""
 msgid "Cumulative download activity time."
 msgstr ""
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr ""
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr ""
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr ""
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr ""
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6692,168 +6709,172 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr ""
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -6864,322 +6885,322 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr ""
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr ""
diff --git a/po/ar.po b/po/ar.po
index dfd96ae..2e7285e 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2004-03-28 22:15+0300\n"
 "Last-Translator: saleh alhathal <hathalsal at hotmail.com>\n"
 "Language-Team: \n"
@@ -36,110 +36,110 @@ msgstr ""
 msgid "Failed to open ED2KLinks file."
 msgstr "فشل لفتح %s (%s)"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr ""
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "فشل"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr ""
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "تاكيد الخروج"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "قبل إتصال خارجي جديد\n"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr ""
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
 msgstr ""
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "معلومات"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
 msgstr ""
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr ""
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr ""
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -149,11 +149,11 @@ msgid ""
 "Check your network to make sure the port is open for output and input."
 msgstr ""
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr ""
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr ""
 
@@ -198,144 +198,144 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "إسم الخادم"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr ""
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr ""
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr ""
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr ""
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr ""
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr ""
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr ""
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr ""
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr ""
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr ""
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr ""
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr ""
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr ""
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr ""
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr ""
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr ""
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr ""
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr ""
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr ""
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr ""
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr ""
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -343,7 +343,7 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -352,19 +352,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr ""
@@ -441,9 +441,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr ""
 
@@ -451,7 +451,7 @@ msgstr ""
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "يتم الإتصال"
 
@@ -487,7 +487,7 @@ msgstr ""
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "إلغاء"
 
@@ -506,7 +506,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "فصل من المستضيف الحالي"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "إتصال"
 
@@ -547,7 +547,7 @@ msgstr "تاكيد الخروج"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -562,81 +562,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr ""
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "بحث"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "نافذة البحث"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "تحميل"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "تحميل"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "نافذة ملفات المشاركة"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "رسائل"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "نافذة الرسائل"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "احصائات"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "نافذة اﻻحصائيات"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "اعدادت"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "نافذة اﻹعدادات"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr ""
 
@@ -656,7 +656,7 @@ msgstr ""
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr ""
 
@@ -669,111 +669,111 @@ msgstr "خطأ قاتل :فشل في تكوين الموَقت"
 msgid "Connect to remote amule"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "خطأ قاتل :فشل في تكوين الموَقت"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "يتم الإتصال"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr ""
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 #, fuzzy
 msgid "Going down"
 msgstr "تسجيل الدخول اﻻن"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 #, fuzzy
 msgid "Ready"
 msgstr "اعد تحميل"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "غير معرف"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr ""
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 #, fuzzy
 msgid "Searching buddy for lowid connection"
 msgstr "بانتظار اﻻتصال ..."
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr ""
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr ""
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr ""
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, fuzzy, c-format
 msgid "Requested: %s\n"
 msgstr "طلب:"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, fuzzy, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -781,7 +781,7 @@ msgid_plural ""
 msgstr[0] "إحصائية الملفات لهذة الجلسة: قبل %d من %d طلب , %s تم نقله \n"
 msgstr[1] "إحصائية الملفات لهذة الجلسة: قبل %d من %d طلب , %s تم نقله \n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, fuzzy, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -789,7 +789,7 @@ msgid_plural ""
 msgstr[0] "إحصائية الملفات لهذة الجلسة: قبل %d من %d طلب , %s تم نقله \n"
 msgstr[1] "إحصائية الملفات لهذة الجلسة: قبل %d من %d طلب , %s تم نقله \n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "طلب ملف غير معروف"
 
@@ -931,12 +931,12 @@ msgid "Client Details"
 msgstr "تفاصيل العميل"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "هوية متدنية"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr ""
 
@@ -988,64 +988,64 @@ msgstr "تأكيد - صحيح"
 msgid "Not Available"
 msgstr "غير متوفر"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1060,7 +1060,7 @@ msgstr "اسم مستخدم"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "اسم الملف"
 
@@ -1101,33 +1101,33 @@ msgstr "ذاتي "
 msgid "Auto [Hi]"
 msgstr "ذاتي عالي"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "متدني جدا"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "متدني"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "عادي"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "مرتفع"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "عالي جدا"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr ""
 
@@ -1144,12 +1144,12 @@ msgid "Queue Full"
 msgstr "اﻻنتظار ممتلئ"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "في اﻻنتظار"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "تحميل"
 
@@ -1209,7 +1209,7 @@ msgstr ""
 msgid "Remote Server"
 msgstr ""
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr ""
@@ -1235,7 +1235,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "اكمل"
 
@@ -1276,11 +1276,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "حجم"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "نقل"
 
@@ -1293,17 +1293,17 @@ msgid "Progress"
 msgstr "تقدم"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "مصدر"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "أولوية"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "حالة"
@@ -1330,7 +1330,7 @@ msgstr "هل انت متاكد من الغاء زحذف هذه الملفات ؟
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "هل انت متاكد من الغاء زحذف هذه الملفات ؟\n"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1338,7 +1338,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "ذاتي"
 
@@ -1390,11 +1390,11 @@ msgstr "اعرض كل التعليقات"
 msgid "Copy magnet URI to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr ""
 
@@ -1410,34 +1410,34 @@ msgstr ""
 msgid "&Open the file"
 msgstr "&فتح الملف"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "تحميل (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1541,233 +1541,233 @@ msgstr ""
 msgid "External connections disabled in config file"
 msgstr ""
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr ""
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr ""
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
 msgstr ""
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr ""
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr ""
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr ""
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr ""
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr ""
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr ""
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr ""
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr ""
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr ""
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr ""
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr ""
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr ""
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "جاري البحث ستم جلب النتيجة في لحظة"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr ""
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr ""
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr ""
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr ""
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr ""
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr ""
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr ""
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr ""
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr ""
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr ""
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1775,23 +1775,23 @@ msgid ""
 "Type '%s <command>' to get detailed info on <command>.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr ""
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr ""
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1799,59 +1799,59 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr ""
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr ""
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr ""
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr ""
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr ""
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
 "Ok, exiting %s...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1860,47 +1860,47 @@ msgid ""
 "Exiting...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr ""
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr ""
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr ""
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr ""
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr ""
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr ""
 
@@ -1913,8 +1913,8 @@ msgstr ""
 msgid "%.1f%% done"
 msgstr ""
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr ""
@@ -1931,7 +1931,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "اصدقاء"
 
@@ -2063,32 +2063,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "مجموع التحميل"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "أنت غير متصل بي مستظيف!"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2120,7 +2120,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "فشل في تحميل قائمة الخادمات من %s"
@@ -2163,7 +2163,7 @@ msgstr[1] ""
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2178,103 +2178,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr ""
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr ""
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr ""
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr ""
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2300,70 +2300,75 @@ msgstr "غير معروف :%i"
 msgid "Unable to get error description for error %d"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "اكتمال"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "اكتمل"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "ايقاف مؤقت"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "خاطئ"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "انتظار"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "عوامل اﻻتصال الخارجي"
 
+#: src/LibSocketAsio.cpp:1259
+#, c-format
+msgid "Asio thread %d started"
+msgstr ""
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2372,16 +2377,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "اغلق"
 
@@ -2389,8 +2394,8 @@ msgstr "اغلق"
 msgid "Cut"
 msgstr ""
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr ""
 
@@ -2399,7 +2404,7 @@ msgid "Paste"
 msgstr ""
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "واضح"
 
@@ -2409,7 +2414,7 @@ msgstr ""
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr ""
@@ -2486,7 +2491,7 @@ msgid "ServerIP: "
 msgstr "عنوان الخادم: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "غير متصل"
 
@@ -2521,7 +2526,7 @@ msgstr "توقيع أثناء الإتصال: ممكن"
 msgid "Online Signature: Disabled"
 msgstr "توقيع أثناء الإتصال: معطل"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "فترة التشغيل: %s"
@@ -2562,7 +2567,7 @@ msgstr ""
 msgid "Show aMule"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "خروج"
 
@@ -2637,7 +2642,7 @@ msgstr "بحث"
 msgid "Name:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "نوع"
 
@@ -2665,38 +2670,38 @@ msgstr ""
 msgid "File Type"
 msgstr ""
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "اي"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "ارشيف"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "سمعي"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr ""
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "صور"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "برامج"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr ""
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "فيديو"
 
@@ -2717,11 +2722,11 @@ msgid "KB"
 msgstr ""
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr ""
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr ""
 
@@ -2749,7 +2754,7 @@ msgstr ""
 msgid "Hide Known Files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "ابدء"
 
@@ -2807,7 +2812,7 @@ msgstr "اﻻسم كامل :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "غير متوفر"
 
@@ -2831,7 +2836,7 @@ msgstr "حالة جزء الملف :"
 msgid "Last seen complete :"
 msgstr "اخر مرة تم اكتمال :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "نقل"
 
@@ -2917,27 +2922,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "جودة الملف"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "غير مقيم"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "غير صحيح / معطوب / مزيف"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "فقير"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "عادل"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "جيد"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "ممتاز"
 
@@ -2982,7 +2987,7 @@ msgid "Userhash :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "اضف"
 
@@ -3210,9 +3215,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "تصفح"
 
@@ -3298,7 +3303,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr ""
 
@@ -3416,7 +3421,7 @@ msgstr ""
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "ارفع"
 
@@ -3656,7 +3661,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr ""
 
@@ -3739,8 +3744,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "معاد"
 
@@ -4114,89 +4119,94 @@ msgid "Enable Verbose Debug-Logging."
 msgstr ""
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&فتح الملف"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "إنتظار..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "رفع نشط :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 #, fuzzy
 msgid "Percent of total files"
 msgstr "مجموع الملفات"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "ملفات مشاركة"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "إختر فلتر العرض"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "رفع نشط"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "منفذ العميل"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "اعد تحميل"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "ارسل"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "ملفات مشاركة"
 
@@ -4205,137 +4215,137 @@ msgstr "ملفات مشاركة"
 msgid "Disabled [%s]"
 msgstr "تعطيل [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 #, fuzzy
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "بايت"
 msgstr[1] "بايت"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr ""
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr ""
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr ""
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr ""
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr ""
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr ""
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 #, fuzzy
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "بايت"
 msgstr[1] "بايت"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr ""
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "ثانية"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "دقيقة"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr ""
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr ""
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "الكل"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "الكل ماعدا"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "غير مكتمل"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "إيقاف"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "فيديو"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "أرشيف"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "نص"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr ""
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr ""
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr ""
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr ""
 
@@ -4351,23 +4361,23 @@ msgstr ""
 msgid "Filehash"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr ""
 
@@ -4479,7 +4489,7 @@ msgstr ""
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4490,270 +4500,270 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr ""
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr ""
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "اﻹفتراضية بالنظام"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr ""
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "العربيه"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "الأستونيه"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr ""
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "البلغاريه"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr ""
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr ""
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr ""
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr ""
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "الدانماركيه"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "الهولنديه"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr ""
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "الأستونيه"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "الفلنديه"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "الفرنسية"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr ""
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "الألمانيه"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr ""
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr ""
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "الهنغاريه"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "الايطاليه"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr ""
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr ""
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "الكوريه"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "الليتوانيه"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr ""
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr ""
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "البرتغاليه"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr ""
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "الروسيه"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr ""
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "الإسبانيه"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr ""
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr ""
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "الغة"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "غير متوفر"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr ""
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "اتصال"
 
@@ -4761,7 +4771,7 @@ msgstr "اتصال"
 msgid "Directories"
 msgstr "مجلدات"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "الخادمات"
 
@@ -4812,7 +4822,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4822,139 +4832,144 @@ msgid ""
 "these settings."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "عوامل اﻻتصال الخارجي"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "عوامل اﻻتصال الخارجي"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "عوامل اﻻتصال الخارجي"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "عوامل اﻻتصال الخارجي"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
 "If you do not restart now, don't complain if anything bad happens.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
 "Click on the button \"List\" by this checkbox to enter an URL."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -4962,77 +4977,77 @@ msgstr ""
 "أضف هنا عنوان لتحميل ملفات server.met \n"
 "عنوان واحد فقط لكل سطر"
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, fuzzy, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "تحيدث كل:5 ثواني"
 msgstr[1] "تحيدث كل:5 ثواني"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, fuzzy, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "فترة تحديث الإتصال بالخادم %i دقيقة"
 msgstr[1] "فترة تحديث الإتصال بالخادم %i دقيقة"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "فترة تحديث الإتصال بالخادم :معطل"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "تعطيل"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr ""
 
@@ -5060,7 +5075,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr ""
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "تعريف ملف"
 
@@ -5170,7 +5185,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr ""
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5197,100 +5212,100 @@ msgstr ""
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, fuzzy, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i خادمات وجدت في server.met"
 msgstr[1] "%i خادمات وجدت في server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, fuzzy, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d خادم مضاف"
 msgstr[1] "%d خادم مضاف"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 #, fuzzy
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "خطأ: ملف server.met معطوب"
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "فشل غير متوقع اثناء كتابة ملف %s : %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr ""
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr ""
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr ""
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "فشل في حفظ server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "عنوان شبكي غير صحيح"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "فشل في تحميل قائمة الخادمات من %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5325,7 +5340,7 @@ msgid "Static"
 msgstr "ثابت"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "نسخة"
 
@@ -5349,8 +5364,8 @@ msgstr ""
 msgid "Servers (%i)"
 msgstr "خادمات (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "خادم"
 
@@ -5409,82 +5424,82 @@ msgstr "هل انت متاكد من الغاء زحذف هذه الملفات ؟
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "هل انت متاكد من الغاء زحذف هذه الملفات ؟\n"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "عميل جديد هو %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr ""
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr ""
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, fuzzy, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "تلقي %d خادم جديد"
 msgstr[1] "تلقي %d خادم جديد"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr ""
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "الخادم رفض اخر امر"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr ""
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr ""
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5673,84 +5688,89 @@ msgstr "اسم الملف"
 msgid "Shares File List"
 msgstr "ملفات مشاركة"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "طلبات"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "طلبات مقبوله"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "بينات محوله"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "أجزاء مكتسبة"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "اعد تسمية"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "نسخ رابط ED2k للحافظة"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "يجب ان تكون ذا هوية مرتفعة لتتمكن من انشاء رابط مصدر"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "ملفات مشاركة (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr ""
 
@@ -5759,235 +5779,235 @@ msgstr ""
 msgid "Remote File Name"
 msgstr "اسم الملف"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "متوسط زمن التحميل : %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr ""
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr ""
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr ""
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "اعادة اﻹتصال : %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "الوقت منذ بدء التحميل: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "متصل بالخادم منذ : %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr ""
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr ""
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "عميل"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "غير معروف :%i"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "تم ترشيح : %i"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "حظر"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr ""
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr ""
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "إحتلال الخادم: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "مجموع حجم ملفات المشاركة : %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr ""
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr ""
 
@@ -6043,7 +6063,7 @@ msgstr ""
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr ""
 
@@ -6097,13 +6117,13 @@ msgstr ""
 msgid "Now connecting"
 msgstr ""
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr ""
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr ""
 
@@ -6492,21 +6512,21 @@ msgid ""
 "Use '%s' instead.\n"
 msgstr ""
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr ""
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6577,7 +6597,7 @@ msgstr ""
 msgid "Download completed"
 msgstr ""
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr ""
 
@@ -6597,160 +6617,160 @@ msgstr ""
 msgid "Cumulative download activity time."
 msgstr ""
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr ""
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr ""
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr ""
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr ""
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6762,169 +6782,173 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 #, fuzzy
 msgid "Cancelled !"
 msgstr "إلغاء"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr ""
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -6935,323 +6959,323 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr ""
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr ""
 
@@ -7377,9 +7401,6 @@ msgstr ""
 #~ msgid "Could not determine the command for running the browser."
 #~ msgstr "لم يحديد إمر لتشغيل المتصفح"
 
-#~ msgid "Copy ED2k link to clipboard"
-#~ msgstr "نسخ رابط ED2k للحافظة"
-
 #, fuzzy
 #~ msgid "Copy ED2k links to clipboard"
 #~ msgstr "نسخ رابط ED2k للحافظة"
diff --git a/po/ast.po b/po/ast.po
index d3ab522..71575e6 100644
--- a/po/ast.po
+++ b/po/ast.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: new_ast\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2009-11-04 21:31+0100\n"
 "Last-Translator: astur <malditoastur at gmail.com>\n"
 "Language-Team: Language ast <malditoastur at gmail.com>\n"
@@ -38,7 +38,7 @@ msgstr "¡El hash d'usuariu especificáu nun ye válidu!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Fallu al abrir ficheru ED2KLinks."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -46,37 +46,37 @@ msgstr ""
 "AVISU: Nun pues amestate a tí mesmu como una fonte pa un enllaz eD2k "
 "teniendo ID baxa."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Agora, saliendo de l'aplicación principal..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, fuzzy, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Matando instancia amuleweb con pid `%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, fuzzy, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Matando instancia amuleweb con pid `%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Falló"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Terminando núcleu."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Zarru d'aMule completáu."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Resultaos de depuración de memoria na salida d'aMule: "
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -84,16 +84,16 @@ msgstr ""
 "\n"
 "Configuración EC"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Contraseña fixada y conexones esternes habilitaes."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "ALERTA"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -101,13 +101,13 @@ msgstr ""
 "La to llingua foi camudada a la de por defeutu del sistema, darréu d'un "
 "cambéu de configuración. Siéntolo."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -115,16 +115,16 @@ msgstr ""
 "Nun tienes dengún sirvidor na llista de sirvidores.\n"
 "¿Quies que aMule descargue una nueva llista agora?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Descarga llista de sirvidores"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "sirvidor web corriendo con pid: %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -134,23 +134,23 @@ msgstr ""
 "binariu d'amuleweb. Por favor instala'l paquete que contenga'l sirvidor web "
 "d'aMule o compila aMule usando --enable-webserver y executa make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "FALLU"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Nun ye dable direicionar los puertos a la direición especificada: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "El puertu %u nun ta disponible. Tendrás IDBaxa\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -166,11 +166,11 @@ msgstr ""
 "Comprueba la to rede y asegúrate de que'l puertu ta abiertu pa entrada y "
 "salida."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Fallu al criar el ficheru de RoblaOnline"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Fallu al criar el ficheru de RoblaOnline aMule"
 
@@ -221,133 +221,133 @@ msgstr ""
 "El direutoriu qu'especificaste de Robla Online nun ye válidu\n"
 "La Robla Online deshabilitóse hasta que lo igües nes opciones."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Nome sirvidor notificáu"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "La reserva del espaciu en discu pal ficheru '%s' falló: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "FALLU: nun puede abrise'l ficheru de rexistru"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "ALERTA: el ficheru de rexistru ta ermu. Hai daqué mal."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "El rexistru resetióse"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Mensax del sirvidor: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Fallu al descargar la llista de nodos."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Fallu al abrir el ficheru de comprobación de versión descargáu"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Ficheru de comprobación de versión toyíu"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "¡Tas usando una versión antigua de aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "La to versión de aMule ye %i.%i.%i y la cabera versión ye %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "La cabera versión pues alcontrala siempres en http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "ALERTA: La to versión de aMuled ye obsoleta: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "LA to copia de aMule ta actualizada."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Fallu al descargar el ficheru de comprobación de versión"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Usuarios: %s | Ficheros: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Usuarios: E: %s K: %s | Ficheros: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Ensin redes seleicionaes"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "con IDBaxa"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "con IDAlta"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Coneutáu a %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Coneutando a %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Desconeutáu de eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad aniciáu."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad deteníu."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Coneutáu a Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Coneutáu a Kad (tres torgafueos)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Desconeutáu de Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -355,11 +355,11 @@ msgstr ""
 "Red Kad nun pue usase si'l puertu UDP ta deshabilitáu n'opciones, non "
 "aniciando."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Red Kad deshabilitada n'opciones, nun coneutará."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -371,7 +371,7 @@ msgstr ""
 "--ec-config, o bien, afite \"AcceptExternalConnections\" a 1, nel ficheru ~/."
 "aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -386,19 +386,19 @@ msgstr ""
 "especificar la contraseña. Más información pue alcontrase en http://wiki."
 "amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: EnAniciu - Aniciando reló"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: derivando al fondu - vémonos"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Nun puede Crease un Ficheru Pid"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ERROR: %s"
@@ -482,9 +482,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Mensax"
 
@@ -492,7 +492,7 @@ msgstr "Mensax"
 msgid "aMule dialog destroyed"
 msgstr "Diálogu aMule afaráu"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Coneutando"
 
@@ -526,7 +526,7 @@ msgstr "Kad: Apagada"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Encaboxar"
 
@@ -543,7 +543,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Desconeutase de les redes coneutaes"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Coneutar"
 
@@ -584,7 +584,7 @@ msgstr "Confirmar colar."
 msgid "Launch Command: "
 msgstr "Llanzar comandu:"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- Por defeutu -"
 
@@ -599,81 +599,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "ATENCIÓN: Nun pue abrise'l ficheru de temes '%s' pa llectura"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Redes"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Ventana de redes"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Guetar"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Ventana de gueta"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Descargues"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Descargando"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Ficheros compartíos"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Ventana de ficheros compartíos"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Mensaxes"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Ventana de mensaxes"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Estadístiques"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Ventana de gráficos d'estadístiques"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Preferencies"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Ventana d'opciones"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importar"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "La ferramienta pa importar ficheros part"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Tocante a"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Tocante a/Aida"
 
@@ -693,7 +693,7 @@ msgstr "Ensin rede"
 msgid "aMule remote control"
 msgstr "control remotu de aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -705,108 +705,108 @@ msgstr "Fallu Grave: Nun pudo criase'l temporizador"
 msgid "Connect to remote amule"
 msgstr "Coneutar a amule remotu"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Fallu Grave: Nun pudo criase'l temporizador"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Diendo a eventu bucle..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Coneutando..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Conexón fallida"
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Remanador d'eventu EC n'Interface Remota"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Baxando"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Fallu de conexón. Nun ye dable coneutar a %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Zarróse la conexón - ye dable que aMule finare."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Llistu"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Toos"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Nun puede crease'l direutoriu '%s' pa la categoría '%s', calteniendo "
 "direutoriu '%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Desconocíu"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Fallu al obtener la llista de compartíos del usuariu '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Guetando a un collaciu con conexón idbaxa"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Versión Falsa eMule %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Falsu eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Falsu eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (basáu en eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Nomatu:  %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Solicitáu: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -818,7 +818,7 @@ msgstr[1] ""
 "Estadístiques de ficheru pa esta sesión: %d Aceutaes de %d peticiones, %s "
 "tresferíes\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -830,7 +830,7 @@ msgstr[1] ""
 "Estadístiques de ficheru pa toles sesiones: %d Aceutaes de %d peticiones, %s "
 "tresferíes\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Solicitáu un ficheru desconocíu"
 
@@ -980,12 +980,12 @@ msgid "Client Details"
 msgstr "Detalles del veceru"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "ID-Baxa"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "ID-Alta"
 
@@ -1037,31 +1037,31 @@ msgstr "Verificáu - OK"
 msgid "Not Available"
 msgstr "Non disponible"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "Usuariu %s (%u) solicitó la to llista de ficheros compartíos -> Aceutada"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "Usuariu %s (%u) solicitó la to llista de ficheros compartíos -> Refugada"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "Usuariu %s (%u) solicitó la to llista de direutorios compartíos -> Aceutada"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "Usuariu %s (%u) solicitó la to llista de direutorios compartíos -> Refugada"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1069,7 +1069,7 @@ msgstr ""
 "Usuariu %s (%u) solicitó la to llista de ficheros compartíos del direutoriu %"
 "s -> Aceutada"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1077,33 +1077,33 @@ msgstr ""
 "Usuariu %s (%u) solicitó la to llista de ficheros compartíos del direutoriu %"
 "s-> Refugada"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Usuariu %s (%u) direutorios compartíos %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Usuariu %s (%u) unviáu direutorios compartíos non solicitaos."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "Usuariu %s (%u) unviada la llista de ficheros compartíos por direutoriu %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Usuariu %s (%u) finó l'unvíu de la llista de ficheros compartíos"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Usuariu %s (%u) unviada la llista de ficheros compartíos non deseyada"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1120,7 +1120,7 @@ msgstr "Nome d'usuariu"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Nome de ficheru"
 
@@ -1162,33 +1162,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Al]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Mui baxa"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Baxa"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Alta"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Mui alta"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Llanzamientu"
 
@@ -1205,12 +1205,12 @@ msgid "Queue Full"
 msgstr "Cola enllena"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Na cola"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Descargando"
 
@@ -1270,7 +1270,7 @@ msgstr "Sirvidor llocal"
 msgid "Remote Server"
 msgstr "Sirvidor remotu"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1296,7 +1296,7 @@ msgid "Search Result"
 msgstr "Resultáu de la gueta"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Completáu"
 
@@ -1337,11 +1337,11 @@ msgid "Part"
 msgstr "Parte"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Tamañu"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Tresferío"
 
@@ -1354,17 +1354,17 @@ msgid "Progress"
 msgstr "Progresu"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Fontes"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioridá"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Estáu"
@@ -1389,7 +1389,7 @@ msgstr "¿De xuru quies desaniciar esti ficheru?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "¿De xuru quies desaniciar estos ficheros?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1399,7 +1399,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1451,11 +1451,11 @@ msgstr "Amosar tolos comentarios"
 msgid "Copy magnet URI to clipboard"
 msgstr "Copiar la URL magnético al cartafueyos"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Copiar l'en&llaz eD2k al cartafueyos."
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Copiar rempuesta al cartafueyos"
 
@@ -1471,24 +1471,24 @@ msgstr "Asignar a categoría"
 msgid "&Open the file"
 msgstr "&Abrir el ficheru"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Introduza'l nuevu nome pa esti ficheru:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Renomar ficheru"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Descargues (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1496,11 +1496,11 @@ msgstr ""
 "Pa prevenir l'apaición d'esta alvertencia en cada vista previa,\n"
 "afita'l to reproductor de vídeos nes preferencies (mplayer por defeutu)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Previsualizar"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1611,29 +1611,29 @@ msgstr "¡Conexones esternas deshabilitaes darréu d'una contraseña en blanco!"
 msgid "External connections disabled in config file"
 msgstr "Conexones esternas deshabilitaes nel ficheru de configuración"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nueva conexón esterna, aceutada"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "FALLU: nun pudo aceutase una nueva conexón esterna"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "¡Conexón esterna refugada darréu d'una contraseña en blanco nes opciones!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Coneutando con veceru: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Versión desconocía"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1641,7 +1641,7 @@ msgstr ""
 "EC Incorreutu na ID de versión, tien d'haber una incompatibilidá. Usa núcleu "
 "y remotu de la mesma versión."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1650,175 +1650,175 @@ msgstr ""
 "¡Nun pues coneutar a una versión final dende una versión SVN cualesquiera! "
 "*sigh* dable fallu evitáu"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Versión de protocolu non válida"
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Marcador de versión de protocolu inesistente"
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "Autenticación fallía"
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "Autenticación fallía"
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Solicitú non válida, tendríes d'autenticate primero."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Accesu concedíu."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Fieltrar mensaxes de veceros desconocíos"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Intentu d'accesu non autorizáu. Conexón zarrada."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Fallu en comandu remotu del ficheru Part: Hash de ficheru non alcontráu: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Hash de ficheru non alcontráu: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "¡OOPS! ¡Fallu procesando OpCode!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Sirvidor non amestáu"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "sirvidor non amestáu: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "necesites definir un sirvidor pa desanicialu"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k ta desabilitáu nes preferencies"
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Gueta en procesu. Resultaos obteníos aína! "
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Gueta web dende un interface remotu nun tien xacíu"
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Ensin puntos pal gráficu."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "El to veceru nun ta configuráu pa esti nivel de detalle."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Conexón esterna: apagáu solicitáu"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Yá tas zarrando."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Conexón esterna: amestando enllaz '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Enllaz non válidu o yá ta na llista."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Ficheru non alcontráu"
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nome de ficheru incorreutu"
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Nun ye dable renomar ficheru"
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad ta deshabilitáu n'opciones."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Yá tas coneutáu a eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Coneutando a eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Yá tas coneutáu a Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Coneutando a Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Toles redes tán deshabilitaes"
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Desconeutando de eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Desconeutando de Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Conexón esterna: recibíu códigu d'operación inválidu: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "opcode non válidu (¿versión de protocolu incorreuta?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Estensión desconocía '%s' pal comandu '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Comandu desconocíu '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1826,7 +1826,7 @@ msgstr ""
 "\n"
 "Esti comandu nun tien un argumentu.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1834,7 +1834,7 @@ msgstr ""
 "\n"
 "Esti comandu tien de tener un argumentu.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1842,7 +1842,7 @@ msgstr ""
 "\n"
 "Esti comandu ta incompletu, tienes d'usar una de les estensiones....\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1850,11 +1850,11 @@ msgstr ""
 "\n"
 "Estensiones disponibles:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Comandos disponibles:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1865,17 +1865,17 @@ msgstr ""
 "Tolos comandos son sensibles a les mayúscules.\n"
 "Teclea '%s <comandu>' pa obtener información detallao del <comandu>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Colar de l'aplicación."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Amosar aida"
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1883,7 +1883,7 @@ msgstr ""
 "Pa tener aida d'un comandu, teclea 'help <comandu>'.\n"
 "Pa tener la llista completa de comandos, teclea 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1894,48 +1894,48 @@ msgstr ""
 "Usa '%s' pa la llista de comandos\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "¡Fallu de sintaxis!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Fallu procesando'l comandu - ¡enxamás tendría de pasar! Informa del fallu, "
 "por favor\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Esti comandu nun tendría de tener dengún parámetru"
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Esti comandu tien de tener un parámetru."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argumentu non válidu."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Esto ye un comandu incompletu."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Teclea '%s' pa tener más aida.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Esto ye %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Esto ye %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1943,7 +1943,7 @@ msgstr ""
 "\n"
 "Criando veceru...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1952,7 +1952,7 @@ msgstr ""
 "\n"
 "Ok, colando %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1966,48 +1966,48 @@ msgstr ""
 "\n"
 "Colando...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Amosar esta aida."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host au ta executándose aMule. (por defeutu: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Puertu de conexón esterna de aMule. (por defeutu: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Contraseña de conexones esternes"
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Lleer configuración dende'l ficheru."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Nun amueses denguna salida."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Mou Estendíu - amuesa tamién los mensaxes de depuración"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Seleiciona la llingua del programa."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Escribe opciones de la llinia de comandu al ficheru de configuración."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 "Criar ficheru de configuración basáu nel ficheru de configuración de aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Imprenta versión del programa."
 
@@ -2020,8 +2020,8 @@ msgstr "Detalles del ficheru"
 msgid "%.1f%% done"
 msgstr "%.2f%% fináu."
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2040,7 +2040,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "CRITICU - ensin veceru en sesión charra d'aniciu"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Collacios"
 
@@ -2171,32 +2171,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "Descargaos %d bytes"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Esperábense %d bytes pero descargáronse %d bytes"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Reconeutar al sirvidor"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2228,7 +2228,7 @@ msgstr "Actualizacion GeoIP.dat satisfactoria"
 msgid "Error updating GeoIP.dat"
 msgstr "Fallu actualizando GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Fallu al descargar GeoIP.dat dende %s"
@@ -2272,7 +2272,7 @@ msgstr[1] "%u llinies malformaes descartáronse"
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Fallu al renomar el nuevu ficheru GeoIP.dat, albortando actualización."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2289,105 +2289,105 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nodos (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "IP non válida pa coneutar"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Puertu non válidu pa coneutar"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Por favor enllene tolos campos requeríos"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "¿De xuru quies descargar un nuevu nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Si lo faes, desaniciarás tolos tos nodos actuales y reaniciarás la conexón "
 "Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "¿Siguir?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: pallabra de gueta enforma curtia"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Pallabra clave pa gueta: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: Pallabra de gueta enforma curtia:"
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Lleíu %u contautu Kad"
 msgstr[1] "Lleíos %u contautos Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr "Contautos non alcontraos, por favor descarga un ficheru nodes.dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Namái %d contautu Kad disponible, nodes.dat non escritu"
 msgstr[1] "Namái %d contautos Kad disponible, nodes.dat non escritu"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Escritu %d contautu Kad"
 msgstr[1] "Escritos %d contautos Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nome ficheru"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Tamañu ficheru"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Media compartío"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Xubío"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Pidío"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Aceutao"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Fontes completes"
 
@@ -2414,71 +2414,76 @@ msgstr "Versión desconocía"
 msgid "Unable to get error description for error %d"
 msgstr "Carpeta de destín pa les descargues"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Codificando"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Completando"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Completáu"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Posáu"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Erróneu"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Aguardando"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Tienes d'especificar una contraseña non erma"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Contraseña incorreuta, nun ye un códigu MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Fallu de conexón"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "La conexón EC falló. Rempuesta erma."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Conexón esterna: Rempuesta del sirvidor incorreuta, falló handshake. Conexón "
 "zarrada."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "¡Fecho! Conexón afitada con aMule"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "¡Fecho! Conexón afitada."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Conexón esterna: Accesu denegáu, xida:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Conexón esterna: Falló handshake."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Descarga HTTP filu entamáu"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "Socket d'escucha: Ok"
@@ -2487,16 +2492,16 @@ msgstr "Socket d'escucha: Ok"
 msgid "ERROR: Could not listen to TCP port."
 msgstr "FALLU: Nun pue escuchase nel puertu TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "FALLU:"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "AVISU:"
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Zarrar"
 
@@ -2504,8 +2509,8 @@ msgstr "Zarrar"
 msgid "Cut"
 msgstr "Cortar"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Copiar"
 
@@ -2514,7 +2519,7 @@ msgid "Paste"
 msgstr "Apegar"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Llimpiar"
 
@@ -2524,7 +2529,7 @@ msgstr "Esbillar too"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2601,7 +2606,7 @@ msgid "ServerIP: "
 msgstr "IP del sirvidor: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Non coneutáu"
 
@@ -2636,7 +2641,7 @@ msgstr "Robla Online: Activada"
 msgid "Online Signature: Disabled"
 msgstr "Robla Online: Desactivada"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Tiempu d'execución: %s"
@@ -2677,7 +2682,7 @@ msgstr "Anubrir aMule"
 msgid "Show aMule"
 msgstr "Amosar aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Colar"
 
@@ -2764,7 +2769,7 @@ msgstr "Guetar"
 msgid "Name:"
 msgstr "Nome:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Triba"
 
@@ -2792,38 +2797,38 @@ msgstr "Fieltrar"
 msgid "File Type"
 msgstr "Triba de ficheru"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Toos"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archivos"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Imáxenes de CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Imáxenes"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programes"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Testos"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Videos"
 
@@ -2844,11 +2849,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2876,7 +2881,7 @@ msgstr "Invertir Resultáu"
 msgid "Hide Known Files"
 msgstr "Anubrir Ficheros Conocíos"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Entamar"
 
@@ -2934,7 +2939,7 @@ msgstr "Nome Completu :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2958,7 +2963,7 @@ msgstr "Estáu ficheru part :"
 msgid "Last seen complete :"
 msgstr "Cabera comprobación completa :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Tresferencia"
 
@@ -3048,27 +3053,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Calificación de ficheru"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Non evaluada"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Inválidu / Toyíu / Falsificación"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Probe"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Aceutable"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Bonu"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Mui bonu"
 
@@ -3115,7 +3120,7 @@ msgid "Userhash :"
 msgstr "Hash del usuariu :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Amestar"
 
@@ -3350,9 +3355,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Desaminar"
 
@@ -3442,7 +3447,7 @@ msgstr "Máx. conexones al empar:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3562,7 +3567,7 @@ msgstr "Introduz l'espaciu mínimu de discu deseyáu."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Guardar 10 fontes en ficheros raros (< 20 fontes)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Xubíes"
 
@@ -3804,7 +3809,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Habilitar UPnP port forwarding nel puertu EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Contraseña"
 
@@ -3887,8 +3892,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Seleiciona color pa esta categoría (seleicionada) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Reafitar"
 
@@ -4294,88 +4299,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Habilita mou estendíu de depuración al aniciu"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Abrir el ficheru"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Mensaxes de categoríes:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Esperando..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Amestar imports"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Reintentar seleicionáu"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Desaniciar seleicionáu"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Tipos Eventos"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Xubes aceutaes :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Anubre los ficheros compartíos"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Seleicionar fieltru de vistes"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Xubes actives"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Amosar Veceros"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Recargar llista"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Recargar los tos ficheros compartíos"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Unviar"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Unviar un mensax específicu."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Zarrar esta sesión de charra"
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Coneutar a cualesquier sirvidor y/o Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Fich compartíos"
 
@@ -4384,135 +4394,135 @@ msgstr "Fich compartíos"
 msgid "Disabled [%s]"
 msgstr "Deshabilitáu [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/seg"
 msgstr[1] "bytes/seg"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "segs"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "mins"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "hores"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Díes"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "too"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "el restu"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incompletu"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Deteníu"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Vídeu"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Ficheru"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Testu"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Activu"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Esperando a ficheru part matando filu..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importando %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Lleendo direutoriu temp"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Obteniendo información básica de ficheru info de descarga"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Criando ficheru de destín"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Cargando datos dende l'antigua descarga del ficheru (%u de %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Atroxando bloque de datos nun nuevu ficheru de descarga (%u de %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Obteniendo información del ficheru fonte de descarga"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Amestando descarga y guardando nuevu ficheru part"
 
@@ -4528,12 +4538,12 @@ msgstr "Estáu"
 msgid "Filehash"
 msgstr "Hash de ficheru"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Discu: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4541,14 +4551,14 @@ msgstr ""
 "¡Por favor escueye un direutoriu pa guetar por descargues temporales! "
 "(incluyiránse subdireutorios)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "¿Quies que los ficheros fonte d'una descarga importada satisfactoriamente "
 "seyan desaniciaos?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "¿Desaniciar fontes?"
 
@@ -4663,7 +4673,7 @@ msgstr "Ficheru part %s (%s) tien un ficheru de semientes ermu"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Fallu lleendo semientes del ficheru part (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4678,39 +4688,39 @@ msgstr[1] ""
 "Parte toyía alcontrada (%i) en %d partes del ficheru %s - Resultáu del hash "
 "del ficheru |%s| Hash del ficheru |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Parte (%i) completa alcontrada en %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Recodificación finada %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Fallu inesperáu mientres se completaba %s. Ficheru posáu"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Descarga finada: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Desaniciando ficheru: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "AVISU: Nun pue criase'l hash de la parte descargada, set de hashes "
 "incompletu pa '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4719,234 +4729,234 @@ msgstr ""
 "ERROR: Nun pue criase'l hash de la parte descargada, set de hashes "
 "incompletu pa (%s). Esto nun tendría de pasar enxamás"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "AVISU: Nun hai espaciu llibre nel discu! Posando ficheru: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Parte descargada %i toyía nel ficheru: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Recuperada parte toyía %i de %s -> Bytes salvaos: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Asignando"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Espaciu en discu insuficiente"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Descargáu"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ERROR: Fallu al abrir ficheru part '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Por defeutu"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanés"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Árabe"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturianu"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Euskera"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Búlgaru"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalán"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Chinu (simplificáu)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Chinu (Tradicional)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Croata"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Checu"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danés"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holandés"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Inglés (U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estoniu"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandés"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francés"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Gallegu"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Alemán"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Griegu"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebréu"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Húngaru"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italianu"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italianu (Suizu)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Xaponés"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Coreanu"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituanu"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Noruegu"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polacu"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugués"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugués (Brasil)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Rusu"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Eslovenu"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Español"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Suecu"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turcu"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ucranianu"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Llingua: "
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Non disponible"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "opciones non disponibles"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Categoría inválida alcontrada, saltando"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "Puertu TCP nun pue ser más altu de 65532 darréu que'l socket del sirvidor "
 "UDP ye TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Puertu por defeutu que s'usará (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Quitando direutoriu compartíu non esistente: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Conexón"
 
@@ -4954,7 +4964,7 @@ msgstr "Conexón"
 msgid "Directories"
 msgstr "Direutorios"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Sirvidores"
 
@@ -5005,7 +5015,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5021,30 +5031,30 @@ msgstr ""
 "aMule furrulará bien ensin que camudes dengún\n"
 "d'estos parámetros."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Error al coneutar configuración con programa, col ID %d y clave %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 "Error al tresferir datos dende la configuración al programa, col ID %d y la "
 "clave %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "La triba de proxy a la que tas coneutando"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 "Error al tresferir datos dende'l programa a la configuración, col ID %d y la "
 "clave %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5052,30 +5062,35 @@ msgstr ""
 "aMule tien de reaniciase p'aplicar los cambeos:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- Puertu TCP camudáu.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- Puertu UDP camudáu.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Conexón esterna zarrada."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Nueva conexón esterna, aceutada"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Conexón esterna zarrada."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Ofuscación de protocolu"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5083,7 +5098,7 @@ msgstr ""
 "La to llista Auto-actualizable de sirvidores ta erma.\n"
 "La llista de sirvidores auto-actualizable al entamu desactivaráse."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5093,19 +5108,19 @@ msgstr ""
 "Les conexones externes nun puen ser habilitaes sacante qu'especifiques una "
 "contraseña válida."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Llingua camudada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Direutoriu TEMP camudáu.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- Rede ED2K activada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5113,7 +5128,7 @@ msgstr ""
 "eD2k y Kad tán desactivaos.\n"
 "Nun podrás coneutate hasta qu'actives a lo menos ún d'ellos."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5121,7 +5136,7 @@ msgstr ""
 "Kad nun s'aniciará si'l to puertu UDP ta deshabilitáu.\n"
 "Habilita un puertu UDP o deshabilita Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5131,7 +5146,7 @@ msgstr ""
 "Hai de reaniciar aMule agora.\n"
 "Si nun reanicies agora, nun sabemos si pasará daqué malo.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5141,41 +5156,41 @@ msgstr ""
 "Por favor introduz a lo menos una URL con un ficheru server.met válidu.\n"
 "Click nel botón \"Llista\" d'esta caxella  pa introducir una URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Ficheros temporales"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Ficheros entrantes"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Robles online"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Escueye una carpeta pa %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Esplorar"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Seleiciona restolador"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Executable%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Editar llista de sirvidores"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5183,76 +5198,76 @@ msgstr ""
 "Amesta equí les URL's pa descargar los ficheros server.met.\n"
 "Namái una url per llinia."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Intervalu d'actualización: %d seg"
 msgstr[1] "Intervalu d'actualización: %d segs"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Tiempu mediu del gráficu: %d min"
 msgstr[1] "Tiempu mediu del gráficu: %d mins"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Escala gráfica de conexones: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Tamañu del buffer de ficheru: %d byte"
 msgstr[1] "Tamañu del buffer de ficheru: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Tamañu de la cola de xuba: %d veceru"
 msgstr[1] "Tamañu de la cola de xuba: %d veceros"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Intervalu de refrescu de la conexón al sirvidor: %d minutu"
 msgstr[1] "Intervalu de refrescu de la conexón al sirvidor: %d minutos"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Intervalu de refrescu de la conexón al sirvidor: Deshabilitáu"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "deshabilitáu"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Executar comandu nel eventu `%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Habilitar execución de comandu nel núcleu"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Comandu del núcleu:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Habilitar execución de comandu na Interface"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Comandu de la Interface: "
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Les siguientes variables trocaránse:"
 
@@ -5281,7 +5296,7 @@ msgstr "Nun pue facese una gueta en eD2k si nun se ta coneutáu a eD2k"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Fallu non esperáu mentantu tentaba guetar en Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID Ficheru"
 
@@ -5394,7 +5409,7 @@ msgstr "ERROR: Socket inválidu al comprobar el timeout"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Intentu de conexón con %s (%s:%i) tiempu escosáu."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Recibióse'l caberu resultáu de la to gueta DNS, descartando."
 
@@ -5423,50 +5438,50 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Ficheru server.met toyíu, alcontróse versión non válida: 0x%x, tamañu %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i sirvidor alcontráu en server.met"
 msgstr[1] "%i sirvidores alcontraos en server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d sirvidor amestáu"
 msgstr[1] "%d sirvidores amestaos"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "IO error lleendo'l ficheru known.met: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Sirvidor non amestáu: [%s:%d] nun especificaste un puertu válidu."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Sirvidor non amestáu: La IP de [%s:%d] ta fieltrada o nun ye válida."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr "Sirvidor non amestáu: Sirvidor IP:Puertu [%s:%d] alcontráu na llista."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Sirvidor amestáu: Sirvidor en [%s:%d] usando'l nome '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5474,25 +5489,25 @@ msgstr ""
 "Tas coneutáu al sirvidor, que tentes desaniciar. Por favor desconéutate "
 "primero."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Fallu al abrir '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "¡Fallu al guardar server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "URL non válida"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Descarga finada de la llista de sirvidores de %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5501,28 +5516,28 @@ msgstr ""
 "una llista de sirvidores válida nesti ficheru pa poder actualizar de mou "
 "automáticu la llista de sirvidores."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Descargando llista de sirvidores de %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "ALVERTENCIA: especificada una URL inválida pa l'actualización automática de "
 "sirvidores : %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Fallu en addresses.dat, server.met de la url de auto descarga inválidu"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Fallu al descargar la llista de sirvidores dende %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5559,7 +5574,7 @@ msgid "Static"
 msgstr "Sirvidor fixu"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versión"
 
@@ -5585,8 +5600,8 @@ msgstr "De xuru quies desaniciar el sirvidor fixu %s"
 msgid "Servers (%i)"
 msgstr "Sirvidores (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Sirvidor"
 
@@ -5642,82 +5657,82 @@ msgstr "¿De xuru quies desaniciar el sirvidor seleicionáu?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "¿De xuru quies desaniciar los sirvidores seleicionaos?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ERROR: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "AVISU: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "El nuevU ID-Veceru ye %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "AVISU: ¡Recibiste ID-Baxa!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tEsto asocede porque tas darrera d'un torgafueos o d'un router."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPa mas información, por favor ve a http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "¡Información recibía del sirvidor desconocía! - enforma pequeña"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Recibíu %d nuevu sirvidor"
 msgstr[1] "Recibiéronse %d nuevos sirvidores"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Guardáu de llista de sirvidores fechu."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "El sirvidor refuga'l caberu comandu"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Paquete bogus recibíu dende'l sirvidor: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Fallu mientres que se taba procesando un paquete dende'l sirvidor: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Nun pue criase un filu de resolución de DNS pa coneutar con %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Sirvidor IP %s (%s) ta fieltráu. Nun coneutará."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "usando ofuscación de protocolu."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Coneutando a %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Imposible resolver dns pal sirvidor %s: ¡Imposible coneutar! "
@@ -5903,85 +5918,90 @@ msgstr "Nome de ficheru"
 msgid "Shares File List"
 msgstr "Fich compartíos"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Peticiones"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Peticiones aceutaes"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Datos tresferíos"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Media Compartíu"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Partes obteníes"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Fontes completes"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Direutoriu"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Amestar Comentariu/Valoración"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Editar Comentariu/Valoración"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Renomar"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Amestar ficheros en colleición a la llista de descargues"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Copiar &URL magnéticu al cartafueyos"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Copiar l'enllaz eD2k al cartafueyos (&Fonte)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Copiar l'enllaz eD2k al cartafueyos (Fonte) (&Con opciones de cifráu)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Copiar l'enllaz eD2k al cartafueyos (&Nome del host)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Copiar l'enllaz eD2k al cartafueyos (Nome del host) (Co&n opciones de cifráu)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Copiar l'enllaz eD2k al cartafueyos (Información &AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Copiar l'enllaz eD2k al cartafueyos (Información &AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Necesites IDAlta pa criar un enllaz fonte válidu"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Ficheros Compartíos (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Ficheru part]"
 
@@ -5990,235 +6010,235 @@ msgstr "[Ficheru part]"
 msgid "Remote File Name"
 msgstr "Nome de ficheru"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Datos xubíos (Sesión (Total)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Total por tráficu escedente (Paquetes): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Escedente por peticiones de ficheru (Paquetes): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Escedente por intercambéu de fontes (Paquetes): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Tráficu escedente de sirvidores (Paquetes): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Tráficu escedente Kad (Paquetes): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Cifráu escedente (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Xubíes actives: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Xubíes n'espera: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Total de xubíes satisfactories: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Total de xubíes fallíes: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Tiempu mediu de xuba: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Datos descargaos (Sesión (Total)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Fontes alcontraes: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Descargues actives (partes): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Índiz XU:DE Sesión (Total): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Velocidá media de descarga (Sesión): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Velocidá media de xuba (Sesión): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Velocidá máxima de descarga (Sesión): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Velocidá máxima de xuba (Sesión): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Reconexones: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tiempu dende la primer tresferencia: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Coneutáu al sirvidor dende: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Conexones actives (estimáu): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Algamóse'l llímite máximu de conexones: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Media de conexones (estimáu): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Picu de conexones (estimáu): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Veceros"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Desconocíu: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtráu: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Baneáu: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Total: %i Conocíu(os): %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Sirvidores activos: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Sirvidores cayíos: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Total: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Sirvidores desaniciaos: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Sirvidores fieltraos: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Usuarios en sirvidores activos: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Ficheros en sirvidores activos: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Usuarios totales: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Ficheros totales: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Ocupación de Sirvidores: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Númberu de ficheros compartíos: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Tamañu total de ficheros compartíos: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Tamañu mediu de ficheru: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistema Operativu"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Non recibíu"
 
@@ -6278,7 +6298,7 @@ msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 "Hash non válidu (la llonxitú tendría de ser esautamente 32 carauteres)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Solicitú fallía con un fallu desconocíu."
 
@@ -6332,13 +6352,13 @@ msgstr "Coneutáu a %s %s %s"
 msgid "Now connecting"
 msgstr "Coneutando agora"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "tres tornafueos"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6789,21 +6809,21 @@ msgstr ""
 "Esti ye un comandu en desusu, y desaniciaráse nel futuru.\n"
 "Usa '%s' en so llugar.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Veceru de testu aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Convirtiendo antiguos hashsets AICH en  '%s' a 64b en '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "ALERTA: El nome de ficheru '%s' ye incorreutu y sedrá renomáu a '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "ALERTA: El ficheru '%s' yá esiste, renomando el nuevu a '%s'."
@@ -6875,7 +6895,7 @@ msgstr "Fallu al executar el comandu '%s' nel eventu `%s'."
 msgid "Download completed"
 msgstr "Descarga fecha ensembre"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "El camín completu al ficheru."
 
@@ -6895,66 +6915,66 @@ msgstr "El tamañu del ficheru en bytes."
 msgid "Cumulative download activity time."
 msgstr "Tiempu d'actividá de descarga acumuláu."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Aniciada Nueva sesión de charra"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Remitente del mensax."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Ensin espaciu"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partición de discu"
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Fallu completando"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Procesando númberu de ficheru %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Entrugaste por hashes de partes (Namái usáu por ficheros > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s --->¡ Nun esiste'l ficheru !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, el criador d'enllaces eD2k p'aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "¡Bienllegáu!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Parámetros d'entrada"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Ficheru a codificar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Amestar URLs opcionales pa esti ficheru"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Introduz equí el ficheru del que quieras calcular l'enllaz eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6962,15 +6982,15 @@ msgstr ""
 "Introduz equí la URL que quies amestar al enllaz eD2k: Amiesta / al final pa "
 "permitir a aLinkCreator amestar el nome del ficheru actual"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Desaniciar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Criar enllaz con hashes de partes"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6978,81 +6998,81 @@ msgstr ""
 "Aida pa separtar ficheros nuevos y raros más aína, el costu sedrá un tamañu "
 "d'enllaz mayor"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Hash de ficheru MD4"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Hash de ficheru eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "Enllaz eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Guardar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Copiar al cartafueyos"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Abrir"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Abrir un ficheru pa calcular el so enllaz eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Copiar l'enllaz eD2k calculáu al cartafueyos"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Guardar como"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Guardar l'enllaz eD2k calculáu nun ficheru"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Tocante a aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Seleiciona el ficheru del que quieras calcular l'enllaz eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Nun pue abrise'l cartafueyos"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "¡Res pa copiar agora!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Seleiciona'l ficheru pal enllaz eD2k calculáu"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Imposible abrir"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Por favor, introduz un nome de ficheru"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "¡Nun hai res agora pa guardar!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7072,158 +7092,162 @@ msgstr ""
 "\n"
 "Distribuyíu baxo la llicencia GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Calculando hash..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator trabayando pa ti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Calculando MD4 Hash..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Calculando eD2k Hashes..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "¡ Encaboxáu !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Fináu en %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "¡ Yá amestaste esa URL !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Por favor, introduz una URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Nun ye dable abrir %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i día(es) %i hora(es) %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, Estadístiques aMule en llinia"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Máximu índiz Desc dende que wxCas ta executándose: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Máximu índiz Desc absolutu durante execuciones anteriores de wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Parar auto recargar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Salvar imaxe d'estadístiques en llinia"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Imprentar imaxe d'estadístiques en llinia"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Opciones"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Tocante a wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Aniciar Auto Recargar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Auto recargar, deteníu"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Auto recargar, aniciáu"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Salvar imaxe d'estadístiques"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Estadístiques aMule en llinia"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7231,11 +7255,11 @@ msgstr ""
 "Hebo un fallu imprentando.\n"
 "Seique la to imprentadora actual nun tea configurada"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Imprentando"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7253,327 +7277,327 @@ msgstr ""
 "\n"
 "Distributed under GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Eeepa, aMule nun ta executándose..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule yá ta executándose"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule ta executándose, pero ta desconeutáu"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule ta coneutando..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, l'estáu d'aMule ye desconocíu..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " foi executáu durante "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " ¡ ta deteníu !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " ¡ nun ta coneutáu !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " ta coneutando..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " ta faciendo daqué raro, ¡ compruébalo !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " ta coneutáu a "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "apagáu"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " coneutáu "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " con "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Total Descargáu: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Xubío:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Descarga de sesión"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Descargáu:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Xuba: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Compartiendo:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " ficheru(os), Veceros na cola: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Tiempu:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " en "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Media de carga del sistema (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Tiempu d'execución del sistema: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Direutoriu que contién el ficheru amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Introduz el direutoriu au s'alluga'l to ficheru amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Intervalu de refrescu en segundos"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Xenerar un ficheru d'estadístiques siempres que s'actualice"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Introduz el direutoriu au quies xenerar la imaxe d'estadístiques"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Xube periódicamente la to imaxe d'estadístiques al sirvidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "Url FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Direutoriu FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Introduz la URL del to sirvidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Introduz el direutoriu del to sirvidor FTP au poner la to imaxe "
 "d'estadístiques"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Usuariu"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Introduz el nome d'usuariu pa coneutate al to sirvidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Introduz la contraseña d'usuariu pa coneutate al to sirvidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Intervalu d'actualización de FTP en minutos"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Validáu"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Direutoriu que contién el to ficheru de robla"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Direutoriu au se xenera la imaxe d'estadístiques"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Carga la plantía <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Puertu HTTP del sirvidor web"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Usar forwarding de puertos UPnP nel puertu del sirvidor web"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Puertu UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Usar compresión gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Contraseña d'accesu total pal sirvidor web"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Contraseña d'invitáu pa sirvidor web"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Permitir accesu a invitáu"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Denegar accesu a invitáu"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Cargar/guardar la configuración del sirvidor web dende/a aMule remotu"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Camín al ficheru config de aMule. ¡NUN USAR DIREUTAMENTE!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Deshabilitar intérprete PHP (desusu)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Recompila páxines PHP pa otra solicitú"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Sirvidor Web aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "conexón aceutada del veceru web\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "FALLU: nun pue aceutase la conexón del veceru web\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Solicitú fallía col siguiente fallu: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Ficheru índiz non alcontráu: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sesión finada - solicitando conexón\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sesión ok, coneutáu\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sesión ok, non coneutáu\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Nun hai denguna sesión - coneute de nuevu\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sesión criada - solicitando conexón\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Procesando solicitú [orixinal]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Nun s'especificó dengún password, nun se permite l'accesu."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Comprobando contraseña\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Hash de la contraseña incorreutu\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Contraseña ok\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Contraseña incorreuta\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 "Nun introduxisti denguna contraseña. Nun ta permitía una contraseña en "
 "blancu.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Desconexón solicitada\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Procesando solicitú [redirixía]: "
 
@@ -7765,9 +7789,6 @@ msgstr "Procesando solicitú [redirixía]: "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Total Usuarios: %s | Total Ficheros: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "Descarga HTTP filu entamáu"
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr ""
 #~ "Nun se recibió tamañu de la descarga; descargando hasta que se zarre la "
diff --git a/po/bg.po b/po/bg.po
index 5351979..d2bdce9 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: source_strings\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2004-02-07 21:55+0200\n"
 "Last-Translator: Boyan Ivanov <boyan17 at bulgaria.com>\n"
 "Language-Team: Bulgarian <dict at linux.zonebg.com>\n"
@@ -40,109 +40,109 @@ msgstr ""
 msgid "Failed to open ED2KLinks file."
 msgstr "Грешка при запис на файла с кредити"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr ""
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Грешка"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr ""
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Потвърждение за изход"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr ""
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr ""
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
 msgstr ""
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr ""
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
 msgstr ""
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr ""
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr ""
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -152,11 +152,11 @@ msgid ""
 "Check your network to make sure the port is open for output and input."
 msgstr ""
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr ""
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr ""
 
@@ -201,143 +201,143 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr ""
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr ""
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr ""
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr ""
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr ""
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr ""
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr ""
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr ""
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr ""
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr ""
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr ""
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr ""
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr ""
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr ""
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr ""
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr ""
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr ""
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr ""
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr ""
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr ""
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr ""
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr ""
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -345,7 +345,7 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -354,19 +354,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr ""
@@ -443,9 +443,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr ""
 
@@ -453,7 +453,7 @@ msgstr ""
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Свързва"
 
@@ -489,7 +489,7 @@ msgstr ""
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Отказ"
 
@@ -508,7 +508,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Изключване от текущия сървър"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Връзка"
 
@@ -549,7 +549,7 @@ msgstr "Потвърждение за изход"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -564,81 +564,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr ""
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr ""
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr ""
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Изтегляне"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Съобщения"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Статистика"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Настройки"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr ""
 
@@ -658,7 +658,7 @@ msgstr ""
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr ""
 
@@ -671,109 +671,109 @@ msgstr "Фатална грешка: не можах да създам броя
 msgid "Connect to remote amule"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Фатална грешка: не можах да създам брояч"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Свързва"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr ""
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Неизвестен"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr ""
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 #, fuzzy
 msgid "Searching buddy for lowid connection"
 msgstr "изчакване за свързване..."
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr ""
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr ""
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr ""
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, fuzzy, c-format
 msgid "Requested: %s\n"
 msgstr "Поискан:"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, fuzzy, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -783,7 +783,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Статистика за текущата сесия : Приети %d от %d заявки,%s осъществени\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, fuzzy, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -793,7 +793,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Статистика за текущата сесия : Приети %d от %d заявки,%s осъществени\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Заявен е несъществуващ файл"
 
@@ -935,12 +935,12 @@ msgid "Client Details"
 msgstr ""
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr ""
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr ""
 
@@ -992,64 +992,64 @@ msgstr ""
 msgid "Not Available"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1064,7 +1064,7 @@ msgstr "Потребителско име"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Име на файл"
 
@@ -1105,33 +1105,33 @@ msgstr "Автоматичен [No]"
 msgid "Auto [Hi]"
 msgstr "Автоматичен [Hi]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr ""
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Ниско"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Нормален"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Високо"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr ""
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr ""
 
@@ -1148,12 +1148,12 @@ msgid "Queue Full"
 msgstr "Опашката е пълна"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "На опашката"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Изтегляне"
 
@@ -1213,7 +1213,7 @@ msgstr ""
 msgid "Remote Server"
 msgstr ""
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr ""
@@ -1239,7 +1239,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Завършен"
 
@@ -1280,11 +1280,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Размер"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Пренесен"
 
@@ -1297,17 +1297,17 @@ msgid "Progress"
 msgstr "Прогрес"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Източници"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Приоритет"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Статус"
@@ -1336,7 +1336,7 @@ msgid "Are you sure that you wish to delete the selected files?"
 msgstr ""
 "Сигурни ли сте,че желаете да откажете свалянето и изтриете тези файлове ?\n"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1344,7 +1344,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Автоматично"
 
@@ -1396,11 +1396,11 @@ msgstr ""
 msgid "Copy magnet URI to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr ""
 
@@ -1416,34 +1416,34 @@ msgstr ""
 msgid "&Open the file"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Файлове за сваляне (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1547,233 +1547,233 @@ msgstr ""
 msgid "External connections disabled in config file"
 msgstr ""
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr ""
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr ""
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
 msgstr ""
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr ""
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr ""
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr ""
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr ""
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr ""
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr ""
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr ""
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr ""
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr ""
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr ""
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr ""
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr ""
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr ""
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr ""
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr ""
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr ""
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr ""
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr ""
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr ""
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr ""
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr ""
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr ""
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr ""
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1781,23 +1781,23 @@ msgid ""
 "Type '%s <command>' to get detailed info on <command>.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr ""
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr ""
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1805,59 +1805,59 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr ""
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr ""
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr ""
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr ""
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr ""
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
 "Ok, exiting %s...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1866,47 +1866,47 @@ msgid ""
 "Exiting...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr ""
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr ""
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr ""
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr ""
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr ""
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr ""
 
@@ -1919,8 +1919,8 @@ msgstr ""
 msgid "%.1f%% done"
 msgstr ""
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr ""
@@ -1937,7 +1937,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Приятели"
 
@@ -2070,31 +2070,31 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Свален:"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr ""
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2126,7 +2126,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr ""
@@ -2169,7 +2169,7 @@ msgstr[1] ""
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2184,103 +2184,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr ""
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr ""
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr ""
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr ""
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2306,69 +2306,74 @@ msgstr "Неизвестно: %i"
 msgid "Unable to get error description for error %d"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Завършено"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Пауза"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr ""
 
+#: src/LibSocketAsio.cpp:1259
+#, c-format
+msgid "Asio thread %d started"
+msgstr ""
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2377,16 +2382,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Затвори"
 
@@ -2394,8 +2399,8 @@ msgstr "Затвори"
 msgid "Cut"
 msgstr ""
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr ""
 
@@ -2404,7 +2409,7 @@ msgid "Paste"
 msgstr ""
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Изчисти"
 
@@ -2414,7 +2419,7 @@ msgstr ""
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "кБ/с"
@@ -2491,7 +2496,7 @@ msgid "ServerIP: "
 msgstr ""
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr ""
 
@@ -2526,7 +2531,7 @@ msgstr ""
 msgid "Online Signature: Disabled"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr ""
@@ -2567,7 +2572,7 @@ msgstr ""
 msgid "Show aMule"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Изход"
 
@@ -2642,7 +2647,7 @@ msgstr "Търсене"
 msgid "Name:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Тип"
 
@@ -2670,38 +2675,38 @@ msgstr ""
 msgid "File Type"
 msgstr ""
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Всеки"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Архиви"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Аудио"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-изображения"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Картинки"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Програми"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr ""
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Клипове"
 
@@ -2722,11 +2727,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2754,7 +2759,7 @@ msgstr ""
 msgid "Hide Known Files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Старт"
 
@@ -2812,7 +2817,7 @@ msgstr ""
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "Няма"
 
@@ -2836,7 +2841,7 @@ msgstr ""
 msgid "Last seen complete :"
 msgstr ""
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Трансфер"
 
@@ -2922,27 +2927,27 @@ msgstr ""
 msgid "File Quality"
 msgstr ""
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Няма оценки"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Грешен / Развален / Фалшив"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Лош"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Средно добър"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Добър"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Отличен"
 
@@ -2987,7 +2992,7 @@ msgid "Userhash :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Добавяне"
 
@@ -3215,9 +3220,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Избери"
 
@@ -3303,7 +3308,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr ""
 
@@ -3421,7 +3426,7 @@ msgstr ""
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr ""
 
@@ -3660,7 +3665,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr ""
 
@@ -3742,8 +3747,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Нулира"
 
@@ -4117,89 +4122,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr ""
 
 #: src/muuli_wdr.cpp:3169
+msgid "Only to Logfile"
+msgstr ""
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Изчакване"
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Активни качвания: %i"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 #, fuzzy
 msgid "Percent of total files"
 msgstr "Общо файлове"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Споделени файлове (%i)"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Избор на филтър"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Активни качвания: %i"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Клиенти"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Качване"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Изпраща"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr ""
 
@@ -4208,137 +4217,137 @@ msgstr ""
 msgid "Disabled [%s]"
 msgstr ""
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 #, fuzzy
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "Байта"
 msgstr[1] "Байта"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr ""
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr ""
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 #, fuzzy
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "Байта"
 msgstr[1] "Байта"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr ""
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "сек."
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "мин."
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr ""
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr ""
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "Всички"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "всички останали"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Незавършен"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Спрян"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Видео"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Архив"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Текст"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr ""
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr ""
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr ""
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr ""
 
@@ -4354,23 +4363,23 @@ msgstr ""
 msgid "Filehash"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr ""
 
@@ -4481,7 +4490,7 @@ msgstr ""
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4492,268 +4501,268 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr ""
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr ""
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr ""
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr ""
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr ""
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr ""
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr ""
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr ""
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Каталунски"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr ""
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr ""
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr ""
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr ""
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr ""
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr ""
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr ""
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr ""
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Френски"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr ""
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Немски"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr ""
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr ""
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr ""
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Италиански"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr ""
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr ""
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr ""
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr ""
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr ""
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr ""
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr ""
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr ""
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Руски"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr ""
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr ""
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr ""
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr ""
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Език"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr ""
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr ""
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Връзка"
 
@@ -4761,7 +4770,7 @@ msgstr "Връзка"
 msgid "Directories"
 msgstr "Директории"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Сървъри"
 
@@ -4812,7 +4821,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4822,136 +4831,140 @@ msgid ""
 "these settings."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+msgid "- Protocol obfuscation support changed.\n"
+msgstr ""
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
 "If you do not restart now, don't complain if anything bad happens.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
 "Click on the button \"List\" by this checkbox to enter an URL."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Търсене на видео плеър"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -4959,77 +4972,77 @@ msgstr ""
 "Тук добавете линкове за сваляне на .met файлове.\n"
 "Само по един URL на ред."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "деактивиране"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr ""
 
@@ -5057,7 +5070,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr ""
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr ""
 
@@ -5168,7 +5181,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr ""
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5195,99 +5208,99 @@ msgstr ""
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, fuzzy, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i сървъра бяха намерени в server.met"
 msgstr[1] "%i сървъра бяха намерени в server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, fuzzy, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d сървъра бяха добавени"
 msgstr[1] "%d сървъра бяха добавени"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 #, fuzzy
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Грешка: файлът server.met е повреден"
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr ""
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr ""
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr ""
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr ""
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Грешка при записа на server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Грешен URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5322,7 +5335,7 @@ msgid "Static"
 msgstr "Статичен"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr ""
 
@@ -5346,8 +5359,8 @@ msgstr ""
 msgid "Servers (%i)"
 msgstr "Сървъри (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Сървър"
 
@@ -5408,82 +5421,82 @@ msgid "Are you sure that you wish to delete the selected servers?"
 msgstr ""
 "Сигурни ли сте,че желаете да откажете свалянето и изтриете тези файлове ?\n"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Новият номер на клиента е %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr ""
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr ""
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, fuzzy, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Получени са %d нови сървъра"
 msgstr[1] "Получени са %d нови сървъра"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr ""
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Сървърът отхвърли последната команда"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr ""
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr ""
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5672,84 +5685,89 @@ msgstr "Име на файл"
 msgid "Shares File List"
 msgstr "Споделени файлове (%i)"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Заявки"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Приети заявки"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Пренесени данни"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Копиране на ED2k линк в системния буфер (име на хост)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Трябва да имате HighID, за да създадете валиден сорс линк"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Споделени файлове (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr ""
 
@@ -5758,235 +5776,235 @@ msgstr ""
 msgid "Remote File Name"
 msgstr "Име на файл"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Средно време за качване: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr ""
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr ""
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr ""
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Повторни свързвания: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Изтекло време от пърия трансфер: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Свързан към сървъра от : %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr ""
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr ""
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Клиенти"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Неизвестно: %i"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Филтрирани: %i"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr ""
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr ""
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr ""
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr ""
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Общ размер на споределните файлове : %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr ""
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr ""
 
@@ -6042,7 +6060,7 @@ msgstr ""
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr ""
 
@@ -6096,13 +6114,13 @@ msgstr ""
 msgid "Now connecting"
 msgstr ""
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr ""
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr ""
 
@@ -6487,21 +6505,21 @@ msgid ""
 "Use '%s' instead.\n"
 msgstr ""
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr ""
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6574,7 +6592,7 @@ msgstr ""
 msgid "Download completed"
 msgstr ""
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr ""
 
@@ -6594,160 +6612,160 @@ msgstr ""
 msgid "Cumulative download activity time."
 msgstr ""
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr ""
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr ""
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr ""
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr ""
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6759,169 +6777,173 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 #, fuzzy
 msgid "Cancelled !"
 msgstr "Отказ"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr ""
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -6932,324 +6954,324 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr ""
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 #, fuzzy
 msgid " kB/s"
 msgstr "кБ/с"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr ""
 
@@ -7292,10 +7314,6 @@ msgstr ""
 #~ msgstr "Допълнителни Опции"
 
 #, fuzzy
-#~ msgid "Copy ED2k links to clipboard"
-#~ msgstr "Копиране на ED2k линк в системния буфер (име на хост)"
-
-#, fuzzy
 #~ msgid "ED2K: Connecting"
 #~ msgstr "Свързва"
 
diff --git a/po/ca.po b/po/ca.po
index c2d375a..a032b9a 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ca\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2010-01-15 03:38+0200\n"
 "Last-Translator: simkin <simkin at ono.com>\n"
 "Language-Team: Català\n"
@@ -44,7 +44,7 @@ msgstr "El resum d'usuari especificat no és vàlid!"
 msgid "Failed to open ED2KLinks file."
 msgstr "No s'ha pogut obrir el fitxer de enllaços ED2K."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -52,37 +52,37 @@ msgstr ""
 "AVÍS: No us podeu afegir com a font per a un enllaç eD2k mentre teniu ID "
 "Baixa."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Sortint del programa..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, fuzzy, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "S'està aturant el procés amuleweb amb pid `%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, fuzzy, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Aturant procés amuleweb amb pid `%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Fallades"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule Sortida: Finalitzant nucli."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Aturada aMule completada."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Resultat de la depuració de la memòria a la sortida de l'aMule:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -90,16 +90,16 @@ msgstr ""
 "\n"
 "Configuració EC"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Contrassenya definida i connexions externes activades."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "AVÍS"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -107,13 +107,13 @@ msgstr ""
 "S'ha establert l'idioma Predeterminat del Sistema a causa d'un canvi de "
 "configuració. Disculpeu."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Informació"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -121,16 +121,16 @@ msgstr ""
 "No teniu cap servidor a la llista de servidors.\n"
 "Voleu que l'aMule baixi una llista nova?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Baixada de la llista de servidors"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "servidor web executant-se al pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -141,23 +141,23 @@ msgstr ""
 "servidor web de l'aMule, o compileu l'aMule usant la opció --enable-"
 "webserver i executeu make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ERROR"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "No s'han pogut vincular els ports a l'adreça especificada: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "El port %u no està disponible. Tindreu ID BAIXA\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -173,11 +173,11 @@ msgstr ""
 "Comproveu la configuració de la xarxa per a assegurar-vos que el port està "
 "obert."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "No s'ha pogut crear el fitxer de la signatura en línia"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "No s'ha pogut crear el fitxer de la signatura en línia de l'aMule"
 
@@ -229,134 +229,134 @@ msgstr ""
 " S'INHABILITARÀ la signatura en línia fins que ho resolgueu a les "
 "preferències."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Nom del servidor notificat"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "La preassignació d'espai per al fitxer '%s' ha fallat: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ERROR: no es pot obrir el fitxer de registre"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "AVÍS: el fitxer de registre està buit. Alguna cosa no va bé."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "S'ha reiniciat el registre"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Missatge del servidor: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "No s'ha pogut baixar la llista de nodes."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "No s'ha pogut obrir el fitxer de comprovació de versió"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Fitxer de comprovació de versió corrupte"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Esteu usant una versió antiga de l'aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 "La vostra versió de l'aMule és %i.%i.%i i l'última versió és %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Sempre podeu trobar l'última versió a http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "AVÍS: La vostra versió d'aMuled és antiga: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "La vostra versió de l'aMule és l'última."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "No s'ha pogut baixar el fitxer de comprovació de versió"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Usuaris: %s | Fitxers: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Usuaris: E: %s K: %s | Fitxers: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "No s'han seleccionat xarxes"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "amb ID Baixa"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "amb ID Alta"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Connectat a %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "S'està connectant a %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Desconnectat de eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "S'ha engegat la xarxa Kad."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "S'ha aturat la xarxa Kad."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Connectat a Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Connectat a Kad (tallafocs)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Desconnectat de Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -364,11 +364,11 @@ msgstr ""
 "No es pot usar la xarxa Kad si el port UDP està inhabilitat a les "
 "preferències, no s'engegarà."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "La xarxa Kad està inhabilitada a les preferències, no es connectarà."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -380,7 +380,7 @@ msgstr ""
 "normal, inicieu l'amuled amb la opció --ec-config o establiu el paràmetre "
 "\"AcceptExternalConnections\" a 1 al fitxer ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -394,19 +394,19 @@ msgstr ""
 "conf ha de tenir un valor assignat. Executa amuled amb els paràmetres --ec-"
 "config per establir una contrassenya. Més informació a http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: A l'Inici - Iniciant timer"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: Bifurcant-se a segon pla - adeu siau"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "No s'ha pogut crear el fitxer Pid"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ERROR: %s"
@@ -489,9 +489,9 @@ msgstr "Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Missatge"
 
@@ -499,7 +499,7 @@ msgstr "Missatge"
 msgid "aMule dialog destroyed"
 msgstr "Diàleg de l'aMule tancat"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Connectant"
 
@@ -533,7 +533,7 @@ msgstr "Kad: Inativa"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Cancel·la"
 
@@ -550,7 +550,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Desconnecta de les xarxes on s'està connectat actualment."
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Connecta"
 
@@ -591,7 +591,7 @@ msgstr "Confirmació de sortida"
 msgid "Launch Command: "
 msgstr "Ordre:"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- defecte -"
 
@@ -607,81 +607,81 @@ msgstr ""
 "AVÍS: No ha estat possible obrir el fitxer d'aparença '%s' per a lectura"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Xarxes"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Finestra de les Xarxes"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Cerques"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Finestra de cerques"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Baixades"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "S'està baixant"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Compartits"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Finestra de fitxers compartits"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Missatges"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Finestra de Missatges"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Estadístiques"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Finestra del gràfic d'estadístiques"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Preferències"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Finestra de la configuració de preferències"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importa"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Eina d'importació de fitxers de parts"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Quant a"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Quant a / Ajuda"
 
@@ -701,7 +701,7 @@ msgstr "Cap xarxa"
 msgid "aMule remote control"
 msgstr "Control remot de l'aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -713,108 +713,108 @@ msgstr "Error Fatal: Ha fallat la creació del Core Timer"
 msgid "Connect to remote amule"
 msgstr "Connecta a l'amule remot"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Error Fatal: Ha fallat la creació del Poll Timer"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "S'està executant un bucle..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Connectant..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "La connexió ha fallat "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Gestor d'esdeveniments de la IGU EC Remota  "
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Aturant"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Connexió fallida. No ha estat possible connectar-se a %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "S'ha tancat la connexió - segurament l'aMule s'ha terminat."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "A punt"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Tots"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "No s'ha pogut crear el directori '%s' per a la categoria '%s', es mantindrà "
 "el directori '%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Desconegut"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "No s'han pogut obtenir els compartits de l'usuari '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Buscant amic per connexió amb ID Baixa"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Versió d'eMule falsa %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (eMule fals)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (eMule fals)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (basat en l'eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Sobrenom: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Demanat: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -826,7 +826,7 @@ msgstr[1] ""
 "Estadístiques dels fitxers per a aquesta sessió: %d peticions acceptades de %"
 "d, %s transferides\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -838,7 +838,7 @@ msgstr[1] ""
 "Estadístiques dels fitxers per a totes les sessions: %d peticions acceptades "
 "de %d, %s transferides\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "S'ha demanat un fitxer desconegut"
 
@@ -990,12 +990,12 @@ msgid "Client Details"
 msgstr "Detalls del client"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "ID Baixa"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "ID Alta"
 
@@ -1047,31 +1047,31 @@ msgstr "Verificat - OK"
 msgid "Not Available"
 msgstr "No disponible"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "L'usuari %s (%u) ha demanat la llista de fitxers compartits -> Acceptada"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "L'usuari %s (%u) ha demanat la llista de fitxers compartits -> Denegada"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "L'usuari %s (%u) ha demanat la llista de directoris compartits -> Acceptada"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "L'usuari %s (%u) ha demanat la llista de directoris compartits -> Denegada"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1079,7 +1079,7 @@ msgstr ""
 "L'usuari %s (%u) ha demanat la llista de fitxers compartits del directori %"
 "s  -> Acceptada"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1087,35 +1087,35 @@ msgstr ""
 "L'usuari %s (%u) ha demanat la llista de fitxers compartits del directori %"
 "s  -> Denegada"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "L'usuari %s (%u) comparteix el directori %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "L'usuari %s (%u) ha enviat directoris compartits no demanats."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "L'usuari %s (%u) ha enviat la llista de fitxers compartits del directori %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 "L'usuari %s (%u) ha acabat l'enviament de la llista de fitxers compartits"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 "L'usuari %s (%u) ha enviat una llista de fitxers compartits no desitjada"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1132,7 +1132,7 @@ msgstr "Usuari"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Fitxer"
 
@@ -1175,33 +1175,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Al]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Molt baixa"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Baixa"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Alta"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Molt alta"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Llançament"
 
@@ -1218,12 +1218,12 @@ msgid "Queue Full"
 msgstr "Cua plena"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Cua"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "S'està baixant"
 
@@ -1283,7 +1283,7 @@ msgstr "Servidor local"
 msgid "Remote Server"
 msgstr "Servidor remot"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1309,7 +1309,7 @@ msgid "Search Result"
 msgstr "Resultat de la cerca"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Completat"
 
@@ -1350,11 +1350,11 @@ msgid "Part"
 msgstr "Part"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Mida"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Transferit"
 
@@ -1367,17 +1367,17 @@ msgid "Progress"
 msgstr "Progrés"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Fonts"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioritat"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Estat"
@@ -1402,7 +1402,7 @@ msgstr "Esteu segur que voleu esborrar el fitxer seleccionat?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Esteu segur que voleu esborrar els fitxers seleccionats?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1412,7 +1412,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1464,11 +1464,11 @@ msgstr "Mostra els comentaris"
 msgid "Copy magnet URI to clipboard"
 msgstr "Copia l'enllaç amb format Magnet al porta-retalls"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Copia &l'enllaç eD2k al porta-retalls"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Copia la &informació al porta-retalls"
 
@@ -1484,24 +1484,24 @@ msgstr "Assigna a una categoria"
 msgid "&Open the file"
 msgstr "&Obre el fitxer"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Introduïu un nom nou per al fitxer:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Reanomena"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%d/%m/%y %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Baixades (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1509,11 +1509,11 @@ msgstr ""
 "Per a evitar que en cada previsualització aparegui aquest avís, configureu\n"
 "un reproductor de vídeo a les preferències (per defecte s'usa mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Previsualització"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1625,30 +1625,30 @@ msgstr ""
 msgid "External connections disabled in config file"
 msgstr "Les connexions externes estan inhabilitades al fitxer de configuració"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nova connexió externa acceptada"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ERROR: no s'ha pogut acceptar una nova connexió externa"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "S'ha rebutjat la connexió externa per manca d'una contrasenya a les "
 "preferències!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "S'està connectant al client: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Versió desconeguda"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1656,7 +1656,7 @@ msgstr ""
 "ID de versió EC incorrecta, pot haver-hi incompatibilitat binaria. Useu un "
 "nucli i un client remot del mateix llançament (versió)."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1665,176 +1665,176 @@ msgstr ""
 "No podeu connectar a una versió estable des d'una versió CVS arbitrària! "
 "Quedeu advertit de possibles fallades."
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Versió del protocol invàlida."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Marcador de la versió del protocol inexistent."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "Ha fallat l'autenticació."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "Ha fallat l'autenticació."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Petició invàlida, primer heu d'autenticar-vos."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Accés concedit."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Filtra els missatges dels clients desconeguts"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Intent d'accés no autoritzat. Connexió tancada."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Ha fallat una ordre remota de fitxer de parts: No s'ha trobat el resum del "
 "fitxer: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "No s'ha trobat el resum del fitxer: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "Error en processar el codi d'opció!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "No s'ha afegit el servidor"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "no s'ha trobat el servidor: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "és necessari definir el servidor a esborrar"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k és inhabilitada a les preferències."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Cerca en procés. S'obtindran resultats en un moment!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "La recerca web des de la interfície remota no té sentit."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Cap punt per al gràfic."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "El vostre client no està configurat per a aquest nivell de detall."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Connexió externa: s'ha demanat l'aturada"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Ja s'està aturant."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ExternalConn: afegint l'enllaç '%s'"
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "L'enllaç és invàlid o ja és present a la llista."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "No s'ha trobat el fitxer."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nom de fitxer invàlid."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "No s'ha pogut canviar el nom del fitxer."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad està inhabilitada a les preferències."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Ja esteu connectat a eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Connectant a eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Ja esteu connectat a Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "S'està connectant a Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Totes les xarxes estan inhabilitades."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Desconnectat de eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Desconnectat de Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Connexió externa: s'ha rebut un codi d'opció invàlid: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Codi d'opció invàlid (versió de protocol errònia?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Extensió '%s' desconeguda per a l'ordre '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Ordre '%s' desconeguda.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1842,7 +1842,7 @@ msgstr ""
 "\n"
 "Aquesta ordre no pot tenir un argument.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1850,7 +1850,7 @@ msgstr ""
 "\n"
 "Aquesta ordre ha de tenir un argument.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1858,7 +1858,7 @@ msgstr ""
 "\n"
 "Aquesta ordre és incompleta, heu d'usar una de les extensions de sota.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1866,11 +1866,11 @@ msgstr ""
 "\n"
 "Extensions disponibles:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Ordres disponibles:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1881,17 +1881,17 @@ msgstr ""
 "Les majúscules no influeixen a les ordres.\n"
 "Escriviu '%s <ordre>' per a aconseguir informació sobre l' <ordre>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Surt de l'aplicació."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Mostra l'ajuda."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1899,7 +1899,7 @@ msgstr ""
 "Per a aconseguir ajuda sobre una ordre, escriviu 'help <ordre>'.\n"
 "Per a veure la llista completa d'ordres escriviu 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1910,48 +1910,48 @@ msgstr ""
 "Useu '%s' per a la llista d'ordres\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Error de sintaxi!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "S'ha produït un error processant una ordre - això no hauria de passar mai! "
 "Informeu de l'error, si us plau\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Aquesta ordre no hauria de tenir cap paràmetre."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Aquesta ordre ha de tenir un paràmetre."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argument invàlid."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Aquesta ordre és incompleta."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Escriviu '%s' per a aconseguir més ajuda.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Això és %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Això és %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1959,7 +1959,7 @@ msgstr ""
 "\n"
 "S'està creant el client...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1968,7 +1968,7 @@ msgstr ""
 "\n"
 "D'acord, eixint %s ...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1982,47 +1982,47 @@ msgstr ""
 "\n"
 "Eixint...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Mostra aquest text d'ajuda."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Ordinador on està executant-se l'aMule. (per defecte: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Port de l'aMule per a connexions externes. (per defecte: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Contrasenya per a les connexions externes."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Llegeix la configuració des del fitxer."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "No mostra res per la sortida estàndard."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Detallat - mostra també els missatges de depuració."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Estableix la localització del programa (idioma)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Escriu al fitxer de configuració les opcions de la línia d'ordres."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Crea un fitxer de configuració basat en el de l'aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Mostra la versió del programa."
 
@@ -2035,8 +2035,8 @@ msgstr "Detalls del fitxer"
 msgid "%.1f%% done"
 msgstr "%.2f%% fet"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2057,7 +2057,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "CRITIC - no hi ha client a l'Inici de Sessió del Xat"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Amics"
 
@@ -2188,32 +2188,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "S'han baixat %d bytes"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Esperats %d bytes, però %d bytes descarregats."
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Reconnecta amb el servidor"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2247,7 +2247,7 @@ msgstr "Actualització GeoIP.dat correcta."
 msgid "Error updating GeoIP.dat"
 msgstr "Error actualitzant GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Descarregar GeoIP.dat de %s fallida"
@@ -2298,7 +2298,7 @@ msgstr ""
 "Fallada al canviar de nom el nou fitxer GeoIP.dat, actualització "
 "interrompuda."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2315,104 +2315,104 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nodes (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "IP invàlida per a l'arrancada"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Port invàlid per a l'arrancada"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Si us plau empleneu tots els camps requerits"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Esteu segur que voleu baixar un nou fitxer nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr "Fer-ho esborrarà els nodes actuals i reiniciarà la connexió Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Voleu continuar?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: la paraula clau de cerca és massa curta"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Paraula clau de cerca: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: Paraula clau de cerca ja es troba a la llista de cerca: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "S'ha llegit %u contacte Kad"
 msgstr[1] "S'han llegit %u contactes Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "No es troben contactes, si us plau reinicia o baixa un nou fitxer nodes.dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Només %d contacte Kad disponible, nodes.dat no es pot escriure"
 msgstr[1] "Només %d contactes Kad disponibles, nodes.dat no es pot escriure"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "S'ha escrit %d contecte Kad"
 msgstr[1] "S'han escrit %d contactes Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nom del fitxer"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Mida"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Ràtio"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Transferit"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Peticions"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Acceptades"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Fonts completes"
 
@@ -2439,71 +2439,76 @@ msgstr "Versió desconeguda"
 msgid "Unable to get error description for error %d"
 msgstr "Carpeta on desar les descàrregues"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Resumint"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Completant"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Complet"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pausat"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Erroni"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Esperant"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Heu d'especificar una contrasenya (no buida)."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Contrasenya invàlida, no és un resum MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Fallada en la connexió"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "La connexió externa ha fallat. Resposta buida."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Connexió externa: Resposta incorrecta, confirmació de connexió fallida. S'ha "
 "tancat la connexió."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Connexió establerta amb l'aMule"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Connexió establerta amb èxit."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Connexió externa: Accés denegat perquè: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Connexió externa: Conformitat de connexió denegada."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "S'ha iniciat el fil de descàrrega HTTP."
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: Ok."
@@ -2512,16 +2517,16 @@ msgstr "ListenSocket: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ERROR: No s'ha pogut escoltar el port TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ERROR: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "AVÍS: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Tanca"
 
@@ -2529,8 +2534,8 @@ msgstr "Tanca"
 msgid "Cut"
 msgstr "Retalla"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Copia"
 
@@ -2539,7 +2544,7 @@ msgid "Paste"
 msgstr "Enganxa"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Neteja"
 
@@ -2549,7 +2554,7 @@ msgstr "Selecciona-ho tot"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2626,7 +2631,7 @@ msgid "ServerIP: "
 msgstr "IP del Servidor: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Desconnectat"
 
@@ -2661,7 +2666,7 @@ msgstr "Signatura en línia: Habilitada"
 msgid "Online Signature: Disabled"
 msgstr "Signatura en línia: Inhabilitada"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Funcionant: %s"
@@ -2702,7 +2707,7 @@ msgstr "Amaga l'aMule"
 msgid "Show aMule"
 msgstr "Mostra l'aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Surt"
 
@@ -2789,7 +2794,7 @@ msgstr "Cerca"
 msgid "Name:"
 msgstr "Nom:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tipus"
 
@@ -2817,38 +2822,38 @@ msgstr "Filtratge"
 msgid "File Type"
 msgstr "Tipus de fitxer"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Qualsevol"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arxius"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Àudio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Imatges de CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Imatges"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programes"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Documents"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Vídeos"
 
@@ -2869,11 +2874,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2901,7 +2906,7 @@ msgstr "Inverteix el resultat"
 msgid "Hide Known Files"
 msgstr "Amaga els fitxers coneguts"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Inicia"
 
@@ -2959,7 +2964,7 @@ msgstr "Nom Complet:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/D"
 
@@ -2983,7 +2988,7 @@ msgstr "Estat de les parts:"
 msgid "Last seen complete :"
 msgstr "Últim cop vist complet:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transferència"
 
@@ -3071,27 +3076,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Qualitat del fitxer"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Sense Valorar"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Invàlid / Corrupte / Fals"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Pobre"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Correcte"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Bo"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Excel·lent"
 
@@ -3136,7 +3141,7 @@ msgid "Userhash :"
 msgstr "Resum de l'usuari:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Afegeix"
 
@@ -3369,9 +3374,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Explora"
 
@@ -3461,7 +3466,7 @@ msgstr "Nombre màxim de connexions simultànies:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3581,7 +3586,7 @@ msgstr "Poseu l'espai mínim de disc desitjat."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Recorda 10 fonts dels fitxers rars (amb < 20 fonts)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Pujades"
 
@@ -3823,7 +3828,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Activa l'encaminament UPnP al port de connexions externes"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Contrasenya"
 
@@ -3906,8 +3911,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Seleccioneu un color per a la Categoria (actualment seleccionat):"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Reinicia"
 
@@ -4317,88 +4322,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Habilita la depuració-registre detallats."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Obre el fitxer"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Categories de missatge:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Esperant..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Afegeix"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Reintenta"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Esborra"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Tipus d'esdeveniments"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Pujades actives:"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Oculta els fitxers compartits"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Selecciona un filtre de vista"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Pujades actives"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Mostra els clients"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Recarrega la llista"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Recarrega els compartits"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Envia"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Envia el missatge especificat."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Tanca aquesta sessió de xat."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Connecta amb qualsevol servidor i/o Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Compartits"
 
@@ -4407,137 +4417,137 @@ msgstr "Compartits"
 msgid "Disabled [%s]"
 msgstr "Inhabilitat [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/seg"
 msgstr[1] "bytes/seg"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "segs"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "mins"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "hores"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Dies"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "tot"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "tota la resta"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incomplet"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Aturat"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Vídeos"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arxius"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Documents"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Actiu"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Esperant que el fil de conversió de fitxers de parts acabi..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "S'està important %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "S'està llegint la carpeta temporal"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 "S'està recuperant la informació bàsica del fitxer d'informació de baixada"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "S'està creant el fitxer de destí"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "S'està carregant les dades del fitxer de baixada antic (%u de %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 "S'està desant el bloc de dades a un nou fitxer de baixada únic (%u de %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "S'està recuperant informació del fitxer de baixada font"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "S'està afegint la baixada i desant un nou fitxer de parts"
 
@@ -4553,25 +4563,25 @@ msgstr "Estat"
 msgid "Filehash"
 msgstr "Resum del fitxer"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disc: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr "Seleccioneu una carpeta amb baixades temporals! (recursiu)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Voleu que s'esborrin els fitxers originals de les baixades importades amb "
 "èxit?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Voleu esborrar les fonts?"
 
@@ -4689,7 +4699,7 @@ msgstr "El fitxer de parts %s (%s) té un fitxer de llavors buit"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Error en llegir el fitxer de llavors del fitxer de parts (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4704,41 +4714,41 @@ msgstr[1] ""
 "S'ha trobat una part corrupta (%d) en els fitxers de parts %d %s - "
 "FileResultHash |%s| FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "S'ha trobat una part completa (%i) a %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "S'ha acabat de refer els resums de %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 "S'ha produït un error inesperat mentre es completava %s. S'ha pausat el "
 "fitxer."
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "S'ha acabat de baixar: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "S'està esborrant el fitxer: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "AVÍS: No ha estat possible fer el resum de la part descarregada - conjunt de "
 "resums incomplet per a '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4747,235 +4757,235 @@ msgstr ""
 "ERROR: No ha estat possible fer el resum de la part descarregada - conjunt "
 "de resums incomplet (%s). Açò no hauria de passar mai."
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 "AVÍS: No hi ha suficient espai al disc dur! S'està pausant el fitxer: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Corrupció a la part baixada %i del fitxer: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: S'ha recuperat la part corrupta %i de %s -> Bytes desats: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Assignant"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Espai en disc insuficient"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Baixat"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ERROR: No s'ha pogut obrir el fitxer part '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Predeterminat"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanès"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Àrab"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturià"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Basc"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Búlgar"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Català; Valencià"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Xinès (Simplificat)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Xinès (Tradicional)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Croat"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Txec"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danès"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holandès"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Anglès (R.U.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonià"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finès"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francès"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Gallec"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Alemany"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Grec"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebreu"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Hongarès"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italià"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italià (Suïssa)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonès"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Coreà"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituà"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Noruec"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polonès"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portuguès"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portuguès (Brasil)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Rus"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Eslovè"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Espanyol; Castellà"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Suec"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turc"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ucranià"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Idioma"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "No disponible"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "No hi ha opcions disponibles"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Categoria invàlida trobada, omitint"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "El port TCP no pot ser més gran que 65532 puix el sòcol UDP del servidor és "
 "TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "S'usarà el port per defecte (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Ignorant carpeta compartida inexistent: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Connexió"
 
@@ -4983,7 +4993,7 @@ msgstr "Connexió"
 msgid "Directories"
 msgstr "Directoris"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servidors"
 
@@ -5034,7 +5044,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5050,26 +5060,26 @@ msgstr ""
 "L'aMule anirà bé sense canviar cap\n"
 "d'aquests paràmetres."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Connexió fallida entre Cfg i el giny amb ID %d i clau %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "Fallida en l'enviament de dades de Cfg al giny amb ID %d i clau %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "El tipus de servidor intermediari al que connecteu"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "Fallida en l'enviament de dades del giny al Cfg amb ID %d i clau %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5077,30 +5087,35 @@ msgstr ""
 "S'ha de reiniciar l'aMule per a habilitar aquests canvis:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- El port TCP ha canviat.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- El port UDP ha canviat.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Connexió externa tancada."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Nova connexió externa acceptada"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Connexió externa tancada."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Ofuscació de protocol"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5108,7 +5123,7 @@ msgstr ""
 "La llista d'actualització de servidors és buida.\n"
 "L'actualització de servidors a l'inici serà desactivada."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5118,19 +5133,19 @@ msgstr ""
 "Les connexions externes no poden ser habilitades a menys que s'hagi "
 "especificat una contrasenya externa vàlida."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- L'idioma ha canviat.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- El directori temporal ha canviat.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- Xarxa ED2K habilitada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5138,7 +5153,7 @@ msgstr ""
 "Les xarxes eD2k i Kad estan inhabilitades.\n"
 "No podreu connectar fins que n'habiliteu almenys una."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5146,7 +5161,7 @@ msgstr ""
 "La xarxa Kad no s'engegarà si el port UDP està inhabilitat.\n"
 "Habiliteu el port UDP o inhabiliteu la xarxa Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5156,7 +5171,7 @@ msgstr ""
 "HEU de reiniciar l'aMule ara mateix.\n"
 "Si no reinicieu ara, no vos queixeu dels possibles problemes.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5167,41 +5182,41 @@ msgstr ""
 "Feu clic sobre el botó \"Llista\" d'aquest quadre de verificació per afegir "
 "una adreça."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Fitxers temporals"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Fitxers entrants"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Signatures en línia"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Carpeta per a %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Explora per a trobar un reproductor de vídeo"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Selecciona navegador"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Executable%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Edita la llista de servidors"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5209,76 +5224,76 @@ msgstr ""
 "Afegiu adreces URL d'on baixar el fitxer server.met.\n"
 "Només una adreça a cada línia."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Retard de l'actualització: %d seg"
 msgstr[1] "Retard de l'actualització: %d segs"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Temps per al gràfic de mitjanes: %d min"
 msgstr[1] "Temps per al gràfic de mitjanes: %d mins"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Escala del gràfic de connexions: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Mida de la memòria intermèdia de fitxer: %d byte"
 msgstr[1] "Mida de la memòria intermèdia de fitxer: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Mida de la cua de pujada: %d client"
 msgstr[1] "Mida de la cua de pujada: %d clients"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Interval de refresc de la connexió amb el servidor: %d minut"
 msgstr[1] "Interval de refresc de la connexió amb el servidor: %d minuts"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Interval de refresc de la connexió amb el servidor: Inhabilitat"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "inhabilitat"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Executa una ordre per a l'esdeveniment '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Activa l'execució d'ordres al nucli"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Odre del nucli:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Activa l'execució d'ordres a la interfície gràfica"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Ordre de la GUI:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Les següents variables seran reemplaçades:"
 
@@ -5307,7 +5322,7 @@ msgstr "No es pot executar una cerca eD2k si la xarxa eD2k no està connectada"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Error inesperat mentre s'intentava fer una cerca Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "Resum del fitxer"
 
@@ -5420,7 +5435,7 @@ msgstr "ERROR: Sòcol invàlid en comprovar el temps d'espera"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "L'intent de connexió a %s (%s:%i) ha excedit el temps."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Resposta de DNS rebuda a destemps, omitint."
 
@@ -5451,53 +5466,53 @@ msgstr ""
 "Fitxer server.met corrupte, s'ha trobat una etiqueta de versió invàlida: 0x%"
 "x, mida %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "S'ha trobat %i servidor al server.met"
 msgstr[1] "S'han trobat %i servidors al server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d servidor afegit"
 msgstr[1] "%d servidors afegits"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Error d'E/S metre es llegia el fitxer %s: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "No s'ha afegit el servidor: [%s:%d] no s'especifica un port vàlid."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 "No s'ha afegit el servidor: L'IP de [%s:%d] ha estat filtrada o no és vàlida."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "No s'ha afegit el servidor: S'ha trobat un servidor amb IP:Port [%s:%d] "
 "iguals."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "S'ha afegit un Servidor: [%s:%d] s'està usant el nom '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5505,25 +5520,25 @@ msgstr ""
 "Esteu connectat al servidor què intenteu eliminar. Si us plau, primer "
 "desconnecteu-vos."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "No s'ha pogut obrir '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "No s'ha pogut desar el server.met"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Adreça invàlida"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "S'ha acabat de baixar la llista de servidors des de %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5532,29 +5547,29 @@ msgstr ""
 "dat'. Enganxeu una adreça cap a una llista de servidors vàlida a aquest "
 "fitxer per a que es pugui actualitzar automàticament la llista de servidors"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Comença a baixar la llista de servidors des de %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "AVÍS: s'ha especificat una URL invàlida per a l'actualització automàtica de "
 "servidors: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "No s'ha trobat una URL per a baixar un server.met al fitxer addresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "No s'ha pogut baixar la llista de servidors des de %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5591,7 +5606,7 @@ msgid "Static"
 msgstr "Estàtic"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versió"
 
@@ -5617,8 +5632,8 @@ msgstr "Esteu segur que voleu esborrar el servidor estàtic %s"
 msgid "Servers (%i)"
 msgstr "Servidors (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Servidor"
 
@@ -5674,85 +5689,85 @@ msgstr "Esteu segur que voleu esborrar el servidor seleccionat?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Esteu segur que voleu esborrar els servidors seleccionats?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ERROR: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "AVÍS: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "La nova ID d'usuari és %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "AVÍS: Heu rebut una ID Baixa!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tAixò normalment és perquè esteu darrere d'un tallafocs o un encaminador."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPer a rebre més informació, si us plau visiteu http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "S'ha rebut una informació desconeguda del servidor! - massa curta"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "S'han rebut %d servidor nou"
 msgstr[1] "S'han rebut %d servidors nous"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "S'ha desat la llista de servidors."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "El servidor ha rebutjat l'última ordre"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "S'ha rebut un paquet fals del servidor: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 "S'ha produït un error sense tractament mentre es processava un paquet del "
 "servidor: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "No es pot crear el fil per a resoldre DNSs per a connectar amb %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "L'IP del servidor %s (%s) està filtrada.  No es connectarà."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "S'està utilitzant l'ofuscació de protocol"
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "S'està connectant a %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5941,87 +5956,92 @@ msgstr "Fitxer"
 msgid "Shares File List"
 msgstr "Compartits"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Peticions"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Peticions acceptades"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Dades transferides"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Ràtio"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Parts obtingudes"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Fonts completes"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Ubicació"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Afegeix comentari / valoració"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Edita comentari / valoració"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Reanomena"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Afegeix els fitxers de la col·lecció a les transferències"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Copia l'enllaç en format &Magnet al porta-retalls"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Copia l'enllaç eD2k al porta-retalls (&Font)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 "Copia l'enllaç eD2k al porta-retalls (Font) (amb les opcions de &xifrat)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Copia l'enllaç eD2k al porta-retalls (&Nom de l'ordinador)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Copia l'enllaç eD2k al porta-retalls (Nom de l'ordinador) (amb les &opcions "
 "de xifrat)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Copia l'enllaç eD2k al porta-retalls (amb l'informació &AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Copia l'enllaç eD2k al porta-retalls (amb l'informació &AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Necessiteu ID Alta per crear un enllaç font vàlid"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Fitxers compartits (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Fitxer de parts]"
 
@@ -6030,235 +6050,235 @@ msgstr "[Fitxer de parts]"
 msgid "Remote File Name"
 msgstr "Fitxer"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Dades pujades (sessió (total)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Sobrecàrrega total (paquets): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Sobrecàrrega per peticions de fitxers (paquets): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Sobrecàrrega en l'intercanvi de fonts (paquets): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Sobrecàrrega del servidor (paquets): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Sobrecàrrega Kad (paquets): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Excedent per xifrat (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Pujades actius: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Pujades en espera: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Total de sessions de pujada resoltes: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Total de sessions de pujada fallades: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Temps mitjà de pujada: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Dades baixades (sessió (total)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Fonts trobades: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Baixades actives (trossos): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Raó PU:BA de la sessió (total): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Raó de baixada mitjana (Sessió): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Raó de pujada mitjana (Sessió): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Raó de baixada màxima (Sessió): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Raó de pujada màxima (Sessió): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Reconnexions: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Temps des de la primera transferència: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Connectat al servidor des de fa: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Connexions actives (aprox.): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "S'ha arribat al límit de connexions màxim: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Mitjana de connexions (aprox.): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Pic de connexions (aprox.): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Clients"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Desconegut: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtrat: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Expulsat: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Total: %i Coneguts: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Servidors funcionant: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Servidors que han fallat: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Total: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Servidors esborrats: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Servidors filtrats: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Usuaris en servidors funcionant: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Fitxers en servidors funcionant: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Usuaris totals: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Fitxers totals: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Càrrega del servidor: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Fitxers compartits: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Mida total dels fitxers compartits: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Mida mitjana de fitxer: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistema operatiu"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "No s'ha rebut"
 
@@ -6319,7 +6339,7 @@ msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 "No és un resum vàlid (la longitud hauria de ser exactament de 32 caràcters)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "La petició ha fallat amb un error desconegut."
 
@@ -6373,13 +6393,13 @@ msgstr "Connectat a %s %s %s"
 msgid "Now connecting"
 msgstr "Connectant"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "protegit per un tallafocs"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "correcte"
 
@@ -6816,23 +6836,23 @@ msgstr ""
 "Aquesta és una ordre obsoleta, i pot ser s'elimini en el futur.\n"
 "Useu '%s' en el seu lloc.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "client de text de l'aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 "S'està convertint els conjunts de resums AICH antics en '%s' a 64b en '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "AVÍS: El nom de fitxer '%s' és invàlid i ha estat reanomenat com a '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6909,7 +6929,7 @@ msgstr "Error en executar l'ordre '%s' per a l'esdeveniment '%s'"
 msgid "Download completed"
 msgstr "Descàrrega completada"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "La ruta completa al fitxer"
 
@@ -6929,67 +6949,67 @@ msgstr "La mida del fitxer en bytes."
 msgid "Cumulative download activity time."
 msgstr "Temps d'activitat de baixada acumulat."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Inici d'una nova sessió de xat"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Remitent del missatge."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Sense espai"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partició de disc."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Error completant"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "S'està processant el fitxer número %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 "Heu preguntat per els resums de les parts (Només per a fitxers > 9.5MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Fitxer inexistent !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, el creador d'enllaços eD2k de l'aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Benvinguts!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Paràmetres d'entrada"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Fitxer"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Afegeix URL opcionals per al fitxer"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Introduïu el fitxer per al qual voleu calcular l'enllaç eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6997,15 +7017,15 @@ msgstr ""
 "Introduïu la URL que voleu agregar a l'enllaç eD2k: Afegiu / al final perqué "
 "aLinkCreator integri el nom del fitxer actual"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Esborra"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Crea l'enllaç amb resums per a cada part"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -7013,81 +7033,81 @@ msgstr ""
 "Ajuda a escampar més ràpidament els fitxer nous i rars, a costa d'un enllaç "
 "més gros"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Resum MD4 del fitxer"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Resum eD2k del fitxer"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "Enllaç eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Desa"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Copia al porta-retalls"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Obre"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Obre un fitxer per a crear-ne l'enllaç eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Copia l'enllaç eD2k al porta-retalls"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Anomena i desa"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Desa l'enllaç eD2k a un fitxer"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Quant a l'aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Seleccioneu el fitxer per al qual voleu crear l'enllaç eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "No es pot obrir el porta-retalls"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "No hi ha res a copiar!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Seleccioneu el fitxer per a l'enllaç eD2k creat"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "No s'ha pogut obrir "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Si us plau, introduïu un nom que no sigui buit"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "No hi ha res a desar!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7107,158 +7127,162 @@ msgstr ""
 "\n"
 "Distribuït sota llicència GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Fent el resum..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator està funcionant"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Calculant comprovació MD4..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Calculant comprovació eD2k..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Cancel·lat !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Fet en %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Ja heu afegit aquesta adreça URL!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Si us plau, introduïu una URL que no sigui buida"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "No s'ha pogut obrir %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dies %i hores %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, Estadístiques en línia de l'aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Raó de BA màxima des que el wxCas funciona"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Velocitat màxima de BA des que s'usa l'wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Atura l'autorefresc"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Desa la imatge de les estadístiques en línia"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Imprimeix la imatge de les estadístiques en línia"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Paràmetre de les preferències"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Quant al wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Inicia l'autorefresc"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Autorefresc aturat"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Autorefresc iniciat"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Desa la imatge de les estadístiques"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Estadístiques en línia de l'aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7266,11 +7290,11 @@ msgstr ""
 "Ha hagut un problema en imprimir.\n"
 "Tal volta la impressora actual no està configurada correctament?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Imprimint"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7288,326 +7312,326 @@ msgstr ""
 "\n"
 "Distribuït sota GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "L'aMule no s'està executant..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "L'aMule s'està executant"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "L'aMule s'està executant, però desconnectat"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "L'aMule s'està connectant..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "L'estat de l'aMule és desconegut..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " ha estat funcionant durant "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " està aturat!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " no està connectat!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " està connectant..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " està fent alguna cosa estranya, comproveu-lo!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " està connectat a "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "inactiu"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " és a "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " amb "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Total baixat: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", pujat: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Baixat durant la sessió: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Baixant: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr "kB/s, pujant: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Compartint: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " fitxers, clients a la cua: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Hora: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " a "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Mitjana de càrrega del sistema (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Sistema en funcionament des de: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "El directori on està el fitxer amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Introduïu el directori on es troba el fitxer amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Interval de refresc en segons"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Genera una imatge a cada refresc"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Introduïu el directori on es generarà la imatge d'estadístiques"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Puja periòdicament la imatge d'estat a un servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "Adreça FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Directori FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Introduïu l'adreça del servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Introduïu el directori del servidor FTP on es desarà la imatge"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Usuari"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Introduïu el nom d'usuari per a entrar al servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Introduïu la contrasenya per a entrar al servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Interval d'actualització de l'FTP en minuts"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "D'acord"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Directori on està el fitxer de signatura"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Directori on es genera la imatge"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Carrega la plantilla <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Port HTTP del servidor web"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Usa l'encaminament UPnP al port del servidor web"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Port UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Usa la compressió gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Contrasenya d'accés total per al servidor web"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Contrasenya de convidat per al servidor web"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Permetre l'accés de convidats"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Denega l'accés de convidats"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 "Carrega / desa la configuració del servidor web des de / a l'aMule remot"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr ""
 "Directori del fitxer de configuració de l'aMule. NO L'USEU DIRECTAMENT!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Inhabilita el intèrpret PHP (obsolet)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Recompila les pàgines PHP a cada petició"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Servidor web de l'aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "s'ha acceptat la connexió del client web\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "ERROR: no es pot acceptar connexions de clients web\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Ha fallat la petició amb el següent error: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "No s'ha trobat el fitxer d'índex:"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "La sessió ha caducat - s'està demanant la identificació\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sessió correcta, identificat\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sessió correcta, sense identificar\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "No hi ha cap sessió oberta - es demanarà identificació\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sessió creada - s'està demanant la identificació\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "S'està processant la petició [original]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "No s'ha especificat cap contrasenya, no es permetrà la identificació."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "S'està comprovant la contrasenya\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "El resum de la contrasenya és invàlid\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Contrasenya correcta\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Contrasenya incorrecta\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 "No heu especificat cap contrasenya. No es permet una contrasenya en blanc.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Eixida sol·licitada\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "S'està processant la petició [redirigit]: "
 
@@ -7807,9 +7831,6 @@ msgstr "S'està processant la petició [redirigit]: "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Usuaris Totals: %s | Fitxers Totals: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "S'ha iniciat el fil de descàrrega HTTP."
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr "No s'ha rebut la mida, descarregant fins que la connexió es tanqui"
 
diff --git a/po/cs.po b/po/cs.po
index 549498e..8719300 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule 2.2.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2010-08-01 01:11+0100\n"
 "Last-Translator: David Watzke <david at watzke.cz>\n"
 "Language-Team: cs <cs at li.org>\n"
@@ -37,44 +37,44 @@ msgstr "Zadaný userhash je neplatný!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Selhalo otvírání souboru ED2KLinks."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 "VAROVÁNÍ: Nemůžete přidat sebe jako zdroj pro eD2k odkaz, když máte LowID."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Ukončuji hlavní aplikaci..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, fuzzy, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Ukončuji instanci amuleweb s PID `%ld'..."
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, fuzzy, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Zabíjím instanci amuleweb s PID `%ld'..."
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Selhal"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Ukončuji jádro."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Ukončení aMule dokončeno."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -82,16 +82,16 @@ msgstr ""
 "\n"
 "Konfigurace EC"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Heslo nastaveno a externí připojení povoleno."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "VAROVÁNÍ"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -99,51 +99,51 @@ msgstr ""
 "Vaše nastavení locale bylo změněno na výchozí systémové nastavení kvůli "
 "změně v konfiguraci. Pardon."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
 msgstr ""
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr ""
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "webserver běží s PID %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "CHYBA"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Port %u je nedostupný. Budete mít LowID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -159,11 +159,11 @@ msgstr ""
 "Zkontrolujte nastavení vaší sítě a ujistěte se, že je port v obou směrech "
 "otevřený."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Selhalo vytvoření OnlineSig souboru"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Selhalo vytvoření aMule OnlineSig souboru"
 
@@ -211,143 +211,143 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr ""
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Předalokace místa na disku pro soubor '%s' selhala: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "CHYBA: nelze otevřít logovací soubor"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "VAROVÁNÍ: log je prázdný. Něco je špatně."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Log byl vymazán"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Zpráva od serveru: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Selhalo stahování seznamu uzlů."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Selhalo otvírání staženého kontrolního souboru s verzí"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Porušený soubor pro kontrolu verze"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Používáte zastaralou verzi aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Vaše verze aMule je %i.%i.%i a poslední verze je %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Poslední verze jsou vždy k nalezení na http://www.amule.org/"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "VAROVÁNÍ: Vaše verze aMuled je zastaralá: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Vaše verze aMule je aktuální."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Selhalo stahování kontrolního souboru s verzí"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Uživatelů: %s | Souborů: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Uživatelů: E: %s K: %s | Souborů: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Nezvoleny žádné sítě"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "s LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "s HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Připojen k %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Připojování k %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Odpojen od eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad spuštěn"
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad zastaven"
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Připojen ke Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Připojen ke kad (za firewallem)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Odpojen od Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr "Síť Kad nelze použít, když je v nastavení zakázán UDP port."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Síť Kad je zakázána v nastavení, nepřipojuji se."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 #, fuzzy
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
@@ -360,7 +360,7 @@ msgstr ""
 "\"AcceptExternalConnections\" v souboru ~/.aMule/amule.conf nastavte hodnotu "
 "1"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -369,19 +369,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: jdu do pozadí - měj se"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Nelze vytvořit soubor s PID"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "CHYBA: %s"
@@ -466,9 +466,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Zpráva"
 
@@ -476,7 +476,7 @@ msgstr "Zpráva"
 msgid "aMule dialog destroyed"
 msgstr "Dialog aMule zničen"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Připojuji"
 
@@ -510,7 +510,7 @@ msgstr "Kad: vypnut"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Zrušit"
 
@@ -527,7 +527,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Odpojit se od aktuálně připojených sítí"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Připojit"
 
@@ -568,7 +568,7 @@ msgstr "Potvrzení ukončení"
 msgid "Launch Command: "
 msgstr "Spustit příkaz: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- výchozí -"
 
@@ -583,80 +583,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "VAROVÁNÍ: Nelze otevřít soubor se vzhledem '%s' pro čtení"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Sítě"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Okno sítí"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Vyhledávání"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Vyhledávací okno"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Stahování"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Stahování"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Sdílené soubory"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Okno se sdílenými soubory"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Zprávy"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Okno zpráv"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistiky"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Okno se statistikami"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Nastavení"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Okno s nastavením"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Import"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Nástroj pro import částečných souborů"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "O programu"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "O programu/Nápověda"
 
@@ -676,7 +676,7 @@ msgstr "Žádná síť"
 msgid "aMule remote control"
 msgstr "Vzdálené ovládání aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -688,106 +688,106 @@ msgstr "Kritická chyba: Selhalo vytváření časovače jádra"
 msgid "Connect to remote amule"
 msgstr "Připojit se ke vzdálené amuli"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Kritická chyba: Selhalo vytváření časovače pro dotazování"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Zahajuji smyčku událostí..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Připojuji..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Připojení selhalo"
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Ukončuji"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Spojení uzavřeno - aMule se pravděpodobně ukončila."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Připraven"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Vše"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Neznámý"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Nelze získat seznam sdílených souborů od uživatele '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Hledám kamaráda pro LowID připojení"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (falešná eMule verze %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (falešná eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (falešná eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (založeno na eMule v.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Přezdívka: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Vyžádáno: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, fuzzy, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -797,7 +797,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Statistika souboru pro toto sezení: Přijato %d z %d požadavků, %s přeneseno\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, fuzzy, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -809,7 +809,7 @@ msgstr[1] ""
 "Statistika souboru pro všechna sezení: Přijato %d z %d požadavků, %s "
 "přeneseno\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Vyžádán neznámý soubor"
 
@@ -954,12 +954,12 @@ msgid "Client Details"
 msgstr "Podrobnosti klienta"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1011,27 +1011,27 @@ msgstr "Ověřeno - OK"
 msgid "Not Available"
 msgstr "Nedostupný"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Uživatel %s (%u) si vyžádal váš seznam sdílených souborů -> přijato"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Uživatel %s (%u) si vyžádal váš seznam sdílených souborů -> odmítnuto"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Uživatel %s (%u) si vyžádal váš seznam sdílených adresářů -> přijato"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Uživatel %s (%u) si vyžádal váš seznam sdílených adresářů -> odmítnuto"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1039,7 +1039,7 @@ msgstr ""
 "Uživatel %s (%u) si vyžádal váš seznam sdílených souborů v adresáři %s -> "
 "přijato"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1047,34 +1047,34 @@ msgstr ""
 "Uživatel %s (%u) si vyžádal váš seznam sdílených souborů v adresáři %s -> "
 "zakázáno"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Uživatel %s (%u) sdílí adresář %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "Uživatel %s (%u) si vyžádal váš seznam sdílených souborů v adresáři %s -> "
 "zakázáno"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1089,7 +1089,7 @@ msgstr "Jméno"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Název souboru"
 
@@ -1130,33 +1130,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Vy]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Velmi nízká"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Nízká"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normální"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Vysoká"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Velmi vysoká"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Vydání"
 
@@ -1173,12 +1173,12 @@ msgid "Queue Full"
 msgstr "Plná fronta"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Ve frontě"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Stahuji"
 
@@ -1238,7 +1238,7 @@ msgstr "Lokální server"
 msgid "Remote Server"
 msgstr "Vzdálený server"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1264,7 +1264,7 @@ msgid "Search Result"
 msgstr "Výsledek hledání"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Dokončeno"
 
@@ -1305,11 +1305,11 @@ msgid "Part"
 msgstr "Část"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Velikost"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Přeneseno"
 
@@ -1322,17 +1322,17 @@ msgid "Progress"
 msgstr "Průběh"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Zdroje"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Priorita"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Stav"
@@ -1357,7 +1357,7 @@ msgstr "Opravdu si přejete smazat vybraný soubor?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Opravdu si přejete smazat vybrané soubory?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1367,7 +1367,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1419,11 +1419,11 @@ msgstr "Zobrazit všechny komentáře"
 msgid "Copy magnet URI to clipboard"
 msgstr "Zkopírovat magnet URI do schránky"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Zkopírovat eD2k &odkaz do schránky"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Uložit odezvu do schránky"
 
@@ -1439,34 +1439,34 @@ msgstr "Zařadit do kategorie"
 msgid "&Open the file"
 msgstr "&Otevřít tento soubor"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Zadejte nový název pro tento soubor:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Přejmenování souboru"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Stahování (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Náhled souboru"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "CHYBA: Nezdařilo se spustit externí přehrávač! Příkaz: `%s'"
@@ -1570,205 +1570,205 @@ msgstr "Externí připojení jsou zakázány kvůli prázdnému heslu!"
 msgid "External connections disabled in config file"
 msgstr "Externí připojení jsou zakázány v konfiguračním souboru"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nové externí připojení přijato"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Externí připojení odmítnuto kvůli prázdnému heslu v nastavení!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Připojuji klienta: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Neznámá verze"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
 msgstr ""
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr ""
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Neplatná verze protokolu."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr ""
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Autentizace selhala: nesprávné heslo."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Autentizace selhala: chybějící heslo."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Neplatný požadavek, nejdřív se prosím autentizujte."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Přistup povolen."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Odeslána chybová hláška \"%s\" pro klienta."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Neautorizovaný pokus o přístup z %s. Připojení uzavřeno."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "FileHash nenalezen: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr ""
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Server nepřidán"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "server nenalezen: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr ""
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k je zakázané v nastavení."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr ""
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr ""
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Žádné údaje pro graf."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Vás klient není nakonfigurován pro tuto úroveň detailů."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Již se ukončuji."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr ""
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Neplatný odkaz, nebo je již v seznamu."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Soubor nenalezen."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Neplatný název souboru."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Nelze přejmenovat soubor."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad je zakázaný v nastavení."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Již připojen k eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Připojuji se k eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Již jste připojen k síti Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Připojuji se k síti Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Všechny sítě jsou zakázány."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Odpojen od eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Odpojen od Kademlia."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Neznámé rozšíření '%s' pro příkaz '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Neznámý příkaz '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1776,7 +1776,7 @@ msgstr ""
 "\n"
 "Tento příkaz nesmí dostat argument.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1784,13 +1784,13 @@ msgstr ""
 "\n"
 "Tento příkaz musí dostat argument.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1798,11 +1798,11 @@ msgstr ""
 "\n"
 "Dostupná rozšíření:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Dostupné příkazy:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1810,23 +1810,23 @@ msgid ""
 "Type '%s <command>' to get detailed info on <command>.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Ukončí aplikaci."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Zobrazit nápovědu."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1834,48 +1834,48 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Chyba syntaxe!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Chyba při zpracování příkazu - to by se nikdy nemělo stát! Prosím, nahlašte "
 "chybu\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Tento příkaz by neměl mít parametry."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Tento příkaz musí mít parametr."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Neplatný argument."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Toto je nekompletní příkaz."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Pro nápovědu spusťte '%s'.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Tohle je %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Tohle je %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1883,7 +1883,7 @@ msgstr ""
 "\n"
 "Vytvářím klienta...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1892,7 +1892,7 @@ msgstr ""
 "\n"
 "OK, opouštím %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1901,47 +1901,47 @@ msgid ""
 "Exiting...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Zobrazí tuto nápovědu."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Hostitel, kde běží aMule. (výchozí: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Port aMule pro externí připojení. (výchozí: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Heslo pro externí připojení."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Načíst konfiguraci ze souboru."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Nevypisovat nic na stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Buď upovídaný - ukaž také debugovací hlášky"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Nastaví locale programu (jazyk)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Vypíše verzi programu."
 
@@ -1954,8 +1954,8 @@ msgstr "Podrobnosti souboru"
 msgid "%.1f%% done"
 msgstr "%.2f%% dokončeno"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -1972,7 +1972,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Kamarádi"
 
@@ -2100,31 +2100,31 @@ msgstr "URL pro stahování nesmí být prázdné"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "URL %s vrátilo: %i - Chyba (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Kritická chyba během zápisu staženého souboru"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "Staženo %d bytů"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Očekáváno %d bytů, ale staženo %d bytů"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Nelze se připojit k HTTP serveru"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Neplatná odpověď od HTTP serveru"
 
@@ -2156,7 +2156,7 @@ msgstr "Úspěšně aktualizováno: %s"
 msgid "Error updating GeoIP.dat"
 msgstr "Selhala aktualizace GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Stahování %s z %s selhalo"
@@ -2200,7 +2200,7 @@ msgstr[1] "Načteno %u IP rozsahů z '%s'. %u vadných řádků bylo vyřazeno."
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP filtr je připraven"
 
@@ -2217,103 +2217,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Uzly (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Neplatná IP pro bootstrap"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Neplatný port pro bootstrap"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Prosím vyplňte všechna potřebná pole"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Opravdu chcete stáhnout nový soubor nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr "Odstraní se tak současné uzly a restartuje se připojení ke Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Pokračovat?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: hledaný výraz je příliš krátký"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, fuzzy, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Přečteno %u Kad kontaktů"
 msgstr[1] "Přečteno %u Kad kontaktů"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Název souboru"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Velikost souboru"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Poměr sdílení"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Odesláno"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Vyžádáno"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Přijato"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Kompletní zdroje"
 
@@ -2339,71 +2339,76 @@ msgstr "Neznámá verze"
 msgid "Unable to get error description for error %d"
 msgstr "Nemohu otevřít soubor se skinem %s pro čtení"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Hashuji"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Dokončování"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Dokončeno"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pozastaveno"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Poškozený"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Čekám"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Musíte zadat (neprázdné) heslo."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Neplatné heslo, není MD5 hash!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Chyba při připojování"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Špatná odpověď od serveru. Spojení uzavřeno."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Připojení k aMule uspělo"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Připojení uspělo."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Heslo pro externí připojení."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Synchronizační vlákno spuštěno."
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "Naslouchací socket: Ok."
@@ -2412,16 +2417,16 @@ msgstr "Naslouchací socket: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "CHYBA: Nemohu naslouchat na TCP portu"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "CHYBA: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "VAROVÁNÍ: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Zavřít"
 
@@ -2429,8 +2434,8 @@ msgstr "Zavřít"
 msgid "Cut"
 msgstr "Vyjmout"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopírovat"
 
@@ -2439,7 +2444,7 @@ msgid "Paste"
 msgstr "Vložit"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Vyprázdnit"
 
@@ -2449,7 +2454,7 @@ msgstr "Označit vše"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2526,7 +2531,7 @@ msgid "ServerIP: "
 msgstr "IP serveru: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Nepřipojen"
 
@@ -2561,7 +2566,7 @@ msgstr "Online podpis: Povolen"
 msgid "Online Signature: Disabled"
 msgstr "Online podpis: Zakázán"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Uptime: %s"
@@ -2602,7 +2607,7 @@ msgstr "Skrýt aMule"
 msgid "Show aMule"
 msgstr "Zobrazit aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Ukončit"
 
@@ -2677,7 +2682,7 @@ msgstr "Vyhledávání"
 msgid "Name:"
 msgstr "Název:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Typ"
 
@@ -2705,38 +2710,38 @@ msgstr "Filtrování"
 msgid "File Type"
 msgstr "Typ souboru"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Cokoliv"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archívy"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Obrazy CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Obrázky"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programy"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Texty"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Videa"
 
@@ -2757,11 +2762,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2789,7 +2794,7 @@ msgstr "Invertovat výsledek"
 msgid "Hide Known Files"
 msgstr "Skrýt známé soubory"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Spustit"
 
@@ -2846,7 +2851,7 @@ msgstr "Celá název:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2870,7 +2875,7 @@ msgstr ""
 msgid "Last seen complete :"
 msgstr "Naposledy spatřen kompletní:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Přenos"
 
@@ -2956,27 +2961,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Kvalita souboru"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Nehodnocené"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Neplatný / porušený / podvod"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Špatný"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "V pořádku"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Dobrý"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Výborný"
 
@@ -3021,7 +3026,7 @@ msgid "Userhash :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Přidat"
 
@@ -3249,9 +3254,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Procházet"
 
@@ -3339,7 +3344,7 @@ msgstr "Maximum připojení naráz:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3457,7 +3462,7 @@ msgstr "Zadejte minimum místa na disku."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Odesílání"
 
@@ -3697,7 +3702,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Povolit UPnP port forwarding na EC portu"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Heslo"
 
@@ -3780,8 +3785,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Barva pro tuto kategorii:"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Reset"
 
@@ -4156,86 +4161,91 @@ msgid "Enable Verbose Debug-Logging."
 msgstr ""
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Otevřít tento soubor"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Čekání..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Odstranit vybrané"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Aktivní odesílání"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Všechny sdílené soubory"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Sdílené soubory"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Aktivní odesílání"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Zobrazit klienty"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Obnovit:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Znovu načíst vaše sdílené soubory"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Odeslat"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Odešle zadanou zprávu."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Zavře tento chat."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Připojit k nějakému serveru a/nebo Kadu"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Sdílené soubory"
 
@@ -4244,135 +4254,135 @@ msgstr "Sdílené soubory"
 msgid "Disabled [%s]"
 msgstr "Zakázaný [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sek."
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min."
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "hod."
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "dní"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "vše"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "vše ostatní"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Nekompletní"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Zastaveno"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Archív"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Text"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktivní"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Používám konfigurační adresář: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importování %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Čtení dočasného adresáře"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Vytvářím cílový soubor"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr ""
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Přidávám do stahování a ukládám nový částečný soubor"
 
@@ -4388,12 +4398,12 @@ msgstr "Stav"
 msgid "Filehash"
 msgstr "Hash souboru"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (disk: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4401,12 +4411,12 @@ msgstr ""
 "Prosím zvolte adresář pro vyhledávání dočasných souborů! (budou zahrnuty i "
 "podadresáře)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Přejete si smazat zdrojové soubory úspěšný importovaných stahování?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Odstranit zdroje?"
 
@@ -4518,7 +4528,7 @@ msgstr ""
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4529,268 +4539,268 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr ""
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Dokončeno přehashování %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Dokončené stahování: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Mazání souboru: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "VAROVÁNÍ: Nedostatek volného místa na disku! Pozastavuji soubor: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Stažená část %i souboru '%s' je poškozená."
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Alokuji"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Nedostatek místa na disku"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Staženo"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Výchozí pro systém"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albánština"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabský"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr ""
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baskičtina"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulharský"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalánština"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Čínština (zjednodušená)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Čínština (tradiční)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Chorvatština"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Česky"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Dánština"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Nizozemština"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Angličtina (britská)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonština"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finština"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francouzština"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galicijština"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Němčina"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Řečtina"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebrejština"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Maďarština"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italština"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italština (švýcarská)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonština"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Korejština"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Litevština"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norština"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polština"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugalština"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugalština (brazilská)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Ruština"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Slovinština"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Španělština"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Švédština"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turečtina"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukrajinština"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Změnit jazyk"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Nedostupný"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "není dostupné žádné nastavení"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Nalezena neplatná kategorie, přeskakuji"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr "TCP port nemůže být vyšší než 65532, protože UDP port je TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Bude použit výchozí port (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Ignoruji neexistující sdílený adresář: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Připojení"
 
@@ -4798,7 +4808,7 @@ msgstr "Připojení"
 msgid "Directories"
 msgstr "Adresáře"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servery"
 
@@ -4849,7 +4859,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4865,26 +4875,26 @@ msgstr ""
 "aMule poběží v pohodě bez změny\n"
 "nastavení na tomto tabu."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Typ proxy, ke které se připojujete"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -4892,60 +4902,65 @@ msgstr ""
 "Restartujte aMule, aby se projevily následující změny:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP port změněn.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP port změněn.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Externí připojení uzavřeno."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Nové externí připojení přijato"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Externí připojení uzavřeno."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Zatemnění protokolu"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Jazyk byl změněn.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Dočasný adresář byl změněn.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- Síť eD2k povolena.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -4953,7 +4968,7 @@ msgstr ""
 "Kad se nespustí, když máte zakázaný UDP port.\n"
 "Povolte UDP port, nebo zakažte připojování na Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -4963,48 +4978,48 @@ msgstr ""
 "Nyní MUSÍTE restartovat aMule.\n"
 "Pokud to neuděláte, tak si pak nestěžujte, když se přihodí něco špatného.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
 "Click on the button \"List\" by this checkbox to enter an URL."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Dočasné soubory"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Příchozí soubory"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Online podpisy"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Zvolte adresář pro %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Zvolit přehrávač videa"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Výběr prohlížeče"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Spustitelný soubor %s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Upravit seznam serverů"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5012,76 +5027,76 @@ msgstr ""
 "Sem přidejte URL pro stažení server.met souborů.\n"
 "Pouze jedno URL na každý řádek."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, fuzzy, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Čas pro průměrný graf: %d minut"
 msgstr[1] "Čas pro průměrný graf: %d minut"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, fuzzy, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Velikost zásobníku pro soubory: %d bajtů"
 msgstr[1] "Velikost zásobníku pro soubory: %d bajtů"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, fuzzy, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Velikost fronty pro odesílání: %d klientů"
 msgstr[1] "Velikost fronty pro odesílání: %d klientů"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, fuzzy, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Interval pro obnovení připojení k serveru: %d minut"
 msgstr[1] "Interval pro obnovení připojení k serveru: %d minut"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Interval pro obnovení připojení k serveru: Zakázáno"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "zakázáno"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Spustí příkaz při událost `%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Povolit jaderné příkazy"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Příkaz jádra:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Povolit GUI příkazy"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Příkaz GUI:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Následující proměnné budou nahrazeny:"
 
@@ -5110,7 +5125,7 @@ msgstr "Nelze vyhledávat na eD2k, když nejste připojen"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Neočekávaná chyba během vyhledávání v síti Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID souboru"
 
@@ -5222,7 +5237,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Pokusu o připojení k %s (%s:%i) vypršel čas."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5250,51 +5265,51 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Soubor server.met je porušený, nalezena neplatná verze: 0x%x, velikost %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "I/O chyba při čtení souboru known.met: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Server nebyl přidán: [%s:%d] neudává platný port."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Server nebyl přidán: IP adresa [%s:%d] je neplatná, nebo blokovaná."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Server nebyl přidán: Server s totožnou IP a portem [%s:%d] je již v seznamu."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Server byl přidán: [%s:%d] pod názvem '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5302,51 +5317,51 @@ msgstr ""
 "Snažíte se smazat server, na který jste právě připojen(a). Nejprve se prosím "
 "odpojte."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Nemohu otevřít '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Ukládání server.met selhalo!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Neplatná URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Stahování seznamu serverů z %s selhalo"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Stáhnout seznam serverů z %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "V addresses.dat není žádná platná URL pro automatické stahování server.met"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Stahování seznamu serverů z %s selhalo"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5381,7 +5396,7 @@ msgid "Static"
 msgstr "Pevný"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Verze"
 
@@ -5407,8 +5422,8 @@ msgstr "Opravdu si přejete smazat stálý server %s?"
 msgid "Servers (%i)"
 msgstr "Servery (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Server"
 
@@ -5466,83 +5481,83 @@ msgstr "Opravdu si přejete smazat vybrané servery?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Opravdu si přejete smazat vybrané servery?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Nové ID klienta je %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr ""
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tPravděpodobně je to způsobeno tím, že jste za firewallem či routerem."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPro více informací prosím běžte na http://wiki.amule.org/"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr ""
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Uložení seznamu serverů dokončeno."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Server odmítl poslední příkaz"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Chybný paket obdržen od serveru: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Došlo k neznámé chybě při zpracovávání paketu od serveru: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "IP serveru %s (%s) je filtrována. Nepřipojuji se."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "používám zatemňování protokolu (obfuscation)."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Připojování k %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5724,84 +5739,89 @@ msgstr "Název souboru"
 msgid "Shares File List"
 msgstr "Sdílené soubory"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Požadavky"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Přijaté požadavky"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Přenesená data"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Poměr sdílení"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Obdržené části"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Kompletní zdroje"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Cesta"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Přidat komentář/hodnocení"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Upravit komentář/hodnocení"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Přejmenovat"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Zkopírovat magnet URI do schránky"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Zkopírovat eD2k odkaz do schránky (%zdroj)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Zkopírovat ED2K odkaz do schránky (AICH info)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "K vytvoření platného odkazu potřebujete HighID"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Sdílené soubory (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[PartSoubor]"
 
@@ -5810,235 +5830,235 @@ msgstr "[PartSoubor]"
 msgid "Remote File Name"
 msgstr "Název souboru"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Odeslaná data (sezení (celkem)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Celková režie (pakety): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Režie serveru (pakety): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Režie Kadu (pakety): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Aktivní odesílání: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Čekající odesílání: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Průměrný čas odesílání: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Stažená data (sezení (celkem)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Nalezené zdroje: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Aktivní stahování (části): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "UL:DL poměr sezení (celkem): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Průměrzná rychlost stahování (sezení): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Průměrzná rychlost odesílání (sezení): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Maximální rychlost stahování (sezení): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Maximální rychlost odesílání (sezení): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Znovupřipojení: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Doba od prvního přenosu: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Připojen k serveru od: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktivních připojení (odhad): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Limit připojení dosažen: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Průměrný počet připojení (odhad): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Klienti"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Neznámý: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtrován: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Zabanován: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Celkem: %i Známých: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Fungující servery: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Nefungující servery: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Celkem: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Smazané servery: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Filtrované servery: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Uživatelů na fungujících serverech: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Souborů na fungujících serverech: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Celkem uživatelů: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Celkem souborů: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Zaplnění serveru: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Počet sdílených souborů: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Celková velikost sdílených souborů: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Průměrná velikost souboru: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Operační systém"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Neobdrženo"
 
@@ -6094,7 +6114,7 @@ msgstr "Neplatné číslo\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Požadavek selhal kvůli neznámé chybě."
 
@@ -6148,13 +6168,13 @@ msgstr "Připojen k %s %s %s"
 msgid "Now connecting"
 msgstr "Připojování"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "za firewallem"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6552,21 +6572,21 @@ msgstr ""
 "Toto je zastaralý příkaz, který může být v budoucnosti odstraněn.\n"
 "Použijte místo něj '%s'.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Textový klient aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Převádí se staré AICH hashsety v '%s' do 64b v '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "VAROVÁNÍ: Název souboru '%s' je neplatný a byl změněn na '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6638,7 +6658,7 @@ msgstr ""
 msgid "Download completed"
 msgstr "Stahování dokončeno"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Celá cesta k souboru."
 
@@ -6658,80 +6678,80 @@ msgstr "Velikost souboru v bytech."
 msgid "Cumulative download activity time."
 msgstr ""
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Zahájeno nové sezení v chatu"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Odesílač zpráv."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Došlo místo"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Diskový oddíl."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Chyba při dokončení"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Zpracovávám soubor č. %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Vyžádal jste si částečné hashe (používá se pouze pro soubory > 9,5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Neexistující soubor !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, tvůrce eD2k odkazů z aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Vítejte!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Vstupní parametry"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Soubor k hashování"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Přidat volitelné URL pro tento soubor"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Sem zadejte soubor pro který chcete vypočítat eD2k odkaz"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Odebrat"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Vytvořit odkaz s hashi částí"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6739,81 +6759,81 @@ msgstr ""
 "Pomůže rozšířit nové a raritní soubory rychleji, za cenu zvýšené velikosti "
 "odkazu"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 hash souboru"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k hash souboru"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k odkaz"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Uložit"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Zkopírovat do schránky"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Otevřít"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Otevřít soubor pro vytvoření jeho eD2k odkazu"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Zkopírovat vypočítaný eD2k odkaz do schránky"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Uložit jako"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Uložit vytvořený eD2k odkaz do souboru"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "O aLinkCreatoru"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Vyberte soubor jemuž chcete vytvořit eD2k odkaz"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Nelze otevřít schránku"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Zatím není co zkopírovat!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Zvolte soubor s vaším vytvořeným eD2k odkazem"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Nelze otevřít"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Zadejte prosím (neprázdný) název souboru"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Zatím není co ukládat!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6833,158 +6853,162 @@ msgstr ""
 "\n"
 "Šířeno pod GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Hashování..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator pracuje"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Počítám MD4 hash..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Počítám eD2k hashe..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Přerušeno!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Hotovo za %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Tato URL je již přidána!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Zadejte prosím neprázdnou URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Nelze otevřít %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dní %i hodin %i min %i sek"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, online statistiky aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Maximální rychlost stahování během tohoto běhu wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Maximální rychlost stahování během všech běhů wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Systém"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Přerušit automatické obnovování"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Uložit obrázek online statistik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Vytisknout obrázek online statistik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Nastavení"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "O wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Spustit automatické obnovování"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Automatické obnovování zastaveno"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Automatické obnovování spuštěno"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Uložit obrázek statistiky"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Online statistiky aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -6992,11 +7016,11 @@ msgstr ""
 "Nastal problém při tisku.\n"
 "Možná vaše tiskárna není správně nastavena."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Tisknu"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7013,324 +7037,324 @@ msgstr ""
 "\n"
 "Distribuovaný pod GPL licencí"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "aMule neběží..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule běží"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule běží, ale je odpojená"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule se připojuje..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Stav aMule je neznámý..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " běží už "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " je zastavená!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " je nepřipojená!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " se připojuje..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " je asi vypnutá, zkontrolujte to!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " je připojena k "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "vypnuto"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr "běží"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Celkem staženo:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Odesláno:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Stahování: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, odesílání: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Sdílení:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " soubor(ů), klientů ve frontě: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Čas:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " na "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Průměrná zátěž systému (1-5-15 minut): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Běh systému: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Adresář obsahující soubor amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Zadejte cestu k adresáři, ve kterém je soubor amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Interval pro obnovování v sekundách"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Vygenerovat obrázek při každém obnovení"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Zadejte adresář, do kterého si přejete vygenerovat obrázek statistik"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Pravidelně nahrávat obrázek statistik na FTP server"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP url"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP cesta"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Zadejte URL vašeho FTP serveru"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Zadejte sem adresář, do kterého se na FTP budou ukládat obrázky statistik"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Uživatel"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Zadejte sem uživatelské jméno pro přihlášení k vašemu FTP serveru"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Zadejte sem heslo pro přihlášení k vašemu FTP serveru"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Interval aktualizace FTP v minutách"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Zkontrolovat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Adresář obsahující váš soubor s podpisem"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Adresář pro generování obrázků statistik"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Načte šablonu <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "HTTP port webserveru"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Použít UPnP port forwarding pro webserver"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP port"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Použít gzip kompresi"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Heslo pro plný přístup k webserveru"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Heslo pro omezený přístup k webserveru"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Povolit přístup hostům"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Zakázat přístup hostům"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Cesta ke konfiguráku aMule. NEPOUŽÍVEJTE PŘÍMO!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Zakázat PHP interpreter (zastaralé)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Překompilovat PHP stránky při každém požadavku"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Webový server aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "CHYBA: nelze přijmout připojení na webového klienta\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Požadavek selhal kvůli následující chybě: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Index nenalezen: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sezení vypršelo - vyžaduji přihlášení\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Relace je v pořádku, přihlášen\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Relace je v pořádku, nepřihlášen\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Není otevřené žádné sezení - vyžaduji přihlášení\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Relace zahájena - vyžadování přihlášení\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Zpracování požadavku [původní]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Heslo nezadáno, přihlášení nebude možné."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Kontrola hesla\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Hash hesla je neplatný\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Heslo v pořádku\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Špatné heslo\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Nezadal(a) jste heslo. Prázdné heslo není povoleno.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Bylo vyžádáno odhlášení\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Zpracování požadavku [přesměrovaný]:"
 
@@ -7466,10 +7490,6 @@ msgstr "Zpracování požadavku [přesměrovaný]:"
 #~ msgstr "Celkem uživ.: %s | Celkem soub.: %s"
 
 #, fuzzy
-#~ msgid "HTTP download thread started"
-#~ msgstr "Synchronizační vlákno spuštěno."
-
-#, fuzzy
 #~ msgid "Download size: %i"
 #~ msgstr "Stahování (%i)"
 
@@ -7743,9 +7763,6 @@ msgstr "Zpracování požadavku [přesměrovaný]:"
 #~ msgid "Copy ED2k link to clipboard (Hostname) (With &Crypt options)"
 #~ msgstr "Zkopírovat ED2K odkaz do s&chránky (hostname)"
 
-#~ msgid "Copy ED2k link to clipboard (&AICH info)"
-#~ msgstr "Zkopírovat ED2K odkaz do schránky (AICH info)"
-
 #~ msgid "Warning"
 #~ msgstr "Varování"
 
diff --git a/po/da.po b/po/da.po
index ebea3a8..5cbfd8e 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule CVS\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2007-10-13 18:09+0200\n"
 "Last-Translator: Alex Thomsen Leth <alexl at stofanet.dk>\n"
 "Language-Team: aMule Team <http://www.amule.org>\n"
@@ -36,110 +36,110 @@ msgstr ""
 msgid "Failed to open ED2KLinks file."
 msgstr "Kunne ikke åbne %s (%s)"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr ""
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Fejlede"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr ""
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Bekræft afslut"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "Accepter ydre forbindelser"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr ""
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
 msgstr ""
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
 msgstr ""
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr ""
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr ""
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -149,11 +149,11 @@ msgid ""
 "Check your network to make sure the port is open for output and input."
 msgstr ""
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr ""
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr ""
 
@@ -199,134 +199,134 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "Servernavn :"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "FEJL: Kan ikke åbne logfil"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "FARE: logfilen er tom. Noget er galt"
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Log nulstillet"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "ServerBesked: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Fejl ved hentning af node listen"
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Fejl ved åbning af den hentet version check filen"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Korrupt version check fil"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Du bruger en forældet version af aMule"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Din aMule version er %i.%i.%i og den sisdte nye version er %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Den sidste nye version kan altid findes hos http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "FARE: Din aMule version er forældet: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Din kopi af aMule er op til dato"
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Fejl ved hentning af version check filen"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr ""
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Forbundet til %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Forbundet til %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad startet."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad stoppet."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Forbundet til Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Forbundet til Kad (med firewall)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Afbrudt fra Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -334,11 +334,11 @@ msgstr ""
 "Kad netværk kan ikke bruges hvis UDP port er fravalgt i instillinger, "
 "starter ikke."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad netværk fravalgt i instillinger, forbinder ikke."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -346,7 +346,7 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -355,19 +355,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr ""
@@ -444,9 +444,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr ""
 
@@ -454,7 +454,7 @@ msgstr ""
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Forbinder"
 
@@ -492,7 +492,7 @@ msgstr " Kad: "
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Afbryd"
 
@@ -511,7 +511,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Afbryd fra nuvÊrende server"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Forbind"
 
@@ -552,7 +552,7 @@ msgstr "Bekræft afslut"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -567,81 +567,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr ""
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Søg"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Søge Vindue"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Downloads"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Henter"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Beskeder"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Besked Vindue"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistik"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Indstillinger"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr ""
 
@@ -661,7 +661,7 @@ msgstr ""
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -674,110 +674,110 @@ msgstr "Fatal Fejl: Kunne ikke oprette timer"
 msgid "Connect to remote amule"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Fatal Fejl: Kunne ikke oprette timer"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Forbinder"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr ""
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 #, fuzzy
 msgid "Ready"
 msgstr "Opdater"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Ukendt"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Hentelse af delte fier fra bruger '%s' fejlede"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 #, fuzzy
 msgid "Searching buddy for lowid connection"
 msgstr "venter på forbindelse..."
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Falsk eMule version-%#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " Falsk eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Falsk eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (baseret på eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr ""
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, fuzzy, c-format
 msgid "Requested: %s\n"
 msgstr "Anmodede:"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -785,7 +785,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -793,7 +793,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Anmodet om ukendt fil"
 
@@ -935,12 +935,12 @@ msgid "Client Details"
 msgstr "Klient Detaljer"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "Lavt ID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HøjtID"
 
@@ -992,64 +992,64 @@ msgstr ""
 msgid "Not Available"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr "Bruger %s (%u) anmodede om din deleliste -> %s"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr "Bruger %s (%u) anmodede om din deleliste -> %s"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Bruger %s (%u) anmodede om din deleliste -> %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1064,7 +1064,7 @@ msgstr "Brugernavn"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Fil Navn"
 
@@ -1105,33 +1105,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Hø]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Meget lav"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Lav"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Høj"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Meget Høj"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Udgiv"
 
@@ -1148,12 +1148,12 @@ msgid "Queue Full"
 msgstr "Kø Fuld"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "I Kø"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Henter"
 
@@ -1213,7 +1213,7 @@ msgstr ""
 msgid "Remote Server"
 msgstr ""
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr ""
@@ -1239,7 +1239,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Færdig"
 
@@ -1280,11 +1280,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Størrelse"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Overført"
 
@@ -1297,17 +1297,17 @@ msgid "Progress"
 msgstr "Forløb"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Kilder"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Priotet"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Status"
@@ -1334,7 +1334,7 @@ msgstr "Er du sikker på at du ønsker at slette de(n) valgt(e) ven(ner)?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Er du sikker på at du ønsker at slette de(n) valgt(e) ven(ner)?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1342,7 +1342,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1394,11 +1394,11 @@ msgstr "Vis alle kommentarer"
 msgid "Copy magnet URI to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr ""
 
@@ -1414,34 +1414,34 @@ msgstr "Flyt til kategori"
 msgid "&Open the file"
 msgstr "&Åben filen"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Indtast nyt navn for denne fil:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Omdøb fil"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Downloads (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1545,233 +1545,233 @@ msgstr ""
 msgid "External connections disabled in config file"
 msgstr ""
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr ""
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr ""
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
 msgstr ""
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr ""
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr ""
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr ""
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr ""
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr ""
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr ""
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr ""
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr ""
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr ""
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr ""
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr ""
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr ""
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr ""
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr ""
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr ""
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr ""
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr ""
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr ""
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr ""
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr ""
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr ""
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr ""
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr ""
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1779,23 +1779,23 @@ msgid ""
 "Type '%s <command>' to get detailed info on <command>.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr ""
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr ""
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1803,59 +1803,59 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr ""
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr ""
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr ""
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr ""
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr ""
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
 "Ok, exiting %s...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1864,47 +1864,47 @@ msgid ""
 "Exiting...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr ""
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr ""
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr ""
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr ""
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr ""
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr ""
 
@@ -1917,8 +1917,8 @@ msgstr ""
 msgid "%.1f%% done"
 msgstr ""
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -1935,7 +1935,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Venner"
 
@@ -2067,32 +2067,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Downloaded:"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Du er ikke forbundet til en server!"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2124,7 +2124,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Kunne ikke hente serverlist fra %s"
@@ -2167,7 +2167,7 @@ msgstr[1] ""
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2182,103 +2182,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr ""
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr ""
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr ""
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: søgeord er for kort"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, fuzzy, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Læs %u Kad kontakter"
 msgstr[1] "Læs %u Kad kontakter"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr ""
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2304,71 +2304,76 @@ msgstr "Ukendt: %i"
 msgid "Unable to get error description for error %d"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Hasher"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Færdiggør"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Færdig"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pause"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Beskadiget"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Venter"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Du skal specificere et ikke tomt kodeord"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Forkert kodeord, ikke it MD5 hash!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Forbindelsen fejlede"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "ExternalConn: Dårligt svar fra server. Forbindelse lukket"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Succes! Forbindelse oprettet til aMule"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Succes! Forbindelse oprettet"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Ydre Forbindelses Parametre"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Synkroniserings tråd startet."
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2377,16 +2382,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Luk"
 
@@ -2394,8 +2399,8 @@ msgstr "Luk"
 msgid "Cut"
 msgstr ""
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr ""
 
@@ -2404,7 +2409,7 @@ msgid "Paste"
 msgstr ""
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Ryd"
 
@@ -2414,7 +2419,7 @@ msgstr ""
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2491,7 +2496,7 @@ msgid "ServerIP: "
 msgstr "ServerIP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Ingen Forbindelse"
 
@@ -2526,7 +2531,7 @@ msgstr "Online Signatur: Aktiv"
 msgid "Online Signature: Disabled"
 msgstr "Online Signatur: Inaktiv"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr ""
@@ -2567,7 +2572,7 @@ msgstr ""
 msgid "Show aMule"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Afslut"
 
@@ -2642,7 +2647,7 @@ msgstr "Søg"
 msgid "Name:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Type"
 
@@ -2670,38 +2675,38 @@ msgstr ""
 msgid "File Type"
 msgstr ""
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Alle"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arkiver"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Lyd"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-Aftryk"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Billeder"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programer"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr ""
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Videoer"
 
@@ -2722,11 +2727,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2754,7 +2759,7 @@ msgstr ""
 msgid "Hide Known Files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Start"
 
@@ -2812,7 +2817,7 @@ msgstr "Navn :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2836,7 +2841,7 @@ msgstr ""
 msgid "Last seen complete :"
 msgstr "Sidst færdig :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Overfør"
 
@@ -2922,27 +2927,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Fil Kvalitet"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Ikke anslået"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Invalid / fejl / Falsk"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Dårlig"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Nogen Lunde"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "God"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Glimrende"
 
@@ -2987,7 +2992,7 @@ msgid "Userhash :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Tilføj"
 
@@ -3215,9 +3220,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Gennemse"
 
@@ -3303,7 +3308,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr ""
 
@@ -3421,7 +3426,7 @@ msgstr ""
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Uploads"
 
@@ -3661,7 +3666,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Password"
 
@@ -3743,8 +3748,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Reset"
 
@@ -4118,89 +4123,94 @@ msgid "Enable Verbose Debug-Logging."
 msgstr ""
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Åben filen"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Venter..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Aktive Uploads :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 #, fuzzy
 msgid "Percent of total files"
 msgstr "Antal Filer Total"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Delte Filer"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Slettede Servere"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Aktive Uploads"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Vis Liste"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Opdater"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Send"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Delte Filer"
 
@@ -4209,137 +4219,137 @@ msgstr "Delte Filer"
 msgid "Disabled [%s]"
 msgstr "Inaktiv [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 #, fuzzy
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "Bytes"
 msgstr[1] "Bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr ""
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr ""
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 #, fuzzy
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "kB/s"
 msgstr[1] "kB/s"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr ""
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sek"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr ""
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr ""
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "alt"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "alt andet"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Mangelfuld"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "stoppet"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arkiv"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Tekst"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr ""
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr ""
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr ""
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr ""
 
@@ -4355,23 +4365,23 @@ msgstr ""
 msgid "Filehash"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr ""
 
@@ -4483,7 +4493,7 @@ msgstr ""
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4494,270 +4504,270 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr ""
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr ""
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "System standard"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr ""
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabic"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Estonian"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Basque"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgarian"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalan"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr ""
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr ""
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr ""
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danish"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Dutch"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr ""
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonian"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finnish"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "French"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr ""
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "German"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr ""
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr ""
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr ""
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italian"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr ""
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr ""
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Korean"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lithuanian"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr ""
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polish"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portuguese"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr ""
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russian"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr ""
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spanish"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr ""
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr ""
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Sprog"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Ikke tilgængelig"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr ""
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Forbindelse"
 
@@ -4765,7 +4775,7 @@ msgstr "Forbindelse"
 msgid "Directories"
 msgstr "Mapper"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servere"
 
@@ -4816,7 +4826,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4826,139 +4836,144 @@ msgid ""
 "these settings."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Ydre Forbindelses Parametre"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Ydre Forbindelses Parametre"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Ydre Forbindelses Parametre"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Ydre Forbindelses Parametre"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
 "If you do not restart now, don't complain if anything bad happens.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
 "Click on the button \"List\" by this checkbox to enter an URL."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Gennemse efter Video Afspiller"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -4966,77 +4981,77 @@ msgstr ""
 "Tilføj URLer hvor der kan hentes server.met filer.\n"
 "Kun en URL på hver linje."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, fuzzy, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Opdaterings interval : 5 sek"
 msgstr[1] "Opdaterings interval : 5 sek"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, fuzzy, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Tid for gennemsnitlig graf: 100 min"
 msgstr[1] "Tid for gennemsnitlig graf: 100 min"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, fuzzy, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Fil Buffer StÞrrelse %i bytes"
 msgstr[1] "Fil Buffer StÞrrelse %i bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, fuzzy, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Server forbindelses opdaterings interval %i min"
 msgstr[1] "Server forbindelses opdaterings interval %i min"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Server forbindelses opdaterings interval: Inaktiv"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "deaktiver"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr ""
 
@@ -5064,7 +5079,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr ""
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "Fil ID"
 
@@ -5174,7 +5189,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr ""
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5201,100 +5216,100 @@ msgstr ""
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, fuzzy, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i Serverer fundet i server.met"
 msgstr[1] "%i Serverer fundet i server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, fuzzy, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "Servere tilfÞjet: "
 msgstr[1] "Servere tilfÞjet: "
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 #, fuzzy
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Fejl: filen server.met er beskadiget"
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Uventet fil fejl ved skrivning %s : %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr ""
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr ""
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr ""
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Fejl ved gemning af server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Invalid URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Kunne ikke hente serverlist fra %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5329,7 +5344,7 @@ msgid "Static"
 msgstr "Statistik"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr ""
 
@@ -5353,8 +5368,8 @@ msgstr ""
 msgid "Servers (%i)"
 msgstr "Servere (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Server"
 
@@ -5413,82 +5428,82 @@ msgstr "Er du sikker på at du ønsker at slette de(n) valgt(e) ven(ner)?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Er du sikker på at du ønsker at slette de(n) valgt(e) ven(ner)?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Ny Klient-ID er %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr ""
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr ""
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, fuzzy, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Modtog %d nye Servere"
 msgstr[1] "Modtog %d nye Servere"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr ""
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Server afviste sidste kommando"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr ""
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr ""
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5678,85 +5693,90 @@ msgstr "Fil Navn"
 msgid "Shares File List"
 msgstr "Delte Filer"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Anmodninger"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Godtaget Anmodninger"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Overført Data"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Delings Kvote"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Sendte Dele"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Hele kilder"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Mappe sti"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Tilføj kommentar/bedømmelse"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Rediger Kommentar/Bedømmelse"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Omdøb"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Tilføj filer i samling til overførelses liste"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopier magnet &URI til udklipsholder"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopier eD2k link til udklipsholder (&AICH info)"
+
+#: src/SharedFilesCtrl.cpp:318
 #, fuzzy
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Du skal have et HighID for at lave et godkendt kildelink"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Delte Filer (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[DeleAfFil]"
 
@@ -5765,235 +5785,235 @@ msgstr "[DeleAfFil]"
 msgid "Remote File Name"
 msgstr "Fil Navn"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Gennemsnitlig upload tid: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr ""
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr ""
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr ""
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Genforbindelser: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tid Siden Første Overførsel: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Forbundet Til Server Siden: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr ""
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr ""
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Klienter"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Ukendt: %i"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Filtreret: %i"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "Banlyst"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr ""
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr ""
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr ""
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Total Størrelse Af Delte Filer: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr ""
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr ""
 
@@ -6050,7 +6070,7 @@ msgstr ""
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Admodning fejlede med en ukendt fejl."
 
@@ -6104,13 +6124,13 @@ msgstr ""
 msgid "Now connecting"
 msgstr ""
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "firewalled"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6498,22 +6518,22 @@ msgid ""
 "Use '%s' instead.\n"
 msgstr ""
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr ""
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Konverter gamle AICH hashsæt i '%s' til 64b i '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "ADVARSEL: Filnavnet '%s' er ikke understøttet og er blevet omdøbt til '%s'"
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "ADVARSEL: Filen '%s' eksistere, ny fil omdøbt til '%s'."
@@ -6585,7 +6605,7 @@ msgstr ""
 msgid "Download completed"
 msgstr ""
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr ""
 
@@ -6605,160 +6625,160 @@ msgstr ""
 msgid "Cumulative download activity time."
 msgstr ""
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr ""
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr ""
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr ""
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr ""
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Velkommen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Indput parametre"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6770,159 +6790,163 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 #, fuzzy
 msgid "Cancelled !"
 msgstr "Anulleret !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Ikke muligt at åbne %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dag(e) %i time(r) %i Minut(ter) %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, aMule Online Statistik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Maksimum DL rate siden wxCas er startet"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Absolute Maksimum DL rate gennem wxCas forrige kørsel"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "System"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Stop Auto Genopfriskning"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Gem Online Statistisk billede"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Print Online Statistisk billede"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Omking wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Start Auto Opdatering"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Auto Opdatering stoppet"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Auto Opdatering startet"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Gem Statistisk Billede"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule Online Statistik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -6930,11 +6954,11 @@ msgstr ""
 "Der var et problem med udskrivningen.\n"
 "Måske printer instillingerne er forkerte."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Udskrivning"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -6951,326 +6975,326 @@ msgstr ""
 "Baseret på CAS af Pedro de Oliveira <falso at rdk.homeip.net>\n"
 "Omdelt under GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule kører ikke..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule kører"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule kører men ikke forbundet"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule forbinder"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, aMule status ukendt..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " har kørt i "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " er stoppet !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " er ikke forbundet !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " forbinder..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr "gør noget mærkeligt, undersøg det !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " er forbundet til "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "afbrudt"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " er tændt "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 #, fuzzy
 msgid " with "
 msgstr "] med "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr " Total Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Sesion Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 #, fuzzy
 msgid " kB/s"
 msgstr "kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Deling: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " fil(er), Klienter i kø: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Tid: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " tændt "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "System Hentnings Gennemsnit (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Mappe indholdende amulesig.dat fil"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Skriv her i hvilken mappe amulesig.dat befinder sig"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Opdaterings rate interval i sekunder"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Generer et statistisk billede for hver opdaterings hændelse"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Skriv her mappen hvor du vil generere det statistiske billede"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Upload periodisk dit statistiske billede til en FTP server"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP Url"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP Sti"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Skriv her URL på din FTP server"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Skriv her biblioteket hvor dit statistiske billede på FPT serveren skal ligge"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Bruger"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Skriv her brugernavnet for at logge på din FTP server"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Skriv her bruger passworded for at logge på din FTP server"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP opdaterings interval i minutter"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Valider"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Mapper der indeholder din signatur fil"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Mappe hvor det statistiske billede bliver genereret"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Henter template <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP port"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Brug gzip komprimering"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Tillad bruger adgang"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule configurations fil sti. BRUG IKKE DIREKTE"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule Web Server"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Admoding fejlede med følgende fejl: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Index fil ikke fundet: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Session udløbet - admoder login\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Session ok, logget in\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Session ok, ikke logget in\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Ingen session åbnet - vil admode om login\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Session oprettet - admoder login\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Udfører anmodning [Original]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Undersøger password\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Password hash invalid\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Passwork ok\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Password forkert\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Intet password skrevet. Blank password er ikke gyldigt.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Logout anmodning\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Udfører forespørgsel [omledt]: "
 
@@ -7370,10 +7394,6 @@ msgstr "Udfører forespørgsel [omledt]: "
 #~ msgstr "Fil Overførsel Vindue"
 
 #, fuzzy
-#~ msgid "HTTP download thread started"
-#~ msgstr "Synkroniserings tråd startet."
-
-#, fuzzy
 #~ msgid "Download size: %i"
 #~ msgstr "Downloads (%i)"
 
@@ -7457,10 +7477,6 @@ msgstr "Udfører forespørgsel [omledt]: "
 #~ msgid "Copy ED2k link to clipboard (Hostname) (With &Crypt options)"
 #~ msgstr "Kopier eD2k link til udklipsholder (Hostname) (With &Crypt options)"
 
-#, fuzzy
-#~ msgid "Copy ED2k link to clipboard (&AICH info)"
-#~ msgstr "Kopier eD2k link til udklipsholder (&AICH info)"
-
 #~ msgid "Warning"
 #~ msgstr "Advarsel"
 
diff --git a/po/de.po b/po/de.po
index 0d80f24..409847e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-11-02 00:10+0100\n"
 "Last-Translator: Stu Redman <sturedman at amule.org>\n"
 "Language-Team:  <de at li.org>\n"
@@ -41,7 +41,7 @@ msgstr "Die angegebene Benutzerprüfsumme ist nicht gültig!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Fehler beim Öffnen der ED2KLinks-Datei."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -49,37 +49,37 @@ msgstr ""
 "WARNUNG: Man kann sich nicht als Quelle für einen eD2k-Verweis hinzufügen "
 "während man eine niedrige ID hat."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Beende nun Hauptanwendung ..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Beende amuleweb-Instanz mit pid '%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Erzwinge Beenden der amuleweb-Instanz mit pid '%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Fehlgeschlagen"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Beende Programmkern."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "aMule-Herunterfahren abgeschlossen."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Speicherfehlerbehebungsresultate für aMule-Beendung:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -87,16 +87,16 @@ msgstr ""
 "\n"
 "EC-Konfiguration"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Passwort eingestellt und externe Verbindungen aktiviert."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "WARNUNG"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -104,13 +104,13 @@ msgstr ""
 "Deine Locale wurde wegen einer Konfigurationsänderung auf Systemstandard "
 "geändert. Sorry."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -118,16 +118,16 @@ msgstr ""
 "Es sind keinerlei Server in der Server-Liste.\n"
 "Soll aMule jetzt eine neue Liste herunterladen?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Server-Liste herunterladen"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "Webserver läuft mit pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -138,23 +138,23 @@ msgstr ""
 "Paket, das amuleweb enthält, oder kompiliere aMule mit --enable-webserver "
 "neu."
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "FEHLER"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Kann Ports nicht mit der festgelegten Adresse verbinden: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Port %u ist nicht erreichbar. Du wirst eine niedrige ID erhalten\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -170,11 +170,11 @@ msgstr ""
 "Bitte überprüfe deine Netzwerkeinstellungen, um sicherzugehen, dass der Port "
 "für ein- und ausgehenden Traffic geöffnet ist."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Erstellen der OnlineSig-Datei gescheitert"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Erstellen der aMule OnlineSig-Datei gescheitert"
 
@@ -229,134 +229,134 @@ msgstr ""
 "Das angegebene Verzeichnis für die Online-Signaturdateien ist UNGÜLTIG!\n"
 "Online-Signatur wird bis zur Fehlerbehebung in den Einstellungen DEAKTIVIERT."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Server Hostname benachrichtigt."
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Speicherplatzvorbelegung für Datei '%s' fehlgeschlagen: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "FEHLER: kann Logdatei nicht öffnen"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "WARNUNG: Logdatei ist leer. Etwas ist falsch."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Das Log wurde zurückgesetzt"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Servernachricht: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "Lade %s nicht herunter, weil die angeforderte Datei nicht neuer ist."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Knotenliste kann nicht geholt werden."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Konnte heruntergeladene Datei zur Versionsprüfung nicht öffnen"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Fehlerhafte Versionsprüfungsdatei"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Du benutzt eine veraltete aMule-Version!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 "Diese Version von aMule ist %i.%i.%i und die aktuelle Version ist %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Die neueste Version kann man immer auf http://www.amule.org finden."
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "WARNUNG: Diese Version von aMuled ist veraltet: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Deine Kopie von aMule ist aktuell."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Konnte die Versionsprüfungsdatei nicht herunterladen"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Benutzer: %s | Dateien: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Benutzer: E: %s K: %s | Dateien: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Keine Netzwerke ausgewählt"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "mit niedriger ID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "mit hoher ID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Verbunden zu %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Verbinde zu %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "eD2k getrennt"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad gestartet."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad beendet."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Kad verbunden (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Kad verbunden (firewalled)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Kad getrennt"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -364,13 +364,13 @@ msgstr ""
 "Kad-Netzwerk kann mit deaktiviertem UDP-Port nicht benutzt werden, nicht "
 "gestartet."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr ""
 "Kad-Netzwerk ist in den Voreinstellungen deaktiviert, kein "
 "Verbindungsversuch."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -383,7 +383,7 @@ msgstr ""
 "~/.aMule/amule.conf die Einstellung \"AcceptExternalConnections\" auf 1 "
 "ändern."
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -398,19 +398,19 @@ msgstr ""
 "Argument --ec-config gestartet werden um das Passwort zu setzen. Mehr "
 "Informationen können in der Wiki unter http://wiki.amule.org gefunden werden."
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - Zeitmesser wird gestartet"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: Wechsele in den Hintergrund."
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Kann keine Pid-Datei erstellen"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "FEHLER: %s"
@@ -494,9 +494,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Nachricht"
 
@@ -504,7 +504,7 @@ msgstr "Nachricht"
 msgid "aMule dialog destroyed"
 msgstr "aMule Dialog zerstört."
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Verbinden"
 
@@ -538,7 +538,7 @@ msgstr "Kad: aus"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Abbruch"
 
@@ -555,7 +555,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Von den momentan verbundenen Netzwerken trennen."
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Verbinden"
 
@@ -596,7 +596,7 @@ msgstr "Beenden bestätigen"
 msgid "Launch Command: "
 msgstr "Startbefehl:"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- Voreinstellung -"
 
@@ -611,80 +611,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "WARNUNG: Öffnen der Skin-Datei '%s' zum Lesen nicht möglich"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Netzwerke"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Übersicht der verwendeten Netzwerke"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Suchen"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Dateisuche in den verbundenen Netzwerken"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Downloads"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Download-Fenster"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Freigegebene Dateien"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Übersicht der freigegebenen Dateien"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Nachrichten"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Nachrichten, Chat, Freundesliste"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistiken"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Diverse Statistiken über Up- und Download, Verbindungen, Clients usw."
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Einstellungen"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Fenster für Einstellungen"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importiere"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Das Importierwerkzeug für Part-Dateien"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Über"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Über/Hilfe - Hinweise zur Version usw."
 
@@ -704,7 +704,7 @@ msgstr "Kein Netzwerk"
 msgid "aMule remote control"
 msgstr "aMule Fernsteuerung"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -716,108 +716,108 @@ msgstr "Schwerer Fehler: Der Kern-Zeitgeber konnte nicht erstellt werden."
 msgid "Connect to remote amule"
 msgstr "Verbinde mit entferntem aMule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Schwerer Fehler: Der Nachfrage-Zeitgeber konnte nicht erstellt werden."
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Gehe in Ereignisschleife..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Verbinde..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Verbindung fehlgeschlagen "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "EC-Ereignissteuerung für entfernte Benutzeroberfläche"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Beende..."
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Verbindung fehlgeschlagen. Konnte nicht zu %s:%d verbinden\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Verbindung getrennt - wahrscheinlich hat aMule sich beendet"
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Bereit"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Alle"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Konnte das Verzeichnis '%s' für die Kategorie '%s' nicht erstellen, nutze "
 "weiter das Verzeichnis '%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Konnte Liste der freigegebenen Dateien von Benutzer '%s' nicht abrufen"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Suche Kumpel für Verbindung mit niedriger ID"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Fake eMule version %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Fake eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Fake eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (basiert auf eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Spitzname: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Angefordert: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -827,7 +827,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Dateistatistik dieser Sitzung: %d von %d Anfragen akzeptiert, %s übertragen\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -838,7 +838,7 @@ msgstr[1] ""
 "Dateistatistik aller Sitzungen: %d von %d Anfragen akzeptiert, %s "
 "übertragen\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Unbekannte Datei angefordert"
 
@@ -990,12 +990,12 @@ msgid "Client Details"
 msgstr "Client-Details"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "Niedrige ID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "Hohe ID"
 
@@ -1047,35 +1047,35 @@ msgstr "Verifiziert - OK"
 msgid "Not Available"
 msgstr "Nicht verfügbar"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "Benutzer %s (%u) hat Deine Liste der freigegebenen Dateien angefordert -> "
 "akzeptiert"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "Benutzer %s (%u) hat Deine Liste der freigegebenen Dateien angefordert -> "
 "abgelehnt"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "Benutzer %s (%u) hat die Liste Deiner freigegebenen Verzeichnisse angefragt -"
 "> akzeptiert"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "Benutzer %s (%u) hat die Liste Deiner freigegebenen Dateien angefragt -> "
 "abgelehnt"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1083,7 +1083,7 @@ msgstr ""
 "Benutzer %s (%u) hat deine Liste freigegebener Dateien für das Verzeichnis '%"
 "s' angefordert -> akzeptiert"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1091,38 +1091,38 @@ msgstr ""
 "Benutzer %s (%u) hat deine Liste freigegebener Dateien für das Verzeichnis '%"
 "s' angefordert -> abgelehnt"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Benutzer %s (%u) hat das Verzeichnis '%s' freigegeben"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 "Benutzer %s (%u) hat ungefragt seine freigegebenen Verzeichnisse gesendet."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "Benutzer %s (%u) hat die Liste freigegebener Dateien für das Verzeichnis '%"
 "s' gesendet"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 "Benutzer %s (%u) hat das Senden der Liste freigegebener Dateien abgeschlossen"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 "Benutzer %s (%u) hat ungefragt die Liste seiner freigegebenen Dateien "
 "gesendet"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1139,7 +1139,7 @@ msgstr "Benutzername"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Dateiname"
 
@@ -1182,33 +1182,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Ho]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Sehr niedrig"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Niedrig"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Hoch"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Sehr hoch"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Release"
 
@@ -1225,12 +1225,12 @@ msgid "Queue Full"
 msgstr "Warteschlange voll"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "in Warteschlange"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Herunterladen"
 
@@ -1290,7 +1290,7 @@ msgstr "Lokaler Server"
 msgid "Remote Server"
 msgstr "Entfernter Server"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1316,7 +1316,7 @@ msgid "Search Result"
 msgstr "Suchresultate:"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Fertiggestellt"
 
@@ -1357,11 +1357,11 @@ msgid "Part"
 msgstr "Teil"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Größe"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Übertragen"
 
@@ -1374,17 +1374,17 @@ msgid "Progress"
 msgstr "Fortschritt"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Quellen"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Priorität"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Status"
@@ -1409,7 +1409,7 @@ msgstr "Wirklich die ausgewählte Datei löschen?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Wirklich die ausgewählten Dateien löschen?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1419,7 +1419,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automatisch"
 
@@ -1471,11 +1471,11 @@ msgstr "Zeige alle Kommentare"
 msgid "Copy magnet URI to clipboard"
 msgstr "Kopiere Magnet-URI in Zwischenablage"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Kopiere eD2k &Link in die Zwischenablage"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Feedback in die Zwischenablage kopieren"
 
@@ -1491,24 +1491,24 @@ msgstr "Einer Kategorie hinzufügen"
 msgid "&Open the file"
 msgstr "&Oeffne diese Datei"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Einen neuen Namen für diese Datei eingeben:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Datei umbenennen"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Downloads (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1517,11 +1517,11 @@ msgstr ""
 "Bis dahin wird aMule versuchen, mplayer zu starten, und bei jeder Vorschau "
 "wird diese Warnung angezeigt werden."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Dateivorschau"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "FEHLER: Konnte externen Mediaplayer nicht starten!Befehl: `%s'"
@@ -1628,29 +1628,29 @@ msgstr "Externe Verbindungen deaktiviert. Leeres Passwort!"
 msgid "External connections disabled in config file"
 msgstr "Externe Verbindungen in der Konfigurationsdatei deaktiviert"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Neue externe Verbindung akzeptiert"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "FEHLER: Konnte keine neue externe Verbindung akzeptieren"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Externe Verbindung verweigert. Kein Passwort in den Einstellungen angegeben!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Verbinde mit Client: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Unbekannte Version"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1658,7 +1658,7 @@ msgstr ""
 "Unkorrekte EC-Versions-ID; es könnte eine binär-Inkompatibilität vorliegen. "
 "Benutze Kern und Fernsteuerung desselben Schnappschusses."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1666,175 +1666,175 @@ msgstr ""
 "Du kannst nicht zu einer Release-Version von einer beliebigen Entwicklungs-"
 "Version verbinden! *seufz* möglicher Absturz verhindert"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Ungültige Protokollversion."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Fehlende Protokollversionsmarke."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 "Authentifizierung fehlgeschlagen: ungültiger Hash als EC-Passwort angegeben."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Authentifizierung fehlgeschlagen: falsches Passwort."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Authentifizierung fehlgeschlagen: fehlendes Passwort."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Ungültige Anfrage, bitte zuerst authentifizieren."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Zugang gewährt."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Fehlermeldung \"%s\" zu Client gesendet."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Unerlaubter Verbindungsversuch von %s. Verbindung getrennt."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Fernsteuerungs-Part-Datei-Kommando gescheitert: Dateiprüfsumme nicht "
 "gefunden: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Dateiprüfsumme nicht gefunden: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OOPS! OpCode-Verarbeitungsfehler!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Server nicht hinzugefügt"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "Server nicht gefunden: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "Der zu entfernende Server muss angegeben sein"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k ist in den Einstellungen deaktiviert."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Suche läuft gerade. Aktualisiere gleich die Ergebnisse!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Websuche mit der Fernsteuerungsschnittstelle macht keinen Sinn."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Keine Punkte für Graphen."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Der Client ist nicht nicht für diese Detailstufe eingestellt."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Externe Verbindungen: Herunterfahren gefordert"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Wird bereits heruntergefahren."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Externe Verbindungen: Füge hinzu Verweis '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Ungültiger Verweis oder schon auf der Liste"
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Datei nicht gefunden."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Ungültiger Dateiname."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Datei kann nicht umbenannt werden."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad ist in den Einstellungen deaktiviert."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Bereits mit eD2k verbunden."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Verbinde mit eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Bereits mit Kad verbunden."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Verbinde mit Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Alle Netzwerke sind deaktiviert."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Von eD2k getrennt."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Von Kad getrennt."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Externe Verbindungen: ungültigen Opcode empfangen: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Ungültiger OpCode (falsche Protokollversion?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Unbekannte Erweiterung '%s' für Befehl '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Unbekannter Befehl '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1842,7 +1842,7 @@ msgstr ""
 "\n"
 "Dieser Befehl kann kein Argument haben.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1850,7 +1850,7 @@ msgstr ""
 "\n"
 "Dieser Befehl muss ein Argument haben.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1859,7 +1859,7 @@ msgstr ""
 "Befehl unvollständig, eine der folgenden Erweiterungen muss verwendet "
 "werden:\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1867,11 +1867,11 @@ msgstr ""
 "\n"
 "Verfügbare Erweiterungen:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Verfügbare Befehle:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1882,17 +1882,17 @@ msgstr ""
 "Alle Befehle sind unabhängig von Groß- und Kleinschreibung.\n"
 "Eingabe von '%s <Befehl>' für weitere Informationen zu <Befehl>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Programm verlassen."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Hilfe anzeigen."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1900,7 +1900,7 @@ msgstr ""
 "Um Hilfe zu einem Befehl zu bekommen, gib 'help <Befehl>' ein.\n"
 "Eine vollständige Befehlsübersicht erhält man mit 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1911,48 +1911,48 @@ msgstr ""
 "'%s' zeigt die Befehlsübersicht.\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Syntax Fehler!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Fehler beim Ausführen des Befehls - sollte niemals passieren! Bitte den "
 "Fehler melden.\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Dieser Befehl sollte keine Parameter haben."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Dieser Befehl muss einen Parameter haben."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Ungültiges Argument."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Unvollständiger Befehl."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Gib '%s' ein, um mehr Hilfe zu bekommen.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Dies ist %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Dies ist %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1960,7 +1960,7 @@ msgstr ""
 "\n"
 "Erstelle Client...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1969,7 +1969,7 @@ msgstr ""
 "\n"
 "Ok, beende %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1983,47 +1983,47 @@ msgstr ""
 "\n"
 "Beende...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Zeige diese Hilfe."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host, auf dem aMule läuft. (Standard: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "aMules Port für externe Verbindungen. (Standard: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Passwort für externe Verbindungen."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Lese Konfiguration aus Datei."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Schreibe keinerlei Ausgabe auf stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Sei ausführlich - Zeige auch Debug-Nachrichten."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Setze Programm-Locale (Sprache)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Schreibe Kommandozeilen-Optionen in Konfigurationsdatei."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Erstelle Konfigurationsdatei basierend auf aMules Konfigurationsdatei."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Drucke Programmversion."
 
@@ -2036,8 +2036,8 @@ msgstr "Dateieinzelheiten"
 msgid "%.1f%% done"
 msgstr "%.1f%% erledigt"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2054,7 +2054,7 @@ msgstr "Konnte Freundes-Liste 'emfriends.met' nicht schreiben!"
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "KRITISCH - kein Client bei StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Freunde"
 
@@ -2182,21 +2182,21 @@ msgstr "Die Download-URL kann nicht leer sein."
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "Die URL %s antwortet mit %i - Fehler (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Kritischer Fehler während des Schreibens der heruntergeladenen Datei."
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "%d Bytes heruntergeladen"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "%d Bytes erwartet, aber %d Bytes heruntergeladen."
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2204,11 +2204,11 @@ msgstr ""
 "Ungültige URL für HTTP-Download oder HTTP-Weiterleitung ('http://' "
 "vergessen?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Kann nicht zu HTTP-Downloadserver verbinden."
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Ungültige Antwort von HTTP-Downloadserver"
 
@@ -2245,7 +2245,7 @@ msgstr "%s erfolgreich aktualisiert."
 msgid "Error updating GeoIP.dat"
 msgstr "Fehler beim aktualisieren der GeoIP.dat-Datei"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Herunterladen der Datei %s von %s fehlgeschlagen."
@@ -2292,7 +2292,7 @@ msgstr ""
 "Das Umbenennen der neuen %s-Datei ist fehlgeschlagen, breche Aktualisierung "
 "ab."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP-Filter ist bereit"
 
@@ -2309,47 +2309,47 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Knoten (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Ungültige Bootstrap-IP"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Ungültiger Bootstrap-Port"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Bitte alle erforderlichen Felder ausfüllen"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Wirklich neue nodes.dat herunterladen?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Dies wird alle momentanen Knoten entfernen und die Kademlia-Verbindung neu "
 "starten."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Fortsetzen?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: Suchbegriff zu kurz"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Schlüsselwort für Suche: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: Das Suchwort ist bereits auf der Suchliste."
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2357,61 +2357,61 @@ msgstr ""
 "Lesen der nodes.dat Datei fehlgeschlagen - zu alt. Diese Version (0) wird "
 "nicht mehr unterstützt."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Lese %u Kad-Kontakt"
 msgstr[1] "Lese %u Kad-Kontakte"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Keine Kontakte gefunden, bitte von einem anderen Client bootstrappen oder "
 "eine nodes.dat-Datei herunterladen."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Nur %d Kad-Kontakt verfügbar, nodes.dat wurde nicht geschrieben."
 msgstr[1] "Nur %d Kad-Kontakte verfügbar, nodes.dat wurde nicht geschrieben."
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "%d Kad-Kontakt geschrieben."
 msgstr[1] "%d Kad-Kontakte geschrieben."
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Dateiname"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Dateigröße"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Tauschverhältnis"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Hochgeladen"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Angefordert"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Akzeptiert"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "vollständige Quellen"
 
@@ -2442,71 +2442,76 @@ msgstr "Unbekannter Fehler %d"
 msgid "Unable to get error description for error %d"
 msgstr "Kann Fehlerbeschreibung für Fehler %d nicht erhalten"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Prüfsumme erstellen"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Wird abgeschlossen"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Vollständig"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pausiert"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Fehlerhaft"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Warten"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Das angegebene Passwort darf nicht leer sein."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Ungültiges Passwort, keine MD5-Prüfsumme!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Verbindungsfehler"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "EC-Verbindung fehlgeschlagen. Leere Antwort."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Externe Verbindungen: Falsche Antwort, Verhandlung fehlgeschlagen. "
 "Verbindung beendet."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Gelungen! Verbindung aufgebaut zu aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Verbindung hergestellt."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Externe Verbindungen: Zugriff verweigert wegen:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Externe Verbindungen: Verhandlung fehlgeschlagen."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "HTTP-Download-Thread gestartet."
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: OK"
@@ -2515,16 +2520,16 @@ msgstr "ListenSocket: OK"
 msgid "ERROR: Could not listen to TCP port."
 msgstr "FEHLER: Kann nicht auf TCP-Port lauschen."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "FEHLER: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "WARNUNG: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Schließen"
 
@@ -2532,8 +2537,8 @@ msgstr "Schließen"
 msgid "Cut"
 msgstr "Ausschneiden"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopieren"
 
@@ -2542,7 +2547,7 @@ msgid "Paste"
 msgstr "Einfügen"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Leeren"
 
@@ -2552,7 +2557,7 @@ msgstr "Alles auswählen"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2629,7 +2634,7 @@ msgid "ServerIP: "
 msgstr "ServerIP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Nicht verbunden"
 
@@ -2664,7 +2669,7 @@ msgstr "Online-Signatur: An"
 msgid "Online Signature: Disabled"
 msgstr "Online-Signatur: Aus"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Laufzeit: %s"
@@ -2705,7 +2710,7 @@ msgstr "Verstecke aMule"
 msgid "Show aMule"
 msgstr "Zeige aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Schließen"
 
@@ -2792,7 +2797,7 @@ msgstr "Suche"
 msgid "Name:"
 msgstr "Name:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Suchtyp"
 
@@ -2820,38 +2825,38 @@ msgstr "Filtere"
 msgid "File Type"
 msgstr "Dateityp"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Jeder"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archive"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-Abbilder"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Bilder"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programme"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Texte"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Videos"
 
@@ -2872,11 +2877,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2904,7 +2909,7 @@ msgstr "Ergebnisse umkehren"
 msgid "Hide Known Files"
 msgstr "Bekannte Dateien ausblenden"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Start"
 
@@ -2962,7 +2967,7 @@ msgstr "Name:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "Nicht verfügbar"
 
@@ -2986,7 +2991,7 @@ msgstr "Status der Part-Datei:"
 msgid "Last seen complete :"
 msgstr "Zuletzt vollständig gesehen:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Übertragungen"
 
@@ -3076,27 +3081,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Dateiqualität"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Nicht bewertet"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Ungültig / fehlerhaft / Fälschung"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Schlecht"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Ordentlich"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Gut"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Hervorragend"
 
@@ -3143,7 +3148,7 @@ msgid "Userhash :"
 msgstr "Benutzerprüfsumme:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Hinzufügen"
 
@@ -3379,9 +3384,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Durchsuchen"
 
@@ -3474,7 +3479,7 @@ msgstr "Maximale gleichzeitige Verbindungen:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "eD2k"
 
@@ -3594,7 +3599,7 @@ msgstr "Hier den minimalen erwünschten Festplattenplatz angeben."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Bei seltenen (< 20 Quellen) Dateien zehn Quellen speichern"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Uploads"
 
@@ -3836,7 +3841,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Aktiviere UPnP-Port-Weiterleitung zu EC-Port"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Passwort"
 
@@ -3918,8 +3923,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Farbe für diese Kategorie wählen (momentan ausgewählt):"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Zurücksetzen"
 
@@ -4326,84 +4331,89 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Aktiviere ausführliche Debug-Protokollierung"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Oeffne diese Datei"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Nachrichtenkategorien:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Wartend..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Füge Importe hinzu"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Versuche Ausgewähltes noch einmal"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Auswahl entfernen"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Ereignisarten"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Statistiken und Clients in der Warteschlange für ausgewählte Datei(en): "
 "Sitzung / Insgesamt"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Aktive Uploads"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Prozent aller Dateien"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Alle Dateien"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Ausgewählte Dateien"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Nur aktive Uploads"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Clients anzeigen für"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Aktualisieren:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Freigegebene Dateien neu laden"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Senden"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Sendet die angegebene Nachricht."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Schließe diese Chat-Sitzung."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Mit irgendeinem Server und/oder Kad verbinden"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Freigaben"
 
@@ -4412,135 +4422,135 @@ msgstr "Freigaben"
 msgid "Disabled [%s]"
 msgstr "Ausgeschaltet [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "Byte"
 msgstr[1] "Bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "Byte/Sek"
 msgstr[1] "Bytes/Sek"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "Sekunden"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "Minuten"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "Stunden"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Tage"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "alle"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "alle anderen"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Unvollständig"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Angehalten"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Archiv"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Text"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktiv"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Verwende Konfigurationsverzeichnis: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Warte auf Ende des Umwandlungsthreads für unfertige Dateien..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importiere %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Lese Temp-Verzeichnis"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Hole Basis-Informationen aus der Download-Info-Datei"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Erzeuge Zieldatei"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Lade Daten aus der alten Download-Datei (%u von %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Speichere Datenblock in die neue, einzelne Download-Datei (%u von %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Hole Quellen-Download-Datei-Informationen"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Füge Download hinzu und speichere neue Part-Datei"
 
@@ -4556,12 +4566,12 @@ msgstr "Status"
 msgid "Filehash"
 msgstr "Dateiprüfsumme"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Platte: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4569,12 +4579,12 @@ msgstr ""
 "Bitte wähle einen Ordner, um nach temporären Downloads zu suchen! "
 "(Unterordner werden mit eingeschlossen!)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Quelldateien der erfolgreich importierten Downloads löschen?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Quellen entfernen?"
 
@@ -4689,7 +4699,7 @@ msgstr "Part-Datei %s (%s) hat eine leere Einstiegsquellendatei"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Fehler beim Lesen der Partfile-Einstiegsquellendatei (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4704,41 +4714,41 @@ msgstr[1] ""
 "korrumpierter Teil (%d) in %d-teiliger Datei %s gefunden - Dateiergebnishash "
 "|%s| Dateihash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Vollständigen Teil (%i) in %s gefunden"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Prüfsumme für %s neu erstellt"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 "Unerwarteter Fehler beim Abschließen des Herunterladens von %s. Datei "
 "pausiert."
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Herunterladen abgeschlossen: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Lösche Datei: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "WARNUNG: Konnte für heruntergeladenen Teil die Prüfsumme nicht berechnen - "
 "Prüfsummensatz unvollständig für '%s'."
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4747,7 +4757,7 @@ msgstr ""
 "FEHLER: Prüfsumme für einen Teil konnte nicht erstellt werden - Prüfsumme "
 "unvollständig (%s). Dies dürfte eigentlich nie passieren."
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4756,225 +4766,225 @@ msgstr ""
 "EOF beim Hashen des %u. heruntergeladenen Teils, mit der Länge %u (max %u), "
 "für die Part-Datei '%s', mit der Länge %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "WARNUNG: Nicht genügend freier Festplattenplatz! Pausiere Datei: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Heruntergeladener Teil %i in Datei '%s' ist defekt"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Defekter Teil %i in %s wiederhergestellt -> Gesparte Bytes: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Reserviere"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Zu wenig Festplattenplatz"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Heruntergeladen"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "FEHLER: Öffnen von Partfile '%s' fehlgeschlagen"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Systemvorgabe"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanisch"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabisch"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturisch"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baskisch"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgarisch"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalanisch"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Chinesisch (vereinfacht)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Chinesisch (traditionell)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Kroatisch"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Tschechisch"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Dänisch"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holländisch"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Englisch (UK)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estnisch"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finnisch"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Französisch"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galizisch"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Deutsch"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Griechisch"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebräisch"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Ungarisch"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italienisch"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italienisch (Schweiz)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japanisch"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Koreanisch"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Litauisch"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norwegisch"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polnisch"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugiesisch"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugiesisch (Brasilianisch)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russisch"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Slowenisch"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spanisch"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Schwedisch"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Türkisch"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukrainisch"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Sprache ändern"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr "Für aMule sind keine Übersetzungen installiert"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr "Keine Sprachen verfügbar"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "keine Optionen verfügbar"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Ungültige Kategorie gefunden, überspringe."
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "TCP-Port kann nicht größer als 65532 sein, da der Server-UDP-Port=TCP-Port+3 "
 "ist"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Standard-Port wird verwendet (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Lösche nicht existierenden freigegebenen Ordner: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Verbindung"
 
@@ -4982,7 +4992,7 @@ msgstr "Verbindung"
 msgid "Directories"
 msgstr "Verzeichnisse"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Server"
 
@@ -5036,7 +5046,7 @@ msgstr ""
 "    %PARTFILE - ganzer Pfad zur Datei\n"
 "    %PARTNAME - nur der Dateiname"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5052,32 +5062,32 @@ msgstr ""
 "aMule funktioniert auch hervorragend, ohne\n"
 "dass diese Einstellungen verändert werden."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 "Verbindung von Einstellung zu Steuerelement mit ID %d und Schlüssel %s "
 "fehlgeschlagen."
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 "Datentransfer von Einstellung zu Steuerelement mit ID %d und Schlüssel %s "
 "fehlgeschlagen."
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Der Typ des Proxy, zu dem du verbindest"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 "Datentransfer von Steuerelement zu Einstellung mit ID %d und Schlüssel %s "
 "fehlgeschlagen."
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5085,27 +5095,32 @@ msgstr ""
 "aMule muss neu gestartet werden, um diese Änderungen zu übernehmen:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP-Port geändert.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP-Port geändert.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Port externer Verbindung geändert.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Akzeptanz externer Verbindung geändert.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Schnittstelle der externen Verbindung geändert.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protokollverschleierung"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5113,7 +5128,7 @@ msgstr ""
 "Die Auto-Update-Serverliste ist leer.\n"
 "'Serverliste beim Programmstart aktualisieren' wird deaktiviert."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5122,19 +5137,19 @@ msgstr ""
 "Externe Verbindungen können nur aktiviert werden, wenn ein gültiges Passwort "
 "angegeben wird."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Sprache geändert.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Temp-Verzeichnis geändert.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- ED2k-Netzwerk aktiviert.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5142,7 +5157,7 @@ msgstr ""
 "Beide Netzwerke, eD2k und Kad, sind deaktiviert.\n"
 "Mindestens eins davon muss aktiviert sein, um sich verbinden zu können."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5150,7 +5165,7 @@ msgstr ""
 "Kad wird nicht starten, solange der UDP-Port deaktiviert ist.\n"
 "Bitte UDP-Port aktivieren, oder Kad ausschalten."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5161,7 +5176,7 @@ msgstr ""
 "Wenn du jetzt nicht neu startest, beklage dich nicht, wenn irgendwas übles "
 "passiert.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5171,41 +5186,41 @@ msgstr ""
 "Bitte gib mindestens eine URL zu einer gültigen server.met ein.\n"
 "Drücke dazu den Knopf \"Liste\" neben diesem Kontrollkästchen."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Temporäre Dateien"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Fertige Dateien"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Online-Signaturen"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Wähle einen Ordner für %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Suche nach einem Videoplayer"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Browser-Wahl"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Ausführbar%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Serverliste bearbeiten"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5213,76 +5228,76 @@ msgstr ""
 "Hier URL's für server.met-Dateien eintragen.\n"
 "Nur eine URL pro Zeile!"
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Aktualisierungsverzögerung: %d Sekunde"
 msgstr[1] "Aktualisierungsverzögerung: %d Sekunden"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Zeit für Durchschnittslinie: %d Minute"
 msgstr[1] "Zeit für Durchschnittslinie: %d Minuten"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Verbindungsgraphenskala: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Dateipuffergröße: %d Byte"
 msgstr[1] "Dateipuffergröße: %d Bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Upload-Warteschlangengröße: %d Client"
 msgstr[1] "Upload-Warteschlangengröße: %d Clients"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Server-Wiederverbindungsintervall: %d Minute"
 msgstr[1] "Server-Wiederverbindungsintervall: %d Minuten"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Server-Wiederverbindungsintervall: Aus"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "deaktiviert"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Führe Kommando beim '%s' Ereignis aus"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Aktiviere Befehlsausführung im Kern"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Kern-Befehl:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Aktiviere Befehlsausführung in GUI"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "GUI-Befehl:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Die folgenden Variablen werden ersetzt:"
 
@@ -5311,7 +5326,7 @@ msgstr "eD2k-Suche kann nicht ausgeführt werden, wenn eD2k nicht verbunden ist"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Unerwarteter Fehler bei der Kad-Suche:"
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "Datei-ID"
 
@@ -5428,7 +5443,7 @@ msgstr "FEHLER: Ungültiger Socket bei Prüfung auf Zeitüberschreitung"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Verbindungsversuch zu %s (%s:%i): Zeitüberschreitung."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Verspätetes Ergebnis für DNS-Nachschlag erhalten, wird verworfen."
 
@@ -5457,52 +5472,52 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Server.met unbrauchbar, unzulässige Versionsmarke gefunden: 0x%x, Größe %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i Server in server.met gefunden"
 msgstr[1] "%i Server in server.met gefunden"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d Server hinzugefügt"
 msgstr[1] "%d Server hinzugefügt"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Fehler: die 'server.met' Datei ist defekt: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "IO-Fehler beim Lesen der 'server.met' Datei: "
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Server nicht hinzugefügt: [%s:%d] Gibt keinen gültigen Port an."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 "Server nicht hinzugefügt: Die IP-Adresse [%s:%d] ist gefiltert oder ungültig."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Server nicht hinzugefügt: Server mit gleicher IP:Port [%s:%d] bereits "
 "vorhanden."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Server hinzugefügt: Server bei [%s:%d] mit Namen '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5510,25 +5525,25 @@ msgstr ""
 "Du bist zu einem Server verbunden, den du zu löschen versuchst. Bitte zuerst "
 "trennen."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Konnte '%s' nicht öffnen"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Speichern der server.met fehlgeschlagen!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Ungültige URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Download der Serverliste von %s beendet"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5536,28 +5551,28 @@ msgstr ""
 "Keine Serverlistenadresse in 'addresses.dat' gefunden. Bitte dort zum "
 "automatischen Aktualisieren eine gültige Serverlistenadresse eintragen."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Beginne Download der Serverliste von %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "WARNUNG: ungültige URL für das automatische Aktualisieren der Serverliste "
 "angegeben: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Keine gültige server.met Auto-Download URL in addresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Konnte Serverliste von %s nicht herunterladen"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5594,7 +5609,7 @@ msgid "Static"
 msgstr "Statisch"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Version"
 
@@ -5620,8 +5635,8 @@ msgstr "Wirklich den statischen Server '%s' löschen?"
 msgid "Servers (%i)"
 msgstr "Server (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Server"
 
@@ -5677,84 +5692,84 @@ msgstr "Wirklich den markierten Server löschen?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Wirklich die markierten Server löschen?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "Fehler: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "WARNUNG: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Neue Benutzer-ID ist %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "WARNUNG: Du hast eine Low-ID zugeordnet bekommen!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tDies rührt vermutlich daher, dass Du Dich hinter einem Router oder einer "
 "Firewall befindest."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tMehr Informationen dazu gibt es hier: http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Unbekannte Serverinfo empfangen! - Zu kurz"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "%d neuen Server empfangen"
 msgstr[1] "%d neue Server empfangen"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Speichern der Serverliste abgeschlossen."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Server hat letzten Befehl abgelehnt"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Seltsames Paket vom Server empfangen: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Unbearbeiteter Fehler beim Verarbeiten eines Paketes vom Server: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Kann DNS-Auflöse-Thread nicht erstellen, um zu %s zu verbinden"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Server-IP %s (%s) ist gefiltert. Verbinde nicht."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "verwende Protokollverschleierung."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Verbinde mit·%s·(%s·-·%s:%i)·%s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Konnte DNS-Namen von Server %s nicht auflösen: Kann nicht verbinden!"
@@ -5932,86 +5947,91 @@ msgstr "Lokaler Dateiname"
 msgid "Shares File List"
 msgstr "Liste der Freigaben"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Anfragen"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Akzeptierte Anfragen"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Übertragene Datenmenge"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Verteilungsfaktor"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Erhaltene Teile"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Vollständige Quellen"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Verzeichnispfad"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Kommentar/Bewertung abgeben"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Kommentar/Bewertung ändern"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Umbenennen"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Füge Dateien aus Sammlung zur Übertragungsliste"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopiere Magnet-URL &URI in Zwischenablage"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Kopiere eD2k-Verweis in die Zwischenablage (&Source)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Kopiere eD2k-Verweis in Zwischenablage (Source) (&With Crypt options)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "eD2k-Link in Zwischenablage kopieren (&Hostname)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Kopiere eD2k-Verweis in Zwischenablage (Hostname) (With &Crypt options)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Kopiere eD2k-Verweis in die Zwischenablage (&AICH Info)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopiere eD2k-Verweis in die Zwischenablage (&AICH Info)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr ""
 "Du brauchst eine hohe ID, um einen gültigen Quellenverweis zu erstellen"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Freigegebene Dateien (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[PartFile]"
 
@@ -6019,235 +6039,235 @@ msgstr "[PartFile]"
 msgid "Remote File Name"
 msgstr "Ferndateiname"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Hochgeladene Daten (Sitzung (Gesamt)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Gesamt-Overhead (Pakete): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Dateianfragen-Overhead (Pakete): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Quellenaustausch-Overhead (Pakete): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Server-Overhead (Pakete): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kad-Overhead (Pakete): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "zusätzlicher Datenverkehr durch Verschlüsselung (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Laufende Uploads: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Wartende Uploads: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Erfolgreiche Upload-Sitzungen insgesamt: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Fehlgeschlagene Upload-Sitzungen insgesamt: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Gesamte Upload-Zeit: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Heruntergeladene Daten (Sitzung (Gesamt)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Gefundene Quellen: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Laufende Downloads (Chunks): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Sitzung UL:DL-Rate (Gesamt): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Durchschnittliche Download-Rate (Sitzung): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Durchschnittliche Upload-Rate (Sitzung): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Max. Download-Rate (Sitzung): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Max. Upload-Rate (Sitzung): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Server-Wiederverbindungen: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Zeit seit erster Übertragung: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Verbunden mit Server seit: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktive Verbindungen (geschätzt): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Verbindungslimit erreicht: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Durchschnittliche Verbindungen (geschätzt): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Höchste Verbindungsanzahl (geschätzt): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Clients"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Unbekannt: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Gefiltert: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Gebannt: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Gesamt: %i Bekannt: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Funktionierende Server: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Ausgefallene Server: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Gesamt: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Gelöschte Server: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Gefilterte Server: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Benutzer auf funktionierenden Servern: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Dateien auf funktionierenden Servern: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Benutzer insgesamt: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Dateien insgesamt: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Server-Auslastung: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Anzahl freigegebener Dateien: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Gesamtgröße der freigegebenen Dateien: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Durchschnittliche Dateigröße: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Betriebssystem"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Nicht empfangen"
 
@@ -6306,7 +6326,7 @@ msgstr "Keine gültige Nummer\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Keine gültige Prüfsumme (sollte genau 32 Zeichen lang sein)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Anfrage ist mit unbekanntem Fehler gescheitert."
 
@@ -6360,13 +6380,13 @@ msgstr "Verbunden mit %s %s %s"
 msgid "Now connecting"
 msgstr "Verbinde"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "firewalled"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6802,21 +6822,21 @@ msgstr ""
 "Das ist ein veralteter Befehl und könnte in der Zukunft enfernt werden.\n"
 "Nutze stattdessen '%s'.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule Textclient"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Wandle alte AICH-Prüfsummensätze von '%s' um in 64b in '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "WARNUNG: Der Dateiname '%s' ist ungültig und wurde in '%s' umbenannt."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "WARNUNG: Die Datei '%s' gibt es schon, neue Datei in '%s' umbenannt."
@@ -6890,7 +6910,7 @@ msgstr "Befehlsausführung fehlgeschlagen: Befehl `%s' aufgrund Ereignis `%s'."
 msgid "Download completed"
 msgstr "Download fertiggestellt"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Der vollständige Pfad zur Datei."
 
@@ -6910,66 +6930,66 @@ msgstr "Die Dateigröße in Byte."
 msgid "Cumulative download activity time."
 msgstr "Die Gesamtzeit aktiven Herunterladens."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Neue Chat-Sitzung gestartet."
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Nachrichtensender."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Kein Speicherplatz mehr vorhanden."
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Festplattenpartition."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Fehler beim Fertigstellen der Datei."
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Verarbeite Datei Nummer %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Du willst Part-Prüfsummen erstellen (nur bei Dateien > 9,5 MiB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Datei existiert nicht!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, der aMule-eD2k-Verweis-Ersteller"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Willkommen!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Eingabeparameter"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Datei für Prüfsummenberechnung"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Dieser Datei optionale URLs hinzufügen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Hier die Datei zum Erzeugen des eD2k-Verweises eingeben."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6977,15 +6997,15 @@ msgstr ""
 "Hier die URL eingeben, die zum eD2k-Verweis hinzugefügt werden soll. Füge am "
 "Ende einen / ein, damit aLinkCreator den momentanen Dateinamen übernimmt."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Entferne"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Erstelle Verweis mit Part-Prüfsummen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6993,81 +7013,81 @@ msgstr ""
 "Hilft, neue und seltene Dateien schneller zu verteilen auf Kosten einer "
 "erhöhten Verweisgröße"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4-Dateiprüfsumme"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k-Dateiprüfsumme"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k-Verweis"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Speichern"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "In die Zwischenablage kopieren"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Öffnen..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Eine Datei zum Erstellen ihres eD2k-Verweises öffnen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Kopiere erstellten eD2k-Verweis in die Zwischenablage"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Speichern unter..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Speichere erstellten eD2k-Verweis in Datei"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Über aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Datei zum Erstellen des eD2k-Verweises auswählen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Kann die Zwischenablage nicht öffnen."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Derzeit nichts zu Kopieren!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Datei zu dem errechneten eD2k-Verweis auswählen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Konnte Datei nicht öffnen "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Bitte keinen leeren Dateinamen eingeben"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Momentan nichts zu speichern!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7088,158 +7108,162 @@ msgstr ""
 "\n"
 "Vertrieben unter der GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Prüfsummenberechnung..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator arbeitet gerade für dich"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Berechne MD4-Hash..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Berechne eD2k-Hash..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Abgebrochen !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Fertig in %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Du hast diese URL bereits eingegeben!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Bitte keine leere URL eingeben"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Konnte '%s' nicht öffnen"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i Tag(e) %i Std. %i Min. %i Sek."
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uT %02uStd %02uMin %02uSek"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uStd %02uMin %02uSek"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02uMin %02uSek"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02uSek"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, die aMule-Onlinestatistik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Höchste Downloadrate seit wxCas läuft"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Höchste Downloadrate während wxCas jemals lief"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "System"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Automatische Aktualisierung beenden"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Speichere Onlinestatistikbild"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Drucke Onlinestatistikbild"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Einstellungen"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Über wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Beginne automatische Aktualisierung"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Automatische Aktualisierung angehalten"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Automatische Aktualisierung begonnen"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Speichere Statistikbild"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule-Onlinestatistik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7247,11 +7271,11 @@ msgstr ""
 "Es gab ein Problem beim Drucken.\n"
 "Vielleicht ist der aktuelle Drucker nicht richtig eingestellt?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Drucke"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7269,324 +7293,324 @@ msgstr ""
 "\n"
 "Vertrieben unter der GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh-oh, aMule läuft nicht..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule läuft"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule läuft, aber nicht verbunden"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule verbindet gerade...."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh-oh, aMule-Status ist unbekannt..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " läuft seit "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr "ist angehalten!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " ist nicht verbunden!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " verbindet sich..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " macht irgendetwas Merkwürdiges, bitte überprüfen!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " ist verbunden mit "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "aus"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " ist auf "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " mit "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Gesamtdownload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Sitzung Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Freigegeben: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " Datei(en), Clients in Warteschlange: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Zeit:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " auf "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Durchschnittliche Systemlast (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Systemlaufzeit: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Verzeichnis mit der Datei amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Hier das Verzeichnis zur Datei amulesig.dat angeben"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Aktualisierungsintervall in Sekunden"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Erzeuge bei jeder Aktualisierung ein Statistikbild"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Hier das Zielverzeichnis zum Erstellen des Statistikbildes angeben"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Statistikbild periodisch auf einen FTP-Server hochladen"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP-URL"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP-Pfad"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Hier die URL deines FTP-Servers eingeben"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Hier das Zielverzeichnis für das Statistikbild auf dem FTP-Server angeben"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Benutzer"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Hier den Benutzernamen zur Anmeldung auf deinem FTP-Server eingeben"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Hier das Benutzerpasswort zur Anmeldung auf dem FTP-Server eingeben"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP-Aktualisierungsintervall in Minuten"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Bestätigen"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Verzeichnis mit deiner Signaturdatei"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Verzeichnis zum Erzeugen des Statistikbildes"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Lädt Vorlage <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Webserver-HTTP-Port"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Benutze UPnP-Port-Weiterleitung für Webserver-Port"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP-Port"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Benutze gzip-Kompression"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Vollzugriff-Passwort für den Webserver"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Gast-Passwort für den Webserver"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Erlaube Gastzugriff"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Verweigere Gastzugriff"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Lade/Speichere Webserver-Einstellungen von/zu entferntem aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule-Konfigurationsdateipfad. NICHT DIREKT BENUTZEN!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "PHP-Interpreter deaktivieren (überholt)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Rekompiliere PHP-Seiten bei jeder Anfrage"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule Webserver"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "Webclient-Verbindung akzeptiert.\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "FEHLER: Kann Webclientverbindung nicht akzeptieren.\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Anfrage mit folgendem Fehler gescheitert: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Index-Datei nicht gefunden: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sitzung abgelaufen - fordere Anmeldung\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sitzung ok, angemeldet\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sitzung ok, nicht angemeldet\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Keine Sitzung geöffnet - fordere Anmeldung\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sitzung eröffnet - fordere Anmeldung\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Anfrage verarbeiten [original]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Kein Passwort angegeben, Anmeldung wird nicht erlaubt."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Prüfe Passwort\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Passwort-Prüfsumme ungültig\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Passwort ok\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Falsches Passwort\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Du hast kein Passwort angegeben. Leeres Passwort ist nicht erlaubt.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Fordere Abmeldung\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Anfrage verarbeiten [umgeleitet]: "
 
@@ -7783,9 +7807,6 @@ msgstr "Anfrage verarbeiten [umgeleitet]: "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Benutzer insgesamt: %s | Dateien insgesamt: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "HTTP-Download-Thread gestartet."
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr ""
 #~ "Downloadgröße nicht empfangen, lade herunter bis Verbindung beendet wird"
diff --git a/po/el.po b/po/el.po
index 26bad43..3631818 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: el\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-07-30 01:25-0600\n"
 "Last-Translator: Dimitris <dgalanak at yahoo.com>\n"
 "Language-Team: Greek\n"
@@ -36,7 +36,7 @@ msgstr "Ο προσδιορισμένος κατακερματισμός χρή
 msgid "Failed to open ED2KLinks file."
 msgstr "Αποτυχία ανοίγματος %s (%s)"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -44,58 +44,58 @@ msgstr ""
 "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Δεν μπορείτε να προσθέσετε τον εαυτό σας σαν πηγή για έναν "
 "σύνδεσμο eD2k ενώ έχετε χαμηλή προτεραιότητα."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 #, fuzzy
 msgid "Now, exiting main app..."
 msgstr ""
 "\n"
 "Όλα μια χαρά, έξοδος %s...\n"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Απέτυχε"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 #, fuzzy
 msgid "aMule shutdown completed."
 msgstr "Το κατέβασμα ολοκληρώθηκε"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Έξοδος επιβεβαίωσης"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "Νέα εξωτερική σύνδεση έγινε δεκτή"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -103,13 +103,13 @@ msgstr ""
 "Οι τοπικές ρυθμίσεις άλλαξαν στις προεπιλεγμένες του συστήματος λόγο μιας "
 "αλλαγής παραμέτρων. Sorry!"
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Πληροφορίες"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -117,16 +117,16 @@ msgstr ""
 "Δεν υπάρχουν διακομιστές στην λίστα.\n"
 "Θέλετε το aMule να κατεβάσει μία νέα λίστα τώρα;"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Κατέβασμα της λίστας διακομιστών"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "διακομιστής ιστού τρέχει με αριθμό διεργασίας %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -137,24 +137,24 @@ msgstr ""
 "περιέχει τον διακομιστή ιστού του aMule, ή μεταφράστε το aMule "
 "χρησιμοποιώντας την παράμετρο --enable-webserver"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ΣΦΑΛΜΑ"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Δεν μπόρεσε να προσδέσει τις θύρες στην προσδιορισμένη διεύθυνση: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr ""
 "Η θύρα %u δεν είναι διαθέσιμη. Θα σας αποδωθεί LOWID (χαμηλή προτεραιότητα)\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -170,11 +170,11 @@ msgstr ""
 "Ελέξτε το δίκτυο σας για να βεβαιωθήτε ότι η θύρα είναι ανοιχτή για είσοδο "
 "και έξοδο."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Αποτυχία δημιουργίας αρχείου Συνδεδεμένων Υπογραφών"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Αποτυχία δημιουργίας αρχείου Συνδεδεμένων Υπογραφών του aMule"
 
@@ -230,135 +230,135 @@ msgstr ""
 "Οι ηλεκτρονικές υπογραφές θα ΑΠΕΝΕΡΓΟΠΟΙΗΘΟΥΝ μέχρι να το φτιάξετε στις "
 "προτιμήσεις."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "Όνομα διακομιστή:"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Η εκχώρηση χώρου για το αρχείο '%s' απέτυχε: '%s'"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ΣΦΑΛΜΑ: το αρχείο καταγραφής δεν μπορεί να ανοίξει"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το αρχείο καταγραφών είναι άδειο. Κάτι δεν πάει καλά."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Το αρχείο καταγραφών επαναφέρθηκε στην αρχική κατάσταση"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Μήνυμα Διακομιστή: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Αποτυχία κατεβάσματος της λίστας κόμβων."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Αποτυχία ανοίγματος του κατεβασμένου αρχείου ελέγχου έκδοσης"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Φθαρμένο αρχείο ελέγχου έκδοσης"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Χρησιμοποιείται μία ξεπερασμένη έκδοση του aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Η παρούσα έκδοση του aMule είναι %i.%i.%i και η τελευταία %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Η τελευταία έκδοση μπορεί να βρεθεί στο http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η έκδοση του aMuled είναι ξεπερασμένη: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Αυτό το αντίγραφο του aMule είναι σύγχρονο. "
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Αποτυχία κατεβάσματος του αρχείου ελέγχου έκδοσης"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Χρήστες: %s | Αρχεία: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Χρήστες: E: %s K: %s | Αρχεία: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Δεν έχουν επιλεχθεί δίκτυα"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "με Χαμηλή Προτεραιότητα"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "με Υψηλή Προτεραιότητα"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Σύνδεση με το %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Διαδικασία σύνδεσης με %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Αποσυνδεδεμένο από το eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Το Kad ξεκίνησε."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Το Kad είναι σταματημένο."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Συνδεδεμένο στο Kad (ΟΚ)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Συνδεδεμένο στο Kad (με προστατευτικό τοίχο)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Αποσυνδεδεμένο από το Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -366,12 +366,12 @@ msgstr ""
 "Το δίκτυο Kad δεν μπορεί να χρησιμοποιηθεί αν η θύρα UDP είναι "
 "απενεργοποιημένη στις προτιμήσεις. Δεν έγινε εκκίνηση."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr ""
 "Το δίκτυο Kad είναι απενεργοποιημένο από τις προτιμήσεις. Δεν έγινε σύνδεση."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 #, fuzzy
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
@@ -385,7 +385,7 @@ msgstr ""
 "την παράμετρο --ec-config ή θέστε το κλειδί \"AcceptExternalConnections\" "
 "στην τιμή 1 στο αρχείο ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -394,19 +394,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ΣΦΑΛΜΑ: %s"
@@ -490,9 +490,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Μήνυμα"
 
@@ -500,7 +500,7 @@ msgstr "Μήνυμα"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Συνδέοντας"
 
@@ -534,7 +534,7 @@ msgstr "Kad: Εκτός"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Ακύρωση"
 
@@ -551,7 +551,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Αποσύνδεση από τα συνδεδεμένα δίκτυα"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Σύνδεση"
 
@@ -592,7 +592,7 @@ msgstr "Έξοδος επιβεβαίωσης"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- Προεπιλεγμένο -"
 
@@ -607,81 +607,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Δεν είναι δυνατή η ανάγνωση του αρχείου θέματος '%s' "
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Δίκτυα"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Παράθυρο δικτύων"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Αναζητήσεις"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Παράθυρο αναζητήσεων"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Κατεβασμένα"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Κατεβαίνει"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Κοινόχρηστα αρχεία"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Παράθυρο κοινόχρηστων αρχείων"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Μηνύματα"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Παράθυρό μηνυμάτων"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Στατιστικές"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Παράθυρο στατιστικών διαγραμμάτων"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Προτιμήσεις"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Παράθυρο ρυθμίσεων"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Εισαγωγή"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Το εργαλείο εισαγωγής ημιτελών αρχείων"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Σχετικά"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Σχετικά/Βοήθεια"
 
@@ -701,7 +701,7 @@ msgstr "Κανένα δίκτυο"
 msgid "aMule remote control"
 msgstr "Έλεγχος του aMule εξ' αποστασεως"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -714,109 +714,109 @@ msgstr "Μοιραίο σφάλμα: Αποτυχία δημιουργίας χ
 msgid "Connect to remote amule"
 msgstr "Σύνδεση σε απομακρυσμένο amule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Μοιραίο σφάλμα: Αποτυχία δημιουργίας χρονομέτρου"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 #, fuzzy
 msgid "Going to event loop..."
 msgstr "Προσπάθεια ανάκτηση πληροφοριών αρχείου..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Συνδέοντας"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Αποτυχία σύνδεσης"
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Όλα"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Άγνωστο"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Αποτυχία λήψης των κοινόχρηστων αρχείων του χρήστη '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr "(Πλασματική έκδοση eMule %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr "(Πλασματικό eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Πλασματικό eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (βασισμένο στο eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Παρατσούκλι: %s Ταυτότητα: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Ζητήθηκε: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -828,7 +828,7 @@ msgstr[1] ""
 "Στατιστικές αρχείων για αυτή τη συνεδρία: Δεκτά %d από %d αίτησεις, %s "
 "μεταφέρθηκαν\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -840,7 +840,7 @@ msgstr[1] ""
 "Στατιστικές αρχείων για όλες τις συνεδρίες: Δεκτά %d από %d αίτησεις, %s "
 "μεταφέρθηκαν\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Αναζητήθηκε άγνωστο αρχείο"
 
@@ -989,12 +989,12 @@ msgid "Client Details"
 msgstr "Πληροφορίες πελάτη"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "Κακή ποιότητα σύνδεσης (LowID)"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "Καλή ποιότητα σύνδεσης (HighID)"
 
@@ -1046,33 +1046,33 @@ msgstr "Επιβεβαιώθηκε - OK"
 msgid "Not Available"
 msgstr "Δεν υπάρχει"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "Ο χρήστης %s (%u) ζήτησε τη λίστα με τα κοινόχρηστα αρχεία -> Έγινε δεκτό"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "Ο χρήστης %s (%u) ζήτησε τη λίστα με τα κοινόχρηστα αρχεία -> Απορρίφθηκε"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "Ο χρήστης %s (%u) ζήτησε τη λίστα με τους κοινόχρηστους καταλόγους -> Έγινε "
 "δεκτό"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "Ο χρήστης %s (%u) ζήτησε τη λίστα με τους κοινόχρηστους καταλόγους -> "
 "Απορρίφθηκε"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1080,7 +1080,7 @@ msgstr ""
 "Ο χρήστης %s (%u) ζήτησε λίστα κοινόχρηστων αρχεία του κατάλογου %s -> Έγινε "
 "δεκτό"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1088,33 +1088,33 @@ msgstr ""
 "Ο χρήστης %s (%u) ζήτησε λίστα κοινόχρηστων αρχείων του κατάλογου %s -> "
 "Απορρίφθηκε"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Ο χρήστης %s (%u) μοιράζεται τον κατάλογο %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Ο χρήστης %s (%u) έστειλε κοινόχρηστους καταλόγους χωρίς να ζητηθούν."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Ο χρήσης %s (%u) έστειλε λίστα κοινόχρηστων αρχείων για κατάλογο %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 "Ο χρήστης %s (%u) τελείωσε την αποστολή της λίστας κοινόχρηστων αρχείων"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Ο χρήστης %s (%u) έστειλε αχρείαστη λίστα κοινόχρηστων αρχείων"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1130,7 +1130,7 @@ msgstr "Όνομα Χρήστη"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Όνομα αρχείου"
 
@@ -1171,33 +1171,33 @@ msgstr "Αυτόματη [Κανονική]"
 msgid "Auto [Hi]"
 msgstr "Αυτόματη [Υψηλή]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Πολύ χαμηλή"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Χαμηλή"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Κανονική"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Υψηλή"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Πολύ υψηλή"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Επίσημη έκδοση"
 
@@ -1214,12 +1214,12 @@ msgid "Queue Full"
 msgstr "Ουρά γεμάτη"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Εν αναμονή"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Κατεβαίνει"
 
@@ -1279,7 +1279,7 @@ msgstr "Τοπικός διακομιστής"
 msgid "Remote Server"
 msgstr "Απομακρυσμένος διακομιστής"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1305,7 +1305,7 @@ msgid "Search Result"
 msgstr "Αποτέλεσμα Αναζήτησης"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Ολοκληρώθηκαν"
 
@@ -1346,11 +1346,11 @@ msgid "Part"
 msgstr "Μέρος"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Μέγεθος"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Μεταφέρθηκαν"
 
@@ -1363,17 +1363,17 @@ msgid "Progress"
 msgstr "Πρόοδος"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Αρ. πηγών"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Προτεραιότητα"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Κατάσταση"
@@ -1398,7 +1398,7 @@ msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετ
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε τα συγκεκριμένα αρχεία;"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1408,7 +1408,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Αυτόματη"
 
@@ -1460,11 +1460,11 @@ msgstr "Εμφάνιση όλων των σχολίων"
 msgid "Copy magnet URI to clipboard"
 msgstr "Αντιγραφή μαγνητικής URI στο πρόχειρο"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Αντιγραφή του συνδέσμου eD2k στο πρόχειρο"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Αντιγραφή των συμβουλών στην πρόχειρη μνήμη"
 
@@ -1480,24 +1480,24 @@ msgstr "Ανάθεση σε κατηγορία"
 msgid "&Open the file"
 msgstr "&Άνοιγμα αρχείου"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Δώστε νέο όνομα γι αυτό το αρχείο:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Μετονομασία αρχείου"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Κατεβασμένα (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1506,11 +1506,11 @@ msgstr ""
 "θέστε το προτιμητέο πρόγραμμα βίντεο στις ρυθμίσεις (ο mplayer είναι "
 "προεπιλεγμένος)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Προεπισκόπηση αρχείου"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1623,30 +1623,30 @@ msgstr "Οι εξωτερικές συνδέσεις απενεργοποιήθ
 msgid "External connections disabled in config file"
 msgstr "Οι εξωτερικές συνδέσεις απενεργοποιήθηκαν στο αρχείο ρυθμίσεων"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Νέα εξωτερική σύνδεση έγινε δεκτή"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ΣΦΑΛΜΑ: δεν μπόρεσα να αποδεχτώ νέα εξωτερική σύνδεση"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Οι εξωτερικές συνδέσεις απενεργοποιήθηκαν λόγω καινού κωδικού στις "
 "προτιμήσεις!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Συνδεόμενος πελάτης: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Άγνωστη έκδοση"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1654,7 +1654,7 @@ msgstr ""
 "Λανθασμένη ταυτότητα έκδοσης EC, ίσως υπάρχει δυαδική ασυμβατότητα. "
 "Χρησιμοποιήστε πυρήνα και απομακρυσμένο μέρος από το ίδιο στιγμιότυπο."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1663,178 +1663,178 @@ msgstr ""
 "Δεν μπορείτε να συνδεθείτε σε μια επίσημη έκδοση από μια αναπτυσσόμενη (SVN) "
 "έκδοση! *ουφ* αποφευχθεί πιθανό κρέμασμα"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Άκυρη έκδοση πρωτοκόλλου."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Λείπει η ετικέτα με την έκδοση του πρωτοκόλλου."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "Η πιστοποίηση απέτυχε."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "Η πιστοποίηση απέτυχε."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "Άκυρη αίτηση, πρέπει πρώτα να πιστοποιηθήτε."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Η πρόσβαση επικυρώθηκε."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Διήθηση μηνυμάτων από άγνωστους πελάτες"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Απόπειρα μη εξουσιοδοτημένης πρόσβασης. Η σύνδεση έκλεισε."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Η απομακρυσμένη εντολή ημιτελούς αρχείου απέτυχε: Ο κατακερματισμός αρχείου "
 "δεν βρέθηκε: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Ο κατακερματισμός αρχείου δεν βρέθηκε: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "Όπα! Σφάλμα επεξεργασίας OpCode!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Ο διακομιστής δεν προστέθηκε"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "Ο διακομιστής δεν βρέθηκε: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "χρειάζεται να οριστεί ο διακομιστής που να διαγραφεί"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "Το eD2k είναι απενεργοποιημένο στις ρυθμίσεις."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Αναζήτηση δια εξέλιξη. Επανάκτηση αποτελεσμάτων σε λίγο!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr ""
 "Η αναζήτηση από τον ιστό από απομακρυσμένο περιβάλλον δεν έχει κανένα νόημα."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Δεν υπάρχουν σημεία για γράφημα."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Ο πελάτης σας δεν έχει ρυθμιστεί με τόση λεπτομέρεια"
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Εξωτερική σύνδεση: ζητήθηκε κλείσιμο"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Ήδη η λειτουργία είναι σε φάση διακοπής"
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Εξωτερική Σύνδεση: προστίθεται ο σύνδεσμος '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Άκυρος σύνδεσμο ή ήδη στην λίστα."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Το αρχείο δεν βρέθηκε."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Άκυρο όνομα αρχείου."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Αποτυχία μετονομασίας αρχείου."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Το Kad έχει απενεργοποιηθεί στις προτιμήσεις."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Ήδη συνδεδεμένο στο eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Συνδέεται στο eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Ήδη συνδεδεμένο στο Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Διαδικασία σύνδεσης στο Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Όλα τα δίκτυα είναι απενεργοποιημένα."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Αποσυνδεδεμένο από το eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Αποσυνδεδεμένο από το Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Εξωτερική σύνδεση: λήφθηκε άκυρος opcode: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Εσφαλμένος κωδικός (λάθος έκδοση πρωτοκόλλου;)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Άγνωστη επέκταση  '%s' για την εντολή '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Άγνωστη εντολή '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1842,7 +1842,7 @@ msgstr ""
 "\n"
 "Αυτή η εντολή δεν μπορεί να έχει όρισμα.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1850,7 +1850,7 @@ msgstr ""
 "\n"
 "Αυτή η εντολή πρέπει να έχει όρισμα.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1859,7 +1859,7 @@ msgstr ""
 "Αυτή η εντολή είναι ημιτελής, πρέπει να χρησιμοποιήσετε μία από τις παρακάτω "
 "επεκτάσεις.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1867,11 +1867,11 @@ msgstr ""
 "\n"
 "Διαθέσιμες επεκτάσεις:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Διαθέσιμες εντολές:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1883,17 +1883,17 @@ msgstr ""
 "Γράψτε '%s <command>' για να πάρετε λεπτομερείς πληροφορίες πάνω στην "
 "<εντολή>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Κλείσιμο της εφαρμογής."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Εμφάνιση βοήθειας."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1901,7 +1901,7 @@ msgstr ""
 "Για βοήθεια πάνω σε μία εντολή, γράψτε 'help <εντολή>'.\n"
 "Για την πλήρη λίστα εντολών γράψτε 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1912,48 +1912,48 @@ msgstr ""
 "Χρησιμοποιήστε '%s' για την λίστα εντολών\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Συντακτικό λάθος!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Σφάλμα κατά την επεξεργασία της εντολής - δεν έπρεπε να συμβεί ποτέ! "
 "Παρακαλείστε να αναφέρετε σφάλμα προγράμματος\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Αυτή η εντολή δεν πρέπει να έχει παραμέτρους."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Αυτή η εντολή πρέπει να έχει παράμετρο."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Άκυρο όρισμα."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Αυτή είναι ημιτελής εντολή."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Για περισσότερη βοήθεια, γράψτε '%s'.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Αυτό είναι %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Αυτό είναι %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1961,7 +1961,7 @@ msgstr ""
 "\n"
 " Δημιουργία πελάτη...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1970,7 +1970,7 @@ msgstr ""
 "\n"
 "Όλα μια χαρά, έξοδος %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1983,49 +1983,49 @@ msgstr ""
 "είτε στην γραμμή εντολών είτε προσδιορίζοντας κάποιο όταν ζητηθεί.\n"
 "Έξοδος...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Δείξε αυτό το αρχείο βοήθειας."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr ""
 "Υπολογιστής όπου το aMule τρέχει (προεπιλεγμένος: ο τοπικός υπολογιστής)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Η Θύρα του aMule για Εξωτερική σύνδεση. (προεπιλεγμένη: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Κωδικός εξωτερικής σύνδεσης"
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Διάβασε το αρχείο διευθετήσεων"
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Μην στέλνεις μηνύματα στην stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Να είσαι αναλυτικός - δείξε και να μηνύματα αποσφαλμάτωσης"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Θέσε τις τοπικές ρυθμίσεις"
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Εγγραφή των παραμέτρων της γραμμής εντολών σε αρχείο."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 "Δημιουργεί ένα αρχείο παραμέτρων βασισμένο στο αρχείο παραμέτρων του aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Τύπωσε την έκδοση του προγράμματος."
 
@@ -2038,8 +2038,8 @@ msgstr "Λεπτομέρειες αρχείου"
 msgid "%.1f%% done"
 msgstr "%.2f%% ολοκληρώθηκαν"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2056,7 +2056,7 @@ msgstr "Αποτυχία γραψίματος στο αρχείο της λίσ
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Φίλοι"
 
@@ -2187,32 +2187,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Έχει κατεβεί"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Επανασύνδεση στον διακομιστή"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2244,7 +2244,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Αποτυχία κατεβάσματος της λίστας διακομιστών από το %s"
@@ -2291,7 +2291,7 @@ msgstr[1] "%u παραμορφωμένες γραμμές απορρίφθηκα
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2308,67 +2308,67 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Κόμβοι (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Άκυρη διεύθυνση ip για εκκινητήρα"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Άκυρη θύρα για εκκινητήρα"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Παρακαλώ συμπληρώστε όλα τα απαιτούμενα πεδία"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr ""
 "Είστε σίγουροι ότι θέλετε να κατεβάσετε ένα καινούριο αρχείο nodes.dat;\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Κάτι τέτοιο θα αφαιρέσει του τρέχοντες κόμβους και θα ξαναξεκινήσει την "
 "σύνδεση Kademlia"
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Συνέχιση;"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: O κωδικός αναζήτησης είναι πολύ μικρός"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: Ο κωδικός αναζήτησης υπάρχει ήδη στη λίστα αναζητήσεων: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Ανάγνωση %u επαφής Kad"
 msgstr[1] "Ανάγνωση %u επαφών Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
@@ -2377,39 +2377,39 @@ msgstr[0] ""
 msgstr[1] ""
 "Μόνο %d γνωριμίες Kad είναι διαθέσιμες. το αρχείο nodes.dat δεν γράφτηκε"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Γράψιμο %d επαφής Kad"
 msgstr[1] "Γράψιμο %d επαφών Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Όνομα αρχείου"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Μέγεθος αρχείου"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Λόγος μοιράσματος"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Ανέβηκε"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Ζητήθηκε:"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Έγινε δεκτό"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Ολοκλήρωση πηγών"
 
@@ -2437,73 +2437,78 @@ msgstr "Άγνωστη έκδοση"
 msgid "Unable to get error description for error %d"
 msgstr "Κατάλογος για τα εισερχόμενα"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Κατακερματισμός"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Ολοκληρώνεται"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Ολοκληρωμένο"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Σταματημένο"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Εσφαλμένο"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Εν αναμονή"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Πρέπει να προσδιορίσετε ένα μη κενό κωδικό."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Άκυρο κωδικό, δεν είναι κατακερματισμός τύπου MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Αποτυχία σύνδεσης"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Η εξωτερική σύνδεση απέτυχε. Κενή ανταπόκριση."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Εξωτερική Σύνδεση: Κακή ανταπόκριση από τον διακομιστή. Η σύνδεση "
 "τερματίστηκε."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Επιτυχία! Έγινε σύνδεση με το aMule"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Επιτυχία! Έγινε σύνδεση"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Εξωτερική Σύνδεση: Η πρόσβαση απορρίφθηκε επειδή"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Εξωτερική σύνδεση: Η πρόσβαση απορρίφθηκε"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Η αυτόματη ανανέωση ξεκίνησε"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2512,16 +2517,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ΣΦΑΛΜΑ: Δεν μπορώ να ακούσω την θύρα TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ΣΦΑΛΜΑ:"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ:"
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Κλείσιμο"
 
@@ -2529,8 +2534,8 @@ msgstr "Κλείσιμο"
 msgid "Cut"
 msgstr "Αποκοπή"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Αντιγραφή"
 
@@ -2539,7 +2544,7 @@ msgid "Paste"
 msgstr "Επικόλληση"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Καθαρισμός"
 
@@ -2549,7 +2554,7 @@ msgstr "Επιλογή όλων"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2626,7 +2631,7 @@ msgid "ServerIP: "
 msgstr "Διεύθυνση διακομιστή:"
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Δεν είναι συνδεδεμένο"
 
@@ -2661,7 +2666,7 @@ msgstr "Συνδεδεμένη Υπογραφή: Ενεργοποιημένη"
 msgid "Online Signature: Disabled"
 msgstr "Συνδεδεμένη Υπογραφή: Απενεργοποιημένη"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Χρόνος λειτουργίας: %s"
@@ -2702,7 +2707,7 @@ msgstr "Κρύψιμο aMule"
 msgid "Show aMule"
 msgstr "Εμφάνιση aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Έξοδος"
 
@@ -2789,7 +2794,7 @@ msgstr "Αναζήτηση"
 msgid "Name:"
 msgstr "Όνομα:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Τύπος"
 
@@ -2817,38 +2822,38 @@ msgstr "Διήθηση"
 msgid "File Type"
 msgstr "Τύπος αρχείου"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Οτιδήποτε"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Αρχεία"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Ήχος"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Είδωλα CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Φωτογραφίες"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Προγράμματα"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Κείμενα"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Βίντεο"
 
@@ -2869,11 +2874,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2901,7 +2906,7 @@ msgstr "Αντιστροφή αποτελεσμάτων"
 msgid "Hide Known Files"
 msgstr "Απόκρυψη γνωστών τύπων"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Εκκίνηση"
 
@@ -2961,7 +2966,7 @@ msgstr "Πλήρες Όνομα :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "Δεν υπάρχει"
 
@@ -2985,7 +2990,7 @@ msgstr "Κατάσταση ημιτελούς αρχείου:"
 msgid "Last seen complete :"
 msgstr "Τελευταία φορά που εμφανίστηκε ολόκληρο :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Μεταφορά"
 
@@ -3074,27 +3079,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Ποιότητα αρχείου"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Μη αποτιμημένο"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Άκυρο / Φθαρμένο / Πλαστό"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Φτωχή"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Ανεκτή"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Καλή"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Εξαιρετική"
 
@@ -3141,7 +3146,7 @@ msgid "Userhash :"
 msgstr "Τεμάχιο χρήστη :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Προσθήκη"
 
@@ -3376,9 +3381,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Επιλογή"
 
@@ -3471,7 +3476,7 @@ msgstr "Μέγιστος αριθμός παράλληλων συνδέσεων:
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3591,7 +3596,7 @@ msgstr "Γράψτε εδώ των ελάχιστο επιθυμητό χώρο
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Αποθήκευση 10 πηγών σε σπάνια αρχεία (<20 πηγές)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Ανεβασμένα"
 
@@ -3835,7 +3840,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Ενεργοποίηση της προώθησης της θύρας UPnP στην θύρα EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Κωδικός"
 
@@ -3919,8 +3924,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Επιλογή χρώματος για τη συγκεκριμένη κατηγορία (τρέχουσα επιλογή) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Καθαρισμός"
 
@@ -4332,88 +4337,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Ενεργοποίηση λεπτομερούς καταγραφής για έλεγχο σφαλμάτων"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Άνοιγμα αρχείου"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Κατηγορίες μηνυμάτων:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Αναμονή..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Προσθήκη εισακτέων"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Επαναπροσπάθεια των επιλεγμένων"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Αφαίρεση των επιλεγμένων"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Τύποι συμβάντων"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Ενεργά ανεβάσματα :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Κρύψιμο των κοινόχρηστων αρχείων "
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Επιλογή φίλτρου εμφάνισης"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Ενεργά ανεβάσματα"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Δείξε τους πελάτες"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Επαναφόρτωση λίστας"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Επαναφόρτωση των κοινόχρηστων αρχείων"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Αποστολή"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Αποστολή του προσδιορισμένου μηνύματος."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Κλείσιμο της συνομιλίας."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Σύνδεση σε κάθε διακομιστή ή/και Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Κοινόχρηστα αρχεία"
 
@@ -4422,138 +4432,138 @@ msgstr "Κοινόχρηστα αρχεία"
 msgid "Disabled [%s]"
 msgstr "Απενεργοποιημένο [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/δευτερόλεπτο"
 msgstr[1] "bytes/δευτερόλεπτο"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "δευτερόλεπτα"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "λεπτά"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "ώρες"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Μέρες"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "όλα"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "όλα τα άλλα"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Ημιτελές"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Σταματημένο"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Βίντεο"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Αρχείο"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Κείμενο "
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Ενεργό"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Εισαγωγή %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Ανάγνωση του προσωρινού καταλόγου"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 "Ανάκτηση στοιχειωδών πληροφοριών από το αρχείο πληροφοριών κατεβάσματος"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Δημιουργία αρχείου προορισμού"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Φόρτωση δεδομένων από το παλιό αρχείο κατεβάσματος (%u από %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 "Αποθήκευση του τεμαχίου δεδομένων σε ένα καινούριο μοναδικό αρχείο "
 "κατεβάσματος (%u από %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Διαδικασία ανάκτησης πηγαίων πληροφοριών αρχείου κατεβασμάτων"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Προσθήκη κατεβάσματος και αποθήκευση του καινούριου ημιτελούς αρχείου"
 
@@ -4569,12 +4579,12 @@ msgstr "Κατάσταση"
 msgid "Filehash"
 msgstr "Αρχείο κατακερματισμού"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Δίσκος: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4582,13 +4592,13 @@ msgstr ""
 "Παρακαλώ διαλέξτε έναν κατάλογο για αναζήτηση προσωρινών κατεβασμάτων! (θα "
 "συμπεριληφθούν και οι υποκατάλογοι)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Θέλετε να σβηστούν τα πηγαία αρχεία των επιτυχών εισαγόμενων κατεβασμάτων;"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Αφαίρεση πηγών;"
 
@@ -4710,7 +4720,7 @@ msgstr ""
 "Σφάλμα κατά την ανάγνωση του αρχείου σπόρου του ημιτελούς αρχείου (%s - %s): "
 "%s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4725,39 +4735,39 @@ msgstr[1] ""
 "Βρέθηκε φθαρμένο τμήμα (%d) στα %d μέρη αρχείου %s -  FileResultHash |%s| "
 "FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Βρέθηκε ολοκληρωμένο μέρος (%i) στο %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Τελείωσε ο επανακατακερματισμός του %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Απρόσμενο σφάλμα κατά την ολοκλήρωση του %s. Το αρχεί έπαψε"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Ολοκλήρωση του κατεβάσματος: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Σβήσιμο αρχείου: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Δεν είναι δυνατός ο κατακερματισμός του κατεβασμένου τμήματος "
 "- του σύνολο κατακερματισμού για το '%s' είναι ημιτελές"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4767,235 +4777,235 @@ msgstr ""
 "σύνολο κατακερματισμού για το '%s' είναι ημιτελές. Αυτό δεν πρέπει να "
 "ξανασυμβεί ποτέ"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Μη αρκετός χώρος στο δίσκο! Παύση αρχείου: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Το κατεβασμένο τμήμα υπ. αρ. %i είναι φθαρμένο στο αρχείο: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Ανακτήθηκε φθαρμένο τεμάχιο %i για το %s -> Σωσμένα bytes: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Κατανέμει"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Ανεπαρκής χώρος στο δίσκο"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Έχει κατεβεί"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ΣΦΑΛΜΑ: Αποτυχία ανοίγματος του ημιτελούς αρχείου '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Εργοστασιακές ρυθμίσεις"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Αλβανικά"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Αραβικά"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Εσθονικά"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Βάσκικα"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Βουλγάρικα"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Καταλανικά"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Κινέζικα (απλοποιημένα)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Κινέζικα (Παραδοσιακά)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Κροατικά"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Τσέχικα"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Δανέζικα"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Ολλανδικά"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Αγγλικά (Ην. Βασίλειο)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Εσθονικά"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Φιλανδικά"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Γαλλικά"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Γαλικιακά"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Γερμανικά"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Ελληνικά"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Εβραϊκά"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Ουγγαρέζικα"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Ιταλικά"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Ιταλικά (Ελβετίας)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Γιαπωνέζικα"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Κορεάτικα"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Λιθουανικά"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Νορβηγικά"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Πολωνέζικα"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Πορτογαλλικά"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Πορτογαλλικά (Βραζιλίας)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Ρωσικά"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Σλοβένικα"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Ισπανικά"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Σουηδικά"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Τούρκικα"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Γλώσσα"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Δεν είναι διαθέσιμο"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "Δεν υπάρχουν επιλογές"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "Η θύρα TCP δεν μπορεί να είναι μεγαλύτερη από 65532, διότι η θύρα UDP του "
 "διακομιστή είναι TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Θα χρησιμοποιηθεί η στάνταρ θύρα (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Σύνδεση"
 
@@ -5003,7 +5013,7 @@ msgstr "Σύνδεση"
 msgid "Directories"
 msgstr "Κατάλογοι Αρχείων"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Διακομιστές"
 
@@ -5054,7 +5064,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5069,26 +5079,26 @@ msgstr ""
 "Το aMule θα τρέχει μια χαρά χωρίς την αλλαγή καμιάς από αυτές\n"
 " τις ρυθμίσεις."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Ο τύπος του διακομιστή μεσολάβησης στον οποίον συνδέεστε"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5096,30 +5106,35 @@ msgstr ""
 "το aMule πρέπει να επανεκινηθεί για να ενεργοποιηθούν αυτές οι αλλαγές: \n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- Άλλαξε η θύρα TCP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- Άλλαξε η θύρα UDP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Η εξωτερική σύνδεση έκλεισε."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Νέα εξωτερική σύνδεση έγινε δεκτή"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Η εξωτερική σύνδεση έκλεισε."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Συσκότιση πρωτοκόλλου"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5128,7 +5143,7 @@ msgstr ""
 "Θα απενεργοποιηθεί η επιλογή: 'Αυτόματη ενημέρωση λίστας διακομιστών κατά "
 "την εκκίνηση' "
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5138,20 +5153,20 @@ msgstr ""
 "Οι εξωτερικές συνδέσεις δεν μπορούν να ενεργοποιηθούν μέχρι να προσδιοριστεί "
 "ένας έγκυρος κωδικός."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Η γλώσσα άλλαξε.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Ο προσωρινός κατάλογος άλλαξε.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "Όλα τα δίκτυα είναι απενεργοποιημένα."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5160,7 +5175,7 @@ msgstr ""
 "Δεν θα μπορέσετε να συνδεθείτε μέχρι να ενεργοποιήσετε τουλάχιστον ένα από "
 "αυτα."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5168,7 +5183,7 @@ msgstr ""
 "Το δίκτυο Kad δεν θα ξεκινήσει αν η θύρα UDP είναι απενεργοποιημένη.\n"
 "Ενεργοποιήστε τη θύρα UDP ή απενεργοποιήστε το Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5178,7 +5193,7 @@ msgstr ""
 "Τώρα πρέπει να επανεκινήσετε το aMule.\n"
 "Διαφορετικά μην διαμαρτυρηθείτε αν συμβεί κάτι κακό.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5189,41 +5204,41 @@ msgstr ""
 "met.\n"
 "Πατήστε το διπλανό κουμπί \"List\" για να βάλετε ένα URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Προσωρινά αρχεία"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Εισερχόμενα αρχεία"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Συνδεδεμένες υπογραφές"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Επιλέξτε κατάλογο για %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Αναζήτηση του προγράμματος για βίντεο"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Επιλογή περιηγητή"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Εκτελέσιμο%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Επεξεργασία λίστας διακομιστών"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5231,77 +5246,77 @@ msgstr ""
 "Βάλτε εδώ τη διεύθυνση για το κατέβασμα των αρχείων server.met. \n"
 "Μία διεύθυνση σε κάθε γραμμή"
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Καθυστέρηση ενημέρωσης: %d δευτερόλεπτο"
 msgstr[1] "Καθυστέρηση ενημέρωσης: %d δευτερόλεπτα"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Χρόνος για μέσο γράφημα: %d λεπτό"
 msgstr[1] "Χρόνος για μέσο γράφημα: %d λεπτά"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Κλίμακα γραφήματος συνδέσεων: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Μέγεθος χώρου ενδιάμεσης αποθήκευση αρχείου: %d byte"
 msgstr[1] "Μέγεθος χώρου ενδιάμεσης αποθήκευση αρχείου: %d byteς"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Μέγεθος λίστας αναμονής αποστελλόμενων: %d πελάτης"
 msgstr[1] "Μέγεθος λίστας αναμονής ανεβασμάτων: %d πελάτες"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Διάστημα ανανέωσης της σύνδεσης σε διακομιστή: %d λεπτό"
 msgstr[1] "Διάστημα ανανέωσης της σύνδεσης σε διακομιστή: %d λεπτά"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Διάστημα ανανέωσης της σύνδεσης σε διακομιστή: Απενεργοποιημένο"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "απενεργοποίηση"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Εκτέλεση εντολής κατά το γεγονός `%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Ενεργοποίηση εκτέλεσης εντολών στον πυρήνα"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Εντολή πυρήνα:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Ενεργοποίηση εκτέλεσης εντολών στο γραφικό περιβάλλον"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Εντολή γραφικού περιβάλλοντος:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Οι παρακάτω μεταβλητές θα αντικατασταθούν:"
 
@@ -5332,7 +5347,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Άγνωστο σφάλμα όταν έγινε απόπειρα αναζήτησης στο Kad:"
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "Τιμή ταυτότητας αρχείου"
 
@@ -5451,7 +5466,7 @@ msgstr "ΣΦΑΛΜΑ: Η υποδοχή κρίθηκε άκυρη κατά το
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Η απόπειρα σύνδεσης στο %s (%s:%i) ξεπέρασε το χρονικό όριο."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5481,53 +5496,53 @@ msgstr ""
 "Το αρχείο server.met είναι φθαρμένο. βρέθηκε λανθασμένη ετικέτα έκδοσης: 0x%"
 "x, μεγεθος %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "βρέθηκε %i διακομιστής στο server.met"
 msgstr[1] "βρέθηκαν %i διακομιστές στο server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "Προστέθηκε %d διακομιστής"
 msgstr[1] "Προστέθηκαν %d διακομιστές"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Σφάλμα εισόδου εξόδου κατά την ανάγνωση του αρχείου known.met: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Ο διακομιστής δεν προστέθηκε: [%s:%d] δεν προσδιορίζει έγκυρη θύρα."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 "Ο διακομιστής δεν προστέθηκε: Το IP του [%s:%d] είναι φιλτραρισμένο ή άκυρο."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Ο διακομιστής δεν προστέθηκε: Διακομιστής με το ίδιο IP:Θύρα [%s:%d] βρέθηκε "
 "στη λίστα."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Ο διακομιστής προστέθηκε: Διακομιστής στην [%s:%d] με όνομα '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5535,25 +5550,25 @@ msgstr ""
 "Είστε συνδεδεμένος στον διακομιστή που προσπαθείτε να σβήσετε. Παρακαλείστε "
 "να αποσυνδεθείτε πρώτα"
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Αποτυχημένη προσπάθεια να ανοίξει '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Αποτυχία σβησίματος του server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Άκυρη URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Ολοκληρώθηκε το κατέβασμα της λίστας διακομιστών από το %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5562,28 +5577,28 @@ msgstr ""
 "επικολλήστε μια έγκυρη λίστα σε αυτό το αρχείο έτσι ώστε να ενημερωθεί "
 "αυτόματα η λίστα διακομιστών σας"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Εκκίνηση του κατεβάσματος της λίστας διακομιστών από το %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Προσδιορίστηκε άκυρη διεύθυνση για την αυτόματη ενημέρωση των "
 "διακομιστών: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Άκυρη URL αυτόματο κατέβασμα του server.met στο αρχείο addresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Αποτυχία κατεβάσματος της λίστας διακομιστών από το %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5620,7 +5635,7 @@ msgid "Static"
 msgstr "Στατικό"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Έκδοση"
 
@@ -5646,8 +5661,8 @@ msgstr "Είστε σίγουρος/η ότι θέλετε να διαγράψε
 msgid "Servers (%i)"
 msgstr "Διακομιστές (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Διακομιστής"
 
@@ -5703,88 +5718,88 @@ msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετ
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε τους επιλεγμένους διακομιστές;"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ΣΦΑΛΜΑ: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Ο νέος πελάτης είναι %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: σας έχει αποδοθεί Low-ID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tΠιθανότατα αυτό είναι γιατί είστε πίσω από τοίχο προστασίας ή δρομολογητή."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 "\tΓια περισσότερες πληροφορίες, παρακαλώ αναφερθείτε στο http://wiki.amule."
 "org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Ελήφθησαν άγνωστες πληροφορίες διακομιστή! - υπερβολικά σύντομες"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Λήφθηκε %d καινούριος διακομιστής"
 msgstr[1] "Λήφθηκαν %d καινούριοι διακομιστές"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Το αποθήκευση τις λίστας διακομιστών ολοκληρώθηκε."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Ο διακομιστής απέρριψε την τελευταία εντολή"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Κάλπικο πακέτο ελήφθει από τον διακομιστή: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 "Αδιαχείριστο σφάλμα κατά την επεξεργασία πακέτου από τον διακομιστή: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Δεν μπορεί να δημιουργηθεί νήμα επίλυσης DNS για τη σύνδεση στο %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr ""
 "Η διεύθυνση IP %s (%s) του διακομιστή είναι φιλτραρισμένη. Δεν γίνεται "
 "σύνδεση."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "χρήση πρωτοκόλλου συσκότισης."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Σύνδεση σε %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5976,89 +5991,94 @@ msgstr "Όνομα αρχείου"
 msgid "Shares File List"
 msgstr "Κοινόχρηστα αρχεία"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Αιτήσεις"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Δεκτές αιτήσεις"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Όγκος δεδομένων που μεταφέρθηκαν"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Λόγος συμμετοχής"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Κεκτημένα τμήματα"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Ολοκληρωμένες πηγές"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Μονοπάτι καταλόγου"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Προσθήκη σχολίου/Αξιολόγησης"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Επεξεργασία σχολίου/Αξιολόγησης"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Μετονομασία"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Προσθήκη των αρχείων της συλλογής στην λίστα με τα μεταφερόμενα"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Αντιγραφή μαγνήτη &URI στην πρόχειρη μνήμη"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Αντιγραφή του συνδέσμου eD2k στο πρόχειρο (&Πηγή)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 "Αντιγραφή του συνδέσμου eD2k στο πρόχειρο (Πηγή) (& Με κρυπτογραφικές "
 "επιλογές)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Αντιγραφή του συνδέσμου eD2k στο πρόχειρο (&Όνομα υπολογιστή)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Αντιγραφή του συνδέσμου eD2k στο πρόχειρο (Όνομα υπολογιστή) (&Με "
 "κρυπτογραφικές επιλογές)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Αντιγραφή του συνδέσμου eD2k στο πρόχειρο) (Πληροφορίες AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Αντιγραφή του συνδέσμου eD2k στο πρόχειρο) (Πληροφορίες AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr ""
 "Χρειάζεται Υψηλή Προτεραιότητα για τη δημιουργία έγκυρου πηγαίου συνδέσμου"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Κοινόχρηστα αρχεία (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Μέρος αρχείου]"
 
@@ -6067,235 +6087,235 @@ msgstr "[Μέρος αρχείου]"
 msgid "Remote File Name"
 msgstr "Όνομα αρχείου"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Ανεβασμένα Δεδομένα (Συνεδρία (Συνολικά)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Συνολική επιβάρυνση (Πακέτα): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Επιβάρυνση αίτησης αρχείου (Πακέτα): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Επιβάρυνση ανταλλαγής πηγών (Πακέτα): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Επιβάρυνση διακομιστή (Πακέτα): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Επιβάρυνση Kad (Πακέτα): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Κρυπτογραφική επιβάρυνση (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Ενεργά ανεβάσματα: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Ανεβάσματα σε αναμονή: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Συνολικός αρ. επιτυχών συνεδριών ανεβάσματος: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Συνολικός αριθμός αποτυχημένων συνεδριών ανεβάσματος: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Μέσος χρόνος ανεβάσματος: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Κατέβηκαν δεδομένα (Συνεδρία (Συνολικά)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Βρέθηκαν πηγές: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Ενεργά κατεβάσματα (κομμάτια): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Συνεδρία λόγος Άνω:Κάτω (Σύνολο): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Μέσος ρυθμός κατεβάσματος (Συνεδρία): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Μέσος ρυθμός ανεβάσματος (Συνεδρία): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Μέγιστος ρυθμός κατεβάσματος (Συνεδρία): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Ελάχιστος ρυθμός κατεβάσματος (Συνεδρία): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Επανασυνδέσεις: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Χρόνος μετά από την πρώτη μεταφορά: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Σύνδεση με τον διακομιστή από: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Ενεργές συνδέσεις (εκτίμηση): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Έφτασε στο μέγιστο αρ. συνδέσεων: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Μέσες συνδέσεις (εκτίμηση): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Κορυφαίες συνδέσεις (εκτίμηση): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Πελάτες"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Άγνωστο μέγεθος"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Φιλτραρισμένοι"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "Απαγορευμένοι"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Συνολικοί: %i Γνωστοί: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Εργαζόμενοι διακομιστές: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Αποτυχημένοι διακομιστές: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Σύνολο: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Διαγραμμένοι διακομιστές: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Φιλτραρισμένοι διακομιστές: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Χρήστες στους εργαζόμενους διακομιστές: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Αρχεία στους εργαζόμενους διακομιστές: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Σύνολο χρηστών: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Σύνολο αρχείων: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Κατοχή διακομιστών: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Αριθμός κοινόχρηστων αρχείων: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Συνολικό μέγεθος κοινόχρηστων αρχείων: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Μέσο μέγεθος αρχείου: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Λειτουργικό σύστημα"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Δεν ελήφθει"
 
@@ -6357,7 +6377,7 @@ msgstr ""
 "Δεν είναι έγκυρος κατακερματισμός (το μήκος πρέπει να είναι ακριβώς 32 "
 "χαρακτήρες)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Η αίτηση απέτυχε για άγνωστο λόγο"
 
@@ -6411,13 +6431,13 @@ msgstr "Συνδεδεμένο στο %s %s %s"
 msgid "Now connecting"
 msgstr "Συνδέεται τώρα"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "βρίσκεται πίσω από τοίχο προστασίας"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "Εντάξει"
 
@@ -6880,23 +6900,23 @@ msgstr ""
 "Αυτή είναι μη συνιστώμενη εντολή και μπορεί να αφαιρεθεί στο μέλλον. \n"
 "Χρησιμοποιήστε '%s' καλύτερα.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Διακομιστής κειμένου του aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 "Μετατροπή των παλιών συνόλων κατακερματισμού AICH στο '%s' σε 64b στο '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "Ειδοποίηση: Το όνομα αρχείου '%s' είναι άκυρο και μετονομάστηκε σε '%s' "
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6972,7 +6992,7 @@ msgstr "Αποτυχία εκτέλεσης εντολής `%s' στο συμβ
 msgid "Download completed"
 msgstr "Το κατέβασμα ολοκληρώθηκε"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Η πλήρης διαδρομή του αρχείου"
 
@@ -6992,67 +7012,67 @@ msgstr "Το μέγεθος του αρχείου σε byte."
 msgid "Cumulative download activity time."
 msgstr "Συνολική διάρκεια κατεβάσματος"
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Ξεκίνησε καινούρια περίοδος συνομιλίας"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Αποστολέας μηνύματος"
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Δεν υπάρχει χώρος"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Κατάτμηση δίσκου"
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Σφάλμα κατά την ολοκλήρωση"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Επεξεργασία του αρχείου υπ' αριθμόν %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Ζητήσατε μερικά τεμάχια (Χρησιμοποιείται μόνο για αρχεία > 9.5ΜΒ)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Ανύπαρκτο αρχείο !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, ο δημιουργός συνδέσμων eD2k του aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Καλώς ήρθατε (Καλώς σας βρήκαμε)"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Παράμετρος εισόδου"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Αρχείο προς κατακερματισμό"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Προσθήκη προαιρετικών URL για αυτό το αρχείο"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 "Εδώ εισάγετε το αρχείο για το οποίο θέλετε να υπολογίσετε τον σύνδεσμο eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -7061,15 +7081,15 @@ msgstr ""
 "Προσθέστε / στο τέλος για να ενημερώσετε τον δημιουργό συνδέσμων να "
 "επισυνάψει το τρέχων όνομα αρχείου"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Αφαίρεση"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Δημιουργία συνδέσμου με μερικό κατακερματισμό"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -7077,82 +7097,82 @@ msgstr ""
 "Βοηθήστε στην διανομή καινούριων και σπάνιων αρχείων  ταχύτερα, με αντίτιμο "
 "ένα μεγαλύτερο μέγεθος συνδέσμου"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Κατακερματισμός αρχείου MD4"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Αρχείο κατακερματισμού eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "σύνδεσμος eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Αποθήκευση"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Αντιγραφή στο πρόχειρο"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Άνοιγμα αρχείου για τον υπολογισμού του συνδέσμου eD2k του"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Αντιγραφή υπολογισμένου συνδέσμου eD2k στο πρόχειρο"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Αποθήκευση υπολογισμένου συνδέσμου eD2k σε αρχείο"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Σχετικά με τον aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 "Επιλέξτε το αρχείο για το οποίο θέλετε να υπολογίσετε τον σύνδεσμο eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Δεν υπάρχει τίποτα για να αντιγραφεί σε αυτή τη φάση !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Επιλέξτε το αρχείο για τον υπολογισμένο σύνδεσμο eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Αδύνατο το άνοιγμα"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Παρακαλώ δώστε ένα μη κενό όνομα αρχείου"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Δεν υπάρχει τίποτα για να σωθεί σε αυτή τη φάση !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7172,159 +7192,163 @@ msgstr ""
 "\n"
 "Διανέμεται υπό την GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Κατακερματίζεται..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Ακυρώθηκε!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Ολοκληρώθηκε σε %.2f δεύτερα"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Έχετε ήδη προσθέσει αυτήν την URL !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Παρακαλώ εισάγετε μια μη κενή URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Αποτυχία ανοίγματος του %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i Ημέρες %i Ώρες %i λεπτά %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, Στατιστικές σύνδεσης aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Μέγιστη ταχύτητα κατεβάσματος στη διάρκεια που το wxCas τρέχει"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 "Απόλυτα ελάχιστη ταχύτητα κατεβάσματος στις προηγούμενες εκτελέσεις του wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Σύστημα"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Διακοπή της αυτόματης ανανέωσης"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Αποθήκευση της απεικόνισης στατιστικών σύνδεσης"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Εκτύπωση της απεικόνισης στατιστικών σύνδεσης"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Ρυθμίσεις προτιμήσεων"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Σχετικά με το wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Εκκίνηση της αυτόματης ανανέωσης"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Η αυτόματη ανανέωση σταμάτησε"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Η αυτόματη ανανέωση ξεκίνησε"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Αποθήκευση της στατιστικής απεικόνισης"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Στατιστικές σύνδεσης του aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7332,11 +7356,11 @@ msgstr ""
 "Υπήρξε πρόβλημα κατά την εκτύπωση.\n"
 "Μήπως ο τρέχων εκτυπωτής δεν έχει ρυθμιστεί σωστά;"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Εκτύπωση"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7354,328 +7378,328 @@ msgstr ""
 "\n"
 "Διανέμετε υπό την GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Να πάρει! Το amule δεν τρέχει.."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "Το aMule τρέχει"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "Το aMule τρέχει, αλλά δεν είναι συνδεδεμένο"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "Το aMule συνδέεται..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Στο καλό! Η κατάσταση του aMule είναι άγνωστη..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr "τρέχει επί"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr "έχει διακοπεί !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr "δεν είναι συνδεδεμένο !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr "συνδέεται.."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr "κάνει κάτι περίεργο, τσεκάρει το!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr "είναι συνδεδεμένο με"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "κλειστό"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr "είναι ανοιχτό"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr "με"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Συνολική μεταφόρτωση:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Ανέβασμα: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Περίοδος κατεβάσματος:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Μεταφόρτωση"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Ανέβασμα: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Κοινοκτημοσύνη"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr "Αρχείο(α), Πελάτες στην αναμονή: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Χρόνος"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " ανοιχτό"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Μέσο φορτίο συστήματος (1-5-15 λεπτά): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Χρόνος λειτουργικότητας συστήματος:"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Ο κατάλογος που περιέχει το αρχείο amulesig.dat."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Γράψτε εδώ το όνομα του καταλόγου που περιέχει το αρχείο amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Περίοδος ανανέωσης σε δευτερόλεπτα"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Παραγωγή στατιστικής απεικόνισης σε κάθε συμβάν ανανέωσης"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 "Γράψτε εδώ τον κατάλογο όπου θέλετε να παραχθεί η στατιστική απεικόνιση"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Περιοδικό ανέβασμα του ειδώλου στατιστικών στον διακομιστή FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "Διεύθυνση FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Διαδρομή FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Εδώ εισάγετε τη διεύθυνση του διακομιστή FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Εισάγετε εδώ τον κατάλογο που θα μπει το είδωλο στατιστικών στον διακομιστή "
 "FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Χρήστης"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Γράψτε εδώ το όνομα χρήστη για να συνδεθείτε στον διακομιστή FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Γράψτε εδώ τον κωδικό χρήστη για να συνδεθείτε στον διακομιστή FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Περίοδος ενημέρωσης του FTP σε λεπτά"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Τεκμηρίωση"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Κατάλογος που περιέχει το αρχείο υπογραφής"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Κατάλογος όπου να δημιουργηθεί η στατιστική απεικόνιση"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Φορτώνει προτύπου <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Θύρα HTTP του διακομιστή ιστού"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Χρήση της προώθησης της θύρας UPnP στη θύρα διακομιστή ιστού"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Θύρα UPnP "
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr " Χρήση συμπίεσης τύπου gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Κωδικός πλήρους πρόσβασης για τον διακομιστή ιστού"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Κωδικός επισκέπτη για τον διακομιστή ιστού"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Να επιτρέπεται η πρόσβαση σε επισκέπτες"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Να απαγορεύεται η πρόσβαση σε επισκέπτες"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 "Φόρτωση/Αποθήκευση των ρυθμίσεων του διακομιστή ιστού από/προς απομακρυσμένο "
 "aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Η διαδρομή στα αρχεία ρυθμίσεων του aMule. ΜΗΝ ΑΛΛΑΖΕΤΕ ΑΠΕΥΘΕΙΑΣ"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Απενεργοποίηση του διερμηνέα PHP (απαρχαιωμένο)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Μεταγλώττιση των σελίδων PHP σε κάθε αίτηση"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Ο διακομιστής δικτύου του aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "η σύνδεση πελάτη ιστού έγινε αποδεκτή\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "ΣΦΑΛΜΑ: δεν μπορεί να γίνει δεκτή η σύνδεση πελάτη ιστού\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Η αίτηση απέτυχε με το εξής σφάλμα: %s"
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Το αρχείο δεικτών δεν βρέθηκε (ψάχνω ψάχνω και τίποτα δεν βρίσκω)"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Η περίοδος εργασίας έληξε - αίτηση επανασύνδεσης\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Η Περίοδος εργασίας είναι εντάξει, συνδεδεμένο\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Η περίοδος εργασίας είναι εντάξει, μη συνδεδεμένο\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Δεν έχει ξεκινήσει περίοδος εργασίας - θα ζητήσει σύνδεση\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Δημιουργία περιόδου εργασίας - ζήτηση σύνδεσης\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "H αίτηση διεκπεραιώνεται [αρχικό]:"
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Έλεγχος κωδικού\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Ο κωδικός κατακερματισμού είναι άκυρος\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Ο κωδικός είναι εντάξει\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Κακός κωδικός\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Δεν βάλατε κανέναν κωδικό. Δεν επιτρέπεται κενός κωδικός.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Ζητήθηκε αποσύνδεση\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Επεξεργασία αιτήματος [ανακατεύθυνση]"
 
diff --git a/po/en_GB.po b/po/en_GB.po
index 8722c05..5c7d33e 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule CVS\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-07-08 02:22+0100\n"
 "Last-Translator: Dévai Tamás <devait at vnet.hu>\n"
 "Language-Team: aMule Team <http://www.amule.org>\n"
@@ -35,108 +35,108 @@ msgstr ""
 msgid "Failed to open ED2KLinks file."
 msgstr ""
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr ""
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr ""
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr ""
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
 msgstr ""
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr ""
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr ""
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
 msgstr ""
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr ""
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
 msgstr ""
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr ""
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr ""
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -146,11 +146,11 @@ msgid ""
 "Check your network to make sure the port is open for output and input."
 msgstr ""
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr ""
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr ""
 
@@ -195,143 +195,143 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr ""
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr ""
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr ""
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr ""
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr ""
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr ""
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr ""
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr ""
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr ""
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr ""
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr ""
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr ""
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr ""
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr ""
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr ""
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr ""
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr ""
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr ""
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr ""
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr ""
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr ""
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr ""
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -339,7 +339,7 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -348,19 +348,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr ""
@@ -437,9 +437,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr ""
 
@@ -447,7 +447,7 @@ msgstr ""
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr ""
 
@@ -481,7 +481,7 @@ msgstr ""
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr ""
 
@@ -498,7 +498,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr ""
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr ""
 
@@ -539,7 +539,7 @@ msgstr ""
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -554,80 +554,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr ""
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr ""
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr ""
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr ""
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr ""
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr ""
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr ""
 
@@ -647,7 +647,7 @@ msgstr ""
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr ""
 
@@ -659,106 +659,106 @@ msgstr ""
 msgid "Connect to remote amule"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr ""
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr ""
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr ""
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr ""
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr ""
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr ""
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr ""
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -766,7 +766,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -774,7 +774,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr ""
 
@@ -916,12 +916,12 @@ msgid "Client Details"
 msgstr ""
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr ""
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr ""
 
@@ -973,64 +973,64 @@ msgstr ""
 msgid "Not Available"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1045,7 +1045,7 @@ msgstr ""
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr ""
 
@@ -1086,33 +1086,33 @@ msgstr ""
 msgid "Auto [Hi]"
 msgstr ""
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr ""
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr ""
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr ""
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr ""
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr ""
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr ""
 
@@ -1129,12 +1129,12 @@ msgid "Queue Full"
 msgstr ""
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr ""
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr ""
 
@@ -1194,7 +1194,7 @@ msgstr ""
 msgid "Remote Server"
 msgstr ""
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr ""
@@ -1220,7 +1220,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr ""
 
@@ -1261,11 +1261,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr ""
 
@@ -1278,17 +1278,17 @@ msgid "Progress"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr ""
@@ -1313,7 +1313,7 @@ msgstr ""
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1321,7 +1321,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr ""
 
@@ -1373,11 +1373,11 @@ msgstr ""
 msgid "Copy magnet URI to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr ""
 
@@ -1393,34 +1393,34 @@ msgstr ""
 msgid "&Open the file"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1524,233 +1524,233 @@ msgstr ""
 msgid "External connections disabled in config file"
 msgstr ""
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr ""
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr ""
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
 msgstr ""
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr ""
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr ""
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr ""
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr ""
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr ""
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr ""
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr ""
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr ""
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr ""
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr ""
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr ""
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr ""
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr ""
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr ""
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr ""
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr ""
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr ""
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr ""
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr ""
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr ""
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr ""
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr ""
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr ""
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1758,23 +1758,23 @@ msgid ""
 "Type '%s <command>' to get detailed info on <command>.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr ""
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr ""
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1782,59 +1782,59 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr ""
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr ""
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr ""
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr ""
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr ""
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
 "Ok, exiting %s...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1843,47 +1843,47 @@ msgid ""
 "Exiting...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr ""
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr ""
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr ""
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr ""
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr ""
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr ""
 
@@ -1896,8 +1896,8 @@ msgstr ""
 msgid "%.1f%% done"
 msgstr ""
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr ""
@@ -1914,7 +1914,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr ""
 
@@ -2040,31 +2040,31 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr ""
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2096,7 +2096,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr ""
@@ -2139,7 +2139,7 @@ msgstr[1] ""
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2154,103 +2154,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr ""
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr ""
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr ""
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr ""
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2276,69 +2276,74 @@ msgstr ""
 msgid "Unable to get error description for error %d"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr ""
 
+#: src/LibSocketAsio.cpp:1259
+#, c-format
+msgid "Asio thread %d started"
+msgstr ""
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2347,16 +2352,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr ""
 
@@ -2364,8 +2369,8 @@ msgstr ""
 msgid "Cut"
 msgstr ""
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr ""
 
@@ -2374,7 +2379,7 @@ msgid "Paste"
 msgstr ""
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr ""
 
@@ -2384,7 +2389,7 @@ msgstr ""
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr ""
@@ -2461,7 +2466,7 @@ msgid "ServerIP: "
 msgstr ""
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr ""
 
@@ -2496,7 +2501,7 @@ msgstr ""
 msgid "Online Signature: Disabled"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr ""
@@ -2537,7 +2542,7 @@ msgstr ""
 msgid "Show aMule"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr ""
 
@@ -2612,7 +2617,7 @@ msgstr ""
 msgid "Name:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr ""
 
@@ -2640,38 +2645,38 @@ msgstr ""
 msgid "File Type"
 msgstr ""
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr ""
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr ""
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr ""
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr ""
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr ""
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr ""
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr ""
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr ""
 
@@ -2692,11 +2697,11 @@ msgid "KB"
 msgstr ""
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr ""
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr ""
 
@@ -2724,7 +2729,7 @@ msgstr ""
 msgid "Hide Known Files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr ""
 
@@ -2781,7 +2786,7 @@ msgstr ""
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr ""
 
@@ -2805,7 +2810,7 @@ msgstr ""
 msgid "Last seen complete :"
 msgstr ""
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr ""
 
@@ -2891,27 +2896,27 @@ msgstr ""
 msgid "File Quality"
 msgstr ""
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr ""
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr ""
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr ""
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr ""
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr ""
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr ""
 
@@ -2956,7 +2961,7 @@ msgid "Userhash :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr ""
 
@@ -3183,9 +3188,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr ""
 
@@ -3271,7 +3276,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr ""
 
@@ -3389,7 +3394,7 @@ msgstr ""
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr ""
 
@@ -3628,7 +3633,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr ""
 
@@ -3710,8 +3715,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr ""
 
@@ -4085,82 +4090,86 @@ msgid "Enable Verbose Debug-Logging."
 msgstr ""
 
 #: src/muuli_wdr.cpp:3169
+msgid "Only to Logfile"
+msgstr ""
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr ""
 
@@ -4169,135 +4178,135 @@ msgstr ""
 msgid "Disabled [%s]"
 msgstr ""
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr ""
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr ""
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr ""
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr ""
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr ""
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr ""
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr ""
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr ""
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr ""
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr ""
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr ""
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr ""
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr ""
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr ""
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr ""
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr ""
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr ""
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr ""
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr ""
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr ""
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr ""
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr ""
 
@@ -4313,23 +4322,23 @@ msgstr ""
 msgid "Filehash"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr ""
 
@@ -4439,7 +4448,7 @@ msgstr ""
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4450,267 +4459,267 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr ""
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr ""
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr ""
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr ""
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr ""
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr ""
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr ""
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr ""
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr ""
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr ""
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr ""
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr ""
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr ""
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr ""
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr ""
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr ""
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr ""
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr ""
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr ""
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr ""
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr ""
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr ""
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr ""
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr ""
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr ""
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr ""
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr ""
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr ""
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr ""
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr ""
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr ""
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr ""
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr ""
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr ""
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr ""
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr ""
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr ""
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr ""
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr ""
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr ""
 
@@ -4718,7 +4727,7 @@ msgstr ""
 msgid "Directories"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr ""
 
@@ -4769,7 +4778,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4779,211 +4788,215 @@ msgid ""
 "these settings."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+msgid "- Protocol obfuscation support changed.\n"
+msgstr ""
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
 "If you do not restart now, don't complain if anything bad happens.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
 "Click on the button \"List\" by this checkbox to enter an URL."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr ""
 
@@ -5011,7 +5024,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr ""
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr ""
 
@@ -5120,7 +5133,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr ""
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5147,98 +5160,98 @@ msgstr ""
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr ""
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr ""
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr ""
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr ""
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr ""
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr ""
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5273,7 +5286,7 @@ msgid "Static"
 msgstr ""
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr ""
 
@@ -5297,8 +5310,8 @@ msgstr ""
 msgid "Servers (%i)"
 msgstr ""
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr ""
 
@@ -5354,82 +5367,82 @@ msgstr ""
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr ""
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr ""
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr ""
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr ""
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr ""
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr ""
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr ""
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr ""
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5607,84 +5620,88 @@ msgstr ""
 msgid "Shares File List"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr ""
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr ""
 
@@ -5692,235 +5709,235 @@ msgstr ""
 msgid "Remote File Name"
 msgstr ""
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr ""
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr ""
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr ""
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr ""
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr ""
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr ""
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr ""
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr ""
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr ""
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr ""
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr ""
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr ""
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr ""
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr ""
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr ""
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr ""
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr ""
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr ""
 
@@ -5976,7 +5993,7 @@ msgstr ""
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr ""
 
@@ -6030,13 +6047,13 @@ msgstr ""
 msgid "Now connecting"
 msgstr ""
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr ""
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr ""
 
@@ -6421,21 +6438,21 @@ msgid ""
 "Use '%s' instead.\n"
 msgstr ""
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr ""
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6505,7 +6522,7 @@ msgstr ""
 msgid "Download completed"
 msgstr ""
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr ""
 
@@ -6525,160 +6542,160 @@ msgstr ""
 msgid "Cumulative download activity time."
 msgstr ""
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr ""
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr ""
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr ""
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr ""
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6690,168 +6707,172 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr ""
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -6862,322 +6883,322 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr ""
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr ""
diff --git a/po/es.po b/po/es.po
index 7c75947..2774895 100644
--- a/po/es.po
+++ b/po/es.po
@@ -13,9 +13,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: es\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
-"PO-Revision-Date: 2011-04-28 17:03+0100\n"
-"Last-Translator: errico2 <errico2 at terra.es>\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
+"PO-Revision-Date: 2012-01-06 13:53+0100\n"
+"Last-Translator: tHatdUde\n"
 "Language-Team: Spanish <mad.soft at gmail.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -46,7 +46,7 @@ msgstr "¡El hash de usuario especificado no es válido!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Imposible abrir el archivo de enlaces ED2K."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -54,37 +54,37 @@ msgstr ""
 "ADVERTENCIA: No puedes añadirte a ti mismo como una fuente para un enlace "
 "eD2k teniendo ID baja."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Ahora, saliendo de aplicación principal..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Cerrando instancia amuleweb con pid '%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Matando instancia amulweb con pid '%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Error"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Terminando núcleo."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Cierre de aMule completado."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Resultados de depuración de memoria en la salida de aMule: "
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -92,16 +92,16 @@ msgstr ""
 "\n"
 "Configuración EC"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Contraseña fijada y conexiones externas habilitadas."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "ALERTA"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -109,13 +109,13 @@ msgstr ""
 "Tu idioma ha sido cambiado al de por defecto de tu sistema, debido a un "
 "cambio de configuración. Lo siento."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -123,43 +123,43 @@ msgstr ""
 "No tienes ningún servidor en la lista de servidores.\n"
 "¿Quieres que aMule descargue una nueva lista ahora?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Descarga lista de servidores"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "servidor web corriendo con pid: %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 "Has solicitado ejecutar el servidor web al inicio pero no se ha podido "
-"correr el binario de amuleweb. Por favor instala el paquete que contanga el "
+"iniciar el binario de amuleweb. Por favor instala el paquete que contenga el "
 "servidor web de aMule o compila aMule usando --enable-webserver y ejecuta "
 "make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ERROR"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Imposible direccionar los puertos a la dirección especificada: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Puerto %u no está disponible. Tendrás IDBaja\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -175,11 +175,11 @@ msgstr ""
 "Comprueba tu red y asegúrate de que el puerto está abierto para entrada y "
 "salida."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Error al crear el archivo de FirmaOnline"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Error al crear el archivo de FirmaOnline aMule"
 
@@ -198,15 +198,15 @@ msgstr "Es la primera vez que inicias aMule %s"
 
 #: src/amule.cpp:1042
 msgid "This version is a testing version, updated daily, and\n"
-msgstr "Esto es una versión de prueba, actualízate diariamente, y \n"
+msgstr "Esto es una versión de prueba, actualizada diariamente, y \n"
 
 #: src/amule.cpp:1043
 msgid "we give no warranty it won't break anything, burn your house,\n"
-msgstr "no damos garantía si rompiera algo, queme tu casa,\n"
+msgstr "no damos garantía si rompiera algo, quemara tu casa,\n"
 
 #: src/amule.cpp:1044
 msgid "or kill your dog. But it *should* be safe to use anyway.\n"
-msgstr "o mata a tu perro. Pero *debería* ser seguro de todas formas. \n"
+msgstr "o matara a tu perro. Pero *debería* ser seguro de todas formas. \n"
 
 #: src/amule.cpp:1049
 msgid "More information, support and new releases can found at our homepage,\n"
@@ -229,137 +229,137 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 "El directorio que has especificado de Firma Online no es válido\n"
-"La Firma Online ha sido deshabilitado hasta que lo arregles en opciones."
+"La Firma Online ha sido deshabilitada hasta que lo arregles en opciones."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Nombre servidor notificado"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "La reserva del espacio en disco para el archivo '%s' falló: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ERROR: no puedo abrir el archivo de registro"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "ALERTA: el archivo de registro está vacío. Algo está mal"
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Registro ha sido borrado"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Mensaje del servidor: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 "Se ha descartado la descarga de %s, porque el archivo solicitado no es mas "
 "nuevo."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Error al descargar la lista de nodos."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Error al abrir el archivo de comprobación de versión descargado"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Archivo de comprobación de versión corrupto"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
-msgstr "¡Estás usando una versión anticuada de aMule!"
+msgstr "¡Estás usando una versión obsoleta de aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Tu versión de aMule es %i.%i.%i y la última versión es %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "La última versión puede siempre ser encontrada en http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "ALERTA: Tu versión de aMuled está obsoleta: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Tu copia de aMule está actualizada."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Error al descargar el archivo de comprobación de versión"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Usuarios: %s | Archivos: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Usuarios: E: %s K: %s | Archivos: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Sin redes seleccionadas"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "con IDBaja"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "con IDAlta"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Conectado a %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Conectando a %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Desconectado de eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad iniciado."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad detenido."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Conectado a Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Conectado a Kad (tras cortafuegos)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Desconectado de Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -367,11 +367,11 @@ msgstr ""
 "Red Kad no puede ser usada si el puerto UDP está deshabilitado en opciones, "
 "no iniciando."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Red Kad deshabilitada en opciones, no conectará."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -379,11 +379,11 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 "ERROR: el daemon de aMule no se puede usar cuando están desactivadas las "
-"conexiones externas. Para activarlas, use o bien un aMule normal, inicie "
-"amuled con la opción --ec-config, o bien, establezca "
+"conexiones externas. Para activarlas, usa o bien un aMule normal, inicia "
+"amuled con la opción --ec-config, o bien, establece "
 "\"AcceptExternalConnections\" a 1, en el archivo ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -391,26 +391,26 @@ msgid ""
 "appropriate value. Execute amuled with the flag --ec-config to set the "
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
-"ERROR: Contraseña válida es requerida para usar conexiones externas, y el "
+"ERROR: Se requiere una contraseña para usar conexiones externas, y el "
 "demonio aMule no se puede usar sin conexiones externas. Para iniciar el "
 "demonio aMule, debes especificar en el campo \"ECPassword\" del archivo ~/."
 "aMule/amule.conf con el valor apropiado. Ejecuta amuled con el parámetro --"
 "ec-config para especificar la contraseña. Mas información puede ser "
 "encontrada en http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: EnInicio - Iniciando reloj"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
-msgstr "amuled: derivando al fondo - nos vemos"
+msgstr "amuled: derivando a segundo plano - nos vemos"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "No se puede crear el archivo Pid"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ERROR: %s"
@@ -495,17 +495,17 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Mensaje"
 
 #: src/amuleDlg.cpp:550
 msgid "aMule dialog destroyed"
-msgstr "Dialogo aMule destruido"
+msgstr "Diálogo aMule destruido"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Conectando"
 
@@ -539,7 +539,7 @@ msgstr "Kad: Apagada"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Cancelar"
 
@@ -553,10 +553,10 @@ msgstr "Desconectar"
 
 #: src/amuleDlg.cpp:781
 msgid "Disconnect from the currently connected networks"
-msgstr "Desconectarse de las redes conectas"
+msgstr "Desconectarse de las redes conectadas"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Conectar"
 
@@ -597,7 +597,7 @@ msgstr "Confirmación de salida"
 msgid "Launch Command: "
 msgstr "Lanzar comando:"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- defecto -"
 
@@ -609,83 +609,83 @@ msgstr "El directorio de tema '%s' no existe"
 #: src/amuleDlg.cpp:1237
 #, c-format
 msgid "WARNING: Unable to open skin file '%s' for read"
-msgstr "ATENCIÓN: No se puede abrir el archivo de pieles '%s' para lectura"
+msgstr "ATENCIÓN: No se puede abrir el archivo de tema '%s' para lectura"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Redes"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Ventana de redes"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Buscar"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Ventana de búsquedas"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Descargas"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Descargas"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Compartidos"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Ventana de archivos compartidos"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Mensajes"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Ventana de mensajes"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Estadísticas"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Ventana de gráficos de estadísticas"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Opciones"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Ventana de opciones"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importar"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "La herramienta para importar archivos part"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Acerca de"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Acerca de/Ayuda"
 
@@ -695,7 +695,7 @@ msgstr "Red eD2k"
 
 #: src/amuleDlg.cpp:1484
 msgid "Kad network"
-msgstr "red Kad"
+msgstr "Red Kad"
 
 #: src/amuleDlg.cpp:1489
 msgid "No network"
@@ -705,7 +705,7 @@ msgstr "Sin red"
 msgid "aMule remote control"
 msgstr "Control remoto de aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -717,108 +717,108 @@ msgstr "Error Fatal: Imposible crear el reloj del núcleo"
 msgid "Connect to remote amule"
 msgstr "Conectar a amule remoto"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Error Fatal: Imposible crear el  Poll Timer"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
-msgstr "Yendo a evento bucle..."
+msgstr "Entrando en bucle de eventos..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Conectando..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Conexión fallida"
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Manejador de evento EC en Interfaz Remota"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Bajando"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Error de conexión. Imposible conectar a %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Conexión cerrada - Probablemente aMule se habrá cerrado."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Listo"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Todos"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Imposible crear el directorio '%s' para la categoría '%s', manteniendo el "
 "directorio '%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Desconocido"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Error al obtener la lista de compartidos del usuario '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Buscando amigo con conexión idbaja"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Versión Falsa eMule %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Falso eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Falso eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (basado en eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Alias:  %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Solicitado: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -830,7 +830,7 @@ msgstr[1] ""
 "Estadísticas de archivo para esta sesión: %d Aceptadas de %d peticiones, %s "
 "transferidas\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -842,7 +842,7 @@ msgstr[1] ""
 "Estadísticas de archivo para todas las sesiones: %d Aceptadas de %d "
 "peticiones, %s transferidas\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Solicitado un archivo desconocido"
 
@@ -994,12 +994,12 @@ msgid "Client Details"
 msgstr "Detalles del cliente"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "ID Baja"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "ID Alta"
 
@@ -1051,29 +1051,29 @@ msgstr "Verificado - OK"
 msgid "Not Available"
 msgstr "No disponible"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Usuario %s (%u) solicitó tu lista de archivos compartidos -> Aceptada"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Usuario %s (%u) solicitó tu lista de archivos compartidos -> Denegada"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "Usuario %s (%u) ha solicitado tu lista de directorios compartidos -> Aceptada"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "Usuario %s (%u) ha solicitado tu lista de directorios compartidos -> Denegada"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1081,7 +1081,7 @@ msgstr ""
 "Usuario %s (%u) solicitó tu lista de archivos compartidos del directorio %s -"
 "> aceptada"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1089,33 +1089,33 @@ msgstr ""
 "Usuario %s (%u) solicitó tu lista de archivos compartidos del directorio %s -"
 "> denegada"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Usuario %s (%u) comparte el directorio '%s'"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Usuario %s (%u) enviado directorios compartidos no solicitados."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "Usuario %s (%u) envió la lista de archivos compartidos del directorio %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Usuario %s (%u) finalizó el envío de la lista de archivos compartidos"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Usuario %s (%u) enviada la lista de archivos compartidos no deseada"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1132,7 +1132,7 @@ msgstr "Nombre de usuario"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Nombre de archivo"
 
@@ -1175,33 +1175,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Al]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Muy baja"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Baja"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Alta"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Muy alta"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Lanzamiento"
 
@@ -1218,12 +1218,12 @@ msgid "Queue Full"
 msgstr "Cola Llena"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "En Cola"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Descargando"
 
@@ -1283,7 +1283,7 @@ msgstr "Servidor local"
 msgid "Remote Server"
 msgstr "Servidor remoto"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1302,14 +1302,14 @@ msgstr "Enlace"
 
 #: src/DataToText.cpp:134
 msgid "Source Seeds"
-msgstr "Semillas fuentes"
+msgstr "Semillas fuente"
 
 #: src/DataToText.cpp:135
 msgid "Search Result"
 msgstr "Resultado de la búsqueda"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Completado"
 
@@ -1327,11 +1327,11 @@ msgstr "ERROR: Partmet no encontrado"
 
 #: src/DataToText.cpp:149
 msgid "ERROR: IO error!"
-msgstr "ERROR: Error de entrada/salida!"
+msgstr "ERROR: ¡Error de entrada/salida!"
 
 #: src/DataToText.cpp:150
 msgid "ERROR: Failed!"
-msgstr "ERROR: No se ha podido realizar la acción!"
+msgstr "ERROR: ¡No se ha podido realizar la acción!"
 
 #: src/DataToText.cpp:151 src/SearchListCtrl.cpp:1011
 msgid "Queued"
@@ -1350,11 +1350,11 @@ msgid "Part"
 msgstr "Parte"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Tamaño"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Transferido"
 
@@ -1367,17 +1367,17 @@ msgid "Progress"
 msgstr "Progreso"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Fuentes"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioridad"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Estado"
@@ -1396,13 +1396,13 @@ msgstr "Última recepción"
 
 #: src/DownloadListCtrl.cpp:411
 msgid "Are you sure that you wish to delete the selected file?"
-msgstr "¿Estás seguro que deseas borrar este archivo?"
+msgstr "¿Estás seguro de que deseas borrar este archivo?"
 
 #: src/DownloadListCtrl.cpp:413
 msgid "Are you sure that you wish to delete the selected files?"
-msgstr "¿Estás seguro que deseas borrar estos archivos?"
+msgstr "¿Estás seguro de que deseas borrar estos archivos?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1412,7 +1412,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1464,11 +1464,11 @@ msgstr "Mostrar todos los comentarios"
 msgid "Copy magnet URI to clipboard"
 msgstr "Copiar la URL magnética al portapapeles"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Copiar el en&lace eD2k al portapapeles."
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Copiar respuesta al portapapeles"
 
@@ -1484,24 +1484,24 @@ msgstr "Asignar a categoría"
 msgid "&Open the file"
 msgstr "&Abrir el archivo"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Introduce el nuevo nombre para este archivo:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Renombrar archivo"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Descargas (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1509,11 +1509,11 @@ msgstr ""
 "Para prevenir la aparición de esta advertencia en cada vista previa,\n"
 "establece tu reproductor de vídeos en las preferencias (mplayer por defecto)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Previsualizar"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1531,7 +1531,7 @@ msgstr "Todos los archivos part guardados."
 #: src/DownloadQueue.cpp:113
 #, c-format
 msgid "Loading temp files from %s."
-msgstr "Cargando archivo temporales desde %s."
+msgstr "Cargando archivos temporales desde %s."
 
 #: src/DownloadQueue.cpp:132
 #, c-format
@@ -1625,29 +1625,29 @@ msgstr "¡Conexiones externas deshabilitadas debido a contraseña en blanco!"
 msgid "External connections disabled in config file"
 msgstr "Conexiones externas deshabilitadas en el archivo de configuración"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nueva conexión externa, aceptada"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ERROR: no se ha podido aceptar una nueva conexión externa"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "¡Conexión externa rechazada debido a contraseña en blanco en las opciones!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Conectando con cliente: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Versión desconocida"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1655,7 +1655,7 @@ msgstr ""
 "EC Incorrecto en la ID de versión, debe haber una incompatibilidad. Usa "
 "núcleo y remoto de la misma versión."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1663,174 +1663,174 @@ msgstr ""
 "¡No puedes conectar a una versión final desde una versión SVN cualquiera! "
 "*ufff* posible error evitado"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Versión de protocolo no válida."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Marcador de versión de protocolo inexistente."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
-"Autentificación fallída: hash inválido especificado como contraseña EC."
+"Autentificación fallida: hash inválido especificado como contraseña EC."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Autentificación fallida: contraseña incorrecta."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Autentificación fallida: falta contraseña."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Solicitud no válida, deberías autentificarte primero."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Acceso concedido."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Mensaje \"%s\" de error enviado al cliente."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Intento de acceso no autorizado desde %s. Conexión cerrada."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Error en comando remoto del archivo Part: Hash de archivo no encontrado: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Hash de archivo no encontrado: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "¡OOPS! ¡Error procesando OpCode!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Servidor no añadido"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "servidor no encontrado: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "necesitas definir un servidor para borrarlo"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k está deshabilitado en las preferencias."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
-msgstr "Búsqueda en proceso. Resultados obtenidos en breve!"
+msgstr "Búsqueda en proceso. ¡Resultados obtenidos en breve!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
-msgstr "Búsqueda web desde un interfaz remota no tiene sentido."
+msgstr "Búsqueda web desde una interfaz remota no tiene sentido."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Sin puntos para el gráfico."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Tu cliente no está configurado para este nivel de detalle."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Conexión externa: apagado solicitado"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Ya estás cerrando."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Conexión externa: añadiendo enlace '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Enlace no válido o ya está en la lista."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Archivo no encontrado"
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nombre de archivo incorrecto"
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Imposible renombrar archivo."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad está deshabilitado en opciones."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Ya estás conectado a eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Conectado a eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Ya estás conectado a Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Conectando a Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Todas las redes están deshabilitadas."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Desconectado de eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Desconectado de Kad"
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Conexión externa: recibido código de operación inválido: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "opcode no válido (¿versión de protocolo incorrecta?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Extensión desconocida '%s' para el comando '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Comando desconocido '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1838,7 +1838,7 @@ msgstr ""
 "\n"
 "Este comando no tiene un argumento.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1846,7 +1846,7 @@ msgstr ""
 "\n"
 "Este comando debe tener un argumento.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1854,7 +1854,7 @@ msgstr ""
 "\n"
 "Este comando está incompleto, debes usar una de la extensiones....\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1862,11 +1862,11 @@ msgstr ""
 "\n"
 "Extensiones disponibles:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Comandos disponibles:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1877,17 +1877,17 @@ msgstr ""
 "Todos los comandos son sensibles a las mayúsculas.\n"
 "Teclea '%s <comando>' para obtener información detallada del <comando>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Salir de la aplicación."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
-msgstr "Mostrar ayuda"
+msgstr "Mostrar ayuda."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1895,7 +1895,7 @@ msgstr ""
 "Para obtener ayuda de un comando, teclea 'help <comando>'.\n"
 "Para obtener la lista completa de comandos, teclea 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1906,48 +1906,48 @@ msgstr ""
 "Usa '%s' para la lista de comandos\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "¡Error de sintaxis!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Error procesando el comando - ¡nunca debería pasar! Informa del fallo, por "
 "favor\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Este comando no debería tener ningún parámetro"
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Este comando debe tener un parámetro."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argumento no válido."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Esto es un comando incompleto."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Teclea '%s' para obtener mas ayuda.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Esto es %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Esto es %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1955,7 +1955,7 @@ msgstr ""
 "\n"
 "Creando cliente...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1964,7 +1964,7 @@ msgstr ""
 "\n"
 "Ok, saliendo %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1978,49 +1978,49 @@ msgstr ""
 "\n"
 "Saliendo...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Mostrar esta ayuda."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host donde se está ejecutando aMule. (por defecto: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Puerto de conexión externa de aMule. (por defecto: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
-msgstr "Contraseña de conexiones externas"
+msgstr "Contraseña de conexiones externas."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Leer configuración desde el archivo."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "No muestres ninguna salida."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Modo Extendido - muestra también los mensajes de depuración"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Selecciona el idioma del programa."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Escribe opciones de la línea de comando al archivo de configuración."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 "Crear archivo de configuración basado en el archivo de configuración de "
 "aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Imprime versión del programa."
 
@@ -2029,12 +2029,12 @@ msgid "File Details"
 msgstr "Detalles del archivo"
 
 #: src/FileDetailDialog.cpp:113
-#, fuzzy, c-format
+#, c-format
 msgid "%.1f%% done"
-msgstr "%.2f%% terminado."
+msgstr "%.1f%% terminado."
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2042,20 +2042,19 @@ msgstr "%.2f kB/s"
 #: src/FriendList.cpp:122
 msgid "Failed to open friend list file 'emfriends.met' for reading!"
 msgstr ""
-"¡ No se ha podido abrir el archivo de amigos 'emfriends.met' para su "
-"lectura !"
+"¡No se ha podido abrir el archivo de amigos 'emfriends.met' para su lectura!"
 
 #: src/FriendList.cpp:148
 msgid "Failed to open friend list file 'emfriends.met' for writing!"
 msgstr ""
-"¡ No se ha podido abrir el archivo de amigos 'emfriends.met' para su "
-"escritura !"
+"¡No se ha podido abrir el archivo de amigos 'emfriends.met' para su "
+"escritura!"
 
 #: src/FriendList.cpp:248
 msgid "CRITICAL - no client on StartChatSession"
-msgstr "CRITICO - sin cliente en sesión chat de inicio"
+msgstr "CRÍTICO - sin cliente en sesión chat de inicio"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Amigos"
 
@@ -2085,11 +2084,11 @@ msgstr "Establecer puesto reservado a un amigo"
 
 #: src/FriendListCtrl.cpp:169
 msgid "Are you sure that you wish to delete the selected friend?"
-msgstr "¿Estás seguro que deseas borrar al amigo seleccionado?"
+msgstr "¿Estás seguro de que deseas borrar al amigo seleccionado?"
 
 #: src/FriendListCtrl.cpp:171
 msgid "Are you sure that you wish to delete the selected friends?"
-msgstr "¿Estás seguro que deseas borrar a los amigos seleccionados?"
+msgstr "¿Estás seguro de que deseas borrar a los amigos seleccionados?"
 
 #: src/FriendListCtrl.cpp:229 src/GenericClientListCtrl.cpp:530
 msgid ""
@@ -2183,33 +2182,33 @@ msgstr "La URL a descargar no puede estar vacía"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "La URL %s devolvió: %i - Error (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Error crítico guardando el archivo descargado"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "Descargado %d bytes"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Se experaban %d bytes, pero se descargaron %d bytes"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
-"URL inválida para descarga HTTP o redirección HTTP (¿ no habrás olvidado "
-"'http://' ?)"
+"URL inválida para descarga HTTP o redirección HTTP (¿no habrás olvidado "
+"'http://'?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Imposible conectar al servidor de descarga HTTP"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Respuesta incorrecta desde el servidor de descarga HTTP"
 
@@ -2235,13 +2234,13 @@ msgstr "Error al renombrar el archivo %s, abortando actualización."
 #: src/IP2Country.cpp:146 src/IPFilter.cpp:506
 #, c-format
 msgid "Successfully updated %s"
-msgstr "Actualizacion realizada %s"
+msgstr "Actualización realizada %s"
 
 #: src/IP2Country.cpp:148
 msgid "Error updating GeoIP.dat"
 msgstr "Error actualizando GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Error al descargar %s desde %s"
@@ -2270,21 +2269,21 @@ msgstr "Error al cargar ipfilter.dat '%s', imposible abrir el archivo."
 msgid "Loaded %u IP-range from '%s'."
 msgid_plural "Loaded %u IP-ranges from '%s'."
 msgstr[0] "Cargado %u rango IP desde '%s'."
-msgstr[1] "Cargado %u rangos IP desde '%s'."
+msgstr[1] "Cargados %u rangos IP desde '%s'."
 
 #: src/IPFilter.cpp:331
 #, c-format
 msgid "%u malformed line was discarded."
 msgid_plural "%u malformed lines were discarded."
-msgstr[0] "%u línea malformada fue descartada"
-msgstr[1] "%u líneas malformadas fueron descartadas"
+msgstr[0] "%u línea malformada fue descartada."
+msgstr[1] "%u líneas malformadas fueron descartadas."
 
 #: src/IPFilter.cpp:503
 #, c-format
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Error al renombrar el archivo %s, abortando actualización."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "Filtro IP está listo"
 
@@ -2301,46 +2300,46 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nodos (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "IP no válida para conectar"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Puerto no válido para conectar"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Por favor rellena todos los campos requeridos"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
-msgstr "¿Estás seguro que quieres descargar un nuevo nodes.dat?\n"
+msgstr "¿Estás seguro de que quieres descargar un nuevo nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Si lo haces borrarás tus nodos actuales y reiniciarás la conexión Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "¿Continuar?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: palabra de búsqueda demasiado corta"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Palabra clave para búsqueda: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: palabra de búsqueda ya está en la lista de búsqueda: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2348,59 +2347,59 @@ msgstr ""
 "Error al leer el archivo nodes.dat - demasiado antiguo. Esta versión (0) ya "
 "no está soportada."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Leído %u contacto Kad"
 msgstr[1] "Leídos %u contactos Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr "Contactos no encontrados, por favor descarga un archivo nodes.dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Solo %d contacto Kad disponible, nodes.dat no escrito"
 msgstr[1] "Solo %d contactos Kad disponibles, nodes.dat no escrito"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Escrito %d contacto Kad"
 msgstr[1] "Escritos %d contactos Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nombre de archivo"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Tamaño de archivo"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Media compartido"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Subido"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Pedido"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Aceptado"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Fuentes completas"
 
@@ -2413,12 +2412,13 @@ msgstr ""
 #: src/KnownFileList.cpp:107
 msgid "Failed to load entry in known file list, file may be corrupt"
 msgstr ""
-"Error al cargar entrada en lista de conocidos, el archivo debe estar corrupto"
+"Error al cargar entrada en lista de conocidos, el archivo debe de estar "
+"corrupto"
 
 #: src/KnownFileList.cpp:114
 msgid "Invalid entry in known file list, file may be corrupt: "
 msgstr ""
-"Entrada inválida en lista de conocidos, el archivo debe estar corrupto: "
+"Entrada inválida en lista de conocidos, el archivo debe de estar corrupto: "
 
 #: src/libs/common/Format.cpp:307
 #, c-format
@@ -2430,70 +2430,75 @@ msgstr "Error desconocido %d"
 msgid "Unable to get error description for error %d"
 msgstr "Imposible obtener descripción de error para el error %d"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Codificando"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Completando"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Completado"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pausado"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Erróneo"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Esperando"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Debes especificar una contraseña no vacía."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "¡Contraseña incorrecta, no es un código MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Error de conexión"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "La conexión EC ha fallado, Respuesta vacía."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
-"Conexión externa: Respuesta errónea, fallo el manejador. Conexión cerrada."
+"Conexión externa: Respuesta errónea, falló el manejador. Conexión cerrada."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "¡Hecho! Conexión establecida con aMule"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "¡Hecho! Conexión establecida."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Conexión externa: Acceso denegado, razón:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Conexión externa: Falló el manejador."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Descarga HTTP hilo comenzado"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "Socket de escucha: Ok"
@@ -2502,16 +2507,16 @@ msgstr "Socket de escucha: Ok"
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ERROR: No se puede escuchar en el puerto TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ERROR:"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "ADVERTENCIA:"
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Cerrar"
 
@@ -2519,8 +2524,8 @@ msgstr "Cerrar"
 msgid "Cut"
 msgstr "Cortar"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Copiar"
 
@@ -2529,7 +2534,7 @@ msgid "Paste"
 msgstr "Pegar"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Limpiar"
 
@@ -2539,7 +2544,7 @@ msgstr "Seleccionar todo"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2616,7 +2621,7 @@ msgid "ServerIP: "
 msgstr "IP del servidor: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "No conectado"
 
@@ -2651,7 +2656,7 @@ msgstr "Firma Online: Activada"
 msgid "Online Signature: Disabled"
 msgstr "Firma Online: Desactivada"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Tiempo de ejecución: %s"
@@ -2692,7 +2697,7 @@ msgstr "Ocultar aMule"
 msgid "Show aMule"
 msgstr "Mostrar aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Salir"
 
@@ -2716,7 +2721,7 @@ msgid ""
 "Events are displayed here. For a complete list of events, refer to the log "
 "in the Servers-tab."
 msgstr ""
-"Los eventos son mostrados aquí. Para una lista completa de eventos, ves al "
+"Los eventos son mostrados aquí. Para una lista completa de eventos, ve al "
 "registro, de la pestaña de servidores."
 
 #: src/muuli_wdr.cpp:94
@@ -2760,8 +2765,8 @@ msgid ""
 msgstr ""
 "Muestra el estado de conexión y las transferencias activas. Las flechas "
 "rojas significan que estás desconectado, las flechas amarillas significan "
-"que tienes ID-Baja (detrás de cortafuegos) y flechas verdes significan que "
-"tienes ID-Alta (El tipo de conexión óptima)."
+"que tienes ID-Baja (detrás de cortafuegos) y las flechas verdes significan "
+"que tienes ID-Alta (El tipo de conexión óptima)."
 
 #: src/muuli_wdr.cpp:130
 msgid "Not Connected ..."
@@ -2779,7 +2784,7 @@ msgstr "Buscar"
 msgid "Name:"
 msgstr "Nombre: "
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tipo"
 
@@ -2807,38 +2812,38 @@ msgstr "Filtrar"
 msgid "File Type"
 msgstr "Tipo de archivo"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Todos"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archivos"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Imágenes de CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Imágenes"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programas"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Textos"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Vídeos"
 
@@ -2859,11 +2864,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2891,7 +2896,7 @@ msgstr "Invertir Resultado"
 msgid "Hide Known Files"
 msgstr "Ocultar Archivos Conocidos"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Comenzar"
 
@@ -2948,7 +2953,7 @@ msgstr "Nombre Completo :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/D"
 
@@ -2972,7 +2977,7 @@ msgstr "Estado archivo part :"
 msgid "Last seen complete :"
 msgstr "Última comprobación completa :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transferencia"
 
@@ -3063,27 +3068,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Calificación de archivo"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
-msgstr "No evaluada"
+msgstr "Sin evaluar"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Inválido / Corrupto / Falsificación"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Pobre"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Aceptable"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Bueno"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Excelente"
 
@@ -3130,7 +3135,7 @@ msgid "Userhash :"
 msgstr "Hash del usuario :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Añadir"
 
@@ -3277,8 +3282,7 @@ msgstr "http://www.aMule.org - la mula multi-plataforma"
 #: src/muuli_wdr.cpp:1452
 msgid "This is the name that other users will see when connecting to you."
 msgstr ""
-"Este es el nombre que los otros usuarios verán cuando se este conectando a "
-"ti."
+"Este es el nombre que los otros usuarios verán cuando se conecten a ti."
 
 #: src/muuli_wdr.cpp:1460
 msgid "Language: "
@@ -3300,7 +3304,7 @@ msgstr "Comprobar nueva versión al inicio"
 #: src/muuli_wdr.cpp:1472
 msgid "Enabling this will make aMule check for new version at startup"
 msgstr ""
-"Habilitando esto, hará que aMule compruebe si existe una nueva versión al "
+"Habilitando esto, haces que aMule compruebe si existe una nueva versión al "
 "inicio."
 
 #: src/muuli_wdr.cpp:1475
@@ -3321,7 +3325,7 @@ msgstr "Hacer que aMule pregunte antes de salir."
 
 #: src/muuli_wdr.cpp:1484
 msgid "Hide application window when close button is pressed"
-msgstr ""
+msgstr "Ocultar ventana cuando se pulse el botón cerrar"
 
 #: src/muuli_wdr.cpp:1487
 msgid "Enable Tray Icon"
@@ -3340,7 +3344,7 @@ msgid ""
 "Enabling this will make aMule minimize to the System Tray, rather than the "
 "taskbar."
 msgstr ""
-"Activando esto hará que aMule se minimice en la bandeja del sistema, "
+"Activando esto haces que aMule se minimice en la bandeja del sistema, "
 "parecido a la barra de tareas."
 
 #: src/muuli_wdr.cpp:1497
@@ -3360,14 +3364,14 @@ msgid ""
 "Enter your browser name here. Leave this field empty to use the system "
 "default browser."
 msgstr ""
-"Introduce el nombre de tú navegador. Dejaló en blanco si quieres usar el de "
+"Introduce el nombre de tu navegador. Déjalo en blanco si quieres usar el de "
 "por defecto."
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Examinar"
 
@@ -3407,7 +3411,7 @@ msgstr "Puerto TCP estándar "
 
 #: src/muuli_wdr.cpp:1611
 msgid "This is the standard eD2k port and cannot be disabled."
-msgstr "Este es el puerto eD2k estándar y no puede ser deshabilitado"
+msgstr "Este es el puerto eD2k estándar y no puede ser deshabilitado."
 
 #: src/muuli_wdr.cpp:1614
 msgid "UDP port for server requests (TCP+3):"
@@ -3443,8 +3447,8 @@ msgid ""
 "Advanced users only: If you have multiple network interfaces, enter the "
 "address of the interface to which aMule should be bound."
 msgstr ""
-"Solo usuarios avanzados: Si tu tienes múltiples tarjetas de red, introduce "
-"la dirección de la tarjeta, la cual, aMule deberá usar."
+"Solo usuarios avanzados: Si tienes múltiples tarjetas de red, introduce la "
+"dirección de la tarjeta que aMule deberá usar."
 
 #: src/muuli_wdr.cpp:1657
 msgid "Max sources per downloading file:"
@@ -3458,7 +3462,7 @@ msgstr "Max. conexiones simultaneas:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3579,7 +3583,7 @@ msgstr "Introduce el espacio mínimo de disco deseado."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Guardar 10 fuentes en archivos raros (< 20 fuentes)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Subidas"
 
@@ -3725,7 +3729,7 @@ msgstr "Deshabilitar modo en reposo de ordenador"
 
 #: src/muuli_wdr.cpp:2087
 msgid "Skin to use: "
-msgstr "Piel a usar: "
+msgstr "Tema a usar: "
 
 #: src/muuli_wdr.cpp:2099
 msgid "Show \"Fast eD2k Links Handler\" in every window."
@@ -3736,9 +3740,8 @@ msgid "Show extended info on categories tabs"
 msgstr "Mostrar info extendida en las pestañas de las categorías"
 
 #: src/muuli_wdr.cpp:2107
-#, fuzzy
 msgid "Show application version on title"
-msgstr "Mostrar índices de transferencia en el título"
+msgstr "Mostrar versión de la aplicación en el título"
 
 #: src/muuli_wdr.cpp:2110
 msgid "Show transfer rates on title"
@@ -3809,7 +3812,7 @@ msgid ""
 "Enter here a valid ip in the a.b.c.d format for the listening EC interface. "
 "An empty field or 0.0.0.0 will mean any interface."
 msgstr ""
-"Introduce una IP valida de la interfaz que está escuchando. Un campo vacío o "
+"Introduce una IP válida de la interfaz que está escuchando. Un campo vacío o "
 "0.0.0.0 significará cualquier interfaz."
 
 #: src/muuli_wdr.cpp:2198 src/muuli_wdr.cpp:2259
@@ -3818,10 +3821,10 @@ msgstr "Puerto TCP:"
 
 #: src/muuli_wdr.cpp:2206
 msgid "Enable UPnP port forwarding on the EC port"
-msgstr "Habilitar UPnP port forwarding en el puerto EC"
+msgstr "Habilitar redirección de puertos UPnP en el puerto EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Contraseña"
 
@@ -3903,8 +3906,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Selecciona color para esta categoría (seleccionada) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Restablecer"
 
@@ -3915,7 +3918,7 @@ msgstr "Pulsa este botón para limpiar el registro."
 #: src/muuli_wdr.cpp:2528
 msgid "Click on this button to update the servers list from URL ..."
 msgstr ""
-"Click en este botón para actualizar la lista de servidores desde una URL ..."
+"Pulsa este botón para actualizar la lista de servidores desde una URL ..."
 
 #: src/muuli_wdr.cpp:2532
 msgid "Server list"
@@ -3926,8 +3929,8 @@ msgid ""
 "Enter the url to a server.met file here and press the button to the left to "
 "update the list of known servers."
 msgstr ""
-"Introduce la url a un archivo server.met y presiona el botón de la izquierda "
-"para actualizar la lista de servidores conocidos."
+"Introduce la url de un archivo server.met y presiona el botón de la "
+"izquierda para actualizar la lista de servidores conocidos."
 
 #: src/muuli_wdr.cpp:2544
 msgid "Add server manually: Name"
@@ -3982,8 +3985,8 @@ msgid ""
 "Enter the url to a nodes.dat file here and press the button to the left to "
 "update the list of known nodes."
 msgstr ""
-"Introduce aquí la url al archivo nodes.dat y presiona el botón de la "
-"izquierda, para actualizar la lista de nodos conocidos."
+"Introduce aquí la url del archivo nodes.dat y presiona el botón de la "
+"izquierda para actualizar la lista de nodos conocidos."
 
 #: src/muuli_wdr.cpp:2659
 msgid "Nodes stats"
@@ -4038,7 +4041,7 @@ msgid ""
 "This option enabled Protocol Obfuscation, and makes aMule accept obfuscated "
 "connections from other clients."
 msgstr ""
-"Esta opción activa la ofuscación de protocolo, e hace que aMule acepte "
+"Esta opción activa la ofuscación de protocolo y hace que aMule acepte "
 "conexiones ofuscadas de otros clientes."
 
 #: src/muuli_wdr.cpp:2819
@@ -4050,7 +4053,7 @@ msgid ""
 "This option makes aMule use Protocol Obfuscation when connecting other "
 "clients/servers."
 msgstr ""
-"Esta opción hace que aMule use ofuscación de protocolo cuando se conectan "
+"Esta opción hace que aMule use ofuscación de protocolo cuando se conecta a "
 "otros clientes/servidores."
 
 #: src/muuli_wdr.cpp:2824
@@ -4075,12 +4078,12 @@ msgstr "Ninguno"
 
 #: src/muuli_wdr.cpp:2836
 msgid "Who can see my shared files:"
-msgstr "Quien puede ver mis archivos compartidos:"
+msgstr "Quién puede ver mis archivos compartidos:"
 
 #: src/muuli_wdr.cpp:2837
 msgid "Select who can request to view a list of your shared files."
 msgstr ""
-"Selecciona quien puede solicitar ver nuestra lista de archivos compartidos."
+"Selecciona quién puede solicitar ver nuestra lista de archivos compartidos."
 
 #: src/muuli_wdr.cpp:2840
 msgid "IP-Filtering"
@@ -4158,7 +4161,7 @@ msgid ""
 "file."
 msgstr ""
 "Si no se encuentra un archivo ipfilter.dat local, permitir el uso de un "
-"archivo ipfilter de sistema"
+"archivo ipfilter del sistema."
 
 #: src/muuli_wdr.cpp:2925
 msgid "Enable Online-Signature"
@@ -4189,7 +4192,7 @@ msgstr "Guardar archivo de firma online en: "
 msgid ""
 "Click here to select the directory containing the the Online Signature files."
 msgstr ""
-"Click aquí para seleccionar el directorio que contienen los archivos de "
+"Pulsa aquí para seleccionar el directorio que contienen los archivos de "
 "firmas-online."
 
 #: src/muuli_wdr.cpp:2974
@@ -4215,7 +4218,8 @@ msgstr "Filtrar mensajes que contienen (usa ',' como separador):"
 #: src/muuli_wdr.cpp:2990 src/muuli_wdr.cpp:3005
 msgid "add here the words amule should filter and block messages including it"
 msgstr ""
-"añade aquí las palabras que amule debe filtrar y bloquear mensajes incluidos"
+"añade aquí las palabras que amule debe filtrar y bloquear mensajes que las "
+"incluyan"
 
 #: src/muuli_wdr.cpp:2993
 msgid "Show received messages in the log"
@@ -4306,84 +4310,89 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Habilita modo extendido de depuración al inicio"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Abrir el archivo"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Mensajes de categorías:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Esperando..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Añadir .part"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Reintentar seleccionado"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Borrar seleccionado"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Tipos de eventos"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Estadísticas y clientes encolados para archivo(s) seleccionado(s) : Sesión / "
 "Total"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Subidas activas"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Porcentaje de archivos totales"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Todos los archivos"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Archivos seleccionados"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Solo subidas activas"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Mostrar clientes para"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Recargar:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Recargar tus archivos compartidos"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Enviar"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Enviar un mensaje específico."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Cerrar esta sesión de chat"
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Conectar a cualquier servidor y/o Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Compartidos"
 
@@ -4392,135 +4401,135 @@ msgstr "Compartidos"
 msgid "Disabled [%s]"
 msgstr "Deshabilitado [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/seg"
 msgstr[1] "bytes/seg"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "segs"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "mins"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "horas"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "días"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "Todo"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "El resto"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incompleto"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Detenido"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Vídeo"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Archivos"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Texto"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Activo"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Usando directorio de configuración: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
-msgstr "Esperando a archivo part matando hilo..."
+msgstr "Esperando que la conversión de archivo part termine..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importando %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Leyendo directorio temp"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Obteniendo información básica de archivo info de descarga"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Creando archivo de destino"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Cargando datos desde la antigua descarga del archivo (%u de %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Guardando bloque de datos en un nuevo archivo de descarga (%u de %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Obteniendo información del archivo fuente de descarga"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Añadiendo descarga y guardando nuevo archivo part"
 
@@ -4536,12 +4545,12 @@ msgstr "Estado"
 msgid "Filehash"
 msgstr "Hash de archivo"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disco: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4549,14 +4558,14 @@ msgstr ""
 "¡Por favor elige un directorio para buscar descargas temporales! "
 "(subdirectorios serán incluidos)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "¿Quieres que los archivos fuente de una descarga importada "
 "satisfactoriamente sean borrados?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "¿Borrar fuentes?"
 
@@ -4659,19 +4668,19 @@ msgstr[1] "Guardado %i semillas de fuentes en archivo part: %s (%s)"
 #: src/PartFile.cpp:1049
 #, c-format
 msgid "Partfile %s (%s) has no seeds file"
-msgstr "Archivo part %s (%s) no tiene archivo de semillas"
+msgstr "Archivo part %s (%s) no tiene archivo de fuentes"
 
 #: src/PartFile.cpp:1058
 #, c-format
 msgid "Partfile %s (%s) has a void seeds file"
-msgstr "Archivo part %s (%s) tiene un archivo de semillas vacío"
+msgstr "Archivo part %s (%s) tiene un archivo de fuentes vacío"
 
 #: src/PartFile.cpp:1114
 #, c-format
 msgid "Error reading partfile's seeds file (%s - %s): %s"
-msgstr "Error leyendo semillas del archivo part (%s - %s): %s"
+msgstr "Error leyendo fuentes del archivo part (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4686,39 +4695,39 @@ msgstr[1] ""
 "Parte corrupta encontrada (%i) en %d partes del archivo %s - Resultado del "
 "hash del archivo |%s| Hash del archivo |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Parte (%i) completa encontrada en %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Recodificación terminada %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Error inesperado mientras se completaba %s. Archivo pausado"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Descarga terminada: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Borrando archivo: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "ADVERTENCIA: No se puede crear el hash de la parte descargada, set de hashes "
 "incompleto para '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4727,7 +4736,7 @@ msgstr ""
 "ERROR: No se puede crear el hash de la parte descargada, set de hashes "
 "incompleto para (%s). Esto no debería pasar nunca"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4736,226 +4745,225 @@ msgstr ""
 "EOF mientras comprobaba el hash de la parte %u con longitud %u (max %u) del "
 "trozo de fichero '%s' con longitud %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "ALERTA: No hay espacio libre en el disco! Pausando archivo: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Parte descargada %i corrupta en archivo: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Recuperada parte corrupta %i de %s -> Bytes salvados: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Asignando"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Espacio en disco insuficiente"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Descargado"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ERROR: Fallo al abrir archivo part '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Por defecto"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanés"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Árabe"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturiano"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Euskera"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Búlgaro"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalán"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Chino (Simplificado)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Chino (Tradicional)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Croata"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Checo"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danés"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holandés"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Inglés (U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonio"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandés"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francés"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Gallego"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Alemán"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Griego"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebreo"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Húngaro"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiano"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiano (Suizo)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonés"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Coreano"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituano"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Noruego"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polaco"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugués"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugués (Brasileño)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Ruso"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Esloveno"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Español"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Sueco"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turco"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ucraniano"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Cambiar Lenguaje: "
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
-msgstr ""
+msgstr "No existen traducciones instaladas para aMule"
 
-#: src/Preferences.cpp:771
-#, fuzzy
+#: src/Preferences.cpp:773
 msgid "No languages available"
-msgstr "No disponible"
+msgstr "No hay idiomas disponibles"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "opciones no disponibles"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Categoría inválida encontrada, saltando"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "Puerto TCP no puede ser mas alto de 65532 debido a que el socket del "
 "servidor UDP es TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Puerto por defecto que será usado (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Quitando directorio compartido no existente: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Conexión"
 
@@ -4963,7 +4971,7 @@ msgstr "Conexión"
 msgid "Directories"
 msgstr "Directorios"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servidores"
 
@@ -5017,7 +5025,7 @@ msgstr ""
 "    %PARTFILE - ruta completa al archivo\n"
 "    %PARTNAME - nombre del archivo"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5033,30 +5041,30 @@ msgstr ""
 "aMule funcionará bien sin que cambies ninguno\n"
 "de estos parámetros."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Error al conectar configuración con programa, con el ID %d y clave %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 "Error al transferir datos desde la configuración al programa, con el ID %d y "
 "la clave %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "El tipo de proxy al que estás conectando"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 "Error al transferir datos desde el programa a la configuración, con el ID %d "
 "y la clave %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5064,27 +5072,32 @@ msgstr ""
 "aMule debe reiniciarse para aplicar los cambios:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- Puerto TCP cambiado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- Puerto UDP cambiado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Puerto de conexión externa cambiado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Aprobación de conexión externa cambiada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Interfaz de conexión externa cambiada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Ofuscación de protocolo"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5092,29 +5105,29 @@ msgstr ""
 "Tu lista auto-actualizable de servidores esta vacía.\n"
 "La lista de servidores auto-actualizable al inicio será desactivada."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
 msgstr ""
-"Tienes habilitado las conexiones externas, pero no tienes especificada una "
+"Tienes habilitadas las conexiones externas, pero no tienes especificada una "
 "contraseña.\n"
 "Las conexiones externas no pueden ser habilitadas a menos que especifiques "
 "una contraseña válida."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Lenguaje cambiado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Directorio TEMP cambiado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- Red ED2K habilitada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5122,7 +5135,7 @@ msgstr ""
 "eD2k y Kad están desactivados.\n"
 "No podrás conectarte hasta que actives al menos uno de ellos."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5130,7 +5143,7 @@ msgstr ""
 "Kad no se iniciará si tu puerto UDP está deshabilitado.\n"
 "Habilita un puerto UDP o deshabilita Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5140,7 +5153,7 @@ msgstr ""
 "Debes reiniciar aMule ahora.\n"
 "Sino reinicias ahora, no sabemos si pasará algo malo.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5148,43 +5161,43 @@ msgid ""
 msgstr ""
 "Tu auto-actualización de lista de servidores está en blanco.\n"
 "Por favor introduce al menos una URL con un archivo server.met válido.\n"
-"Click en el botón \"Lista\" de este casilla  para introducir una URL."
+"Click en el botón \"Lista\" de esta casilla para introducir una URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Archivos temporales"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Archivos entrantes"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Firmas Online"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Elige una carpeta para %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
-msgstr "Buscar reproductor de video."
+msgstr "Buscar reproductor de vídeo"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Selecciona navegador"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Ejecutable %s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Editar la lista de servidores"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5192,76 +5205,76 @@ msgstr ""
 "Añade aquí las URL's para descargar los archivos server.met.\n"
 "Sólo una url por línea."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Intervalo de actualización: %d seg"
 msgstr[1] "Intervalo de actualización: %d segs"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Tiempo medio del gráfico: %d min"
 msgstr[1] "Tiempo medio del gráfico: %d mins"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Escala gráfica de conexiones: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Tamaño del buffer de archivo: %d byte"
 msgstr[1] "Tamaño del buffer de archivo: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Tamaño de la cola de subida: %d cliente"
 msgstr[1] "Tamaño de la cola de subida: %d clientes"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Intervalo de refresco de la conexión al servidor: %d minuto"
 msgstr[1] "Intervalo de refresco de la conexión al servidor: %d minutos"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Intervalo de refresco de la conexión al servidor: Deshabilitado"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "deshabilitado"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Ejecutar comando en el evento '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Habilitar ejecución de comando en el núcleo"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Comando del núcleo:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Habilitar ejecución de comando en la Interfaz"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Comando de la Interfaz: "
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Las siguientes variables serán reemplazadas:"
 
@@ -5291,7 +5304,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Error inesperado mientras intentaba buscar en Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID Archivo"
 
@@ -5338,7 +5351,7 @@ msgstr ""
 
 #: src/ServerConnect.cpp:79
 msgid "Failed to connect to all servers listed. Making another pass."
-msgstr "Error al conectar a todos los servidores."
+msgstr "Error al conectar a todos los servidores. Reintentando."
 
 #: src/ServerConnect.cpp:94 src/ServerConnect.cpp:148
 msgid "eD2k network disabled on preferences, not connecting."
@@ -5405,7 +5418,7 @@ msgstr "ERROR: Socket inválido al comprobar el timeout"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Intento de conexión con %s (%s:%i) tiempo agotado."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Recibido último resultado de tu búsqueda DNS, descartando."
 
@@ -5434,50 +5447,50 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Archivo server.met corrupto, encontrada versión no válida: 0x%x, tamaño %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i servidor encontrado en server.met"
 msgstr[1] "%i servidores encontrados en server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d servidor añadido"
 msgstr[1] "%d servidores añadidos"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Error: el fichero 'server.met' está corrupto:"
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "Error E/S leyendo 'server.met'"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Servidor no añadido: [%s:%d] no has especificado un puerto válido."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Servidor no añadido: La IP de [%s:%d] está filtrada o no es válida."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Servidor no añadido: Servidor IP:Puerto [%s:%d] encontrado en la lista."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Servidor añadido: Servidor en [%s:%d] usando el nombre '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5485,25 +5498,25 @@ msgstr ""
 "Estás conectado al servidor, que intentas borrar. Por favor desconéctate "
 "primero."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Error al abrir '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "¡Error al guardar server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "URL no válida"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Descarga de la lista de servidores finalizada desde %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5512,28 +5525,29 @@ msgstr ""
 "pega un lista de servidores válida en este archivo para poder actualizar de "
 "forma automática la lista de servidores."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Descargando lista de servidores de %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "ADVERTENCIA: especificada una URL inválida para la actualización automática "
 "de servidores : %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
-msgstr "Error en addresses.dat, server.met de la url de auto descarga inválido"
+msgstr ""
+"Error en addresses.dat, dirección para auto descarga de server.met inválida"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Error al descargar la lista de servidores desde %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5570,7 +5584,7 @@ msgid "Static"
 msgstr "Servidor fijo"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versión"
 
@@ -5579,7 +5593,7 @@ msgid ""
 "You are connected to a server you are trying to delete. Please disconnect "
 "first. The server was NOT deleted."
 msgstr ""
-"Estás conectado a un servidor, que estás intentando borrar. Desconéctate "
+"Estás conectado a un servidor que estás intentando borrar. Desconéctate "
 "primero. El servidor no será borrado."
 
 #: src/ServerListCtrl.cpp:151
@@ -5589,15 +5603,15 @@ msgstr "(Nombre desconocido)"
 #: src/ServerListCtrl.cpp:153
 #, c-format
 msgid "Are you sure you want to delete the static server %s"
-msgstr "Estás seguro que quieres eliminar el servidor fijo %s"
+msgstr "Estás seguro de que quieres eliminar el servidor fijo %s"
 
 #: src/ServerListCtrl.cpp:347
 #, c-format
 msgid "Servers (%i)"
 msgstr "Servidores (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Servidor"
 
@@ -5643,92 +5657,92 @@ msgstr "Reconectar al servidor"
 
 #: src/ServerListCtrl.cpp:525
 msgid "Are you sure that you wish to delete all servers?"
-msgstr "¿Estás seguro que deseas borrar todos los servidores?"
+msgstr "¿Estás seguro de que deseas borrar todos los servidores?"
 
 #: src/ServerListCtrl.cpp:541
 msgid "Are you sure that you wish to delete the selected server?"
-msgstr "Estás seguro que deseas borrar el servidor seleccionado"
+msgstr "¿Estás seguro de que deseas borrar el servidor seleccionado?"
 
 #: src/ServerListCtrl.cpp:543
 msgid "Are you sure that you wish to delete the selected servers?"
-msgstr "Estás seguro que deseas borrar los servidores seleccionados"
+msgstr "¿Estás seguro de que deseas borrar los servidores seleccionados?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ERROR: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "ADVERTENCIA: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "El nuevo ID-Cliente es %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "ALERTA: ¡Has recibido ID-Baja!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tEsto sucede porque estás detrás de un cortafuegos o de un router."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
-msgstr "\tPara mas información, por favor ves a http://wiki.amule.org"
+msgstr "\tPara mas información, por favor ve a http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "¡Información recibida del servidor desconocida! - demasiado pequeña"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Recibido %d servidores nuevo"
 msgstr[1] "Recibido %d servidores nuevos"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
-msgstr "Guardado lista de servidores completado."
+msgstr "Guardado de lista de servidores completado."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "El servidor rechaza el último comando"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Paquete bogus recibido desde el servidor: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Error mientras se estaba procesando un paquete desde el servidor: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Imposible crear un hilo de resolución de DNS para conectar con %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Servidor IP %s (%s) está filtrado. No conectará."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "usando ofuscación de protocolo."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Conectando a %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Imposible resolver dns para el servidor %s: ¡Imposible conectar! "
@@ -5845,8 +5859,8 @@ msgstr "Añadiendo archivo %s a compartidos"
 #, c-format
 msgid "Found %i known shared file"
 msgid_plural "Found %i known shared files"
-msgstr[0] "Encontrado %i archivos compartido"
-msgstr[1] "Encontrado %i archivos compartidos"
+msgstr[0] "Encontrado %i archivo compartido"
+msgstr[1] "Encontrados %i archivos compartidos"
 
 #: src/SharedFileList.cpp:377
 #, c-format
@@ -5887,7 +5901,6 @@ msgid "Available Parts"
 msgstr "Partes Disponibles"
 
 #: src/SharedFilePeersListCtrl.cpp:35
-#, fuzzy
 msgid "Upload Status"
 msgstr "Estado de la subida"
 
@@ -5904,91 +5917,95 @@ msgid "Local File Name"
 msgstr "Nombre de archivo local"
 
 #: src/SharedFilePeersListCtrl.cpp:39 src/SourceListCtrl.cpp:38
-#, fuzzy
 msgid "Shares File List"
 msgstr "Compartidos"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Peticiones"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Peticiones aceptadas"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Datos transferidos"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Media Compartido"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Partes obtenidas"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Fuentes completas"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Directorio"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Añadir Comentario/Valoración"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Editar Comentario/Valoración"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Renombrar"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Añadir archivos en colección a la lista de descargas"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Copiar &URL magnético al portapapeles"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Copiar el enlace eD2k al portapapeles (&Fuente)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 "Copiar el enlace eD2k al portapapeles (Fuente) (&Con opciones de cifrado)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Copiar el enlace eD2k al portapapeles (&Nombre del host)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Copiar el enlace eD2k al portapapeles (Nombre del host) (&Con opciones de "
 "cifrado)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Copiar el enlace eD2k al portapapeles (Información &AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Copiar el enlace eD2k al portapapeles (Información &AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Necesitas IDAlta para crear un enlace fuente válido"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Archivos Compartidos (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Archivo part]"
 
@@ -5996,235 +6013,235 @@ msgstr "[Archivo part]"
 msgid "Remote File Name"
 msgstr "Nombre de archivo remoto"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Datos subidos (Sesión (Total)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Total por tráfico excedente (Paquetes): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Excedente por peticiones de archivo (Paquetes): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Excedente por intercambio de fuentes (Paquetes): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Tráfico excedente de servidores (Paquetes): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Tráfico excedente Kad (Paquetes): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Cifrado excedente (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Subidas activas: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Subidas en espera: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Total de subidas satisfactorias: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Total de subidas erróneas: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Tiempo medio de subida: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Datos descargados (Sesión (Total)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Fuentes encontradas: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Descargas activas (partes): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Índice SU:DE Sesión (Total): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Velocidad media de descarga (Sesión): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Velocidad media de subida (Sesión): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Velocidad máxima de descarga (Sesión): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Velocidad máxima de subida (Sesión): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Reconexiones: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tiempo desde la primera transferencia: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Conectado al servidor desde: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Conexiones activas (estimado): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Alcanzado límite máximo de conexiones: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Media de conexiones (estimado): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Pico de conexiones (estimado): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Clientes"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Desconocido: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtrado: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Bloqueado: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Total: %i Conocido(s): %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Servidores activos: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Servidores caídos: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Total: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Servidores borrados: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Servidores filtrados: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Usuarios en servidores activos: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Archivos en servidores activos: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Usuarios totales: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Archivos totales: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Ocupación de Servidores: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Número de archivos compartidos: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Tamaño total de archivos compartidos: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Tamaño medio de archivo: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistema Operativo"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "No recibido"
 
@@ -6283,7 +6300,7 @@ msgstr "Número inválido\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Hash no válido (la longitud debería ser exactamente 32 caracteres)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Solicitud fallida con un error desconocido."
 
@@ -6337,13 +6354,13 @@ msgstr "Conectado a %s %s %s"
 msgid "Now connecting"
 msgstr "Conectando ahora"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "tras cortafuegos"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6776,22 +6793,22 @@ msgstr ""
 "Este es un comando en desuso, y será borrado en el futuro.\n"
 "Usa '%s' en su lugar.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Cliente de texto aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Convirtiendo antiguos hashsets AICH en  '%s' a 64b en '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "ALERTA: El nombre de archivo '%s' es incorrecto y será renombrado a '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "ALERTA: El archivo '%s' ya existe, renombrando el nuevo a '%s'."
@@ -6863,7 +6880,7 @@ msgstr "Error al ejecutar el comando `%s' en el evento `%s'."
 msgid "Download completed"
 msgstr "Descarga completada"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "La ruta completa al archivo."
 
@@ -6883,66 +6900,66 @@ msgstr "El tamaño del archivo en bytes."
 msgid "Cumulative download activity time."
 msgstr "Tiempo de actividad de descarga acumulado."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Nueva sesión de chat iniciada"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Remitente del mensaje."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Sin espacio"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partición de disco."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Error completando"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Procesando numero de archivo %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Has preguntado por hashes de partes (Solo usado por archivos > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s --->¡ No existe el archivo !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, el creador de enlaces eD2k para aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "¡Bienvenido!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Parámetros de entrada"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Archivo a codificar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Añadir URLs opcionales para este archivo"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Introduce aquí el archivo del que quieras calcular el enlace eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6950,97 +6967,97 @@ msgstr ""
 "Introduce aquí la URL que quieres añadir al enlace eD2k: Añade / al final "
 "para permitir a aLinkCreator agregar el nombre del archivo actual"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Borrar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Crear enlace con hashes de partes"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
-"Ayuda para separar archivos nuevos y raros mas rápidamente, el coste sera un "
+"Ayuda para separar archivos nuevos y raros mas rápidamente, el coste será un "
 "tamaño de enlace mayor"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Hash de archivo MD4"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Hash del archivo eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "Enlace eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Guardar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
-msgstr "Copiar al porta papeles"
+msgstr "Copiar al portapapeles"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Abrir"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Abrir un archivo para calcular su enlace eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Copiar el enlace eD2k calculado al portapapeles"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Guardar como"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Guardar el enlace eD2k calculado en un archivo"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Acerca de aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Selecciona el archivo del que quieras calcular el enlace eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Imposible abrir el portapapeles"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "¡Nada para copiar ahora!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Selecciona el fichero para el enlace eD2k calculado"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Imposible abrir "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Por favor, introduce un nombre de archivo"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "¡Nada para guardar ahora!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7060,170 +7077,174 @@ msgstr ""
 "\n"
 "Distribuido bajo la licencia GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Calculando hash..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator está trabajando para ti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Calculando Hash MD4..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Calculando Hashes eD2k..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "¡ Cancelado !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Terminado en %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "¡ Ya tienes añadida esa URL !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Por favor, introduce una URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Imposible abrir %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i día(s) %i hora(s) %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, Estadísticas aMule en linea"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Máximo índice Desc desde que wxCas está ejecutándose"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Máximo índice Desc absoluto durante ejecuciones anteriores de wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Parar auto recargar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Salvar imagen de estadísticas en linea"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Imprimir imagen de estadísticas en linea"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Opciones"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Acerca de wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Iniciar auto recargar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Auto recargar, detenido"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Auto recargar, iniciado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Salvar imagen de estadísticas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Estadísticas aMule en linea"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
 msgstr ""
 "Hubo un problema imprimiendo.\n"
-"Tal vez tu impresora actual no este configurada"
+"Tal vez tu impresora actual no esté configurada"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Imprimiendo"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7241,328 +7262,328 @@ msgstr ""
 "\n"
 "Distribuido bajo GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule no está ejecutándose..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule ya está ejecutándose"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule se está ejecutando, pero está desconectado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule está conectando..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, estado de aMule desconocido..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " ha sido ejecutado durante"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " ¡ está detenido !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " ¡ no está conectado !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " está conectando..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " está haciendo algo extraño, ¡ compruébalo !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " está conectado a"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "apagado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " conectado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " con "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Total Descargado:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Subido: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Descarga de sesión"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Descargado: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Subida: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Compartiendo: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr "archivo(s), Clientes en cola: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Tiempo: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " en "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Media de carga del sistema (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Tiempo de ejecución del sistema"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Directorio que contiene el archivo amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Introduce el directorio donde está tu archivo amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Intervalo de refresco en segundos"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Generar un archivo de estadísticas siempre que se actualice"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 "Introduce el directorio donde tu quieres generar la imagen de estadísticas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Sube periódicamente tu imagen de estadísticas al servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "Url FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Directorio FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Introduce la URL de tu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Introduce el directorio de tu servidor FTP donde poner tu imagen de "
 "estadísticas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Usuario"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Introduce el nombre de usuario para conectarte a tu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Introduce la contraseña de usuario para conectarte a tu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Intervalo de actualización de FTP en minutos"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Validado"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Directorio que contiene tu archivo de firma"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Directorio donde se genera la imagen de estadísticas"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Carga la plantilla <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Puerto HTTP del servidor web"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Usar redirección de puertos UPnP en el puerto del servidor web"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Puerto UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Usar compresión gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Contraseña de acceso total para el servidor web"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Contraseña de invitado para servidor web"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Permitir acceso a invitado"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Denegar acceso a invitado"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Cargar/guardar la configuración del servidor web desde/a aMule remoto"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Ruta al archivo config de aMule. ¡NO USAR DIRECTAMENTE!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Deshabilitar interprete PHP (desuso)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Recompila páginas PHP para otra solicitud"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Servidor web aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "conexión aceptada del cliente web\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "ERROR: no se acepta conexión del cliente web\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Solicitud fallida con el siguiente error: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Fichero índice no encontrado: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sesión terminada - solicitando conexión\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sesión ok, conectado\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sesión ok, no conectado\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "No hay ninguna sesión - conecte de nuevo\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sesión creada - solicitando conexión\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Procesando solicitud [original]:"
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Contraseña no especificada, el inicio de sesión no será permitido."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Comprobando contraseña\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Hash de la contraseña incorrecto\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Contraseña ok\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Contraseña errónea\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 "No has introducido ninguna contraseña. No está permitida una contraseña en "
 "blanco.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Desconexión solicitada\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Procesando solicitud [redirigida]:"
 
@@ -7753,9 +7774,6 @@ msgstr "Procesando solicitud [redirigida]:"
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Total Usuarios: %s | Total Archivos: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "Descarga HTTP hilo comenzado"
-
 #~ msgid "Download size: %i"
 #~ msgstr "Tamaño de descarga: %i"
 
diff --git a/po/et_EE.po b/po/et_EE.po
index 87277fe..75c6b5a 100644
--- a/po/et_EE.po
+++ b/po/et_EE.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: et_EE\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-01-01 19:46+0200\n"
 "Last-Translator: \n"
 "Language-Team: Estonian <kde-i18n-doc at kde.org>\n"
@@ -39,7 +39,7 @@ msgstr "Määratud kasutaja kontrollsumma pole kehtiv!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Ei suuda avada ED2KLinks faili."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -47,37 +47,37 @@ msgstr ""
 "HOIATUS: Sa ei saa ennast eD2k lingi jaoks allikana lisada ajal kui omad "
 "lowid'd."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Ok, lahkun põhiprogrammist..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Mõrvan amuleweb tegelase, protsessi id '%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Mõrvan amuleweb tegelase, protsessi id '%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Nurjunud"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Peatan tuuma."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "aMule seiskamine lõpetatud."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "aMule väljumise mälu veajälituse tulemus:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -85,16 +85,16 @@ msgstr ""
 "\n"
 "EC seadistused"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Parool on määratud ja välised ühendused võimalikud."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "!!! HOIATUS !!!"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -102,13 +102,13 @@ msgstr ""
 "Sinu keelelokaat muudeti süsteemi vaikeväärtuseks seoses konfiguratsiooni "
 "muudatustega. Sorry."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -116,16 +116,16 @@ msgstr ""
 "Serverite nimekirjas pole ühtegi serverit.\n"
 "Kas aMule võiks uue nimekirja tõmmata?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Serverite nimekiri tõmmatud"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "web server töötab protsessi id'ga %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -136,23 +136,23 @@ msgstr ""
 "serverit või kompileeri aMule kasutades võtit --enable-webserver ja seejärel "
 "make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "VIGA"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Ei suuda siduda porti määratud aadressiga: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Port %u ei ole kasutatav. Sa saad LOWID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -167,11 +167,11 @@ msgstr ""
 "Kasuta netstat programmi kontrollimaks kuna port vabaneb\n"
 "ja proovi amule uuesti käivitada."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Ei suutnud luua OnlineSig Faili"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Ei suutnud luua aMule OnlineSig Faili"
 
@@ -229,144 +229,144 @@ msgstr ""
 "Online Allkirja kataloog on VIGANE!\n"
 " Online Allkirja ei kasutata, kuni parandad vea seadetes."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Teatatud serveri nimi"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Kettaruumi eraldamine faili '%s' jaoks ebaõnnestus: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "VIGA: Ei suutnud avada logifaili"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "HOIATUS: logifail on tühi, miskit on kapitaalselt viltu."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Log on nullitud"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Serveri teade: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "Fail %s jäeti vahele, sest soovitud fail pole uuem."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Ebaõnnestus sõlmede nimekirja tõmbamine."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Ebaõnnestus tõmmatud versiooni kotrollfaili avamine"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Versiooni kontrollfail on korrumpeerunud"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Kasutad aegunud aMule versiooni!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Sinu aMule versioon on %i.%i.%i ja uusim versioon on %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Uuema aMule versiooni saad alati aadressilt http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "HOAITUS: Sinu aMuled versioon on vananenud: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Sinu aMule koopia on ajakohane."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Versiooni kontrollfaili tõmbamine ebaõnnestus"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Kasutajaid: %s | Faile: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Kasutajaid: E: %s K: %s | Faile E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Ühtegi võrku pole valitud"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "koos LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "koos HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Ühendatud %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Ühendun %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "eD2k ühendus katkestatud."
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad käivitatud."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad peatatud."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Ühendus Kad võrk (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Ühendus Kad võrku (tulemüüriga)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Ühendus Kad võrguga katkestatud"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr ""
 "Kad võrku ei saa kasutada kui seadetes on UDP port väljalülitatud, ei ühendu."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad on seadetes väljalülitatud, ei ühenda."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -378,7 +378,7 @@ msgstr ""
 "ec-config' või määra võtme \"AcceptExternalConnections\" väärtuseks 1 "
 "konfiguratsioonifailis ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -392,19 +392,19 @@ msgstr ""
 "\"ECPassword\" väärtuseks kohase väärtuse.Parooli seadmiseks käivita amuled "
 "võtmega '--ec-config'. Lisainformatsiooni leiad http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - käivituse stopper"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: lahkun taustaprotsessiks - näeme veel"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Ei suuda luua PID faili"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "VIGA: %s"
@@ -487,9 +487,9 @@ msgstr " Copyright (C) 2002-2011 Petar Maymounkov <petar at post.harvard.edu>\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Teade"
 
@@ -497,7 +497,7 @@ msgstr "Teade"
 msgid "aMule dialog destroyed"
 msgstr "aMule dialoog hävitatud"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Ühendun"
 
@@ -531,7 +531,7 @@ msgstr "Kad: Väljas"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Loobu"
 
@@ -548,7 +548,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Lõpeta ühendus ühendatud võrkudega"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Ühenda"
 
@@ -589,7 +589,7 @@ msgstr "Kinnitan väljumise"
 msgid "Launch Command: "
 msgstr "Käivitamise korraldus: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- vaikimisi -"
 
@@ -604,80 +604,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "HOIATUS: Ei suuda rüüfaili '%s' lugemiseks avada"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Võrgud"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Võrgud"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Otsingud"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Otsingu aken"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Tõmbamised"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Tõmbamised"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Jagatud failid"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Jagatud failide Aken"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Teated"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Teadete Aken"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistika"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Statistiliste graafikute aken"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Seaded"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Seadete aken"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Impordi"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Osafailide importimise tööriist"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Info"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Info/Appi"
 
@@ -697,7 +697,7 @@ msgstr "Võrk puudub"
 msgid "aMule remote control"
 msgstr "aMule kaugjuhtimine"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -709,107 +709,107 @@ msgstr "Fataalne VIGA: Ei suutnud stopperit."
 msgid "Connect to remote amule"
 msgstr "Ühendu eemalasuva amuulaga"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Fataalne VIGA: Ei suutnud luua Poll stopperit."
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Lähen tegevuse tsüklisse..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Ühendun..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Ühendus ebaõnnestus "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Võrgu GUI EC sündmuse haldur"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Peatun "
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Ühendus ebaõnnestus. Ei suuda määratud ühenduda %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Ühendus suletud - aMule on ilmselt seisatud."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Valmis"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Kõik"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Ei suuda luua kataloogi '%s' '%s' kategooria jaoks, säilitan '%s' kataloogi."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Teadmata"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Ei suuda tõmmata kasutaja '%s' jagatud faili"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Otsin lowid ühenduse jaoks semu"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Valetatud eMule versioon %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Valetatud eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Valetatud eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (baseerub eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Kasutajanimi: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Küsitud: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -819,7 +819,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Selle seansi failistatistika: Aksepteeritud %d/%d päringust, %s siirdatud\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -831,7 +831,7 @@ msgstr[1] ""
 "Kõikide seansside failistatistika: Aksepteeritud %d/%d päringust, %s "
 "siirdatud\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Küsiti tundmatut faili"
 
@@ -978,12 +978,12 @@ msgid "Client Details"
 msgstr "Kliendi detailid"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1035,29 +1035,29 @@ msgstr "Kontrollitud - OK"
 msgid "Not Available"
 msgstr "Info Puudub"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "Kasutaja %s (%u) küsis sinu jagatud kataloogide nimekirja -> Kinnitasid"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Kasutaja %s (%u) küsis sinu jagatud kataloogide nimekirja -> Keeldusid"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "Kasutaja %s (%u) küsis sinu jagatud kataloogide nimekirja -> Kinnitasid"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Kasutaja %s (%u) küsis sinu jagatud kataloogide nimekirja -> Keeldusid"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1065,39 +1065,39 @@ msgstr ""
 "Kasutaja %s (%u) küsis sinu jagatudfailde loetelu kataloogile %s -> "
 "Kinnitasid"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr ""
 "Kasutaja %s (%u) küsis sinu jagatudfailde loetelu kataloogile %s -> keeldusid"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Kasutaja %s (%u) jagab kataloogi %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Kasutaja %s (%u) saatis soovimatu jagatud kataloogide nimekirja."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Kasutaja %s (%u) saatis kataloogi %s jagatud failide nimekirja"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Kasutaja %s (%u) lõpetas jagatud failide nimekirja saatmise"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Kasutaja %s (%u) saatis soovimatu jagatud failide nimekirja"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1113,7 +1113,7 @@ msgstr "Kasutajanimi"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Faili nimi"
 
@@ -1155,33 +1155,33 @@ msgstr "Auto [Norm.]"
 msgid "Auto [Hi]"
 msgstr "Auto [Kõrge]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Väga madal"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Madal"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Keskmine"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Kõrge"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Väga Kõrge"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Versioon"
 
@@ -1198,12 +1198,12 @@ msgid "Queue Full"
 msgstr "Järjekord täis"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Järjekorras"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Tõmban"
 
@@ -1263,7 +1263,7 @@ msgstr "Kohalik server"
 msgid "Remote Server"
 msgstr "Kaug server"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1289,7 +1289,7 @@ msgid "Search Result"
 msgstr "Otsingu tulemus"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Valmis"
 
@@ -1330,11 +1330,11 @@ msgid "Part"
 msgstr "Osa"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Suurus"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Siiratud"
 
@@ -1347,17 +1347,17 @@ msgid "Progress"
 msgstr "Edenemine"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Allikaid"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioriteet"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Olek"
@@ -1382,7 +1382,7 @@ msgstr "Oled kindel et tahad valitud faili kustutada?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Oled kindel et tahad valitud failid kustutada?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1392,7 +1392,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1444,11 +1444,11 @@ msgstr "Näita kõiki kommentaare"
 msgid "Copy magnet URI to clipboard"
 msgstr "Kopeeri magnet URI lõikepuhvrisse"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Kopeeri eD2k &link lõikepuhvrisse"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Kopeeri tagasiside lõikepuhvrisse"
 
@@ -1464,24 +1464,24 @@ msgstr "Määra kategooria"
 msgid "&Open the file"
 msgstr "Ava Fail"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Sisesta selle faili uus nimi:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Faili ümbernimetamine"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%H:%M:%S %d/%m/%y"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Tõmbamised (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1489,11 +1489,11 @@ msgstr ""
 "Et seda viga eelvaatuse ajal rohkem mitte näitdata \n"
 "määra oma seadetes eelistatud video mängija (vaikimisi mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Faili eelvaade"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "VIGA: Ei suutnud käivitada välist meediamängijat! Käsk: `%s'"
@@ -1600,28 +1600,28 @@ msgstr "Välisühendused on tühja parooli tõttu mitteaktiivsed"
 msgid "External connections disabled in config file"
 msgstr "Välisühendused on konfiguratsioonifailis defineeritud mitteaktiivsena."
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Kinnitati uus väline ühendus"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "VIGA: Ei suutnud uut välist ühendust aksepteerida"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Välisühendustest keelduti tühja parooli tõttu seadetes!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Ühendan klienti: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Versioon teadmata"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1629,7 +1629,7 @@ msgstr ""
 "Mittekorrektne Välisühenduste versiooni ID, siin võib olla binaarne "
 "kokkusobimatus.Kasuta sama versiooni tuuma ja kaugklienti."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1637,172 +1637,172 @@ msgstr ""
 "Ajutise arendusversiooniga ei saa ühenduda reliisi versiooniga!!!! *RRRRRR* "
 "hoidsin ära võimaliku crässi"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Vigane protokolli versioon."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Puudub protokolli versiooni märgis"
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr "Autoriseerimine ebaõnnestus: EC parooliks on määratud vigane räsi."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Autoriserimine ebaõnnestus: vale parool."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Autoriserimine ebaõnnestus: parool puudub."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Vigane päring, alustuseks pead ennast autoriseerima."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Ligipääs Lubatud."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Veateade \"%s\" kliendile saadetud."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Autoriseerimata pääsukatse %s. Ühendus suletud."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Kaug OsaFaili käsk ebaõnnestus: Faili kontrollsummat ei leidnud: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Faili '%s' kontrollsummat ei leitud"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OOPS! OpCode töötlemise viga!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Serverit ei lisatud"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "serverit ei leidnud: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "eemaldatav server on vaja määrata"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k on seadetes väljalülitatud."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Otsing on käimas. Varsti näed tulemusi!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Web Otsing kaugtöökohast ei oma mõtet."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Graafiku jaoks pole punkte."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Sinu klient pole seadistatud sellise detailsuse astme jaoks."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Väline Ühendus: nõutakse seiskamist"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Juba sulgun..."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Väline ühendus: lisan lingi '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Vigane link või on juba loetelus."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Faili ei leitud."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Vigane failinimi."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Ei suuda faili ringinimetada."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad on seadetes väljalülitatud."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Juba ühendatud eD2k võrku."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Ühendun eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Juba ühendatud Kad võrku."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Ühendun Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Kõik võrgud on väljalülitatud."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "eD2k ühendus katkestatud."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Kad ühendus katkestatud."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Väline Ühendus: sain vigase opkoodi: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Vigane opcode (vale protokolli versioon?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Tundmatu laiend '%s' käsule '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Tundmatu käsk '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1810,7 +1810,7 @@ msgstr ""
 "\n"
 "See käsk ei saa omada parameetrit.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1818,7 +1818,7 @@ msgstr ""
 "\n"
 "Sellel käsul peavad olema parameetrid.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1826,7 +1826,7 @@ msgstr ""
 "\n"
 "Käsk on lõpetamata, pead kasutama üht laienditest allpool.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1834,11 +1834,11 @@ msgstr ""
 "\n"
 "Saadaval laiendid:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Võiamlikud käsud:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1849,17 +1849,17 @@ msgstr ""
 "Kõik käsud on tõstutundetud.\n"
 "Tipi '%s <käsunimi>' et saada <käsunimi> kohta rohkem infot.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Lahkub rakendusest."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Näita Abimeest."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1867,7 +1867,7 @@ msgstr ""
 "Käsu kohta abi saamiseks tipi 'help <käsunimi>'.\n"
 "Käskude täieliku loetelu saamiseks tipi 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1878,48 +1878,48 @@ msgstr ""
 "Käsuloendi saamiseks kasuta '%s'\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Süntaksi viga!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Viga käsu töötlemisel - sede ei tohiks mitte kunagi juhtuda!! Palun "
 "informeeri sellest\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Sellel käsul ei tohiks olla ühtegi parameetrit."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Sellel käsul peab olema parameeter."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Vigane muutuja."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "See on poolik/lõpetamata käsk."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Rohkema info saamiseks tipi '%s'.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "See on %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "See on %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1927,7 +1927,7 @@ msgstr ""
 "\n"
 "Loon klienti ....\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1936,7 +1936,7 @@ msgstr ""
 "\n"
 "Ok, lahkun %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1950,47 +1950,47 @@ msgstr ""
 "\n"
 "Lahkun...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Näita seda abiteksti."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Masin milles aMule töötab. (vaikimisi: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "aMule välisühenduse port. (vaikimisi: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Välisühenduse parool."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Loen konfiguratsiooni failist."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Ära trüki midagi standardväljudisse."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Ole jutukas - näita ka veajälituse infot."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Määrab programmi keele."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Kirjuta käsurea valikud konfiguratsioonifaili."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Loob konfiguratsioonifaili alusel aMule konfigratsioonifaili."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Näita programmi versiooni."
 
@@ -2003,8 +2003,8 @@ msgstr "Faili detailid"
 msgid "%.1f%% done"
 msgstr "%.2f%% tehtud"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2021,7 +2021,7 @@ msgstr "Sõprade faili 'emfriends.met' avamine kirjutamiseks ebaõnnestus!"
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "KRIITILINE - StartChatSession puudub klient"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Sõbrad"
 
@@ -2149,21 +2149,21 @@ msgstr "Tõmbamise URL ei saa olla tühi."
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "URL %s ütles: %i - VIGA (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Kriitiline viga tõmmatud faili salvestamisel"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "Tõmmatud %d baiti"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Oodati %d baiti, kuid tõmmates saadi %d baiti"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2171,11 +2171,11 @@ msgstr ""
 "Vigane link HTTP tõmbamiseks või HTTP ümbersuunamine (ega sa unustanud "
 "lisada 'http://' ?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Ei suuda ühenduda HTTP serveriga"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "HTTP serveri vigane vastus"
 
@@ -2207,7 +2207,7 @@ msgstr "%s uuendamine õnnestus"
 msgid "Error updating GeoIP.dat"
 msgstr "GeoIP.dat uuendamise viga"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Faili %s tõmbamine aadressilt %s ebaõnnestus"
@@ -2252,7 +2252,7 @@ msgstr[1] "ignoreeritud %u vigast rida."
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Faili %s ümbernimetamine ebaõnnestus, katkestan uuendamise."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP filter on lähtestatud"
 
@@ -2269,46 +2269,46 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Sõlmed (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Bootstrapil vigane IP"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Bootstrapil vigane port"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Palun täida kõik nõutud väljad"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Oled kindel et tahad tõmmata uut nodes.dat faili?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Nii tehes eemaldad oma olemasolevad sõlmed ja taaskäivitad Kademlia ühenduse."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Kas jätkata?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: otsingu võtmesõna on liiga lühike"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Otsingu märksõna: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: otsingu võtmesõna on juba loetelus: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2316,59 +2316,59 @@ msgstr ""
 "nodes.dat faili laadimine ebaõnnestus -  fail on liiga vana. See versiooni "
 "(0) on toetuseta."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Loetud %u Kad kontakti"
 msgstr[1] "Loetud %u Kad kontakti"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr "Kontakte ei leitud, palun bootstrap või tõmba nodes.dat fail."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Saadaval ainult %d Kad kontakt, nodes.dat ei lisatud"
 msgstr[1] "Saadaval ainult %d Kad kontakti, nodes.dat ei lisatud"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Salvestatud %d Kad kontakt"
 msgstr[1] "Salvestatud %d Kad kontakti"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Faili nimi"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Faili suurus"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Üles- ja allalaadimise suhe"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Üleslaaditud"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Küsitud"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Aksepteeritud"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Täielikke allikaid"
 
@@ -2395,69 +2395,74 @@ msgstr "Versioon teadmata"
 msgid "Unable to get error description for error %d"
 msgstr "Ei suuda luua sihtkoha faili %s."
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Räsin"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Lõpetatud"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Valmis"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Peatatud"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Vigane"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Ootan"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Pead defineerima mittetühja parooli."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Vigane parool, pole MD5 kontrollsumma!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Ühenduse viga"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "EC ühendus ebaõnnestus. Tühi vastus."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Väline Ühendus: Vigane vastus, kätlemine ebaõnnestus. Ühendus suletud."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Õnnestus! Ühendus aMulaga loodud "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Õnnestus! Ühendus loodud."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Väline Ühendus: Ligipääs keelatud sest: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Väline Ühendus: Kätlemine ebaõnnestus."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Automaatne värskendamine on käivitatud"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: Ok."
@@ -2466,16 +2471,16 @@ msgstr "ListenSocket: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "VIGA: Ei suuda kuulata TCP porti."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "VIGA: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "HOIATUS: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Sulge"
 
@@ -2483,8 +2488,8 @@ msgstr "Sulge"
 msgid "Cut"
 msgstr "Lõika"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopeeri"
 
@@ -2493,7 +2498,7 @@ msgid "Paste"
 msgstr "Aseta"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Puhasta"
 
@@ -2503,7 +2508,7 @@ msgstr "Vali kõik"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2580,7 +2585,7 @@ msgid "ServerIP: "
 msgstr "ServeriIP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Pole ühendust"
 
@@ -2615,7 +2620,7 @@ msgstr "Online Allkiri: Lubatud"
 msgid "Online Signature: Disabled"
 msgstr "Online Allkiri: Keelatud"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Elus juba: %s"
@@ -2656,7 +2661,7 @@ msgstr "Peida aMule"
 msgid "Show aMule"
 msgstr "Näita aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Välju"
 
@@ -2738,7 +2743,7 @@ msgstr "Otsing"
 msgid "Name:"
 msgstr "Nimi:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tüüp"
 
@@ -2766,38 +2771,38 @@ msgstr "Filtreerimine"
 msgid "File Type"
 msgstr "Faili tüüp"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Suvaline"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archiwum"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Muusika"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-Image"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Pildid"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programmid"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Tekst"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Filmid"
 
@@ -2818,11 +2823,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2850,7 +2855,7 @@ msgstr "Tulemus peeglisse"
 msgid "Hide Known Files"
 msgstr "Vaata faile"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Alusta"
 
@@ -2907,7 +2912,7 @@ msgstr "Täis nimi :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2931,7 +2936,7 @@ msgstr "Osafaili staatus :"
 msgid "Last seen complete :"
 msgstr "Viimati nähtud tervikuna :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Liiklus"
 
@@ -3019,27 +3024,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Faili kavliteet"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Pole hinnatud"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Vigane / Vigastatud / Pole õige"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Halb"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Hea"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Keskpärane"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Väga hea"
 
@@ -3084,7 +3089,7 @@ msgid "Userhash :"
 msgstr "Kasutaja kontrollsumma :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Lisa"
 
@@ -3314,9 +3319,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Lehitse"
 
@@ -3405,7 +3410,7 @@ msgstr "Maksimaalselt samaaegseid ühendusi:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3528,7 +3533,7 @@ msgstr "Sisesta siia vähim soovitud kettaruum"
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Salvesta haruldaste failide 10 allikat (< 20 allikat)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Saatmised"
 
@@ -3770,7 +3775,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Luba UPnP pordisuunamist EC pordile"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Parool"
 
@@ -3852,8 +3857,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Vali praegu valitud kategooriale värv :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Algväärtusta"
 
@@ -4251,83 +4256,88 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Võimalda inimkieelne Veajälitus-Logimine"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "Ava Fail"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Saadetav teade:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Ootan..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Lisa imporditavad"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Proovi valitutega uuesti"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Eemalda valitud"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Sündmuse tüübid"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Statistika ja järjekorras kliendid valitud faili(de) kohta : Sessioon / Kokku"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Aktiivsed saatmised"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Protsenti kogufailidest"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Kõik failid"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Valitud failid"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Ainult aktiivsed saatmised"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Näita Kliente"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Taaslae:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Lae oma jagatud failid uuesti"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Saada"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Saada määratud teade."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Sulge see vestlus-seanss."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Ühendu suvalise serveri ja/või Kad võrguga"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Jagatud failid"
 
@@ -4336,135 +4346,135 @@ msgstr "Jagatud failid"
 msgid "Disabled [%s]"
 msgstr "Eemaldatud [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "baiti"
 msgstr[1] "baiti"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "baiti/sek"
 msgstr[1] "baiti/sek"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sek"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "tundi"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "päev(a)"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "kõik"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "kõik teised"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Poolik"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Peatatud"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Film"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arhiiv"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Tekst"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktiivne"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Kasutan seadete kataloogi: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Ootan osafaili konverteerimise lõime suremist ..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Impordin %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Loen ajutist kataloogi"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Hangin põhiinformatsiooni tõmmatavast infofailist"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Loon sihtkohafaili"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Laen vanast tõmbamisefailist andmeid (%u %u-st)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Salvestan andmeblokki uude, üksikusse tõmbamisefaili (%u %u-st)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Hanging allika tõmmatavate failide informatsiooni"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Lisan tõmbamise ja salvestan osafili"
 
@@ -4480,12 +4490,12 @@ msgstr "Olek"
 msgid "Filehash"
 msgstr "Faili kontrollsumma"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Ketas: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4493,12 +4503,12 @@ msgstr ""
 "Palun vali ajutiste tõmbamiste otsingu kataloog (alamkataloogid kuuluvad ka "
 "siia)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Kas soovid õnnestunult imporditud tõmmatud failide allikad kustutada?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Eemaldan allikaid?"
 
@@ -4608,7 +4618,7 @@ msgstr "Osafailil %s (%s) on kehtetu toitefail"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "VIGA osafaili toitefaili lugemisel (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4623,39 +4633,39 @@ msgstr[1] ""
 "Leidsin riknenud osa (%d) %d osast fail '%s' - Arvutatud Kontrollsumma |%s| "
 "Saadetud Kontrollsumma |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Leitud lõpetatud osa (%i)  %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "'%s' faili kontrollsumma arvutamine lõpetatud"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Ootamatu viga %s lõpetamisel. Fail peatatud"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Faili '%s' tõmbamine lõpetatud"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Kustutan faili: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "HOIATUS: Ei suuda tõmmatud osale arvutada kontrollsummat - kontrollsumma on "
 "mittetäielik '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4664,231 +4674,231 @@ msgstr ""
 "VIGA: ei suuda tõmmatud osale arvutada kontrollsummat- kontrollsumma on "
 "mittetäielik(%s). Seda ei tohiks kunagi juhtuda."
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "HOIATUS: Pole piisavalt vaba kettaruumi! Pausin faili: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Tõmmatud osa %i on failis %s vigane"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Taastatud riknenud osa %i %s jaoks -> Päästsin: %s baiti"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Eraldamine"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Ebapiisav kettaruum"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Allalaetud"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "VIGA: Osafaili '%s' avamine ebaõnnestus"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Süsteemi vaikeväärtus"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albaania"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Araabia"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturia"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baski"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgaaria"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Kataloonia"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Hiina (Lihtsustatud)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Hiina (Traditsiooniline)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Kroaatia"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Tšehhi"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Taani"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Hollandi"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Inglise (U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Eesti"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Soome"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Prantsuse"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galiitsia"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Saksa"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Kreeka"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Heebrea"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Ungari"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Itaalia"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Itaalia (Shveits)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Jaapani"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Korea"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Leedu"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norra"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Poola"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugali"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugali (Brasiilia)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Vene"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Sloveenia"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Hispaania"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Rootsi"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Türgi"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukraina"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Muuda keel"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Info puudub"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "valikud puuduvad"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Leidsin vigase kategooria, ignoreerin"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr "TCP port ei saa olla suuerm kui 65532, sest serveri UDP soket on TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Kasutan vaikimisi porti (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Eemaldan olematu jagatud kataloogi: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Ühendus"
 
@@ -4896,7 +4906,7 @@ msgstr "Ühendus"
 msgid "Directories"
 msgstr "Kataloogid"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Serverid"
 
@@ -4950,7 +4960,7 @@ msgstr ""
 "   %PARTFILE - fail täis rada\n"
 "   %PARTNAME - faili nimi"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4966,30 +4976,30 @@ msgstr ""
 "aMule toimib ilusasti ilma siinolevaid seadeid muutmata\n"
 "You Are WARNED!!."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Widgeti ühendamine Cfg'a, kasutades ID %d ja võtit %s, ebaõnnestus"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 "Andmete ülekandmine Cfg'st Widget'isse, kasutades ID %d ja võtit %s, "
 "ebaõnnestus"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Selle puhverserveri tüüp kuhu sa ühendud"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 "Andmete ülekandmine Widgetist Cfg'sse, kasutades ID %d ja võtit %s, "
 "ebaõnnestus"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -4997,27 +5007,32 @@ msgstr ""
 "Nende muudatuste jõustamiseks pead aMUle taaskäivitama:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP port muudetud.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP port muudetud.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Välisühenduse port on muutunud.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Välisühenduse luba on muudetud.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Välisühenduse liides muutunud.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protokolli Hämamine"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5025,7 +5040,7 @@ msgstr ""
 "Sinu automaane serverinimekirja värskendamise loetelu on tühi.\n"
 "Käivitamisel serverinimekirja automaatselt ei uuendata."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5033,19 +5048,19 @@ msgstr ""
 "Lülitasid sisse välised ühendused kuid ei määranud parooli.\n"
 "Väliseid ühendusi ei saa enne kehtiva parooli määramist kasutada."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Keel on muudetud.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Ajutiste failide kataloog on muudetud.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- ED2K võrk on lubatud.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5053,7 +5068,7 @@ msgstr ""
 "Mõlemad, nii eD2k kui ka Kad võrgud on mitteaktiivsed.\n"
 "Sa ei saa ühenduda enne, kui vähemalt üks neist on aktiivne."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5061,7 +5076,7 @@ msgstr ""
 "Kad ei saa käivitada kuni UDP port on väljalülitatud.\n"
 "Lülita UDP port sisse, või Kad välja."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5071,7 +5086,7 @@ msgstr ""
 "Sa PEAD aMule nüüd taaskäivitama.\n"
 "Kui sa seda ei tee siis ära tänita kui midagi paha juhtub.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5081,41 +5096,41 @@ msgstr ""
 "Palun sisesta vähemalt üks server.met faili asukoha kehtiv URL.\n"
 "URL sisestamiseks kliki nupule 'Loend'."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Ajutised failid"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Saabuvad failid"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Online Allkirjad"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Vali %s kataloog"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Otsi filmi taasesitamise programmi"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Vali lehitseja (browser)"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Käivitusprogramm%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Muuda serverite nimekirja"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5123,76 +5138,76 @@ msgstr ""
 "Lisa siia server.met faili(de) laadimise URL.\n"
 "Üks URL rea kohta."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Värskenduse viide: %d sekundit"
 msgstr[1] "Värskenduse viide: %d sekundit"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Keskmiste graafiku aeg: %d minutit"
 msgstr[1] "Keskmiste graafiku aeg: %d  minutit"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Ühenduse graafiku skaala: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Failipuhvri suurus: %d baiti"
 msgstr[1] "Failipuhvri suurus: %d baiti"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Saatmise Saba suurus: %d klienti"
 msgstr[1] "Saatmise Saba suurus: %d klienti"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Serveri ühenduse värskendamise intervall: %d minutit"
 msgstr[1] "Serveri ühenduse värskendamise intervall: %d minutit"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Serveri ühenduse värskendamise intervall: Ei kasuta"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "keelatud"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Käivita käsk peale '%s' sündmust"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Luba käskude käivitamine tuumas"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Tuumkäsk:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Luba käskude käivitamine GUI's"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "GUI Käsk:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Järgnevad muutujad asendatakse:"
 
@@ -5220,7 +5235,7 @@ msgstr "eD2k otsing pole võimalik kui eD2k pole ühendatud"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Ootamatu viga proovides Kad otsingut: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "FailiID"
 
@@ -5331,7 +5346,7 @@ msgstr "VIGA: Vigane socket aegumise kontrollil"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Serveriga '%s (%s:%i)' ühendumise katsed aegusid."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Saabus DNS päringu hilinenud vastus, ignoreerin."
 
@@ -5360,50 +5375,50 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Server.met fail on riknenud, leidsin vigase versiooni sildi: 0x%x, suurus %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "Failis server.met on %i serverit"
 msgstr[1] "Failis server.met on %i serverit"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d server lisatud"
 msgstr[1] "%d server(it) lisatud"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "IO viga %s faili lugemisel: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Serverit ei lisatud: [%s:%d] ei määra kehtivat porti."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Serverit ei lisatud: [%s:%d] IP aadress on filtris või vigane."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr "Serverit ei lisatud: Sama server IP:Port [%s:%d] on juba loetelus."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Lisati server: Server [%s:%d] kasutab nime *%s*."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5411,25 +5426,25 @@ msgstr ""
 "Sa oled serveriga, mida soovid kustutada, ühenduses. Palun katkesta ühendus. "
 "Serverit ei kustutatud."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Ei suuda avada '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Ei saanud salvestada server.met faili!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Vigane URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Serverite nimekirja tõmbamine aadressilt %s lõpetatud"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5438,30 +5453,30 @@ msgstr ""
 "kehtiv serveri nimekirja asukoha aadress sellesse faili, vastasel juhul "
 "nimekirja automaatset värskendamist ei toimu."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Tõmba serverite nimekiri aadressilt %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "HOIATUS: vigane URL on määratud serverinimekirja automaatseks "
 "värskendamiseks: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "addresses.dat failis pole kehtivat server.met faili automaatse tõmbamise "
 "URL'i"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Serverite nimekirja tõmbamine aadressilt %s ebaõnnestus"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5497,7 +5512,7 @@ msgid "Static"
 msgstr "Staatiline"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versioon"
 
@@ -5523,8 +5538,8 @@ msgstr "Oled kindel et tahad kustutada staatilise serveri %s"
 msgid "Servers (%i)"
 msgstr "Servereid (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Server"
 
@@ -5580,82 +5595,82 @@ msgstr "Oled kindel et tahad valitud serveri kustutada?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Oled kindel et tahad valitud serverid kustutada?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "VIGA: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "HOIATUS: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Uus kliendi ID %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "HOIATUS: Said omale Low-ID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tTõenäolisem põhjus on sinu asumine tulemüüri või ruuteri 'taga'."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tTäpsemat informatsiooni leiad http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Saabus tundmatu serveriinfo! - liiga lühike"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Sain %d uut serverit"
 msgstr[1] "Sain %d uut serveri nime"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Serverite loetelu salvestamine lõpetatud."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Server lükkas viimase korralduse tagasi"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Tüngapakett saabus serverist: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Defineerimatu viga serverist %s saabunud paketi töötlemisel"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Ei suuda luua DNS lõime serveriga %s ühendumiseks"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Server IP %s (%s) on filtris. Ei ühenda."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "kasutan protokolli hämamist"
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Ühendun %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Ei suuda masina %s dns nime lahendada: Ei saa ühenduda!"
@@ -5835,84 +5850,89 @@ msgstr "Kohalik faili nimi"
 msgid "Shares File List"
 msgstr "Jagatud failid"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Päringuid"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Aktsepteeritud päringuid"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Siiratud andmed"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Jagamise suhe"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Saadud osi"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Täielikke allikaid"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Kataloogi asukoht"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Lisa Kommentaar/Hinnang"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Muuda Kommentaari/Hinnangut"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Nimeta ümber"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Lisa failid ülekantavate failide loetellu"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopeeri magnet &URI lõikepuhvrisse"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Kopeeri eD2k link lõikepuhvrisse (Allika&s)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Kopeeri eD2k link lõikepuhvrisse (Allikas)(&Koos Krüpto seadetega)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Kopeeri eD2k link lõikepuhvrisse (&Hostinimi)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "Kopeeri eD2k link lõikepuhvrisse (Hostinimi)(Koos &Krüpto seadetega)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Kopeeri eD2k link lõikepuhvrisse (&AICH info)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopeeri eD2k link lõikepuhvrisse (&AICH info)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Allika lingi loomiseks pead omama HighID'd."
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Jagatud failid (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[FailiOsa]"
 
@@ -5920,235 +5940,235 @@ msgstr "[FailiOsa]"
 msgid "Remote File Name"
 msgstr "Kaugfaili nimi"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Saadetud andmeid (Seansil (Kokku)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Raisatud Kokku (pakette): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Raisatud faili päringuid (pakette): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Raisatud allikavahetusi (pakette): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Raisatud Servereid (pakette): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Raisatud Kad (pakette): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Krüpteerimise ulatus (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Aktiivsed saatmised: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Ootel saatmised: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Kokku õnnestunud saatmisi: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Kokku ebaõnnestunud saatmisi: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Keskmine saatmise aeg: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Tõmmatud Andmed (Seansil (Kokku)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Leitud allikaid: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Aktiivsed tõmbamised (tükid): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Seanss ÜL:AL suhe (Kokku): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Keskmine tõmbamise kiirus (Sessioon): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Keskmine saatmise kiirus (Sessioon): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Maksimaalne tõmbamise kiirus (Sessioon): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Maksimaalne saatmise kiirus (Sessioon): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Ühenduse taastumised: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Aeg alates esimesest saatmisest: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Ühendatud serveriga alates: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktiivseid ühendusi (hinnang): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Saavutati maksimaalne arv ühendusi: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Keskmiselt ühendusi (hinnang): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Suurim ühenduste arv (hinnang): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Kliendid"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Tundmatu: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtreeritud: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Blokeeritud: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Kokku: %i Tuntuid: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Töötavad serverid: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Ebaõnnestunud serverid: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Kokku: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Kustutatud serverid: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Filtreeritud serverid: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Kasutajaid töötavail servereil: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Faile töötavail servereil: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Kokku kasutajaid: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Kokku faile: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Serveri hõivatus: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Jagatud failide arv: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Jagatud failide suurus kokku: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Keskmine faili suurus: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Operatsioonisüsteem"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Pole vastu võetud"
 
@@ -6205,7 +6225,7 @@ msgstr "Pole korrektne number\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Pole kehtiv kontrollsumma (pikkus peab olema täpselt 32 märki)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Päring ebaõnnestus tundmatu vea tõttu."
 
@@ -6259,13 +6279,13 @@ msgstr "Ühendatud %s %s %s"
 msgid "Now connecting"
 msgstr "Ühendun"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "tulemüüriga"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6691,21 +6711,21 @@ msgstr ""
 "See on vananenud/aegunud käsk ja võidakse tulevikus eemaldada.\n"
 "Selle asemel kasuta '%s'.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule tekstiline klient"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Konverteerin vanad '%s' AICH kontrollsummad 64b '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "HOIATUS: Fail ninega '%s' on vigane ja nimetatati ringi '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6778,7 +6798,7 @@ msgstr "Käsu '%s' käivitamine '%s' sündmuse puhul ebaõnnestus"
 msgid "Download completed"
 msgstr "Tõmbamine lõpetatud"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Faili asukoht koos täieliku rajaga."
 
@@ -6798,67 +6818,67 @@ msgstr "Faili suurus baitides."
 msgid "Cumulative download activity time."
 msgstr "Kumuleeruv tõmbamise aeg."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Uus vestlussession alustatud"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Teate saatja."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Pole enam ruumi"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Ketta partitsioon."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Viga lõpetamisel"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Töötlen faili number %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 "Soovisid osade kontrollsummasid (Kasutatakse ainult failidel mis on > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Faili pole olemas !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, aMule eD2k lingilooja"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Ohoo, rõõm sind näha!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Sisendparameetrid"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Räsitav fail"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Lisa selle faili alternatiivsed URL'id"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Sisesta siia fail, millele soovid luua eD2k linki"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6866,96 +6886,96 @@ msgstr ""
 "Sisesta siia see URL mida soovid eD2k lingile lisada: Lisa / lõppu, et "
 "aLinkCreator lisaks sellele faili nime"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Eemalda"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Loo link osa-kontrollsummadega"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
 "Aita suurenenud lingi hinnaga uusi ja haruldasi faile kiiremini levitada."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 Faili kontrollsumma"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k Faili kontrollsumma"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k link"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Salvesta"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Kopeeri lõikepuhvrisse"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Ava"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Ava fail tema eD2k lingi loomiseks"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Kopeeri arvutatud eD2k link lõikepuhvrisse"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Salvesta kui"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Salvesta arvutatud eD2k link faili"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "aLinkCreator'ist"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Vali fail, mille eD2k linki soovid arvutada"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Ei suuda lõikepuhvrit avada"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Praeguseks hetkeks pole midagi kopeerida !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Vali fail mille eD2k lingi arvutasid"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Ei suuda avada "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Palun sisesta mittetühi faili nimi"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Pole midagi praeguseks hetkeks salvestada !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6975,158 +6995,162 @@ msgstr ""
 "\n"
 "Jaotatakse GPL litsentsi järgselt"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Räsin..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator toimib sinu jaoks"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Arvutan MD4 räsi..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Arvutan eD2k räsi..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Tühistatud !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Tehtud %.2f sekundiga"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Oled juba selle URL lisanud !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Palun sisesta mittetühi URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Ei suuda %s avada"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i päev(a) %i tundi %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uP %02ut %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02ut %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, aMule Online Statistika"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Suurim Tõmbamine alates wxCas käivitamisest"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Absoluutselt suurim Tõmbamine wxCas eelmistest käivitamistest"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Süsteem"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Peata Automaatne Värskendus"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Salvesta Ühenduse Statistiline pilt"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Trüki Ühenduse Statistiline pilt"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Seaded"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "wxCas Info"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Käivita automaatne värskendamine"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Automaatne värskendamine on peatatud"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Automaatne värskendamine on käivitatud"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Salvesta Statistika"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule Online Statistika"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7134,11 +7158,11 @@ msgstr ""
 "Tekkis viga printimisel.\n"
 "Võibolla pole su printer korralikult seadistatud?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Trükin"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7156,323 +7180,323 @@ msgstr ""
 "\n"
 "Jaotatakse GPL litsentsi järgselt"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule ei tööta ..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule töötab"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule töötab aga ühendus on katkestatud"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule ühendub..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, aMule olek on teadmata..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " on toimetanud juba "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " on seiskunud !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " pole ühendatud !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " ühendub..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " teeb midagi imelikku, kontrolli !!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " on ühendatud  "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "väljas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " baseerub "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " koos "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Kokku Tõmbamisi: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Saatmine: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Seansil Tõmmatud: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Tõmbamine: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Saatmine: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Jagamine: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " faili, Klienti järjekorras: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Kellaaeg: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " on "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Süsteemi koormuse keskmised (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Süsteem on elus juba: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "amulesig.dat fail asukoht"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Siia sisesta kataloog kus asub sinu amulesig.dat fail"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Värskendamise intervall sekundites"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Genereeri igal värskendamisel staatiline pilt"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Kataloog, kuhu soovid salvestada genereeritud staatilised pildid"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Saada perioodiliselt oma stat fail FTP serverisse"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP Url"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP asukoht"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Sisesta siia oma FTP serveri URL"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Sisesta siia FTP serveri kataloog kuhu paigutada staatilised pildid"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Kasutaja"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Sinu kasutajanimi FTP serverisse logimiseks"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Sinu parool FTP serverisse logimiseks"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP värskendamise intervall minutites"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Kinnita/kontrolli"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Sinu allkirjafaili asukoha kataloog"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Genereeritud statistiliste piltide kataloog"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Laeb malli <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "WEB serveri HTTP port"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Kasuta UPnP pordisuunamist webserveri portide suunamiseks"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP port"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Kasuta gzip pakkimist"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Webserveri täieliku ligipääsu parool"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Webserveri külalise (guest) parool"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Luba külalise (guest) ligipääs"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Keela külalise (guest) ligipääs"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Lae/salvesta webserveri parameetrid eemal-asuvast/asuvasse aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule seadetefaili asukoht. ÄRA KASUTA OTSE!!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Ära kasuta PHP interpretaatorit (aegunud)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Loo PHP lehed iga päringu puhul uuesti"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule WebServer"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "web kliendi ühenus lubatud\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "VIGA: ei luba web kliendil ühenduda\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Päring ebaõnnestus, põhjus: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Indeksfaili ei leidnud: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Seanss on aegunud - vajalik uuestilogimine\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Seanss ok, sisselogitud\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Seanss ok, pole sisselogitud\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Pole avatud seanssi - nõuan logimist\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Seanss loodud - nõuan logimist\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Töötlen päringut [algupärane]:"
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Ilma paroolita logimine pole lubatud."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Kontrollin parooli\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Parooli kontrollsumma vigane\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Parool ok\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Parool, paha\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Sa ei sisestanud parooli. Tühja prooli kasutamine pole lubatud.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Nõuti väljalogimist\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Töötlen päringut [ümbersuunatud]: "
 
diff --git a/po/eu.po b/po/eu.po
index c458e98..d8be28a 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: eu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-11-04 23:17+0100\n"
 "Last-Translator: Piarres Beobide <pi at beobide.net>\n"
 "Language-Team: Euskara <librezale at librezale.org>\n"
@@ -39,44 +39,44 @@ msgstr "Emandako erabiltzaile egiaztapena ez da baliozkoa!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Huts ED2KLinks fitxategia irekitzerakoan."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 "KONTUZ: Ezin duzu zure burua ezarri eD2k lotura batean Id baxua duzunean."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Orain, aplikazio nagusia ixten..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "'%ld' pid-a duen amuleweb instantzia amaitzen ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "'%ld' pid-a duen amuleweb instantzia hiltzen ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Huts egin du"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule irteten: Muina ixten."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "aMule itzaltzea osaturik."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "aMule ixtearen memoria arazte irteera:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -84,16 +84,16 @@ msgstr ""
 "\n"
 "EC konfigurazioa"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Pasahitza ezarria eta kanpo konexioak gaiturik."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "OHARRA"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -101,13 +101,13 @@ msgstr ""
 "Zure lokalak sistemako lehenetsira aldatu dira konfigurazio aldaketa bat "
 "dela eta. Barkatu."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Argb"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -115,16 +115,16 @@ msgstr ""
 "Ez duzu zerbitzaririk zerbitzari zerrendan.\n"
 "aMulek zerrenda berri bat orain deskargatzea nahi al duzu?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Zerbitzari zerrenda deskargatu"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "web zerbitzaria abiarazirik %d pid-arekin"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -134,23 +134,23 @@ msgstr ""
 "da exekutatu. Mesedez instalatu amule web zerbitzaria duen paketea edo "
 "konpilatu ezazu amule --enable-webserver erabilian eta make install egin"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ERROREA"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Ezin da atakak ezarritako helbidean ireki: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "%u ataka ez dago eskuragarri. IDBaxua izango duzu\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -166,11 +166,11 @@ msgstr ""
 "Egiaztatu zure sarea ataka sarrera eta irteerarako irekirik dagoela "
 "ziurtatzeko."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Huts online sinadura fitxategia sortzerakoan"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Huts aMule online sinadura fitxategia sortzerakoan"
 
@@ -222,133 +222,133 @@ msgstr ""
 "Zuk aukeratutako sinadura karpeta BALIOGABEA da!\n"
 " Lehenespenak konpondu artean lineako sinadura EZGAITU egingo da."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Zerbitzari ostalari-izena notifikatua"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Disko aurresleipenak huts egin du '%s' fitxategiarentzat: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ERROREA: ezin da erregistro fitxategia ireki"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "ABISUA: erregistro fitxategia hutsik dago. Zerbait oker dago."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Erregistroa berrezarri egin da"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "ZerbitzariMezua: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "%s-ren deskarga baztertua, eskatutako fitxategia ez da berria eta."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Huts egin du nodo zerrenda deskargatzerakoan."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Huts egin du"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Hondaturiko bertsio arakatze fitxategia"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Zaharkiturik dagoen aMule bertsio bat erabiltzen ari zara!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Zure aMule bertsioa %i.%i.%i da eta azken bertsioa %li.%li.%li da"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Azken bertsioa beti http://www.amule.org webgunean aurki daiteke"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "OHARRA: Zure aMuled bertsioa zaharkiturik dago: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Zure aMule kopia zaharkiturik dago."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Huts bertsio arakatze fitxategia deskargatzerakoan"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Erab: %s | Fitx: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Erab: E: %s K: %s | Fitx: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Ez dago sarerik hautatuta"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "IDBaxuarekin"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "IDAltuarekin"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "%s %s-ra konektaturik"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "%s-ra konektatzen"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "eD2k-tik deskonektatua"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad abiarazirik."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad gelditurik."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Kad-era Konektatuta (ondo)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Kad-era Konektatuta (suebakirik)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Kad-etik deskonektatua"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -356,11 +356,11 @@ msgstr ""
 "Kad sarea ezin da erabili hobespenetan UDP ataka ezgaiturik badago, ez da "
 "abiaraziko."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad sarea hobespenetan ezgaiturik, ez da konektatuko."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -372,7 +372,7 @@ msgstr ""
 "abiarazi edo ezarri \"AcceptExternalConnections\" gakoa 1 balioaz ~/.aMule/"
 "amule.conf fitxategian"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -386,19 +386,19 @@ msgstr ""
 "aMule/amule.conf fitxategian. Exekutatu amule --ec-config banderarekin "
 "pasahitza ezartzeko. Argibide gehiago http://wiki.amule.org gunean"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: Abioan - ordularia abiarazten"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: bigarren planoan lanean - ikusten gaituk"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Ezin da Pid fitxategia sortu"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ERROREA: %s"
@@ -483,9 +483,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Mezua"
 
@@ -493,7 +493,7 @@ msgstr "Mezua"
 msgid "aMule dialog destroyed"
 msgstr "aMule elkarrizketa suntsitua"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Konektatzen"
 
@@ -527,7 +527,7 @@ msgstr "Kad: Itzalia"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Utzi"
 
@@ -544,7 +544,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Deskonektatu konektatutako sareetatik"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Konektatu"
 
@@ -585,7 +585,7 @@ msgstr "Irteera berrespena"
 msgid "Launch Command: "
 msgstr "Abiarazi komandoa: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- lehenetsia -"
 
@@ -600,80 +600,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "ABISUA: Ezin da '%s' azal fitxategia irakurri"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Sareak"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Sare leihoa"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Bilaketak"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Bilaketa leihoa"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Deskargak"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Deskargak leihoa"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Partekatutako fitxategiak"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Partekatutako fitxategi leihoa"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Mezuak"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Mezu leihoa"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Estatistikak"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Estatistika grafiko leihoa"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Hobespenak"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Hobespen ezarpen leihoa"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Inportatu"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Zati fitxategi inportazio tresna"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Honi buruz"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Honi buruz/Laguntza"
 
@@ -693,7 +693,7 @@ msgstr "Sarerik ez"
 msgid "aMule remote control"
 msgstr "aMule urruneko kontrola"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -705,108 +705,108 @@ msgstr "Errore konponezina: Akats ordutegi nagusia sortzerakoan"
 msgid "Connect to remote amule"
 msgstr "Urruneko amulera konektatu"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Errore konponezina: Akats ilara ordutegia sortzerakoan"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Gertaera begizta batera joaten..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Konektatzen..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Konexioak huts egin du "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Urruneko interfaze KK gertaera kudeatzailea"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Itzaltzen"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Konexioak huts egin du. Ezin da %s-ra konektatu:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Konexioa itxita - aMule itxi egin da ziurrenik."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Prest"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Guztiak"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Ezin da '%s' direktorioa sortu '%s' kategoriarentzat, '%s' direktorioa "
 "mantenduko da."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Ezezaguna"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Huts '%s' erabiltzailearen partekatutako fitxategiak jasotzerakoan"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Laguna bilatzen id-baxu konexiorako"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Gezurrezko eMule bertsioa %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Gezurrezko eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Gezurrezko eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (eMule v0.%u-tan oinarriturik)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Ezizena: %s ID-a: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Eskaerak: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -818,7 +818,7 @@ msgstr[1] ""
 "Fitxategi estatistikak saio honentzat. Onarturik %d - %d eskakizunetik, %s "
 "transferiturik\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -830,7 +830,7 @@ msgstr[1] ""
 "Fitxategi estatistikak saio guztientzat: Onarturik %d %d eskakizunetik, %s "
 "transferiturik\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Fitxategi ezezaguna eskaturik"
 
@@ -980,12 +980,12 @@ msgid "Client Details"
 msgstr "Bezero xehetasunak"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "IDBaxua"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "IDAltua"
 
@@ -1037,35 +1037,35 @@ msgstr "Egiaztaturik: Ondo"
 msgid "Not Available"
 msgstr "Ez dago erabilgarri"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "%s (%u) erabiltzaileak zure partekatutako fitxategi zerrenda eskatu du -> "
 "Onartua"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "%s (%u) erabiltzaileak zure partekatutako fitxategi zerrenda eskatu du -> "
 "Ukatua"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "%s (%u) erabiltzaileak zure partekatutako direktorioen zerrenda eskatu du -> "
 "Onarturik"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "%s (%u) erabiltzaileak zure partekatutako direktorioen zerrenda eskatu du -> "
 "Ukaturik"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1073,7 +1073,7 @@ msgstr ""
 "%s (%u) erabiltzaileak '%s' direktorioaren partekatutako fitxategi zerrenda "
 "eskatu du -> Onartua"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1081,38 +1081,38 @@ msgstr ""
 "%s (%u) erabiltzaileak '%s' direktorioaren partekatutako fitxategi zerrenda "
 "eskatu du -> Ukatua"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "%s (%u) erabiltzailearen '%s' partekatutako direktorioa"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 "%s (%u) erabiltzailea eskatu gabeko partekatutako direktorioak bidali ditu."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "%s (%u) erabiltzaileak '%s' direktorioko partekatutako fitxategi zerrenda "
 "bidali du"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 "%s (%u) erabiltzaileak partekatutako fitxategi zerrenda bidaltzeaz bukatu du"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 "%s (%u) erabiltzaileak eskatu gabeko partekatutako fitxategi zerrenda bidali "
 "du"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1129,7 +1129,7 @@ msgstr "Erabiltzaile izena"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Fitxategi izena"
 
@@ -1172,33 +1172,33 @@ msgstr "Auto [Nor]"
 msgid "Auto [Hi]"
 msgstr "Auto[Alt]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Oso txikia"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Baxua"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normala"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Altua"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Oso Altua"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Bertsioa"
 
@@ -1215,12 +1215,12 @@ msgid "Queue Full"
 msgstr "Ilara Osoa"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Ilaran"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Deskargatzen"
 
@@ -1280,7 +1280,7 @@ msgstr "Zerbitzari lokala"
 msgid "Remote Server"
 msgstr "Urruneko zerbitzaria"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1306,7 +1306,7 @@ msgid "Search Result"
 msgstr "Bilaketa emaitza"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Amaitua"
 
@@ -1347,11 +1347,11 @@ msgid "Part"
 msgstr "Zatia"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Tamaina"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Transferituta"
 
@@ -1364,17 +1364,17 @@ msgid "Progress"
 msgstr "Egoera"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Jatorriak"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Lehentasuna"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Egoera"
@@ -1399,7 +1399,7 @@ msgstr "Ziur zaude aukeratutako fitxategia ezabatu nahi duzula?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Ziur zaude aukeratutako fitxategia ezabatu nahi duzula?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1409,7 +1409,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1461,11 +1461,11 @@ msgstr "Erakutsi iruzkin guztiak"
 msgid "Copy magnet URI to clipboard"
 msgstr "Kopiatu URI magnetikoa arbelera"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Kopiatu eD2k &lotura arbelera"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Kopiatu berrelikadura arbelera"
 
@@ -1481,24 +1481,24 @@ msgstr "Ezarri kategoria bat"
 msgid "&Open the file"
 msgstr "&Ireki fitxategia"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Sar izen berri bat fitxategi honentzat:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Fitxategia berrizendatu"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Deskargak (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1507,11 +1507,11 @@ msgstr ""
 "ezarri zure bideo erreproduzigailu gogokoena hobespen leihoan (lehenetsia "
 "mplayer da)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Fitxategi aurreikuspena"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1620,28 +1620,28 @@ msgstr "Pasahitz zuria dela eta kanpo konexioak ezgaiturik!"
 msgid "External connections disabled in config file"
 msgstr "Kanpo konexioak ezgaiturik konfigurazio fitxategian"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Kanpo konexio berri bat onartu da"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ERROREA: ezin da kanpo konexio berria onartu"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Hobespenetan pasahitza zurian dela eta kanpo konexioak ukaturik!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Bezerora konektatzen: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Bertsio ezezaguna"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1649,7 +1649,7 @@ msgstr ""
 "Okerreko bertsio ID-a, bitar bateratze ezintasuna dago. Erabili urruneko eta "
 "nagusi bertsio berdina."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1657,175 +1657,175 @@ msgstr ""
 "Ezin zara argitaratutako bertsio batetara konektatu edozein garapen "
 "bertsiotik! *ikusi* apurketa aukera saihestua"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Protokolo bertsio baliogabea."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Protokolo bertsio marka falta da."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 "Autentifikazio errorea: okerreko egiaztapena ezarri da EC pasahitz gisa."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Egiaztapenak huts egin du: okerreko pasahitza."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Egiaztapenak huts egin du: pasahitza falta da."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Eskakizun baliogabea, mesedez identifikatu aurretik."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Sarrera onartua."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "\"%s\" errore mezua bezerora bidalia."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Baimendu gabeko sarrera saiakera %s-tik. Konexioa itxia."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Urruneko ZatiFitxategi komandoak huts egin du: Ez da %s fitxategi "
 "egiaztapena aurkitu"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Ez da %s fitxategi egiaztapena aurkitu"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OOPS! OpCode prozesu errorea!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Zerbitzaria ez da gehitu"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "ez da zerbitzaria aurkitu: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "ezabatzeko zerbitzaria ezarri behar da"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k ezgaiturik dago hobespenetan."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Bilaketa bidean. Emaitzak emango une batean!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Urruneko interfazeko Web bilaketak ez du zentzurik."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Ez dago punturik grafikoarentzat."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Zure bezeroa ez dago xehetasun maila honetarako konfiguraturik."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Kanpo konexioa: itzaltzea eskatuta"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Dagoeneko irteten."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "KanpoKonexioa: '%s' lotura gehitzen."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Lotura baliogabea edo zerrendan dagoeneko."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Fitxategia ez da aurkitu."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Fitxategi izen baliogabea."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Ezinda fitxategia berrizendatu."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad ezgaiturik dago hobespenetan."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Dagoeneko eD2k-ra konektaturik."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "ed2k-era konektatzen..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Dagoeneko Kad-era konektaturik."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Kad-era konektatzen..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Sare guztiak ezgaiturik daude."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "eD2k-tik deskonektatua."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Kad-etik deskonektaturik."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Kanpo Konexioa: okerreko opcode-a jasoa: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Opcode baliogabea (okerreko protokolo bertsioa?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "'%s' luzapen ezezaguna '%s' komandoarentzat.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "'%s' komando ezezaguna.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1833,7 +1833,7 @@ msgstr ""
 "\n"
 "Komando honek ezin du argumenturik eduki.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1841,7 +1841,7 @@ msgstr ""
 "\n"
 "Komando honek argumentu bat eduki behar du.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1849,7 +1849,7 @@ msgstr ""
 "\n"
 "Komando hau osotu gabe dago, beheko luzapen hauetako bat erabili dezakezu.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1857,11 +1857,11 @@ msgstr ""
 "\n"
 "Gehigarri erabilgarriak:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Komando erabilgarriak:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1872,17 +1872,17 @@ msgstr ""
 "Komando guztietan berdin da maiuskula/minuskula.\n"
 "Idatzi '%s <komandoa>' <komandoa>-ri buruzko xehetasunak ikusteko.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Aplikaziotik ateratzen da."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Laguntza bistarazi."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1890,7 +1890,7 @@ msgstr ""
 "Komando bati buruz laguntza jasotzeko, idatz ezazu 'help <komandoa>'.\n"
 "Komandoen zerrenda osoa eskuratzeko, 'help' idatzi.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1901,48 +1901,48 @@ msgstr ""
 "Erabili '%s' komando zerrendarentzako\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Sintaxi errorea!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Errorea komandoa prozesatzekoan - Ez zen inoiz pasa beharko! Mesedez "
 "zorriaren berri eman\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Komando honek ez luke parametrorik eduki beharko."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Komando honek parametro bat eduki beharko luke."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argumentu baliogabea."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Hau komando osatugabe bat da."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Sakatu '%s' laguntza gehiagorako.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Hau %s %s %s da\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Hau %s %s da\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1950,7 +1950,7 @@ msgstr ""
 "\n"
 "Bezeroa sortzen...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1959,7 +1959,7 @@ msgstr ""
 "\n"
 "Ados, %s uzten...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1973,49 +1973,49 @@ msgstr ""
 "\n"
 "Irteten...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Laguntza testu hau bistarazi."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "aMule abiarazirik duen ostalaria. (lehenetsia: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Kanpo konexioetarako aMuleren ataka. (Lehenetsia 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Kanpo konexio pasahitza."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Konfigurazio fitxategitik irakurri."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Ez ezer bistarazi irteera estandarrean."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Luze - arazten mezuak ere bistarazi."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Programa lokala (hizkuntza) ezarri."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Idatzi komando lerroko aukerak konfigurazio fitxategira."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 "aMuleren konfigurazio fitxategian oinarriturik konfigurazio fitxategia "
 "sortzen du."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Programa bertsioa bistarazi."
 
@@ -2028,8 +2028,8 @@ msgstr "Fitxategi xehetasunak"
 msgid "%.1f%% done"
 msgstr "%.1f%% egina"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2047,7 +2047,7 @@ msgstr "Huts 'emfriends.met' lagun zerrenda fitxategia idazteko irekitzean!"
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "KRITIKOA - ez dago bezerorik StartChatSession-en"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Lagunak"
 
@@ -2175,21 +2175,21 @@ msgstr "Deskargatzeko URLa ezin da hutsik egon"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "%s URL-aren erantzuna: %i - Errorea (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Errore larria deskargatutako fitxategia idazterakoan"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "%d byte deskargaturik"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "%d byte espero ziren, baina %d deskargatu dira"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2197,11 +2197,11 @@ msgstr ""
 "Okerreko URLa HTTP deskarga edo HTTP berbideraketarako ('http://' ahaztu al "
 "duzu?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Ezin da HTTP deskarga zerbitzaria konektatu"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Okerreko erantzuna HTTP deskarga zerbitzaritik"
 
@@ -2233,7 +2233,7 @@ msgstr "%s behar bezala eguneratu da"
 msgid "Error updating GeoIP.dat"
 msgstr "Huts GeoIP.dat deskargatzean"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Huts %s %s-tik deskargatzean"
@@ -2280,7 +2280,7 @@ msgstr[1] "Gaizki eratutako %u lerro alde batetara utzi dira."
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Huts %s fitxategi berria berrizendatzean, eguneraketa baztertzen."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP iragazkia presta dago"
 
@@ -2297,47 +2297,47 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nodoak (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Abiarazteko ip baliogabea"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Abiarazteko ataka baliogabea"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Beharrezko eremu guztiak bete"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Ziur zaude nodes.dat fitxategi berri bat deskargatu nahi duzula?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Hau eginez zure nodo zerrenda ezabatu eta Kademlia konexioa berrabiaraziko "
 "da."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Jarraitu?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: bilaketa gako laburregia"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Bilatzeko gakoa: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: Bilaketa gakoa dagoeneko bilaketa zerrendan dago: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2345,22 +2345,22 @@ msgstr ""
 "Huts nodes.dat fitxategia irakurtzean - zaharregia. Bertsioa hau (0) ez da "
 "luzaroago onartzen."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Irakurri Kad kontaktu %u"
 msgstr[1] "Irakurri %u Kad kontaktu"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Ez da kontakturik aurkitu, mesedez autoabiatu edo deskargatu nodes.dat "
 "fitxategi bat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
@@ -2368,39 +2368,39 @@ msgstr[0] "Bakarrik Kad kontaktu %d dago eskuragarri, nodes.dat ez da idatziko"
 msgstr[1] ""
 "Bakarrik %d Kad kontaktu daude eskuragarri, nodes.dat ez da idatziko"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Idatzi Kad kontaktu %d"
 msgstr[1] "Idatzi %d Kad kontaktu"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Fitxategia"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Fitxategi tamaina"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Partekatze erlazioa"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Igoa"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Eskatutakoa"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Onartua"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Jatorri osoak"
 
@@ -2431,71 +2431,76 @@ msgstr "%d errore ezezaguna"
 msgid "Unable to get error description for error %d"
 msgstr "Ezin da %d errorearen azalpena eskuratu"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Aztertzen"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Osotzen"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Amaitua"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Geraturik"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Akasdun"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Zain"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Pasahitz ez zuri bat ezarri behar duzu."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Pasahitz baliogabea, ez da MD5 egiaztapena!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Konexio errorea"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "EC konexioa huts egin du. Erantzun hutsa."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Kanpo konexioa: Okerreko erantzuna, esku-emateak huts egin du. Konexioa "
 "itxirik."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Lortua! Amulera konexioa sortua "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Lortua! Konexioa sortua."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Kanpo konexioa: Sarrera ukatze arrazoia: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Kanpo Konexioa: Esku-emateak huts egin du."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "HTTP deskarga haria hasia"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: Ondo."
@@ -2504,16 +2509,16 @@ msgstr "ListenSocket: Ondo."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ERROREA: Ezin da TCP ataka entzun."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ERROREA: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "OHARRA: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Itxi"
 
@@ -2521,8 +2526,8 @@ msgstr "Itxi"
 msgid "Cut"
 msgstr "Ebaki"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopiatu"
 
@@ -2531,7 +2536,7 @@ msgid "Paste"
 msgstr "Itsatsi"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Garbitu"
 
@@ -2541,7 +2546,7 @@ msgstr "Hautatu dena"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2618,7 +2623,7 @@ msgid "ServerIP: "
 msgstr "ZerbitzariIP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Konektatu gabe"
 
@@ -2653,7 +2658,7 @@ msgstr "Linean sinadura: Gaituta"
 msgid "Online Signature: Disabled"
 msgstr "Linean sinadura: Ezgaitua"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Abiarazia: %s"
@@ -2694,7 +2699,7 @@ msgstr "aMule ezkutatu"
 msgid "Show aMule"
 msgstr "aMule erakutsi"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Irten"
 
@@ -2779,7 +2784,7 @@ msgstr "Bilatu"
 msgid "Name:"
 msgstr "Izena:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Mota"
 
@@ -2807,38 +2812,38 @@ msgstr "Iragazten"
 msgid "File Type"
 msgstr "Fitxategi mota"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Edozein"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Konprimituak"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audioa"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-irudiak"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Irudiak"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programak"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Testuak"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Bideoak"
 
@@ -2859,11 +2864,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2891,7 +2896,7 @@ msgstr "Emaitza alderantzikatu"
 msgid "Hide Known Files"
 msgstr "Fitxategi ezagunak ezkutatu"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Hasi"
 
@@ -2949,7 +2954,7 @@ msgstr "Izen osoa :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "E/G"
 
@@ -2973,7 +2978,7 @@ msgstr "Fitxategi zati egoera :"
 msgid "Last seen complete :"
 msgstr "Azkenez osorik ikusia :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transferentzia"
 
@@ -3061,27 +3066,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Fitxategi kalitatea"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Kalifikatu gabea"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Baliogabe / Apurturik / Gezurra"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Pobrea"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Oso ona"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Ondo"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Hobezina"
 
@@ -3128,7 +3133,7 @@ msgid "Userhash :"
 msgstr "Erabiltzaile aztertze zenbakia :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Gehitu"
 
@@ -3360,9 +3365,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Arakatu"
 
@@ -3450,7 +3455,7 @@ msgstr "Aldibereko konexioa muga:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3571,7 +3576,7 @@ msgstr "Ezarri hemen nahi duzu disko toki txikiena."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "10 jatorri gorde fitxategi arraroentzat (< 20 jatorri)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Igoerak"
 
@@ -3814,7 +3819,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "UPnP berbideraketa gaitu EC atakan"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Pasahitza"
 
@@ -3896,8 +3901,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Hautatu kolorea kategoria honentzat (unean aukeratutakoa) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Garbitu"
 
@@ -4292,82 +4297,87 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Gaitu arazten luzeko saio hasiera."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Ireki fitxategia"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Mezu kategoriak:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Zain..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Gehitu"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Berriz saiatu hautaturikoak"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Ezabatu hautaturikoak"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Gertaera motak"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr "Hautako fitxategientzat estatistika eta bezero ilara: Saioa / osotara"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Igoera aktiboak"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "fitxategi guztien ehunekoa"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Fitxategi guztiak"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Hautatutako fitxategiak"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Igoera aktiboak bakarrik"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Erakutsi bezeroak:"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Berritu:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Berritu zure partekatutako fitxategiak"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Bidali"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Zehaztutako mezua bidali."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Itxi elkarrizketa saio hau."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Konektatu edozein zerbitzari eta/edo Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Partekatutako fitxategiak"
 
@@ -4376,135 +4386,135 @@ msgstr "Partekatutako fitxategiak"
 msgid "Disabled [%s]"
 msgstr "Ezgaitua [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "byte"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "A"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/seg"
 msgstr[1] "byte/seg"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "seg"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "ordu"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Egunak"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "denak"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "Beste denak"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Amaitugabea"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Gelditua"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Bideoa"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Fitxategia"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Testua"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Martxan"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Konfigurazio direktorioa: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Zati-fitxategiak aria bihurtzearen zain ixteko..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "%s inportatzen: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Aldiroko karpeta irakurtzen"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Deskarga fitxategiaren argibide oinarrizkoak eskuratzen"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Helburu fitxategia sortzen"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Deskarga fitxategi zaharretik Kargatzen (%u %u-tik)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Datu blokeak deskarga fitxategi berrian gordetzen (%u %u-tik)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Deskarga fitxategi argibide jatorria eskuratzen"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Deskarga gehitu eta zati fitxategi berria gordetzen"
 
@@ -4520,12 +4530,12 @@ msgstr "Egoera"
 msgid "Filehash"
 msgstr "FitxategiEgiaztapena"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Diskoa: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4533,14 +4543,14 @@ msgstr ""
 "Mesedez ezarri aldiroko fitxategiak bilatuko diren karpeta! (azpikarpetak "
 "ere arakatuko dira)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Behar bezala deskargaturiko fitxategien jatorri fitxategiak ezabatze nahi al "
 "duzu?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Ezabatu jatorriak?"
 
@@ -4658,7 +4668,7 @@ msgstr "%s (%s) zati fitxategiak ale fitxategi huts bat du"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Errorea zati-fitxategi hazi fitxategia irakurtzerakoan (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4673,39 +4683,39 @@ msgstr[1] ""
 "Hondaturiko zatia (%d) aurkitu da %d zatitan %s zati fitxategian - "
 "FitxategiEgiaztapenEmaitza |%s| fitxategiEgiaztapena |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Bukatutako (%i) zatia aurkiturik %s-n"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Amaitutako berrazterketa: %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Ustekabeko errorea %s osatzean. Fitxategia gelditurik"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Deskarga amaiturik: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "fitxategia ezabatzen:%s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "ABISUA: Ezinda deskargaturiko zatia egiaztatu - egiaztapen-bilduma osatugabe "
 "'%s'-rentzat"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4714,7 +4724,7 @@ msgstr ""
 "ERROREA: Ezin da deskargaturiko zatia egiaztatu - egiaztapen-bilduma "
 "osatugabea (%s). Hau ez zen inoiz gertatu beharko"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4723,223 +4733,223 @@ msgstr ""
 "Egiaztapenean fitxategi amaiera deskargaturiko %2$u tamaina duen %1$u zatian "
 "(geh. %3$u) %5$u tamaina duen '%4$s' zati-fitxategian: %6$s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "KONTUZ: Diskoa leku askieza! Fitxategia gelditzen: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Deskargaturiko %i zatia hondaturik dago fitxategi honetan: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Hondaturiko %i zatia %s-rena -> Gordetako byte-ak: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Esleitzen"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Disko leku askieza"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Deskargatua"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ERROREA: Huts '%s' zati fitxategia irekitzean"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Sistema lehenetsia"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albaniera"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabiera"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Bablea"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Euskara"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgariera"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalana"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Txinatarra (Sinplea)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Txinatarra (ohizkoa)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Kroaziera"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Txekiera"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Daniera"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Nederlandera"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Ingelesa (E.B.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estoniera"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandiera"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Frantsesa"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galiziera"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Alemana"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Grekoa"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebreera"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Hungariera"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiera"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiera (Suitzarra)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japoniera"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Koreera"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituaniera"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norvegiera (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Poloniera"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugesa"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugesa (Brasildarra)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Errusiera"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Esloveniera"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Gaztelera"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Suediera"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turkiera"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukraniera"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Aldatu hizkuntza"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr "Ez dago aMulerentzat itzulpen instalaturik"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr "Ez dago hizkuntza erabilgarririk"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "ez dago aukera erabilgarririk"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Kategoria baliogabe aurkitua, baztertzen"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr "TCP ataka ezin da 65532 baino altuagoa izan UDP socket-a TCP+3 bait da"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Lehenetsiriko ataka erabiliko da (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Kentzen ez-dagoen partekatutako direktorioa: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Konexioa"
 
@@ -4947,7 +4957,7 @@ msgstr "Konexioa"
 msgid "Directories"
 msgstr "Direktorioak"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Zerbitzariak"
 
@@ -5001,7 +5011,7 @@ msgstr ""
 "    %PARTFILE - fitxategiaren bide osoa\n"
 "    %PARTNAME - fitxategi-izena soilik"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5017,26 +5027,26 @@ msgstr ""
 "Amulek ondo funtzionatu beharko luke ezarpen\n"
 "hauek aldatu gabe."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Huts %d IDa eta %s gakoaz konfiguraziotik programara konektatzean"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "Huts %d IDa eta %s gakoaz konfiguraziotik programara datuak bidaltzean"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Konektatzen ari zaren Proxy-aren mota"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "Huts %d IDa eta %s gakoaz programatik konfiguraziora datuak bidaltzean"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5044,27 +5054,32 @@ msgstr ""
 "aMule berrabiarazi egin behar da aldaketa hauek gaitu ahal izateko:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP ataka aldaturik.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP - ataka aldaturik.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Kanpo konexio ataka aldatua.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Lanpo konexio onarpena aldatua.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Kanpo konexio interfazea aldatua.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protokolo nahastea"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5072,7 +5087,7 @@ msgstr ""
 "Auto-eguneraketa zerbitzari zerrenda hutsa dago.\n"
 "'Auto-eguneratu zerbitzari zerrenda abioan' ezgaitu egingo da."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5080,19 +5095,19 @@ msgstr ""
 "Kanpo konexioak gaiturik dituzu baina ez duzu pasahitzik ezarri.\n"
 "Kanpo konexiorik ezin da onartu baliozko pasahitza ezarri arte."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Hizkuntza aldaturik.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Aldiroko karpeta aldaturik.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- ED2K sarea gaiturik.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5100,7 +5115,7 @@ msgstr ""
 "Bai eD2k eta bai Kad sareak ezgaiturik daude.\n"
 "Ezingo zara konektatu behintzat bietako bat gaitu arte."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5108,7 +5123,7 @@ msgstr ""
 "Kad ezin da abiarazi zure UDP ataka ezgaiturik badago.\n"
 "UDP ataka gaitu edo Kad ezgaitu."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5118,7 +5133,7 @@ msgstr ""
 "aMule orain berrabiarazi BEHAR duzu.\n"
 "Orain ez berrabiaraziaz gero ez kexatu ezer txarra gertatzen bada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5128,41 +5143,41 @@ msgstr ""
 "Mesedez bete behintzat baliozko server.met fitxategi batetara zuzenduaz.\n"
 "Klikatu \"zerrenda\" botoia URL-a sartzeko."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Aldi baterako fitxategiak"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Sarrera fitxategiak"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Linean sinadurak"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Aukeratu karpeta bat %s-rentzat"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Arakatu bideo erreproduzigailua"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Hautatu nabigatzailea"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Abiarazgarria%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Editatu zerbitzari zerrenda"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5170,76 +5185,76 @@ msgstr ""
 "Gehitu hemen server.met deskargatzeko URL-a.\n"
 "URL helbide bat lerro bakoitzean."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Eguneratze maiztasuna: seg %d"
 msgstr[1] "Eguneratze maiztasuna: %d seg"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Batez besteko grafiko denbora: minutu %d"
 msgstr[1] "Batez besteko grafiko denbora: %d minutu"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Konexio grafiko eskala: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Fitxategi buffer tamaina: byte %d"
 msgstr[1] "Fitxategi buffer tamaina: %d byte"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Igoera ilara tamaina: bezero %d"
 msgstr[1] "Igoera ilara tamaina: %d bezero"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Zerbitzari konexio berritze maiztasuna: minutu %d"
 msgstr[1] "Zerbitzari konexio berritze maiztasuna: %d minutu"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Zerbitzarira konexio berritze maiztasuna: Ezgaiturik"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "ezgaiturik"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Gertaeran'%s' komandoa exekutatu"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Gaitu komando exekuzioa muinean"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Muin komandoa:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Gaitu komando exekuzioa urruneko interfazean"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Urruneko interfaze komandoa:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Hurrengo aldagaiak aldatuko dira:"
 
@@ -5269,7 +5284,7 @@ msgstr "Ezin da eD2k bilaketarik egin eD2k ez badago konektaturik"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Espero gabeko errorea Kad bilaketa egitean: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "FitxategiID"
 
@@ -5386,7 +5401,7 @@ msgstr "ERROREA: Socket baliogabea denbora-muga egiaztapenean"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "%s (%s:%i) -ra konexio saiakera denboraz kanpo geratu da."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Zaharkitutako DNS galdeketa erantzuna, baztertzen."
 
@@ -5416,53 +5431,53 @@ msgstr ""
 "Server.met fitxategia hondaturik dago, bertsio marka baliogabea aurkitu da: "
 "0x%x, tamaina %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "zerbitzari %i aurkiturik server.met fitxategian"
 msgstr[1] "%i zerbitzari aurkiturik server.met fitxategian"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "zerbitzari %d gehiturik"
 msgstr[1] "%d zerbitzari gehiturik"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Errorea: 'server.met' fitxategia hondatua dago: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "SI errorea 'server.met' fitxategia irakurtzean: "
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Zerbitzaria ez da gehitu: [%s:%d] -ek ez du baliozko atakarik ezarri."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 "Zerbitzaria ez da gehitu: [%s:%d] -ren IP helbidea iragazirik dago edo "
 "baliogabea da."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Zerbitzaria ez da gehitu: [%s:%d] IP:Ataka dun zerbitzaria aurkitu da "
 "zerrendan."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Zerbitzaria gehiturik: [%s:%d] zerbitzaria '%s' izena erabiltzen."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5470,25 +5485,25 @@ msgstr ""
 "Konektaturik zauden zerbitzaria ezabatu nahi duzu. Mesedez deskonektatu "
 "lehenik."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Huts '%s' irekitzerakoan"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Huts server.met gordetzerakoan!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "URL Baliogabea"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Amaituta zerbitzari zerrenda %s-tik deskargatzeaz"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5497,28 +5512,28 @@ msgstr ""
 "Mesedez itsatsi zerbitzari zerrenda erabilgarri bat fitxategi honetan "
 "zerbitzari-zerrenda eguneratu ahal izateko"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Hasi zerbitzari zerrenda %s-tik deskargatzen"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr "OHARRA: URL baliogabea ezarri zerbitzari auto-eguneraketarako: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "Ez da baliozko server.met auto-deskarga url helbiderik aurkitu addresses.dat "
 "fitxategian"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Huts zerbitzari zerrenda %s-tik deskargatzerakoan"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5555,7 +5570,7 @@ msgid "Static"
 msgstr "Estatikoa"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Bertsioa"
 
@@ -5581,8 +5596,8 @@ msgstr "Ziur al zaude %s zerbitzari tinkoa ezabatu nahi duzula"
 msgid "Servers (%i)"
 msgstr "Zerbitzariak (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Zerbitzaria"
 
@@ -5638,82 +5653,82 @@ msgstr "Ziur zaude aukeratutako zerbitzaria ezabatu nahi duzula?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Ziur zaude aukeratutako zerbitzariak ezabatu nahi dituzula?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ERROREA: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "ABISUA: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Bezero id berria: %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "ABISUA: ID baxua jaso duzu!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tZiurrenik firewall edo router baten atzean zaudelako izan daiteke."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tArgibide gehiagorako begiratu http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Zerbitzari argibide ezezaguna jasoa! - laburregia"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Zerbitzari berri %d jasoa"
 msgstr[1] "%d zerbitzari berri jasoak"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Zerbitzari zerrenda gordetzeaz amaitu da."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Zerbitzariak azken komandoa ukatu du"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Hondaturiko pakete bat jaso da zerbitzaritik: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Errore kudeaezina zerbitzariko paketea prozesatzekoan: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Ezin da DNS ebazpen hari bat sortu %s-ra konektatzeko"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "%s (%s) IP-dun zerbitzaria iragazirik dago.  Ez dago konektatzen."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "protokolo nahastea erabiltzen."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Konektatzen: %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Ezin da %s zerbitzariaren dns-a ebatzi: Ezin da konektatu!"
@@ -5891,84 +5906,89 @@ msgstr "Fitxategi lokalaren izena"
 msgid "Shares File List"
 msgstr "Partekatutako fitxategi zerrendak"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Eskaerak"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Onartutako eskaerak"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Transferitutako datuak"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Partekatze erlazioa"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Eskuratutako zatiak"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Jatorri osoak"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Karpeta bidea"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Iruzkina/Kalifikazioa gehitu"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Iruzkina/Kalifikazioa editatu"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Izena aldatu"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Gehitu fitxategiak bildumara zerrenda bidaltzeko"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopiat&URI magnetikoa arbelera"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Kopiatu eD2k lotura arbelera (&Jatorria)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Kopiatu eD2k lotura arbelera (Jatorria) (&zifratu aukerekin)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Kopiatu eD2k lotura arbelera (&ostalaria)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "Kopiatu eD2k lotura arbelera (ostalaria) (&zifratu aukerekin)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Kopiatu eD2k lotura arbelera (&AICH argb)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopiatu eD2k lotura arbelera (&AICH argb)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "ID altua behar duzu baliozko jatorri lotura bat sortzeko"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Partekatutako fitxategiak (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[ZatiFitxategia]"
 
@@ -5976,235 +5996,235 @@ msgstr "[ZatiFitxategia]"
 msgid "Remote File Name"
 msgstr "Urruneko fitxategiaren izena"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Igotako datuak (saioa (guztira)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Guztira buruak (paketeak): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Fitxategi eskakizun buruak (paketeak): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Jatorri aldaketa buruak (paketeak): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Zerbitzari buruak (paketeak): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kad buruak (paketeak): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Zifratu goiburua (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Igoera aktiboak: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Igoerak zain: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Guztira behar bezala igotako saioak: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Guztira oker igotako saioak: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Batez besteko igoera denbora: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Deskargaturiko datuak (saioa (guztira)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Aurkituriko iturburuak: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Deskarga aktiboak (zatiak): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Saio IG/DE abiadura (guztira): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Bataz besteko deskarga tasa (saioa): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Bataz besteko igoera tasa (saioa): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Gehienezko deskarga tasa (saioa): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Gehienezko igoera tasa (saioa): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Berkonexioak: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Denbora lehen transferentziatik: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Zerbitzaria noiztik konektatua: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Konexio aktiboak (estimazioa): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Gehienezko konexio mugara iritsi: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Batez besteko konexioak (ebaluazioa): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Puntako konexioak (estimazioa): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Bezeroak"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Ezezaguna: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Iragazirik: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Ukatuak: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Guztira: %i Ezagunak: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Zerbitzariak martxan: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Huts egindako zerbitzariak: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Guztira: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Ezabatutako zerbitzariak: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Iragaziriko zerbitzariak: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Erabiltzaileak - zerbitzariak martxan: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Fitxategiak - zerbitzariak martxan: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Guztira erabiltzaileak: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Guztira fitxategiak: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Zerbitzari lan karga %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Partekatutako fitxategi kopurua: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Guztira partekatutako fitxategi tamaina: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Bataz besteko fitxategi tamaina: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistema eragilea"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Ez Jasoa"
 
@@ -6266,7 +6286,7 @@ msgstr ""
 "Ez da baliozko egiaztapen bat (luzera zehazki 32 karakterekoa izan behar "
 "da)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Eskakizunak errore ezezagun batez huts egin du."
 
@@ -6320,13 +6340,13 @@ msgstr "%s %s %s-(e)ra konektaturik"
 msgid "Now connecting"
 msgstr "Ez konektatzen"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "suebakirik"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ondo"
 
@@ -6762,22 +6782,22 @@ msgstr ""
 "Hau zaharkituriko komando bat da eta etorkizunean ezabatu egin daiteke.\n"
 "Erabili '%s' horren ordez.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule testu bezeroa"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "'%s'-ko AICH egiaztapen zaharra 64b-ekoa bihurtzen '%s'-en."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "Oharra: '%s' fitxategi izena baliogabea da eta'%s' bezala berrizendatuko da."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6851,7 +6871,7 @@ msgstr "Huts `%s' komandoa `%s' gertaeran exekutatzean."
 msgid "Download completed"
 msgstr "Deskarga osatua"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Fitxategiaren bide osoa."
 
@@ -6871,68 +6891,68 @@ msgstr "Fitxategi tamaina byte-etan."
 msgid "Cumulative download activity time."
 msgstr "Batutako deskarga aktibitate denbora."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Elkarrizketa saio berria hasia"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Mezu bidaltzailea."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Ez dago lekurik"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Disko partizioa."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Errorea osatzean"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "%u zenbakidun fitxategia prozesatzen: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 "Zati egiaztapenak eskatu dituzu (9.5 MB baino fitxategi txikiagoekin "
 "bakarrik)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Fitxategia ez dago !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, aMuleren eD2k lotura sortzailea"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Ongietorria!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Sarrera parametroak"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Egiaztatzeko Fitxategia"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Gehitu aukerako URL gehiago fitxategi honentzat"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Sar hemen eD2k lotura konputatzea nahi duzun fitxategia"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6940,15 +6960,15 @@ msgstr ""
 "Sartu hemen eD2k loturara gehitzea nahi duzun URLa: Gehitu / amaieran "
 "aLinkCreator-ek uneko fitxategi izena gehitzeko"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Ezabatu"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Zati egiaztapenekin lotura bat sortu"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6956,81 +6976,81 @@ msgstr ""
 "Fitxategi berri eta arraroak zabaltzen laguntzen du, lotura tamaina "
 "handitzearen kostuarekin"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 fitxategi egiaztapena"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "MD4 fitxategi egiaztapena"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k lotura"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Gorde"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Kopiatu arbelera"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Ireki"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Ireki fitxategi bat bere eD2k lotura konputatzeko"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Kopiatu konputaturiko eD2l lotura arbelera"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Gorde honela"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Gorde konputaturiko eD2k lotura fitxategi batean"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "ALinkCreator-ri buruz"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Hautatu eD2k lotura konputatzea nahi duzun fitxategia"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Ezin da arbela ireki"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Kopiatzeko ezer ez oraingoz !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Hautatu eD2k lotura konputazioaren fitxategia"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Ezin da ireki "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Mesedez idatzi fitxategi izen bat"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Gordetzeko ezer ez oraingoz !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7050,158 +7070,162 @@ msgstr ""
 "\n"
 "GPL-pean banatua"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Aztertzen..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator zuretzat lanean dago"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "MD4 egiaztapena konputatzen..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "eD2k egiaztapena konputatzen..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Ezeztaturik !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "%.2f seg-etan egina"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "URL dagoeneko gehiturik duzu !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Mesedez idatzi zurian ez dagoen URL bat"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Ezin da %s ireki"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i egun %i ordu %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uE %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, amule Estatistika"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Deskarga abiadura handiena wxCas abiarazirik dagoenetik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Guztizko gehienezko deskarga abiadura wxCas aurreko abiarazteetan"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Auto berritzea gelditu"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Gorde estatistikak irudiak"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Inprimatu estatistika irudia"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Hobespen ezarpenak"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "WxCas-ri buruz"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Auto berritzea abiarazi"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Auto berritzea geraturik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Auto berritzea abiarazirik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Gorde estatistika Irudia"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule estatistikak"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7209,11 +7233,11 @@ msgstr ""
 "Arazo bat dago inprimatzerakoan.\n"
 "Agian zure inprimagailua ez dago behar bezala ezarririk?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Inprimatzen"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7231,324 +7255,324 @@ msgstr ""
 "\n"
 "GPL lizentziapean banaturik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule ez dago abiarazirik..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule abiarazirik dago"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule abiarazirik dago, baina deskonektaturik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule konektatzen ari da..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, aMule egoera ezezaguna da..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " noiz abiarazirik "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " gelditurik dago !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " ez dago konektaturik !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " konektatzen..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " zerbait arraroa egiten ari da, araka ezazu !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " hona konektaturik dago: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "deskonektaturik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " hona konektaturik "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " eta "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Deskargak guztira: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Igoerak: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Saio deskargak: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Deskargak: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Igoerak: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Partekatuak: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " fitxategia(k), bezero ilaran: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Denbora: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " - "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Sistema karga bataz-bestekoak (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Sistema noiztik abiarazirik: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "amulesig.dat fitxategia duen karpeta"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Idatzi zure amulesig.dat fitxategia dagoen karpeta izena"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Berritze aldia segundotan"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Sortu estatistika irudi bat berritze bakoitzean"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Idatzi hemen estatistika irudiak sortzea nahi duzun karpeta"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Igo aldiro zure estatistika irudia FTP zerbitzarira"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP Url-a"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP bidea"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Sar hemen zure FTP zerbitzariaren helbidea"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Idatzi hemen estatistika irudiak FTP zerbitzarian gordeko diren karpeta"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Erabiltzaile"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Idatzi hemen zure FTP zerbitzarian sartzeko erabiltzaile izena"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Idatzi hemen zure FTP zerbitzarian sartzeko pasahitza"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP igoera aldia minututan"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Egiaztatu"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Zure sinadura fitxategia duen karpeta"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Estatistika irudiak sortuko diren karpeta"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "<str> txantiloia kargatzen du"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Web zerbitzariaren HTTP ataka"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Erabili UPnP ataka berbideraketa web zerbitzari atakan"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP ataka"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Erabili gzip konpresioa"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Sarrera osoko pasahitza web zerbitzarirako"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Gonbidatu pasahitza web zerbitzarirako"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Gaitu gonbidatu sarrera"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Gonbidatu sarrera ezgaitu"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Kargatu/gorde web-zerbitzari ezarpenak urruneko aMule-tik/ra"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule konfigurazio fitxategi bidea. EZ ERABILI ZUZENEAN!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "PHP interpretea ezgaitu (zaharkiturik)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "PHP orrialdeak eskakizun bakoitzean birkonpilatu"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule web zerbitzaria"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "web bezero konexioa onartua\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "ERROREA: ezin da web bezero konexioa onartu\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Eskakizunak errore honez huts egin du: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Ez da index fitxategia aurkitu: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Saioa Iraungirik - saio hasiera eskatzen\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Saioa ondo, saioa hasirik\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Saioa ondo, saioa hasi gabe\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Ez dago saio irekirik - saio hasiera eskatuko da\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Saioa sorturik - saio hasiera eskatzen\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Eskakizuna prozesatzen [jatorrizkoa]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Ez da pasahitzik ezarri, ez da saioa hastea onartzen."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Pasahitz egiaztatzen\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Pasahitz egiaztapen baliogabea\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Pasahitza ondo\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Pasahitza oker\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Ez duzu pasahitzik idatzi. Ez da pasahitz zuria onartzen.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Saio amaiera eskakizuna\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Eskakizuna prozesatzen [birbidalia]: "
 
@@ -7740,9 +7764,6 @@ msgstr "Eskakizuna prozesatzen [birbidalia]: "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Guztira Erab: %s | Guztira Fitxategiak: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "HTTP deskarga haria hasia"
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr "Deskarga tamaina ez da jaso, konexioa itxi arte deskargatzen"
 
diff --git a/po/fi.po b/po/fi.po
index 2bb129b..7ef9d40 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: fi\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-11-11 10:38+0200\n"
 "Last-Translator: Tapio Rantala <tapio.rantala at iki.fi>\n"
 "Language-Team: aMule Team <http://www.amule.org>\n"
@@ -39,44 +39,44 @@ msgstr "Annettu käyttäjätarkiste ei ole kelvollinen!"
 msgid "Failed to open ED2KLinks file."
 msgstr "ED2KLinks-tiedoston avaus epäonnistui."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 "VAROITUS: Et voi lisätä itseäsi lähteeksi eD2k-linkkiin kun sinulla on LowID."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Pääohjelmaa suljetaan..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Lopetetaan amulewebin instanssi prosessinumerolla '%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Tuhotaan amulewebin instanssi prosessinumerolla '%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Epäonnistunut"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMulen poistuessa: Lopetetaan ydin."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "aMule sammutettu."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Muistin virheiden etsinnän tulokset aMulen sulkeutuessa:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -84,16 +84,16 @@ msgstr ""
 "\n"
 "Etäyhteyksien asetukset"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Salasana asetettu ja etäyhteydet sallittu."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "VAROITUS"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -101,13 +101,13 @@ msgstr ""
 "Maa-asetuksesi vaihdettiin järjestelmän oletuksiksi asetusmuutoksen takia. "
 "Pahoittelen."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -115,16 +115,16 @@ msgstr ""
 "Palvelinlistallasi ei ole palvelimia.\n"
 "Haluatko että aMule hakee uuden listan nyt?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Palvelinlistan lataus"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "web-palvelin käynnissä prosessinumerolla %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -135,23 +135,23 @@ msgstr ""
 "paketti tai käännä aMule käyttäen parametria --enable-webserver ja suorita "
 "make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "VIRHE"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Ei voitu sitoa portteja annettuun osoitteeseen: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Portti %u ei ole saatavilla. Sinulle annetaan LowID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -167,11 +167,11 @@ msgstr ""
 "Tarkista yhteytesi varmistaaksesi että portti on avoinna sekä ulos että "
 "sisään."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Online-Signeeraustiedoston luonti epäonnistui"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "aMulen Online-Signeeraustiedoston luonti epäonnistui"
 
@@ -224,133 +224,133 @@ msgstr ""
 "Online-Signeeraukselle asettamasi kansio ei ole kelvollinen!\n"
 " Online-Signeeraus kytketään pois päältä kunnes korjaat asian asetuksista."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Palvelimen verkkonimi ilmoitettu"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Levytilan esivaraus tiedostolle '%s' epäonnistui: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "VIRHE: Lokitiedostoa ei voida avata"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "VAROITUS: Lokitiedosto on tyhjä. Jotain on pielessä."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Loki nollattiin"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Palvelimen viesti: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "Hypättiin yli latauksesta %s, koska pyydetty tiedosto ei ole uudempi."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Yhteyspisteiden listan lataus epäonnistui."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Ladatun versiotarkistustiedoston avaus epäonnistui"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Turmeltunut versiotarkistustiedosto"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Käytät vanhentunutta versiota aMulesta!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Tämän aMulen versio on %i.%i.%i ja uusin versio on %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Uusin version löytyy aina osoitteesta http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "VAROITUS: aMulesi versio on vanhentunut: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "aMulesi on uusinta versiota."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Versiotarkistustiedoston lataus epäonnistui"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Käyttäjiä: %s | Tiedostoja: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Käyttäjiä: E: %s K: %s | Tiedostoja: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Ei valittuja verkkoja"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "LowID:llä"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "HighID:llä"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Yhdistetty %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Yhdistän %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "eD2k-yhteys katkaistu"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Käynnistettiin Kad."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Pysäytettiin Kad."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Yhdistetty Kadiin (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Yhdistetty Kadiin (palomuurattu)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Yhteys Kadiin katkaistu"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -358,11 +358,11 @@ msgstr ""
 "Kad-verkkoa ei voida käyttää mikäli UDP-portti on estetty asetuksissa, ei "
 "käynnistetä."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad-verkko estetty asetuksissa, ei yhdistetä."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -374,7 +374,7 @@ msgstr ""
 "käynnistämällä amuled parametrilla --ec-config tai asettamalla avain "
 "\"AcceptExternalConnections\" arvoon 1 tiedostossa ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -389,19 +389,19 @@ msgstr ""
 "asettaaksesi salasanan. Lisää tiedoa löytyy osoitteesta at http://wiki.amule."
 "org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: käynnistettäessä - käynnistän ajastimen"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: haaroitun taustalle - nähdään"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Ei voitu luoda prosessinumerotiedostoa"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "VIRHE: %s"
@@ -487,9 +487,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Viesti"
 
@@ -497,7 +497,7 @@ msgstr "Viesti"
 msgid "aMule dialog destroyed"
 msgstr "aMulen dialogi tuhottu"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Yhdistetään"
 
@@ -531,7 +531,7 @@ msgstr "Kad: Pois päältä"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Peruuta"
 
@@ -548,7 +548,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Katkaise yhteys yhdistettyihin verkkoihin"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Yhdistä"
 
@@ -589,7 +589,7 @@ msgstr "Lopettamisen varmistus"
 msgid "Launch Command: "
 msgstr "Suorita komento: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- oletus -"
 
@@ -604,80 +604,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "VAROITUS: Ei voida avata teematiedostoa '%s' luettavaksi"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Verkot"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Verkkoikkuna"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Haut"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Hakujen ikkuna"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Lataukset"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Latausten ikkuna"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Jaetut tiedostot"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Jaettujen tiedostojen ikkuna"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Viestit"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Viestien ikkuna"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Tilastot"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Tilastokuvaajien ikkuna"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Asetukset"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Asetuksien säätöikkuna"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Tuonti"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Osatiedostojen tuontityökalu"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Tietoja"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Tietoja/Ohje"
 
@@ -697,7 +697,7 @@ msgstr "Ei verkkoa"
 msgid "aMule remote control"
 msgstr "aMulen etähallinta"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -709,106 +709,106 @@ msgstr "Kriittinen virhe: Ytimen ajastimen luominen epäonnistui"
 msgid "Connect to remote amule"
 msgstr "Yhdistä etä-aMuleen"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Kriittinen virhe: Kyselyajastimen luominen epäonnistui"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Siirrytään tapahtumasilmukkaan..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Yhdistetään..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Yhdistäminen epäonnistui "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Graafisen etäkäyttöliittymän tapahtumakäsittelijä"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Suljen"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Yhdistäminen epäonnistui. Ei saatu yhteyttä %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Yhteys suljettu - aMule on varmaankin lopetettu."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Valmis"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Kaikki"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr "Ei voida luoda kansiota '%s' luokalle '%s', pidän kansion '%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Tuntematon"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Jaettujen tiedostojen listaus käyttäjältä '%s' ei onnistunut"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Etsitään kaveria lowid-yhteydelle"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Vale-eMule versio %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Vale-eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Vale-eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (pohjautuu eMule-versioon v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Nimimerkki: %s Tunnus: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Pyydetty: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -818,7 +818,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Tiedostotilasto tästä sessiosta: Hyväksytty %d / %d pyynnöstä, %s siirretty\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -830,7 +830,7 @@ msgstr[1] ""
 "Tiedostotilasto kaikista sessioista: Hyväksytty %d / %d pyynnöstä, %s "
 "siirretty\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Pyydetty tuntematonta tiedostoa"
 
@@ -978,12 +978,12 @@ msgid "Client Details"
 msgstr "Asiakkaan tiedot"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1035,27 +1035,27 @@ msgstr "Vahvistettu - OK"
 msgid "Not Available"
 msgstr "Ei saatavilla"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Käyttäjä %s (%u) kysyi listaa jaetuista tiedostoista -> Annettu"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Käyttäjä %s (%u) kysyi listaa jaetuista tiedostoista -> Estetty"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Käyttäjä %s (%u) kysyi listaa jaetuista kansioista -> Annettu"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Käyttäjä %s (%u) kysyi listaa jaetuista kansioista -> Estetty"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1063,7 +1063,7 @@ msgstr ""
 "Käyttäjä %s (%u) kysyi listaa jaetuista tiedostoista kansiossa '%s' -> "
 "Annettu"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1071,32 +1071,32 @@ msgstr ""
 "Käyttäjä %s (%u) kysyi listaa jaetuista tiedostoista kansiossa '%s' -> "
 "Estetty"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Käyttäjä %s (%u) jakaa kansion '%s'"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Käyttäjä %s (%u) lähetti jakolistan pyytämättä."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Käyttäjä %s (%u) lähetti listan jaetuista tiedostoista kansiossa '%s'"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Käyttäjän %s (%u) jaettujen tiedostojen lista on lähetetty"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Käyttäjä %s (%u) lähetti pyytämättä jaettujen tiedostojen listan"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1112,7 +1112,7 @@ msgstr "Käyttäjänimi"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Tiedoston nimi"
 
@@ -1155,33 +1155,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Ko]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Erittäin matala"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Matala"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normaali"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Korkea"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Erittäin korkea"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Julkaisu"
 
@@ -1198,12 +1198,12 @@ msgid "Queue Full"
 msgstr "Jono täynnä"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Jonossa"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Lataa"
 
@@ -1263,7 +1263,7 @@ msgstr "Paikallinen Palvelin"
 msgid "Remote Server"
 msgstr "Etäpalvelin"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1289,7 +1289,7 @@ msgid "Search Result"
 msgstr "Haun tulos"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Valmiina"
 
@@ -1330,11 +1330,11 @@ msgid "Part"
 msgstr "Osa"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Koko"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Siirretty"
 
@@ -1347,17 +1347,17 @@ msgid "Progress"
 msgstr "Edistyminen"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Lähteet"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Tärkeys"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Tila"
@@ -1382,7 +1382,7 @@ msgstr "Oletko varma että haluat poistaa valitun tiedoston?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Oletko varma että haluat poistaa valitut tiedostot?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1392,7 +1392,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automaattinen"
 
@@ -1444,11 +1444,11 @@ msgstr "Näytä kaikki kommentit"
 msgid "Copy magnet URI to clipboard"
 msgstr "Kopioi magnet-URI leikepöydälle"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Kopioi eD2k-&linkki leikepöydälle"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Kopioi palaute leikepöydälle"
 
@@ -1464,24 +1464,24 @@ msgstr "Luokittele"
 msgid "&Open the file"
 msgstr "Avaa tied&osto"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Anna uusi nimi tälle tiedostolle:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Tiedoston uudelleennimeäminen"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Lataukset (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1489,11 +1489,11 @@ msgstr ""
 "Estääksesi tämän varoituksen näyttämisen joka kerralla,\n"
 "aseta haluamasi videotoistin asetuksissa (oletuksena mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Tiedoston esikatselu"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "VIRHE: Ulkoista mediatoistinta ei voitu käynnistää! Komento: `%s'"
@@ -1601,28 +1601,28 @@ msgstr "Etäyhteydet kielletty sillä salasana on tyhjä!"
 msgid "External connections disabled in config file"
 msgstr "Etäyhteydet estetty asetustiedostossa"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Uusi etäyhteys hyväksytty"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "VIRHE: uutta etäyhteyttä ei voitu ottaa vastaan"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Etäyhteys torjuttu koska salasana on tyhjä asetuksissa!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Yhdistän asiakkaaseen: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Tuntematon versio"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1630,7 +1630,7 @@ msgstr ""
 "Epäkelpo etäversiotunniste, binäärinen epäyhteensopivuus on mahdollinen. "
 "Käytä ydintä ja etäpäätettä samasta vedoksesta."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1638,173 +1638,173 @@ msgstr ""
 "Et voi yhdistää julkaisuversioon mielivaltaisella kehitysversiolla! *huoh* "
 "mahdollinen kaatuminen estetty"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Väärä protokollaversio."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Puuttuva protokollan versiomerkintä."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr "Tunnistautuminen epäonnistui: etäyhteyssalasanan tarkiste on väärin."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Tunnistautuminen epäonnistui: väärä salasana."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Tunnistautuminen epäonnistui: salasana puuttui."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Epäkelpo pyyntö, tunnistaudu ensin."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Pääsy myönnetty."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Virheilmoitus \"%s\" lähetetty asiakkaalle."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Luvaton yhteysyritys osoitteesta %s. Yhteys suljettu."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Etäosatiedoston komento epäonnistui: Tiedostotarkistetta ei löytynyt: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Tiedostotarkistetta ei löytynyt: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "Hupsis! Komentosanan käsittelyvirhe!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Palvelinta ei lisätty"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "palvelinta ei löytynyt: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "poistettava palvelin on määriteltävä"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k on poistettu käytöstä asetuksissa."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Haku on käynnissä. Nouda tuloksia kohta uudelleen!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Verkkohaku etäliittymästä ei ole mielekästä."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Ei pisteitä kaavioon."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Asiakasohjelmaasi ei ole asetettu tälle tarkkuustasolle."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Etäyhteys: sulkemista pyydetty"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Sulkeminen on jo käynnissä."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Etäyhteys: lisään linkkiä '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Virheellinen linkki tai se on jo listalla."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Tiedostoa ei löytynyt."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Epäkelpo tiedostonimi."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Tiedostoa ei voitu uudelleennimetä."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad on poistettu päältä asetuksissa."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "eD2k on jo yhdistetty."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Yhdistetään eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Kad on jo yhdistetty."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Yhdistetään Kadiin..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Kaikki verkot ovat pois päältä."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "eD2k-yhteys katkaistu"
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Kad-yhteys katkaistu."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Etäyhteys: vastaanotettiin epäkelpo komentosana: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Epäkelpo komentosana (väärä protokollaversio?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Tuntematon laajennos '%s' komennolle '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Tuntematon komento '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1812,7 +1812,7 @@ msgstr ""
 "\n"
 "Tälle komennolle ei voi antaa parametria.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1820,7 +1820,7 @@ msgstr ""
 "\n"
 "Tälle komennolle on annettava parametri.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1829,7 +1829,7 @@ msgstr ""
 "Tämä komento on puutteellinen, sinun on käytettävä jotakin alla olevista "
 "laajennoksista.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1837,11 +1837,11 @@ msgstr ""
 "\n"
 "Mahdolliset laajennokset:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Käytettävissä olevat komennot:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1852,17 +1852,17 @@ msgstr ""
 "Komennot eivät erottele isoja ja pieniä kirjaimia.\n"
 "Kirjoita '%s <komento>' saadaksesi lisätietoa komennosta.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Poistuu sovelluksesta."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Näyttää ohjeen."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1870,7 +1870,7 @@ msgstr ""
 "Saadaksesi ohjeen komennosta, kirjoita 'help <komento>'.\n"
 "Saadaksesi listan komennoista kirjoita 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1881,48 +1881,48 @@ msgstr ""
 "Käytä '%s' listataksesi komennot\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Syntaksivirhe!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Virhe käsiteltäessä komentoa - näin ei pitäisi tapahtua! Ole hyvä ja "
 "raportoi tästä\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Tämä komento ei tarvitse parametreja."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Tälle komennolle on annettava parametri."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Virheellinen parametri."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Komento on puutteellinen."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Kirjoita '%s' saadaksesi lisää ohjeita.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Tämä on %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Tämä on %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1930,7 +1930,7 @@ msgstr ""
 "\n"
 "Luon asiakasta...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1939,7 +1939,7 @@ msgstr ""
 "\n"
 "Ok, suljen %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1953,47 +1953,47 @@ msgstr ""
 "\n"
 "Suljen...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Näytä tämä ohje."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Verkkonimi koneelle jossa aMule on käynnissä. (oletus: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "aMulen portti etäyhteydelle. (oletus: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Etäyhteyden salasana."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Lue asetukset tiedostosta."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Älä tulosta mitään stdout:iin."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Ole monisanainen - näytä myös virheenetsintäviestit."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Asettaa ohjelman maa-asetukset (kielen)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Kirjoita komentoriviparametrit asetustiedostoon."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Luo asetustiedoston perustuen aMulen asetustiedostoon."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Näyttää ohjelman version."
 
@@ -2006,8 +2006,8 @@ msgstr "Tiedoston tiedot"
 msgid "%.1f%% done"
 msgstr "%.1f%% valmiina"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f KB/s"
@@ -2025,7 +2025,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "KRIITTINEN - ei asiakasta keskustelun aloituksessa"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Kaverit"
 
@@ -2153,21 +2153,21 @@ msgstr "Ladattava URL ei voi olla tyhjä"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "URL %s palautti: %i - Virhe (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Kriittinen virhe ladattua tiedostoa tallennettaessa"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "Ladattu %d tavua"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Odotettiin %d tavua, mutta ladattiin %d tavua"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2175,11 +2175,11 @@ msgstr ""
 "Epäkelpo URL HTTP lataukseen tai HTTP uudelleenohjaus (unohditko edestä "
 "'http://' ?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "HTTP-palvelimeen ei voitu yhdistää"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Epäkelpo vastaus HTTP-palvelimelta"
 
@@ -2211,7 +2211,7 @@ msgstr "Tiedoston %s päivitys onnistui"
 msgid "Error updating GeoIP.dat"
 msgstr "Virhe päivitettäessä GeoIP.dat-tiedostoa"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Tiedoston %s lataus osoitteesta %s epäonnistui"
@@ -2256,7 +2256,7 @@ msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 "Uuden tiedoston %s uudelleennimeäminen epäonnistui, keskeytän päivityksen."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP-suodatin on valmiina"
 
@@ -2273,47 +2273,47 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Yhteyspisteitä (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "IP ei kelpaa yhdistämisavuksi"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Portti ei kelpaa yhdistämisavuksi"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Ole hyvä ja täytä kaikki vaaditut kentät"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Oletko varma että haluat ladata uuden nodes.dat-tiedoston?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Tämä toiminto korvaa kaikki tunnetut yhteyspisteet ja uudelleenyhdistää "
 "Kademlian."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Jatketaanko?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: hakusana on liian lyhyt"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Avainsana hakuun: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: Hakusana on jo hakulistalla:"
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2321,20 +2321,20 @@ msgstr ""
 "Tiedoston nodes.dat luku epäonnistui sillä se liian vanha. Versio 0 ei ole "
 "enää tuettu."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Luettu %u Kad-kontakti"
 msgstr[1] "Luettu %u Kad-kontaktia"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr "Ei kontakteja, käytä yhdistämisapua tai hae nodes.dat-tiedosto."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
@@ -2342,39 +2342,39 @@ msgstr[0] "Vain %d Kad-kontakti saatavilla, tiedostoa nodes.dat ei tallennettu"
 msgstr[1] ""
 "Vain %d Kad-kontaktia saatavilla, tiedostoa nodes.dat ei tallennettu"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Kirjoitettu %d Kad-kontakti"
 msgstr[1] "Kirjoitettu %d Kad-kontaktia"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Tiedoston nimi"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Tiedostokoko"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Jakosuhde"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Lähetetty"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Pyydetty"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Hyväksytty"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Täysiä lähteitä"
 
@@ -2406,69 +2406,74 @@ msgstr "Tuntematon virhe %d"
 msgid "Unable to get error description for error %d"
 msgstr "Virheelle %d ei ole virhekuvausta"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Luo tarkistetta"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Viimeistelee"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Valmis"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Tauotettu"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Virheellinen"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Odottaa"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Salasana ei voi olla tyhjä."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Virheellinen salasana, ei MD5-tarkiste!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Yhdistäminen ei onnistunut"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Etäyhteysyritys epäonnistui. Vastaus oli tyhjä."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Etäyhteys: Epäkelpo vastaus, kättely epäonnistui. Yhteys suljettu."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Yhdistetty onnistuneesti kohteeseen aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Yhdistetty onnistuneesti."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Etäyhteys: Pääsy evättiin: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Etäyhteys: Kättely epäonnistui"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "HTTP-lataussäie käynnistetty"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "KuunteluPistukka: Ok."
@@ -2477,16 +2482,16 @@ msgstr "KuunteluPistukka: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "VIRHE: Ei voida kuunnella TCP-porttia."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "VIRHE: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "VAROITUS: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Sulje"
 
@@ -2494,8 +2499,8 @@ msgstr "Sulje"
 msgid "Cut"
 msgstr "Leikkaa"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopioi"
 
@@ -2504,7 +2509,7 @@ msgid "Paste"
 msgstr "Liitä"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Pyyhi"
 
@@ -2514,7 +2519,7 @@ msgstr "Valitse kaikki"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "KB/s"
@@ -2591,7 +2596,7 @@ msgid "ServerIP: "
 msgstr "Palvelin-IP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Ei yhdistetty"
 
@@ -2626,7 +2631,7 @@ msgstr "Online-Signeeraus: Käytössä"
 msgid "Online Signature: Disabled"
 msgstr "Online-Signeeraus: Pois päältä"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Päälläoloaika: %s"
@@ -2667,7 +2672,7 @@ msgstr "Piilota aMule"
 msgid "Show aMule"
 msgstr "Näytä aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Sulje"
 
@@ -2752,7 +2757,7 @@ msgstr "Etsi"
 msgid "Name:"
 msgstr "Nimi:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tyyppi"
 
@@ -2780,38 +2785,38 @@ msgstr "Suodatus"
 msgid "File Type"
 msgstr "Tiedostotyyppi"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Kaikki"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Pakatut"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Ääni"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-levykuvat"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Kuvat"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Ohjelmat"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Tekstiä"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Videot"
 
@@ -2832,11 +2837,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2864,7 +2869,7 @@ msgstr "Käännä tulos"
 msgid "Hide Known Files"
 msgstr "Piilota tunnetut tiedostot"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Käynnistä haku"
 
@@ -2921,7 +2926,7 @@ msgstr "Koko nimi :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "Ei saatavilla"
 
@@ -2945,7 +2950,7 @@ msgstr "Osatiedoston tila  :"
 msgid "Last seen complete :"
 msgstr "Viimeksi nähty kokonaisena :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Siirto"
 
@@ -3033,27 +3038,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Tiedoston laatu"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Ei luokitusta"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Epäkelpo / Turmeltunut / Väärennös"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Huono"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Kohtalainen"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Hyvä"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Erinomainen"
 
@@ -3100,7 +3105,7 @@ msgid "Userhash :"
 msgstr "Käyttäjätarkiste :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Lisää"
 
@@ -3332,9 +3337,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Selaa"
 
@@ -3425,7 +3430,7 @@ msgstr "Yhtäaikaisten yhteyksien enimmäismäärä:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3545,7 +3550,7 @@ msgstr "Syötä tähän levytila jonka haluat jättää vapaaksi."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Tallenna 10 lähdettä harvinaisille tiedostoille (< 20 lähdettä)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Lähetykset"
 
@@ -3787,7 +3792,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Kytke päälle UPnP-portinohjaus etäyhteysportissa"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Salasana"
 
@@ -3869,8 +3874,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Valitse väri tälle luokalle (valittuna) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Tyhjennä"
 
@@ -4270,84 +4275,89 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Käytä monisanaista lokiin kirjausta."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "Avaa tied&osto"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Viestien luokittelut:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Odottaa..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Lisää tuonteja"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Yritä uudelleen valittuja"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Poista valitut"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Tapahtumatyypit"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Tilastot ja jonottavat asiakkaat valitu(i)lle tiedosto(i)lle: Sessiossa / "
 "Yhteensä"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Aktiiviset lähetykset"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Prosenttia kaikista tiedostoista"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Kaikki tiedostot"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Valitut tiedostot"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Vain aktiiviset lähetykset"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Näytä asiakkaat"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Uudelleenlataa:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Uudelleenlataa jaetut tiedostot"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Lähetä"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Lähettää annetun viestin."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Sulje tämä keskustelu."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Yhdistä mihin tahansa palvelimeen ja/tai Kadiin"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Jaetut tiedostot"
 
@@ -4356,135 +4366,135 @@ msgstr "Jaetut tiedostot"
 msgid "Disabled [%s]"
 msgstr "Poissa käytöstä [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "tavu"
 msgstr[1] "tavua"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "KB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "tavu/s"
 msgstr[1] "tavua/s"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "s"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "m"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "tuntia"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "päivää"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "kaikki"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "kaikki muut"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Keskeneräinen"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Pysäytetty"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Pakattu"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Teksti"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktiivinen"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Asetuskansio: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Odotellaan osatiedostojen muuntosäikeen päättymistä..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Tuon %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Luen väliaikaiskansiota"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Haen perustietoja ladatusta tietopaketista"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Luon kohdetiedostoa"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Lataan tiedot vanhasta lataustiedostosta (%u %u:sta)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Tallennan datalohkon yhteen uuteen lataustiedostoon (%u %u:sta)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Haen lähdelataustiedoston tietoja"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Lisään latauksen ja tallennan uuden osatiedoston"
 
@@ -4500,12 +4510,12 @@ msgstr "Tila"
 msgid "Filehash"
 msgstr "Tiedostotarkiste"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Levy: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4513,14 +4523,14 @@ msgstr ""
 "Valitse kansio josta etsitään väliaikaislatauksia (alikansiot sisällytetään "
 "hakuun)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Haluatko että lähteenä käytetyt tiedostot poistetaan onnistuneen tuonnin "
 "jälkeen?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Poistetaanko lähteet?"
 
@@ -4633,7 +4643,7 @@ msgstr "Osatiedostolla %s (%s) on tyhjä lähdetiedosto"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Virhe luettaessa osatiedoston lähdetiedostoa (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4648,39 +4658,39 @@ msgstr[1] ""
 "Turmeltunut osa (%d) %d osasta tiedostossa %s - Tiedostotulostarkiste |%s| "
 "Tiedostotarkiste |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Valmis osa (%i) kohteessa %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Tarkiste uudelleenluotu: %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Odottamaton virhe viimeistellessä %s. Tiedosto tauotettu"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Lataus suoritettu: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Poistetaan tiedosto: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "VAROITUS: Ei voitu laskea tarkistetta ladatusta osasta - tarkistejoukko on "
 "puutteellinen kohteelle '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4689,7 +4699,7 @@ msgstr ""
 "VIRHE: Ei voitu luoda tarkistetta ladatulle osalle - tarkistejoukko on "
 "puutteellinen (%s). Näin ei pitäisi koskaan tapahtua."
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4698,226 +4708,226 @@ msgstr ""
 "Data loppui (EOF) luotaessa tarkistetta ladatulle osalle %u jonka pituus on %"
 "u (maksimi on %u) osatiedostosta '%s' jonka pituus on %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "VAROITUS: Levytilaa ei ole tarpeeksi! Tauotan tiedoston: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Ladattu osa %i on turmeltunut tiedostossa: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 "ICH: Ennallistettu turmeltunut osa %i kohteessa %s -> Säästetyt tavut: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Allokoidaan"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Riittämätön levytila"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Ladattu"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "VIRHE: Ei voida avata osatiedostoa '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Järjestelmän vakio"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albania"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabia"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturia"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baski"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgaria"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalaani"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Kiina (Yksinkertaistettu)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Kiina (Perinteinen)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Kroatia"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Tsekki"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Tanska"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Hollanti"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Englanti (U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Viro"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Suomi"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Ranska"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galicia (Galego)"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Saksa"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Kreikka"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Heprea"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Unkari"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italia"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italia (Sveitsi)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japani"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Korea"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Liettua"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norja (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Puola"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugali"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugali (Brazilia)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Venäjä"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Slovenia"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Espanja"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Ruotsi"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turkki"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukraina"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Vaihda kieli"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr "Käännöksiä ei ole asennettuna aMulelle"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr "Kieliä ei saatavilla"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "vaihtoehtoja ei saatavilla"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Löytyi epäkelpo luokka, hypätään yli"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "TCP-portti ei voi olla korkeampi kuin 65532 koska serverin käyttämä UDP-"
 "pistukka on TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Käytetään oletusporttia (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Unohdetaan olematon jaettu kansio: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Yhteys"
 
@@ -4925,7 +4935,7 @@ msgstr "Yhteys"
 msgid "Directories"
 msgstr "Kansiot"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Palvelimet"
 
@@ -4979,7 +4989,7 @@ msgstr ""
 "    %PARTFILE - koko polku tiedostoon\n"
 "    %PARTNAME - pelkästään tiedoston nimi"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4995,29 +5005,29 @@ msgstr ""
 "aMule toimii hyvin vaikka näitä ei\n"
 "säädettäisikään."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Asetuksen kytkeminen widgettiin epäonnistui ID:llä %d ja avaimella %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 "Datan siirtäminen asetuksesta widgettiin epäonnistui ID:llä %d ja avaimella %"
 "s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Yhdistettävän välityspalvelimen tyyppi"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 "Datan siirtäminen widgetistä asetukseen epäonnistui ID:llä %d ja avaimella %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5025,27 +5035,32 @@ msgstr ""
 "aMule on käynnistettävä uudelleen näiden muutosten voimaansaattamiseksi:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP-portti muuttui.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP-portti muuttui.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Etäyhteyden portti vaihtui.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Etäyhteyden vastaanotto muuttui.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Etäyhteyden sovitin muuttui.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protokollan kätkeminen"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5053,7 +5068,7 @@ msgstr ""
 "Palvelinlistan automaattisen päivityksen lista on tyhjä.\n"
 "'Päivitä palvelinlista käynnistettäessä' kytketään pois päältä."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5061,19 +5076,19 @@ msgstr ""
 "Olet sallinut etäyhteydet mutta et ole antanut salasanaa.\n"
 "Etäyhteydet eivät ole mahdollisia ellei salasanaa ole annettu."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Kieli vaihtui.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Väliaikaiskansio muuttui.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- ED2K-verkko käytössä.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5081,7 +5096,7 @@ msgstr ""
 "Sekä eD2k- että Kad-verkko on pois päältä.\n"
 "Et voi yhdistää ennen kuin ainakin toinen niistä on sallittu."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5089,7 +5104,7 @@ msgstr ""
 "Kad ei käynnisty mikäli UDP-portti on pois päältä.\n"
 "Salli UDP-portti tai kytke Kad pois päältä."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5099,7 +5114,7 @@ msgstr ""
 "Sinun on uudelleenkäynnistettävä aMule nyt.\n"
 "Mikäli et uudelleenkäynnistä nyt, älä valita mikäli jotain pahaa tapahtuu.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5110,41 +5125,41 @@ msgstr ""
 "tiedostoon.\n"
 "Klikkaa nappia \"Lista\" tämän valintaruudun vierestä syöttääksesi URLin."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Väliaikaiset tiedostot"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Saapuvat tiedostot"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Online-Signeeraukset"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Valitse kansio kohteelle %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Etsi videosoitin"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Valitse selain"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Suoritettava tiedosto%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Muokkaa palvelinlistaa"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5152,76 +5167,76 @@ msgstr ""
 "Syötä tähän URLit joista server.met-tiedostot haetaan.\n"
 "Vain yksi urli riville."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Päivitysväli: %d sekunti"
 msgstr[1] "Päivitysväli: %d sekuntia"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Keskimääräiskuvaajan aika: %d minuutti"
 msgstr[1] "Keskimääräiskuvaajan aika: %d minuuttia"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Yhteyskuvaajan skaala: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Tiedostopuskurin koko: %d tavu"
 msgstr[1] "Tiedostopuskurin koko: %d tavua"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Lähetysjonon koko: %d asiakas"
 msgstr[1] "Lähetysjonon koko: %d asiakasta"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Palvelinyhteyden päivitysväli: %d minuutti"
 msgstr[1] "Palvelinyhteyden päivitysväli: %d minuuttia"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Palvelinyhteyden päivitysväli: Ei käytössä"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "poissa käytöstä"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Suorita komento tapahtuman '%s' yhteydessä"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Mahdollista komentojen suorittaminen ytimestä"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Ytimen komento:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Mahdollista komentojen suorittaminen graafisesta käyttöliittymästä"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Graafisen käyttöliittymän komento:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Seuraavat muuttujat korvataan:"
 
@@ -5251,7 +5266,7 @@ msgstr "eD2k-hakua ei voida tehdä mikäli eD2k ei ole yhdistettynä"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Odottamaton virhe Kad-hakua tehtäessä: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "Tiedostotunniste"
 
@@ -5365,7 +5380,7 @@ msgstr "VIRHE: Pistukka virheellinen aikakatkaisutarkistuksessa"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Yhteysyritys kohteeseen %s (%s:%i) aikakatkaistiin."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Vastaanotettiin myöhästynyt vastaus DNS-kyselyyn, ohitetaan."
 
@@ -5392,75 +5407,75 @@ msgstr "Server.met:in avaus epäonnistui!"
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr "Server.met on turmeltunut, virheellinen versiotunniste: 0x%x, koko %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i palvelin tiedostossa server.met"
 msgstr[1] "%i palvelinta tiedostossa server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d palvelin lisätty"
 msgstr[1] "%d palvelinta lisätty"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Virhe: tiedosto 'server.met' on turmeltunut: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "IO-virhe luettaessa tiedostoa 'server.met': "
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Palvelinta ei lisätty: [%s:%d] ei määritä kelvollista porttia."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Palvelinta ei lisätty: IP [%s:%d] on suodatettu tai virheellinen."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Palvelinta ei lisätty: IP:porttia [%s:%d] vastaava palvelin on jo listalla."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Palvelin lisätty: Palvelin [%s:%d] on nimeltään '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 "Olet yhdistettynä palvelimeen jota yrität poistaa, katkaise yhteys ensin."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Kohteen '%s' avaaminen ei onnistunut"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Server.met:n tallennus epäonnistui!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Virheellinen URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Palvelinlista ladattu osoitteesta %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5469,28 +5484,28 @@ msgstr ""
 "ja liitä kelvollinen palvelinlistan osoite tähän tiedostoon palvelinlistan "
 "automaattiseksi päivittämiseksi"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Aloita palvelinlistan lataus osoitteesta %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr "VAROITUS: palvelinlistan automaattisen päivityksen url ei kelpaa: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "Addresses.dat-tiedostosta ei löytynyt kelvollisia urleja server.met:in "
 "automaattilataukselle"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Palvelinlistan %s lataus epäonnistui"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5525,7 +5540,7 @@ msgid "Static"
 msgstr "Kiinteä"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versio"
 
@@ -5551,8 +5566,8 @@ msgstr "Oletko varma että haluat poistaa pysyvän palvelimen %s"
 msgid "Servers (%i)"
 msgstr "Palvelimet (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Palvelin"
 
@@ -5608,84 +5623,84 @@ msgstr "Oletko varma että haluat poistaa valitun palvelimen?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Oletko varma että haluat poistaa valitut palvelimet?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "VIRHE: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "VAROITUS: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Uusi asiakastunnus on %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "VAROITUS: Sinulla on Low-ID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tTodennäköisimmin tämä johtuu siitä että olet palomuurin tai reitittimen "
 "takana"
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tLisätietoa http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Tuntematon palvelintieto vastaanotettu! - liian lyhyt"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Vastaanotettiin %d uusi palvelin"
 msgstr[1] "Vastaanotettiin %d uutta palvelinta"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Palvelinlista tallennettu."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Palvelin hylkäsi viimeisimmän komennon"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Virheellinen paketti saatu palvelimelta: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Odottamaton virhe käsiteltäessä pakettia palvelimelta: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Ei voitu luoda DNS-selvityssäiettä kohteeseen %s yhdistämiseen"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Palvelin IP %s (%s) on suodatettu. Ei yhdistetä."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "käyttää protokollan kätkentää."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Yhdistetään %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Ei voitu selvittää dns-nimeä palvelimelle %s: Ei voida yhdistää!"
@@ -5863,84 +5878,89 @@ msgstr "Paikallinen tiedoston nimi"
 msgid "Shares File List"
 msgstr "Jaettujen tiedostojen lista"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Pyynnöt"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Hyväksytyt pyynnöt"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Siirretty data"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Jakosuhde"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Hankitut osat"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Täysiä kopioita"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Kansiopolku"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Lisää kommentti/luokitus"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Muuta kommenttia/luokitusta"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Uudelleennimeä"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Lisää tiedostot kokoelmassa siirtolistalle"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopioi magnet-&URI leikepöydälle"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Kopioi eD2k-linkki työpöydälle (Lähde)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Kopioi eD2k-linkki leikepöydälle (Lähde) (Kryptaustiedoilla)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Kopioi eD2k-linkki leikepöydälle (Verkkonimi)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "Kopioi eD2k-linkki leikepöydälle (Verkkonimi) (Kyptaustiedoilla)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Kopioi eD2k-linkki leikepöydälle (&AICH-tiedot)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopioi eD2k-linkki leikepöydälle (&AICH-tiedot)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Tarvitset HighID:een luodaksesi voimassa olevan lähdelinkin"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Jaetut tiedostot (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Osatiedosto]"
 
@@ -5948,235 +5968,235 @@ msgstr "[Osatiedosto]"
 msgid "Remote File Name"
 msgstr "Tiedoston nimi etäpäässä"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Lähetetty data (Sessiossa (Yhteensä)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Otsikkotietoja yhteensä (Paketteja): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Tiedostopyyntöotsikkoja (Paketteja): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Lähdevaihdon otsikkoja (Paketteja): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Palvelimen otsikkoja (Paketteja): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kad-otsikkoja (Paketteja): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Kryptauksen otsikkoja (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Lähetyksiä käynnissä: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Lähetyksiä odottamassa: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Onnistuneita lähetyksiä yhteensä: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Epäonnistuneita lähetyksiä yhteensä: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Keskimääräinen lähetysaika: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Ladattu data (Sessiossa (Yhteensä)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Lähteitä löytynyt: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Latauksia käynnissä (paloja): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Session jakosuhde lähetys:lataus (Yhteensä): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Keskimääräinen latausnopeus (Sessiossa): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Keskimääräinen lähetysnopeus (Sessiossa): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Suurin latausnopeus (Sessiossa): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Suurin lähetysnopeus (Sessiossa): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Uudelleenyhdistämisiä: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Aikaa ensimmäisestä siirrosta: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Yhdistetty palvelimeen: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktiivisia yhteyksiä (arvio): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Maksimimäärä yhteyksiä saavutettu: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Yhteyksiä keskimäärin (arvio): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Yhteyksiä enimmillään (arvio): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Asiakkaat"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Tuntematon: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Suodatettu: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Estetty: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Yhteensä: %i Tunnettuja: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Toimivia palvelimia: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Toimimattomia palvelimia: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Yhteensä: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Poistettuja palvelimia: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Suodatettuja palvelimia: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Käyttäjiä toimivilla palvelimilla: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Tiedostoja toimivilla palvelimilla: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Käyttäjiä yhteensä: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Tiedostoja yhteensä: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
-msgstr "Palvelimien käyttö: %.2f% %"
+msgstr "Palvelimien käyttö: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Jaettuja tiedostoja: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Jaettujen tiedostojen yhteenlaskettu koko: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Keskimääräinen tiedostokoko: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Käyttöjärjestelmä"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Ei vastaanotettu"
 
@@ -6236,7 +6256,7 @@ msgstr "Ei ole kelvollinen numero\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Tarkiste ei ole kelvollinen (pituuden on oltava tasan 32 merkkiä)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Pyyntö ei onnistunut, tuntematon virhe."
 
@@ -6290,13 +6310,13 @@ msgstr "Yhdistetty %s %s %s"
 msgid "Now connecting"
 msgstr "Yhdistän"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "palomuurattu"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6727,22 +6747,22 @@ msgstr ""
 "Tämä on vanhentunut komento ja se voidaan poistaa tulevaisuudessa.\n"
 "Käytä sen sijaan '%s'.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule tekstiasiakas"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Muunnetaan vanhat AICH-tarkistejoukot '%s' 64-bittisiksi '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "VAROITUS: Tiedostonimi '%s' ei kelpaa ja tiedosto uudelleennimettiin '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "VAROITUS: Tiedosto '%s' on jo olemassa, uusi tiedosto nimettiin '%s'."
@@ -6814,7 +6834,7 @@ msgstr "Komennon '%s' suoritus epäonnistui tapahtuman '%s' yhteydessä."
 msgid "Download completed"
 msgstr "Lataus valmistunut"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Koko polku tiedostoon."
 
@@ -6834,66 +6854,66 @@ msgstr "Tiedoston koko tavuina."
 msgid "Cumulative download activity time."
 msgstr "Kumulatiivinen latausaika."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Uusi keskustelu aloitettu"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Viestin lähettäjä."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Levytila loppu"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Levyosio."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Virhe viimeistellessä"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Käsittelee tiedostoa numero %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Olet pyytänyt osatarkisteita (Vain tiedostoille jotka ovat > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Tiedostoa ei ole !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "\"aLinkCreator, aMule eD2k-linkkien tekijä"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Tervetuloa!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Syöteparametrit"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Tiedostosta Tarkiste"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Lisää Valinnaisia URLeja tälle tiedostolle"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Syötä tähän tiedosto josta haluat laskea eD2k-linkin"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6901,15 +6921,15 @@ msgstr ""
 "Syötä tähän url jonka haluat lisätä eD2k-linkkiin: Lisää / perään jotta "
 "aLinkCreator voi lisätä tiedoston nimen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Poista"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Luo linkki osatarkisteilla"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6917,81 +6937,81 @@ msgstr ""
 "Auttaa levittämään uusia ja harvinaisia tiedostoja nopeammin, kustannuksena "
 "linkin koon kasvu"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4-Tiedostotarkiste"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k-tiedostotarkiste"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k-linkki"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Tallenna"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Kopioi leikepöydälle"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Avaa"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Avaa tiedosto laskeaksesi sen eD2k-linkin"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Kopioi laskettu eD2k-linkki leikepöydälle"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Tallenna nimellä"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Tallenna laskettu eD2k-linkki tiedostoon"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Tietoja aLinkCreatorista"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Valitse tiedosto josta haluat laskea eD2k-linkin"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Leikepöytää ei voitu avata"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Toistaiseksi ei mitään kopioitavaa !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Valitse tiedosto lasketulle eD2k-linkille"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Ei voitu avata "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Ole hyvä ja syötä ei-tyhjä tiedoston nimi"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Toistaiseksi ei mitään tallennettavaa !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7011,158 +7031,162 @@ msgstr ""
 "\n"
 "Jaetaan GPL:n alaisena"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Laskee tarkistetta..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator on toiminnassa"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Lasken MD4-tarkistetta..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Lasken eD2k-tarkisteita..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Peruutettu !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Valmis %.2f sekunnissa"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Olet jo lisännyt tämän URLin !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Ole hyvä ja syötä ei-tyhjä URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Ei voida avata %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i päivä(ä) %i tunti(a) %i minuutti(a) %i sekunti(a)"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uvrk %02ut %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02ut %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, aMulen Online-Tilastotiedot"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Suurin latausnopeus wxCasin käynnistämisestä lähtien"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Suurin latausnopeus edellisten wxCasin ajokertojen aikana"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Järjestelmä"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Pysäytä Automaattinen Päivitys"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Tallenna Online-Tilastotietokuva"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Tulosta Online-Tilastotietokuva"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Asetus"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Tietoja wxCasista"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Aloita Automaattinen Päivitys"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Automaattinen Päivitys pysäytetty"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Automaattinen Päivitys aloitettu"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Tallenna Tilastokuva"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMulen Online-Tilastotiedot"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7170,11 +7194,11 @@ msgstr ""
 "Tulostamisessa oli ongelma.\n"
 "Kenties tulostin ei ole asennettu oikein?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Tulostus"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7192,323 +7216,323 @@ msgstr ""
 "\n"
 "Jaetaan GPL:n alaisena"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oi Oi, aMule ei ole käynnissä..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule on käynnissä"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule on käynnissä, mutta ei yhdistettynä"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule yhdistää..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oi Oi, aMulen tila on tuntematon..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " on ollut käynnissä "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " on pysäytetty !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " ei ole yhdistetty !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " on yhdistämässä..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " on tekemässä jotain outoa, tarkista se !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " on yhdistetty: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "pois päältä"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " palvelimella "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " käyttäen "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Yhteensä Ladattu: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Lähetetty: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Istunnossa Ladattu: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Lataus: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " KB/s, Lähetys: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " KB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Jako: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " tiedosto(a), Asiakkaita jonossa: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Aika: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " hetkellä "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Järjestelmän Kuormituskeskiarvo (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Järjestelmä päällä: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Tiedoston amulesig.dat sisältävä kansio"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Syötä tähän kansio jossa on amulesig.dat-tiedostosi"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Päivitysväli sekunteina"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Luo tilastokuva joka päivityksen yhteydessä"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Syötä tähän kansio johon haluat tilastokuvan luotavan"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Lähetä tilastokuvasi toistuvasti FTP-palvelimelle"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP-osoite"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP-kansiopolku"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Syötä tähän FTP-palvelimen osoite"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Syötä tähän kansio FTP-palvelimella mihin tilastokuvasi tallennetaan"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Käyttäjänimi"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Syötä tähän käyttäjänimi jota käytät kirjautuessasi FTP-palvelimelle"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Syötä tähän salasana jota käytät kirjautuessasi FTP-palvelimelle"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP-päivityksien väli minuuteissa"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Tarkista oikeellisuus"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Kansio joka sisältää signeeraustiedostosi"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Kansio mihin luodaan tilastokuva"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Lataa mallin <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Web-palvelimen HTTP-portti"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Käytä UPnP-portinohjausta web-palvelimen portissa"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP-portti"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Käytä gzip-pakkausta"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Täyden käyttöoikeuden salasana web-palvelimelle"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Vieraan salasana web-palvelimelle"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Salli vieraskäyttö"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Estä vieraskäyttö"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Hae/tallenna web-palvelimen asetukset etä-aMulesta/een"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMulen asetustiedoston polku. ÄLÄ KÄYTÄ SUORAAN!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Poista PHP-tulkki käytöstä (vanhentunut)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Uudelleenkoosta PHP-sivut joka pyynnöllä"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule Web-Palvelin"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "web-asiakasyhteys hyväksytty\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "VIRHE: Web-asiakasyhteyttä ei voitu hyväksyä\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Pyyntö ei onnistunut, virhe: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Indeksitiedostoa ei löydetty: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sessio vanhentunut - pyydetään kirjautumista\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sessio kunnossa, kirjautuneena\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sessio kunnossa, ei kirjautuneena\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Ei avattua sessiota - tulee pyytämään kirjautumista\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sessio luotu - pyytää kirjautumista\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Käsittelee pyyntöä [alkuperäinen]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Salasanaa ei annettu, kirjautumista ei sallita"
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Tarkistaa salasanaa\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Salasanatarkiste ei kelpaa\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Salasana hyväksytty\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Virheellinen salasana\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Et antanut salasanaa. Tyhjä salasana ei ole sallittu.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Uloskirjautumista pyydetty\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Käsittelee pyyntöä [uudelleenohjattu]: "
 
@@ -7702,9 +7726,6 @@ msgstr "Käsittelee pyyntöä [uudelleenohjattu]: "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Käyttäjiä yhteensä: %s | Tiedostoja yhteensä: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "HTTP-lataussäie käynnistetty"
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr "Latauksen kokoa ei saatu, ladataan kunnes yhteys suljetaan"
 
diff --git a/po/fr.po b/po/fr.po
index ff07d23..ac7d8d7 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,5 +1,5 @@
 # aMule i18n resource file.
-# Copyright (C) 2004 - 2011 aMule Team
+# Copyright (C) 2004 - 2014 aMule Team
 # This file is distributed under the same license as the aMule package.
 #
 # Translation of aMule to French
@@ -11,14 +11,14 @@
 # Carlos Diaz <cskyline at gmail.com>, 2008.
 # Youpla <Youpla at boum.fr>, 2008.
 # Olivier Sannier <obones att altern dott org>, 2009, 2010.
-# Dylan Aïssi <bob.dybian at gmail.com>, 2008 - 2011.
+# Dylan Aïssi <bob.dybian at gmail.com>, 2008 - 2014.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: aMule\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
-"PO-Revision-Date: 2011-11-09 18:49+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
+"PO-Revision-Date: 2014-02-15 13:05+0100\n"
 "Last-Translator: Dylan Aïssi <bob.dybian at gmail.com>\n"
 "Language-Team: Français\n"
 "MIME-Version: 1.0\n"
@@ -47,7 +47,7 @@ msgstr "Le hachage utilisateur spécifié est invalide !"
 msgid "Failed to open ED2KLinks file."
 msgstr "Échec de l'ouverture du fichier ED2KLinks."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -55,37 +55,37 @@ msgstr ""
 "AVERTISSEMENT : Vous ne pouvez pas vous ajouter vous-même en tant que source "
 "pour un lien eD2k alors que vous avez un LowID."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Et maintenant on quitte l'application principale…"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Interruption de l'instance amuleweb avec le pid '%ld' …"
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Mise à mort de l'instance amuleweb avec le pid '%ld' …"
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Échec"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit : Arrêt du noyau."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Fermeture d'aMule terminée."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Résultats du débogage de la mémoire pour la sortie d'aMule :"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -93,16 +93,16 @@ msgstr ""
 "\n"
 "Configuration EC"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Mot de passe renseigné et connexions externes activées."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "AVERTISSEMENT"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -110,13 +110,13 @@ msgstr ""
 "Votre localisation à été remise par défaut à cause d'un changement dans la "
 "configuration. Désolé."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Infos"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -124,16 +124,16 @@ msgstr ""
 "Vous n'avez pas de serveurs dans votre liste de serveurs.\n"
 "Voulez vous qu'aMule télécharge une nouvelle liste maintenant ?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Téléchargement de la liste de serveurs."
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "serveur web s'exécutant avec le pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -144,23 +144,23 @@ msgstr ""
 "serveur web aMule, ou compilez aMule en utilisant --enable-webserver et "
 "exécutez make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ERREUR"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Impossible de lier les ports à l'adresse spécifiée : %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Le port %u n'est pas disponible. Vous serez LowID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -176,11 +176,11 @@ msgstr ""
 "Vérifiez votre réseau pour être sûr que le port est ouvert en sortie et en "
 "entrée."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Échec de la création du fichier OnlineSig"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Échec de la création du fichier aMule OnlineSig"
 
@@ -236,136 +236,136 @@ msgstr ""
 "La signature en ligne sera DÉSACTIVÉE jusqu'à ce que cela soit corrigé dans "
 "les préférences."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Nom du serveur signalé"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Erreur lors de la réserve d'espace pour le fichier '%s' : %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ERREUR : impossible d'ouvrir le fichier journal"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "AVERTISSEMENT : le fichier journal est vide. Quelque chose ne va pas."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Le journal a été effacé"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "ServerMessage : %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "Saut du téléchargement de %s, car le fichier demandé n'est pas récent."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Échec du téléchargement de la liste des nœuds."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Échec de l'ouverture du fichier de vérification de version téléchargé"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Fichier de vérification de version corrompu"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Vous utilisez une version obsolète d'aMule !"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 "Votre version d'aMule est %i.%i.%i et la dernière version est %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr ""
 "La dernière version peut toujours être trouvée sur http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 "AVERTISSEMENT : votre version d'aMuled est obsolète : %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Votre version d'aMule est à jour."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Échec du téléchargement du fichier de vérification de version"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Utilisateurs : %s | Fichiers : %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Utilisateurs : E : %s K : %s | Fichiers : E : %s K : %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Aucun réseau sélectionné"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "avec un LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "avec un HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Connecté à %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Connexion à %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Déconnecté de eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad démarré."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad arrêté."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Connecté à Kad (OK)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Connecté à Kad (pare-feu)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Déconnecté de Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -373,11 +373,11 @@ msgstr ""
 "Le réseau Kad ne peut être utilisé si le port UDP est désactivé dans les "
 "préférences, pas de démarrage."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Le réseau Kad est désactivé dans les préférences, pas de connexion."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -389,7 +389,7 @@ msgstr ""
 "aMule normal, démarrez amuled avec l'option --ec-config ou passez la clé "
 "\"AcceptExternalConnections\" à 1 dans le fichier ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -404,19 +404,19 @@ msgstr ""
 "conf. Lancez amuled avec le flag --ec-config pour affecter le mot de passe. "
 "Plus d'information est disponible sur http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - démarrage du timer"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: passage en arrière plan - à bientôt"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Impossible de créer le fichier Pid"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "Erreur : %s"
@@ -501,9 +501,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Message"
 
@@ -511,7 +511,7 @@ msgstr "Message"
 msgid "aMule dialog destroyed"
 msgstr "boîte de dialogue aMule détruite"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Connexion en cours"
 
@@ -545,7 +545,7 @@ msgstr "Kad : Coupé"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Annuler"
 
@@ -562,7 +562,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Se déconnecter des réseaux actuellement connectés"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Se connecter"
 
@@ -603,7 +603,7 @@ msgstr "Confirmation de sortie"
 msgid "Launch Command: "
 msgstr "Commande de lancement :"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- défaut -"
 
@@ -619,80 +619,80 @@ msgstr ""
 "AVERTISSEMENT : Impossible d'ouvrir le fichier thème '%s' pour la lecture"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Réseaux"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Fenêtre des réseaux"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Recherches"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Fenêtre de Recherche"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Téléchargements"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Fenêtre des Téléchargements"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Fichiers partagés"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Fenêtre des Fichiers Partagés"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Messages"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Fenêtre des Messages"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistiques"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Fenêtre des Statistiques"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Préférences"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Fenêtre des Préférences"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importer"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "L'outil d'importation de fichier .part"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "À propos"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "À propos/Aide"
 
@@ -712,7 +712,7 @@ msgstr "Pas de réseau"
 msgid "aMule remote control"
 msgstr "Contrôle à distance d'aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -724,108 +724,108 @@ msgstr "Erreur Fatale : Échec de la création du minuteur noyau"
 msgid "Connect to remote amule"
 msgstr "Connexion distante à aMule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Erreur Fatale : Échec de la création du minuteur d'interrogation"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Départ vers la boucle d'événement…"
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Connexion…"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "La connexion a échouée "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Gestionnaire d'événement GUI EC distant"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Descendant"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Connexion échoué. Impossible de se connecter à %s : %d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Connexion fermée - aMule s'est probablement arrêté."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Prêt"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Tous"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Impossible de créer le répertoire '%s' pour la catégorie '%s', on garde le "
 "répertoire '%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Inconnu"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Échec de la réception des fichiers partagés de l'utilisateur '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Recherche d'un pote pour une connexion lowid"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Fausse version d'eMule %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Faux eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Faux eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (basé sur eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Pseudo : %s ID : %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Demandé : %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -837,7 +837,7 @@ msgstr[1] ""
 "Statistiques des fichiers pour cette session : %d requêtes acceptées sur %d, "
 "%s transférées\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -849,7 +849,7 @@ msgstr[1] ""
 "Statistiques des fichiers pour toutes les sessions : %d requêtes acceptées "
 "sur %d, %s transférées\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Fichier demandé inconnu"
 
@@ -1001,12 +1001,12 @@ msgid "Client Details"
 msgstr "Détails du client"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1058,31 +1058,31 @@ msgstr "Vérification - OK"
 msgid "Not Available"
 msgstr "Non disponible"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "L'utilisateur %s (%u) a demandé votre liste de fichier partagés -> Accepté"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "L'utilisateur %s (%u) a demandé votre liste de fichier partagés -> Refusé"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "L'utilisateur %s (%u) a demandé votre liste de dossiers partagés -> Accepté"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "L'utilisateur %s (%u) a demandé votre liste de dossiers partagés -> Refusé"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1090,7 +1090,7 @@ msgstr ""
 "L'utilisateur %s (%u) a demandé votre liste de fichier partagés pour le "
 "répertoire '%s' -> accepté"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1098,38 +1098,38 @@ msgstr ""
 "L'utilisateur %s (%u) a demandé votre liste de fichier partagés pour le "
 "répertoire '%s' -> refusé"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "L'utilisateur %s (%u) partage le répertoire '%s'"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 "L'utilisateur %s (%u) a envoyé une liste de fichier partagés non demandée."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "L'utilisateur %s (%u) a envoyé la liste des fichiers partagés pour le "
 "répertoire '%s'"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 "L'utilisateur %s (%u) a terminé d'envoyer la liste liste des fichiers "
 "partagés"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 "L'utilisateur %s (%u) a envoyé une liste de fichier partagés non voulue"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1146,7 +1146,7 @@ msgstr "Nom d'utilisateur"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Nom du fichier"
 
@@ -1189,33 +1189,33 @@ msgstr "Auto [Normale]"
 msgid "Auto [Hi]"
 msgstr "Auto [Haute]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Très basse"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Basse"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normale"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Haute"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Très haute"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Release"
 
@@ -1232,12 +1232,12 @@ msgid "Queue Full"
 msgstr "File d'attente pleine"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "En attente"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "En téléchargement"
 
@@ -1297,7 +1297,7 @@ msgstr "Serveur Local"
 msgid "Remote Server"
 msgstr "Serveur Distant"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1323,7 +1323,7 @@ msgid "Search Result"
 msgstr "Résultat de la recherche"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Terminé"
 
@@ -1364,11 +1364,11 @@ msgid "Part"
 msgstr "Partie"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Taille"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Reçu"
 
@@ -1381,17 +1381,17 @@ msgid "Progress"
 msgstr "Progression"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Sources"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Priorité"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Statut"
@@ -1416,7 +1416,7 @@ msgstr "Êtes-vous sûr de vouloir supprimer le fichier sélectionné ?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Êtes-vous sûr de vouloir supprimer les fichiers sélectionnés ?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1426,7 +1426,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1478,11 +1478,11 @@ msgstr "Afficher tous les commentaires"
 msgid "Copy magnet URI to clipboard"
 msgstr "Copier le lien magnétique dans le presse-papiers"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Copier le &lien eD2k dans le presse-papiers"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Copier le rapport dans le presse-papiers"
 
@@ -1498,24 +1498,24 @@ msgstr "Associer à une catégorie"
 msgid "&Open the file"
 msgstr "&Ouvrir le fichier"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Entrez un nouveau nom pour ce fichier :"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Renommer"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H : %M : %S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Téléchargements (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1524,11 +1524,11 @@ msgstr ""
 "indiquez votre lecteur vidéo préféré dans les préférences (mplayer par "
 "défaut)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Aperçu"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1641,29 +1641,29 @@ msgid "External connections disabled in config file"
 msgstr ""
 "Les connexions externes sont désactivées dans le fichier de configuration"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nouvelle connexion externe acceptée"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ERREUR : impossible d'accepter une nouvelle connexion externe"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Connexion externe refusée car le mot de passe est vide dans les préférences !"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Connexion au client : %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Version inconnue"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1671,7 +1671,7 @@ msgstr ""
 "ID de version de EC incorrecte, Il peut y avoir des incompatibilités entre "
 "les binaires. Utilisez un noyau et un client distant de la même version."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1679,175 +1679,175 @@ msgstr ""
 "Vous ne pouvez pas connecter une version stable depuis une version de "
 "développement! *pfff* un crash potentiel a été évité"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Version du protocole invalide."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "L'étiquette de la version du protocole est manquante."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 "Authentification échoué : hachage spécifié comme mot de passe invalide."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Authentification échoué : mot de passe erroné."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Authentification échoué : mot de passe manquant."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Requête invalide, veuillez vous authentifier d'abord."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Accès autorisé."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Envoi du message d'erreur \"%s\" au client."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Tentative d'accès non autorisé de %s. Connexion fermée."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Échec de la commande du fichier .part à distance : Hachage du fichier non "
 "trouvé : %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Hachage du fichier non trouvé : %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "ARGH ! Erreur de traitement de l'OpCode !"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Serveur non ajouté"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "serveur non trouvé : %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "il faut définir le serveur à supprimer"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k est désactivé dans les préférences"
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Recherche en cours. Résultats dans un moment !"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Une recherche Web par une interface distante n'a aucun sens."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Pas de points pour le graphique."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Votre client n'est pas configuré pour ce niveau de détails."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Connexion externe : fermeture demandée"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Arrêt déjà en cours."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ConnExt : ajout du lien '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Lien invalide ou déjà dans la liste."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Fichier non trouvé."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nom de fichier invalide."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Impossible de renommer le fichier."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad est désactivé dans les préférences."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Déjà connecté à eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Connexion à eD2k…"
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Déjà connecté à Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Connexion à Kad…"
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Tout les réseaux sont désactivés."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Déconnecté de eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Déconnecté de Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Connexion externe : opcode reçu invalide : %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "opcode invalide (mauvaise version de protocole ? )"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Extension '%s' inconnue pour la commande '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Commande '%s' inconnue\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1855,7 +1855,7 @@ msgstr ""
 "\n"
 "Cette commande ne prend pas d'argument.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1863,7 +1863,7 @@ msgstr ""
 "\n"
 "Cette commande nécessite un argument.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1872,7 +1872,7 @@ msgstr ""
 "Cette commande est incomplète, vous devez utilisez une des extensions ci-"
 "dessous.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1880,11 +1880,11 @@ msgstr ""
 "\n"
 "Extensions disponibles :\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Commandes disponibles :\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1895,17 +1895,17 @@ msgstr ""
 "Toutes les commandes sont insensibles à la casse.\n"
 "Tapez '%s <command>' pour avoir des informations détaillées sur <command>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Quitte l'application."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Montrer l'aide."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1913,7 +1913,7 @@ msgstr ""
 "Pour avoir de l'aide sur une commande, tapez 'help <command>'.\n"
 "Pour avoir la liste complète des commandes, tapez 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1924,48 +1924,48 @@ msgstr ""
 "Utilisez '%s' pour la liste des commandes\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Erreur de syntaxe !"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Erreur durant le traitement de la commande - Cela ne devrait jamais "
 "arriver ! Rapportez le bogue, s'il vous plaît\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Cette commande ne devrait pas avoir de paramètres."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Cette commande nécessite un paramètre."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argument invalide."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Cette commande est incomplète."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Tapez '%s' pour avoir plus d'aide.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "C'est %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "C'est %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1973,7 +1973,7 @@ msgstr ""
 "\n"
 "Création du client en cours…\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1982,7 +1982,7 @@ msgstr ""
 "\n"
 "Ok, fin de %s…\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1996,50 +1996,50 @@ msgstr ""
 "\n"
 "Fin d'exécution…\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Montre ce texte d'aide."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Hôte où aMule tourne. (défaut : localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Port d'aMule pour les connexions externes. (défaut : 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Mot de passe pour les connexions externes."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Configuration lue depuis le fichier."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Ne pas afficher de sortie sur stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Mode bavard - montre aussi les messages de débogage."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Change la localisation du programme (langue)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 "Écrit les options de la ligne de commande dans le fichier de configuration."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 "Créé le fichier de configuration à partir du fichier de configuration "
 "d'aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Affiche la version du programme."
 
@@ -2052,8 +2052,8 @@ msgstr "Détails du fichier"
 msgid "%.1f%% done"
 msgstr "%.1f%% fait"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f Ko/s"
@@ -2074,7 +2074,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "CRITIQUE - Pas de client dans StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Amis"
 
@@ -2203,21 +2203,21 @@ msgstr "L'URL de téléchargement ne peut pas être vide"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "L'URL %s retourne : %i - Erreur (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Erreur critique lors de l'écriture du fichier téléchargé"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "%d octets téléchargés"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "%d octets attendus, mais %d octets téléchargés"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2225,11 +2225,11 @@ msgstr ""
 "URL invalide pour le téléchargement HTTP ou la redirection HTTP (avez-vous "
 "oublié 'http://' ?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "impossible de se connecter au serveur de téléchargement HTTP"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Réponse invalide du serveur de téléchargement HTTP"
 
@@ -2261,7 +2261,7 @@ msgstr "Mise à jour réussite de %s"
 msgid "Error updating GeoIP.dat"
 msgstr "Erreur lors de la mise à jour de GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Échec du téléchargement %s de %s"
@@ -2307,7 +2307,7 @@ msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 "Impossible de renommer le nouveau fichier %s, abandon de la mise à jour."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP filter est prêt"
 
@@ -2324,48 +2324,48 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nœuds (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "IP invalide pour l'amorçage"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Port invalide pour l'amorçage"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Veuillez remplir tous les champs requis"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Êtes-vous sûr de vouloir télécharger un nouveau fichier nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Le faire supprimera les nœuds actuels et redémarrera la connexion à Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Continuer ?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia : le mot recherché est trop court"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Mot clé de recherche : %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 "Kademlia : le mot-clé de la recherche est toujours dans la liste de "
 "recherche :"
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2373,61 +2373,61 @@ msgstr ""
 "Impossible de lire le fichier nodes.dat - trop vieux. Cette version (0) "
 "n'est plus supporté."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "%u contact Kad lu"
 msgstr[1] "%u contacts Kad lus"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Aucun contacts trouvé, veuillez lancer l'amorçage, ou télécharger un fichier "
 "nodes.dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Seulement %d contact Kad disponible, nodes.dat non écrit"
 msgstr[1] "Seulement %d contacts Kad disponible, nodes.dat non écrit"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "%d contact Kad écrit"
 msgstr[1] "%d contacts Kad écrits"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nom de fichier"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Taille du fichier"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Ratio de partage"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Émis"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Demandé"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Accepté"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Sources complètes"
 
@@ -2459,69 +2459,74 @@ msgstr "Erreur inconnue %d"
 msgid "Unable to get error description for error %d"
 msgstr "Impossible d'obtenir la description d'erreur pour l'erreur %d"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Hachage"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Finalisation"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Terminé"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "En pause"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Erroné"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "En attente"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Vous devez entrer un mot de passe non vide."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Mot de passe invalide, ce n'est pas un hachage MD5 !"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Erreur de connexion"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "La connexion EC a échoué. Réponse vide."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Connexion externe : Mauvaise réponse, échange raté. Connexion fermée."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Succès ! Connexion établie à aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Succès ! Connexion établie."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Connexion externe : Accès refusé car :"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Connexion externe : Échange raté."
 
+#: src/LibSocketAsio.cpp:1259
+#, c-format
+msgid "Asio thread %d started"
+msgstr "Processus ASIO %d démarré"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket : OK."
@@ -2530,16 +2535,16 @@ msgstr "ListenSocket : OK."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ERREUR : Le port TCP n'a pas pu être mis en écoute."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ERREUR : "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "AVERTISSEMENT : "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Fermer"
 
@@ -2547,8 +2552,8 @@ msgstr "Fermer"
 msgid "Cut"
 msgstr "Couper"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Copier"
 
@@ -2557,7 +2562,7 @@ msgid "Paste"
 msgstr "Coller"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Effacer"
 
@@ -2567,7 +2572,7 @@ msgstr "Tout sélectionner"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "Ko/s"
@@ -2644,7 +2649,7 @@ msgid "ServerIP: "
 msgstr "IP du serveur : "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Non connecté"
 
@@ -2679,7 +2684,7 @@ msgstr "Signature En Ligne : Activée"
 msgid "Online Signature: Disabled"
 msgstr "Signature En Ligne : Désactivée"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Temps de fonctionnement : %s"
@@ -2720,7 +2725,7 @@ msgstr "Cacher aMule"
 msgid "Show aMule"
 msgstr "Afficher aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Quitter"
 
@@ -2808,7 +2813,7 @@ msgstr "Rechercher"
 msgid "Name:"
 msgstr "Nom :"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Type"
 
@@ -2836,38 +2841,38 @@ msgstr "Filtrage"
 msgid "File Type"
 msgstr "Type de fichier"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Tous"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archives"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Images CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Images"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programmes"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Textes"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Vidéos"
 
@@ -2888,11 +2893,11 @@ msgid "KB"
 msgstr "Ko"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "Mo"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "Go"
 
@@ -2920,7 +2925,7 @@ msgstr "Inverser les résultats"
 msgid "Hide Known Files"
 msgstr "Masquer les fichiers connus"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Démarrer"
 
@@ -2977,7 +2982,7 @@ msgstr "Nom complet :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -3001,7 +3006,7 @@ msgstr "Statut du fichier .part :"
 msgid "Last seen complete :"
 msgstr "Vu complet pour la dernière fois :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transfert"
 
@@ -3090,27 +3095,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Qualité du fichier"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Non évalué"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Invalide / Corrompu / Contrefaçon"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Mauvais"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Assez bon"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Bon"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Excellent"
 
@@ -3157,7 +3162,7 @@ msgid "Userhash :"
 msgstr "Hachage de l'utilisateur :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Ajouter"
 
@@ -3392,9 +3397,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Parcourir"
 
@@ -3485,7 +3490,7 @@ msgstr "Connexions simultanées maximales :"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3606,7 +3611,7 @@ msgstr "Entrez ici l'espace disque minimum désiré."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Sauver 10 sources pour les fichiers rares (< 20 sources)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Émission"
 
@@ -3848,7 +3853,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Activer la redirection de ports en UPnP sur le port EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Mot de passe"
 
@@ -3932,8 +3937,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Choisir la couleur pour cette Catégorie (actuellement sélectionnée) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Réinitialiser"
 
@@ -4337,84 +4342,88 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Activer l'historique du mode de débogage bavard."
 
 #: src/muuli_wdr.cpp:3169
+msgid "Only to Logfile"
+msgstr "Seulement vers le fichier journal"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Catégories des messages :"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "En attente…"
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Ajouter des fichier à importer"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Réessayer avec la sélection"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Supprimer la sélection"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Types d'événements"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Statistiques et clients en attente pour le(s) fichier(s) sélectionné(s) : "
 "Session / Tous les temps"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Envois Actifs"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Pourcentage du total de fichiers"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Tous les fichiers"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Fichiers sélectionnés"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Envois actifs seulement"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Afficher les clients pour"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Recharger :"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Recharge vos fichiers partagés"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Envoyer"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Envoie le message spécifié."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Ferme cette session de discussion."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Se connecter à n'importe quel serveur et/ou Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Fichiers partagés"
 
@@ -4423,140 +4432,140 @@ msgstr "Fichiers partagés"
 msgid "Disabled [%s]"
 msgstr "Désactivé [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "octet"
 msgstr[1] "octets"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "ko"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "To"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "octet/sec"
 msgstr[1] "octets/sec"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "Mo/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "s"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "heures"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Jours"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "Tous"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "tous les autres"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incomplet"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Arrêté"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Vidéo"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Archive"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Texte"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Actif"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Utilisation du répertoire de config : %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Attente de la mort du processus de conversion du fichier .part…"
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importation %s : %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Lecture du répertoire temporaire"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 "Récupération des informations de base depuis le téléchargement dans un "
 "fichier"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Création du fichier de destination"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr ""
 "Chargement des données depuis un ancien fichier de téléchargement (%u de %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 "Sauvegarde du bloc de données dans un nouveau fichier de téléchargement "
 "unique (%u de %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Récupérations des informations du fichier de téléchargement source"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Ajout du téléchargement et sauvegarde du nouveau fichier .part"
 
@@ -4572,12 +4581,12 @@ msgstr "État"
 msgid "Filehash"
 msgstr "Hachage du fichier"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disque : %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4585,14 +4594,14 @@ msgstr ""
 "Choisissez un dossier où chercher les téléchargements temporaires ! (les "
 "sous-dossiers seront inclus)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Voulez-vous que les fichiers sources d'une importation de téléchargement "
 "réussie soient supprimées ?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Supprimer les sources ?"
 
@@ -4710,7 +4719,7 @@ msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 "Erreur lors de la lecture du fichier seeds du fichier .part (%s - %s) : %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4725,39 +4734,39 @@ msgstr[1] ""
 "Une partie corrompue trouvée (%d) dans %d partie du .part %s - "
 "FileResultHash |%s| FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Partie complète (%i) trouvée dans %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Ré-hachage de %s terminé"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Erreur inattendue lors de la finalisation de %s. Fichier mis en pause"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Téléchargement terminé : %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Fichier supprimé : %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "AVERTISSEMENT : Impossible de calculer le hachage de la partie téléchargée. "
 "Ensemble de hachage incomplet pour '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4766,7 +4775,7 @@ msgstr ""
 "ERREUR : Impossible de calculer le hachage de la partie téléchargée - "
 "Ensemble de hachage incomplet pour (%s). Ceci ne devrait jamais arriver"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4775,227 +4784,227 @@ msgstr ""
 "EOF lors du hachage du fichier .part téléchargé %u avec une longueur %u (max "
 "%u) du fichier .part '%s' avec une longueur %u : %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 "AVERTISSEMENT : Pas assez d'espace disque disponible ! Mise en pause du "
 "fichier : %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "La partie téléchargée %i est corrompue dans le fichier : %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH : Partie corrompue %i récupérée pour %s -> Octets sauvés : %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "En cours d'allocation"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Espace disque insuffisant"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Téléchargé"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ERREUR : Impossible d'ouvrir fichier .part : '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Système par défaut"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanais"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabe"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturien"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Basque"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgare"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalan"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Chinois (Simplifié)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Chinois (Traditionnel)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Croate"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Tchèque"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danois"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Hollandais"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Anglais (U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonien"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandais"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Français"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galicien"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Allemand"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Grec"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hébreux"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Hongrois"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italien"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italien (Suisse)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonais"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Coréen"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituanien"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norvégien (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polonais"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugais"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugais (Brésilien)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russe"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Slovène"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Espagnol"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Suédois"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turque"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukrainien"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Changer de Langue"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr "Il n'y a pas de traductions installés pour aMule"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr "Pas de langues disponibles"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "pas d'option disponible"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Catégorie invalide trouvée, on passe"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "Le port TCP ne peut pas dépasser 65532 car le socket UDP du serveur sera à "
 "TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Le port par défaut sera utilisé (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Abandon d'un répertoire partagé inexistant : %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Connexion"
 
@@ -5003,7 +5012,7 @@ msgstr "Connexion"
 msgid "Directories"
 msgstr "Répertoires"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Serveurs"
 
@@ -5057,7 +5066,7 @@ msgstr ""
 "    %PARTFILE - chemin complet vers le fichier\n"
 "    %PARTNAME - nom du fichier seulement"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5073,30 +5082,30 @@ msgstr ""
 "aMule fonctionnera bien en ne modifiant pas\n"
 "ces réglages."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Échec à la connexion de Cfg au widget avec l'ID %d et la clé %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 "Échec du transfert de données depuis Cfg vers le widget avec l'ID %d et la "
 "clé %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Type de proxy auquel vous êtes connecté"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 "Échec du transfert de données depuis le widget vers Cfg avec l'ID %d et la "
 "clé %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5104,27 +5113,31 @@ msgstr ""
 "aMule doit être redémarré pour activer ces changements : \n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- Port TCP changé.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- Port UDP changé.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Port de connexion externe changé.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Consentement de connexion externe changé.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Interface de connexion externe changé.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "- Support du brouillage de protocole changé.\n"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5133,7 +5146,7 @@ msgstr ""
 "'Mise à jour automatique au démarrage de la liste des serveurs' va être "
 "désactivée."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5143,19 +5156,19 @@ msgstr ""
 "Les connexions externes ne pourront pas être activées tant qu'un mot de "
 "passe valide n'est pas spécifié."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Langue changé.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Dossier temporaire changé.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- Réseau ED2K activé.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5164,7 +5177,7 @@ msgstr ""
 "Vous ne pourrez pas vous connecter tant que vous n'activerez pas au moins "
 "l'un des deux."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5172,7 +5185,7 @@ msgstr ""
 "Kad ne démarrera pas si votre port UDP est désactivé.\n"
 "Activez le port UDP ou désactivez Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5182,7 +5195,7 @@ msgstr ""
 "Vous DEVEZ redémarrer aMule maintenant.\n"
 "Si vous ne le faites pas, ne vous plaignez pas si des bogues surviennent.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5193,41 +5206,41 @@ msgstr ""
 "valide.\n"
 "Cliquez sur le bouton \"Liste\" à coté de cette case pour entrer une URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Fichiers temporaires"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Fichiers réceptionnés"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Signatures En Ligne"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Choisir un dossier pour %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Chercher un lecteur vidéo"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Choisir un navigateur"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Exécutable%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Éditer la liste des serveurs"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5235,76 +5248,76 @@ msgstr ""
 "Ajoutez ci-dessous des URL pour télécharger des fichiers server.met.\n"
 "Seulement une URL par ligne."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Délais de rafraîchissement : %d seconde"
 msgstr[1] "Délais de rafraîchissement : %d secondes"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Temps pour le graphe des moyennes : %d minute"
 msgstr[1] "Temps pour le graphe des moyennes : %d minutes"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Échelle du graphique des connexions : %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Taille du tampon de fichiers : %d octet"
 msgstr[1] "Taille du tampon de fichiers : %d octets"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Taille de la fille d'attente d'émission : %d client"
 msgstr[1] "Taille de la fille d'attente d'émission : %d clients"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Intervalle de rafraîchissement de la connexion serveur : %d minute"
 msgstr[1] "Intervalle de rafraîchissement de la connexion serveur : %d minutes"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Intervalle de rafraîchissement de la connexion serveur : Désactivé"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "désactivé"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Exécuter la commande lors de l'événement '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Activer l'exécution de la commande sur le noyau"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Commande du noyau :"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Activer l'exécution de la commande sur l'interface graphique"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Commande de l'interface graphique :"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Les variables suivantes seront remplacées :"
 
@@ -5334,7 +5347,7 @@ msgstr "La recherche eD2k ne peut être établie si eD2k n'est pas connecté"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Erreur imprévue lors de la tentative de recherche Kad : "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID du fichier"
 
@@ -5451,7 +5464,7 @@ msgstr "ERREUR : Socket invalide lors de la vérification du délai"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Délai d'attente de la connexion à %s (%s : %i) dépassé."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Réception d'un résultat DNS en retard, on jette."
 
@@ -5480,51 +5493,51 @@ msgstr ""
 "Le fichier server.met est corrompu, une étiquette invalide de version "
 "invalide à été trouvé : 0x%x, taille %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i serveur trouvé dans server.met"
 msgstr[1] "%i serveurs trouvés dans server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d serveur ajouté"
 msgstr[1] "%d serveurs ajoutés"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Erreur : le fichier 'server.met' est corrompu :"
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "Erreur d'E/S lors de la lecture de 'server.met' :"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Serveur non ajouté : [%s : %d] n'a pas un port valide."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Serveur non ajouté : l'IP de [%s : %d] a été filtrée ou est invalide."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Serveur non ajouté : un serveur avec une IP : Port [%s : %d] correspondant a "
 "été trouvée dans la liste."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Serveur ajouté : serveur à [%s : %d] utilisant le nom '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5532,25 +5545,25 @@ msgstr ""
 "Vous êtes connecté au serveur que vous tentez de supprimer. Déconnectez-vous "
 "d'abord s'il vous plaît."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Échec de l'ouverture de '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Échec de l'enregistrement de server.met !"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "URL invalide"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Téléchargement terminé de la liste de serveur depuis %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5559,30 +5572,30 @@ msgstr ""
 "Veuillez coller une liste de serveurs valide dans ce fichier afin de mettre "
 "à jour automatiquement votre liste de serveurs."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Démarre le téléchargement de la liste de serveur depuis %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "AVERTISSEMENT : URL invalide indiquée pour la mise à jour automatique des "
 "serveurs : %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "Pas d'URL valide pour la mise à jour automatique des serveurs dans adresses."
 "dat "
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Échec du téléchargement de la liste des serveurs depuis %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5619,7 +5632,7 @@ msgid "Static"
 msgstr "Statique"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Version"
 
@@ -5645,8 +5658,8 @@ msgstr "Êtes-vous sûr de vouloir supprimer le serveur statique %s"
 msgid "Servers (%i)"
 msgstr "Serveurs (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Serveur"
 
@@ -5702,86 +5715,86 @@ msgstr "Êtes-vous sûr de vouloir supprimer le serveur sélectionné ?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Êtes-vous sûr de vouloir supprimer les serveurs sélectionnés ?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ERREUR : %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "AVERTISSEMENT : %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Nouvel ID client : %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "AVERTISSEMENT : Vous avez reçu un Low-ID !"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tLa raison la plus probable est que vous êtes derrière un pare-feu ou un "
 "router."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPour plus d'informations, consultez http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Info serveur inconnue reçue ! - trop court"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "%d nouveau serveur reçu"
 msgstr[1] "%d nouveaux serveurs reçus"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Sauvegarde de la liste des serveurs terminée."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Le serveur a rejeté la dernière commande"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Faux paquet reçu depuis le serveur : %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 "Erreur non-prise en compte lors du traitement du paquet reçu du serveur : %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 "Ne peut créer de processus pour la résolution DNS pour se connecter à %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "L'IP du serveur %s (%s) est filtrée. Pas de connexion."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "utilisation du brouillage de protocole"
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Connexion à %s (%s - %s : %i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5962,88 +5975,92 @@ msgstr "Nom du fichier local"
 msgid "Shares File List"
 msgstr "Partage de la liste des fichiers"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Demandes"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Demandes acceptées"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Données transférées"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Taux de partage"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Parties obtenues"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Sources complètes"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Chemin du répertoire"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Ajouter un Commentaire/Note"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Éditer un Commentaire/Note"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Renommer"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Ajouter des fichiers de la collection à la liste de transferts"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Copier le &lien magnétique dans le presse-papiers"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Copier le lien eD2k dans le presse-papiers (&Source)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 "Copier le lien eD2k dans le presse-papiers (Source) (Avec &options de "
 "chiffrage)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Copier le lien eD2k dans le presse-papiers (Nom d'&hôte)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Copier le lien eD2k dans le presse-papiers (Nom d'hôte) (Avec options de "
 "&chiffrage)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Copier le lien eD2k dans le presse-papiers (Info &AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Copier le lien eD2k dans le presse-papiers (Info &AICH + Source)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Vous devez être en HighID pour créer un lien valide"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Fichiers partagés (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Fichier .part]"
 
@@ -6051,235 +6068,235 @@ msgstr "[Fichier .part]"
 msgid "Remote File Name"
 msgstr "Nom du fichier à distance"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Données Émises (Session (Total)) : %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Surcharge Totale (Paquets) : %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Surcharge Requête Fichier (Paquets) : %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Surcharge Échange de Source (Paquets) : %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Surcharge Serveur (Paquets) : %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Surcharge Kad (Paquets) : %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Surcharge Crypt (UDP) : %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Envois Actifs : %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Envois en Attente : %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Sessions d'envois réussies au total : %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Sessions d'envois qui ont échouées au total : %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Temps d'envois moyen : %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Données Reçues (Session (Total)) : %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Sources Trouvées : %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Téléchargements Actifs (parties) : %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Rapport UL : DL pour la Session (Total) : %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Vitesse moyenne de réception (Session) : %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Vitesse moyenne d'envoi (Session) : %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Vitesse maximale de réception (Session) : %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Vitesse maximale d'émission (Session) : %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Reconnexions : %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Temps depuis le premier transfert : %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Connecté au serveur depuis : %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Connexions actives (estimation) : %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Limite max de connexion atteinte : %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Moyenne de connexions (estimation) : %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Pics de connexions (estimation) : %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Clients"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Inconnu : %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtré : %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Banni : %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Total : %i Connus : %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Serveurs en fonctionnement : %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Serveurs non-connectés : %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Total : %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Serveurs supprimés : %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Serveurs filtrés : %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Utilisateurs sur les serveurs en fonctionnement : %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Fichiers sur les serveurs en fonctionnement : %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Total des utilisateurs : %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Total des fichiers : %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Occupation du Serveur : %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Nombre de Fichiers Partagés : %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Taille totale des Fichiers Partagés : %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Taille moyenne des fichiers : %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Système d'Exploitation"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Non reçu"
 
@@ -6341,7 +6358,7 @@ msgstr ""
 "Ce n'est pas un hachage valide (la longueur devrait être exactement 32 "
 "caractères)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "La requête a échouée avec une erreur inconnue."
 
@@ -6395,13 +6412,13 @@ msgstr "Connecté à %s %s %s"
 msgid "Now connecting"
 msgstr "Connexion en cours"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "derrière un pare-feu"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "OK"
 
@@ -6840,22 +6857,22 @@ msgstr ""
 "C'est une commande est obsolète, et pourrait être supprimée dans le futur.\n"
 "Utilisez '%s' à la place.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "client texte aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Conversion des anciens hashsets AICH en '%s' vers 64b en '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "AVERTISSEMENT : Le nom de fichier '%s' est invalide et a été renommé en '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6931,7 +6948,7 @@ msgstr "Échec de l'exécution de la commande `%s' lors de l'événement `%s'."
 msgid "Download completed"
 msgstr "Téléchargement terminé"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Le chemin complet vers le fichier."
 
@@ -6951,68 +6968,68 @@ msgstr "La taille du fichier en octets."
 msgid "Cumulative download activity time."
 msgstr "Durée d'activité de téléchargement cumulée."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Nouvelle session de chat démarrée"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Expéditeur du message."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Espace insuffisant"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partition du disque."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Erreur à la complétion"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Traitement du fichier numéro %u : %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 "Vous avez demandé les hachages partiels (Seulement utilisés pour des "
 "fichiers dont les tailles sont > 9.5 Mo)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Fichier inexistant !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, le créateur de liens d'aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Bienvenue !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Paramètres d'entrée"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Fichier à hacher"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Ajouter des URLs optionnelles pour ce fichier"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Indiquez ici le fichier pour qui vous voulez calculer le lien eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -7020,15 +7037,15 @@ msgstr ""
 "Indiquez ici l'URL que vous voulez ajouter au lien eD2k : Ajoutez / à la fin "
 "pour indiquer à aLinkCreator d'ajouter le nom du fichier actuel"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Enlever"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Créer le lien avec les hachages partiels"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -7036,81 +7053,81 @@ msgstr ""
 "Aide à retrouver les fichiers rares et nouveaux au prix d'un lien de plus "
 "grande longueur"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Hachage MD4 du fichier"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Hachage eD2k du fichier"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "Lien eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Sauvegarder"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Copier dans le presse-papiers"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Ouvrir"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Ouvrir un fichier pour calculer son lien eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Copie du lien eD2k calculé dans le presse-papiers"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Enregistrer sous"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Conversion du lien eD2k calculé en fichier"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "A propos d'aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Sélectionnez le fichier auquel vous souhaitez calculer le lien eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Impossible d'ouvrir le presse-papiers"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Rien à copier pour l'instant !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Sélectionnez le fichier vers votre lien eD2k calculé"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Impossible d'ouvrir "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Veuillez entrer un nom de fichier non vide"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Rien à sauvegarder pour l'instant !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7130,159 +7147,163 @@ msgstr ""
 "\n"
 "Distribué sous licence GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Hachage en cours…"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator fonctionne pour vous"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Calcul du hachage MD4…"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Calcul des hachages eD2k…"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Annulé !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Effectué en %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Vous avez déjà ajouté cette URL !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Entrez une URL non vide s'il vous plaît"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Impossible d'ouvrir %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr "Dépassement de mémoire lors du calcul du hachage eD2k!"
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i jour(s) %i heure(s) %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uJ %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f o"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f Ko"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f Mo"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f Go"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f To"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, statistiques en ligne d'aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Vitesse de réception Max atteinte depuis de démarrage de wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 "Vitesse de réception Max atteinte lors des précédentes exécutions de wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Système"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Arrêter le rafraîchissement automatique"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Sauvegarder l'image des statistiques en ligne"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Imprimer une image des statistiques en ligne"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Préférences"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "À propos de wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Démarrer le rafraîchissement automatique"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Rafraîchissement automatique stoppé"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Rafraîchissement automatique démarré"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Sauvegarder l'image des statistiques en ligne"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Statistiques en ligne d'aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7290,11 +7311,11 @@ msgstr ""
 "L'impression a rencontré un problème.\n"
 "Peut-être votre imprimante n'est-elle pas configurée correctement ?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Impression en cours"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7312,331 +7333,331 @@ msgstr ""
 "\n"
 "Distribué sous licence GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule n'est pas lancé…"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule fonctionne"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule est lancé, mais est déconnecté"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule se connecte…"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, l'état d'aMule est inconnu…"
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " tourne depuis "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " est arrêté !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " n'est pas connecté !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " se connecte…"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " est en train de faire des trucs bizarres, à vérifier !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " est connecté à "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad : "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "éteint"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " est sur "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " avec "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Réception totale : "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Émission : "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Réception durant la session : "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Réception : "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " Ko/s, Émission : "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " Ko/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Partage : "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " fichier(s), clients en attente : "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Temps :"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " sur "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Charge moyenne du système (1-5-15 min) : "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Le système fonctionne depuis : "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Répertoire contenant le fichier amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Entrer ici le répertoire contenant le fichier amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Intervalle de rafraîchissement en secondes"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Générer une image des statistiques en ligne à chaque rafraîchissement"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Entrer ici le répertoire où générer l'image des statistiques en ligne"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr ""
 "Envoi périodique de l'image des statistiques en ligne sur un serveur FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "URL du FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Chemin du FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Entrer ici l'URL du serveur FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Entrer ici le répertoire du serveur FTP où envoyer l'image des statistiques "
 "en ligne"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Utilisateur"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Entrer ici l'identifiant pour se connecter au serveur FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Entrer ici le mot de passe pour se connecter au serveur FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Intervalle d'envoi de l'image des statistiques en ligne en minutes"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Valider"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Répertoire contenant le fichier de signature"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Répertoire où générer l'image des statistiques en ligne"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Charge le template <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Port HTTP du serveur Web"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Utiliser la redirection de port UPnP sur le port du serveur web"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Port UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Utiliser la compression gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Mot de passe d'accès total pour le serveur web"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Mot de passe invité pour le serveur web"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Autoriser l'accès invité"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Interdire l'accès invité"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 "Charger/sauvegarder les paramètres du serveur web depuis/vers un aMule "
 "distant"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr ""
 "Chemin du fichier de configuration d'aMule. NE PAS UTILISER DIRECTEMENT !"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Désactiver l'interpréteur PHP (obsolète)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Recompiler les pages PHP à chaque requête"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Serveur Web d'aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "connexion du client web acceptée\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "ERREUR : impossible d'accepter la connexion au client web\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "La requête a échouée avec le message d'erreur suivant: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Fichier d'index non trouvé:"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "La session a expirée - demande de l'identifiant\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Session correcte, identifié\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Session correcte, non identifié\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Pas de session ouverte - l'identifiant va être demandé\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Session crée - demande de l'identifiant\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Requête en cours [originale] : "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Pas de mot de passe indiqué, il ne sera pas possible de se connecter"
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Vérification du mot de passe\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Hachage du mot de passe invalide\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Mot de passe correct\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Mauvais mot de passe\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 "Vous n'avez pas entré de mot de passe. Les mots de passe vides ne sont pas "
 "autorisés.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Déconnexion demandée\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Requête en cours [redirigée] :"
 
@@ -7831,9 +7852,6 @@ msgstr "Requête en cours [redirigée] :"
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Utilisateurs au total : %s | Fichiers au total : %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "Processus de téléchargement HTTP démarré"
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr ""
 #~ "Taille à télécharger non reçue, téléchargement jusqu'à ce que la "
diff --git a/po/gl.po b/po/gl.po
index c6bccaa..33ee16a 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -20,7 +20,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-07-03 12:01+0100\n"
 "Last-Translator: Festor Wailon Dacoba <festor90 at gmail.com>\n"
 "Language-Team: Galego <proxecto at trasno.net>\n"
@@ -52,7 +52,7 @@ msgstr "O hash de usuario especificado non é válido!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Non se pode abrir %s (%s)"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -60,58 +60,58 @@ msgstr ""
 "AVISO: Non podes engadirte a ti mesmo como unha fonte para un enlace eD2k "
 "tendo ID baixa."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 #, fuzzy
 msgid "Now, exiting main app..."
 msgstr ""
 "\n"
 "OK, saíndo de %s...\n"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Erro"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 #, fuzzy
 msgid "aMule shutdown completed."
 msgstr "Descarga rematada"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Confirmación de saída"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "Nova conexión externa aceptada"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "AVISO"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -119,13 +119,13 @@ msgstr ""
 "O seu locale cambiou ao predeterminado do sistema debido a un troco na "
 "configuración. Síntoo."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Información"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -133,16 +133,16 @@ msgstr ""
 "Non ten ningún servidor na lista de servidores.\n"
 "Quere que aMule descargue unha nova lista agora?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Descargar lista de servidores"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "servidor web executándose con pid: %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -153,23 +153,23 @@ msgstr ""
 "aMule ou compile o aMule empregando o parámetro --enable-webserver e logo "
 "execute o make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ERRO"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "No se puido vincular os portos a dirección especificada: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Porto %u non está dispoñible . Tes IDBAIXA\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -185,11 +185,11 @@ msgstr ""
 "Comproba túa rede para cerciorarse de que o porto está aberto para a entrada "
 "e saída."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Fallou ao crear o ficheiro OnlineSig"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Fallou ao crear o ficheiro de aMule OnlineSig"
 
@@ -241,135 +241,135 @@ msgstr ""
 "O cartafol que especificou de Sinatura Online non é válido!\n"
 "A Sinatura Online foi deshabilitada ata que o arregle en preferencias."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "Nome do servidor :"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "A reserva do espazo no disco duro para o arquivo '%s' fallou: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ERRO: non se pode abrir o ficheiro de rexistro"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "AVISO: o ficheiro de rexistro está baleiro. Algo está mal."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "O rexistro foi borrado"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Mensaxe de servidor: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Fallou ao descargar a lista de nodos."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Fallou ao abrir o ficheiro de comprobación de versión descargado"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Ficheiro de comprobación de versión corrupto"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Está usando unha versión de aMule non actualizada!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "A súa versión de aMule é %i.%i.%i e a última versión é %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Pode obter a última versión de aMule en http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 "AVISO: A súa versión de aMule está desactualizada: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Súa copia de aMule está actualizada."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Fallou ao descargar o ficheiro de comprobación de versión"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Usuarios: %s | Arquivos: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Usuarios: E: %s K: %s | Arquivos: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Sen redes seleccionadas"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "con IDbaixa"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "con ID alta"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Conectado a %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Conectando a %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Desconectado do eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad iniciado."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad detido."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Conectado a Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Conectado a Kad (cortafogos)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Desconectado de Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -377,11 +377,11 @@ msgstr ""
 "A rede Kad non pode ser usada se o porto UDP está desactivado nas "
 "preferencias, non iniciado."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "A rede Kad está desactivada nas preferencias, non conectado."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 #, fuzzy
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
@@ -394,7 +394,7 @@ msgstr ""
 "inicie amuled coa opción --ec-config ou estableza a clave "
 "\"AcceptExternalConnections\" a 1 no ficheiro ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -403,19 +403,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ERRO: %s"
@@ -496,9 +496,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Mensaxe"
 
@@ -506,7 +506,7 @@ msgstr "Mensaxe"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Conectando"
 
@@ -540,7 +540,7 @@ msgstr "Kad: Off"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Cancelar"
 
@@ -557,7 +557,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Desconectar da rede."
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Conectar"
 
@@ -598,7 +598,7 @@ msgstr "Confirmación de saída"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -613,81 +613,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "AVISO: Non se pode abrir o arquivo das peles '%s' para leer"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Redes"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Fiestra de Redes"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Buscas"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Fiestra de buscas"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Descargas"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Descargando"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Compartidos"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Fiestra de ficheiros compartidos"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Mensaxes"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Fiestra de mensaxes"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Estatísticas"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Fiestra de gráficos de estatísticas"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Preferencias"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Fiestra de preferencias"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importar"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "A ferramenta para importar ficheiros part"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Acerca de"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Acerca de/Axuda"
 
@@ -707,7 +707,7 @@ msgstr "Sin red"
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -720,109 +720,109 @@ msgstr "Erro fatal: Erro ao crear temporizador"
 msgid "Connect to remote amule"
 msgstr "Connectar a amule remoto"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Erro fatal: Erro ao crear temporizador"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 #, fuzzy
 msgid "Going to event loop..."
 msgstr "Tentando recuperar info de ficheiro..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Conectando"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Fallou a conexión"
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Todo"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Descoñecido"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Erro ao recupera-los ficheiros compartidos do usuario '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Fake eMule versión %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Fake eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Fake eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (basado en eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Alcume: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Petición: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -834,7 +834,7 @@ msgstr[1] ""
 "Estatísticas do ficheiro para esta sesión: Aceptadas %d de %d peticións; %s "
 "transferidas\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -846,7 +846,7 @@ msgstr[1] ""
 "Estatísticas do ficheiro para todas as sesións: Aceptadas %d de %d "
 "peticións; %s transferidas\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Petición dun ficheiro descoñecido"
 
@@ -994,12 +994,12 @@ msgid "Client Details"
 msgstr "Detalles do cliente"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "IDbaixa"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "IDalta"
 
@@ -1051,31 +1051,31 @@ msgstr "Verificado - OK"
 msgid "Not Available"
 msgstr "Non dispoñible"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "O usuario %s (%u) solicitou a túa lista de ficheiros compartidos -> Aceptado"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "O usuario %s (%u) solicitou a túa lista de ficheiros compartidos -> Denegado"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "O usuario %s (%u) solicitou a túa lista de cartafoles compartidos -> Aceptado"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "O usuario %s (%u) solicitou a túa lista de cartafoles compartidos -> Denegado"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1083,7 +1083,7 @@ msgstr ""
 "O usuario %s (%u) solicitou a túa lista de ficheiros compartidos do "
 "directorio %s -> aceptado"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1091,36 +1091,36 @@ msgstr ""
 "O usuario %s (%u) pediu a súa lista de ficheiros compartidos do directorio %"
 "s -> denegado"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "O usuario %s (%u) directorios compartidos %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 "O usuario %s (%u) enviou unha lista de directorios compartidos non desexada."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "O usuario %s (%u) enviou a súa lista de ficheiros compartidos ao cartafol %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 "O usuario %s (%u) rematou de enviar a súa lista de ficheiros compartidos"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 "O usuario %s (%u) enviou unha lista de ficheiros compartidos non deseada"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1136,7 +1136,7 @@ msgstr "Nome de usuario"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Nome do arquivo"
 
@@ -1177,33 +1177,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Al]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Moi baixo"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Baixo"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Alto"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Moi alto"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Lanzamento"
 
@@ -1220,12 +1220,12 @@ msgid "Queue Full"
 msgstr "Cola chea"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "En cola"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Descargando"
 
@@ -1285,7 +1285,7 @@ msgstr "Servidor local"
 msgid "Remote Server"
 msgstr "Servidor remoto"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1311,7 +1311,7 @@ msgid "Search Result"
 msgstr "Resultado da b"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Completado"
 
@@ -1352,11 +1352,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Tamaño"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Transferido"
 
@@ -1369,17 +1369,17 @@ msgid "Progress"
 msgstr "Progreso"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Fontes"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioridade"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Estado"
@@ -1404,7 +1404,7 @@ msgstr "¿Estás seguro de que queres borrar o ficheiro seleccionado?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "¿Estás seguro de que queres borrar os ficheiros seleccionados?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1414,7 +1414,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automático"
 
@@ -1466,11 +1466,11 @@ msgstr "Ver todo-los comentarios"
 msgid "Copy magnet URI to clipboard"
 msgstr "Copiar a URI magnética ao portapapeis"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Copiar eD2k &enlace ó portapapeis"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Copiar resposta ao portapapeis"
 
@@ -1486,24 +1486,24 @@ msgstr "Asignar a categoría"
 msgid "&Open the file"
 msgstr "Abri-lo arquiv&O"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Introducir un novo nome para este ficheiro:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Renomear o ficheiro"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Descargas (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1511,11 +1511,11 @@ msgstr ""
 "Para evitar a aparición deste aviso en cada vista previa,\n"
 "establece o teu reproductor de vídeo nas preferencias (mplayer por defecto)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Previsualizar ficheiro"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1625,29 +1625,29 @@ msgstr "Conexión externas desactivadas debido a un contrasinal baleiro!"
 msgid "External connections disabled in config file"
 msgstr "Conexións externas desactivadas no ficheiro de configuración"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nova conexión externa aceptada"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ERRO: non se puido aceptar unha nova conexión externa"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Conexión externa refusada debido a un contrasinal baleiro nas preferencias!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Conectando ao cliente: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Versión descoñecida"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1655,7 +1655,7 @@ msgstr ""
 "EC incorrecto na ID de versión, debe haber unha incompatibilidade. Usa "
 "núcleo e remoto da mesma versión."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1664,175 +1664,175 @@ msgstr ""
 "Non pode conectarse a una versión estable dende una versión SVN arbitraría! "
 "Prevido posible crash"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Versión de protocolo inválido."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Marcador de versión de protocolo inexistente."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "Fallou a autenticación."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "Fallou a autenticación."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "Resposta inválida, debería autenticarse primeiro."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Acceso concedido."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Filtrar mensaxes de clientes descoñecidos"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Intento de acceso non autorizado. Conexión pechada."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Fallou o comando remoto PartFile: Ficheiro hash non atopado: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Ficheiro hash non atopado: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OOPS! Erro de proceso de OpCode!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Servidor non engadido"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "servidor non atopado: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "necesita definir o servidor que se vai a eliminar"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k está deshabilitado nas preferencias."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Busca en progreso. Resultado obtidos en breve!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Buscador web da interface remota non fai sensible."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Sen puntos para gráfica."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Seu cliente non está configurado para este nivel de detalle."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Conexión externa: apagado solicitado"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Xa está apagando."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Conexión externa: engadindo ligazón '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Ligazón inválido ou xa está na lista."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Ficheiro non atopado."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nome de ficheiro inválido."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Imposible renomear o ficheiro."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad está desactivado nas preferencias."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Xa estás conectado o eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Conectado o eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Xa está conectado a Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Conectando a Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Tódalas redes están desactivadas."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Desconectado do eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Desconectado de Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Conexión externa: recibido código de operación inválido: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "opcode inválido (versión de protocolo inválido?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Extensión descoñecida '%s' para o comando '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Comando descoñecido '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1840,7 +1840,7 @@ msgstr ""
 "\n"
 "Este comando non pode ter un argumento.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1848,7 +1848,7 @@ msgstr ""
 "\n"
 "Este comando deber ter un argumento.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1856,7 +1856,7 @@ msgstr ""
 "\n"
 "Este comando está incompleto, debe usar unha das extensión de abaixo.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1864,11 +1864,11 @@ msgstr ""
 "\n"
 "Extensións dispoñibles:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Comandos dispoñibles:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1879,17 +1879,17 @@ msgstr ""
 "Todos os comandos son sensibles ás maiúsculas\n"
 "Escriba '%s <command>' para obter información detallada do <comando>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Saír da aplicación."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Mostrar axuda."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1897,7 +1897,7 @@ msgstr ""
 "Para obter axuda dun comando, teclee 'help <comando>'.\n"
 "Para obter a lista completa de comandos, teclee 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1908,48 +1908,48 @@ msgstr ""
 "Usa '%s' para lista de comandos\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Erro de sintase!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Erro procesando o comando - isto non debería pasar! Por favor, reporte o "
 "bug\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Este comando non debería ter ningún parámetro."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Este comando debe ter un parámetro."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argumento inválido."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Isto é un comando incompleto."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Teclee '%s' para obter máis axuda.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Isto é %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Isto é %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1957,7 +1957,7 @@ msgstr ""
 "\n"
 "Creando cliente...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1966,7 +1966,7 @@ msgstr ""
 "\n"
 "OK, saíndo de %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1980,48 +1980,48 @@ msgstr ""
 "\n"
 "Saíndo...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Mostrar este texto de axuda."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Anfitrión onde estase executando aMule. (por defecto: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Porto de aMule para conexión externa. (por defecto: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Contrasinal para conexión externa."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Ler configuración do ficheiro."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Non imprimir ningunha saída a stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Estar difuso - mostrar as mensaxes de depuración."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Establecer locale de programa (lingua)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Escribir opcións da liña de comando ao ficheiro de configuración."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 "Crear ficheiro de configuración basado no ficheiro de configuración de aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Imprimir versión de programa."
 
@@ -2034,8 +2034,8 @@ msgstr "Detalles do ficheiro"
 msgid "%.1f%% done"
 msgstr "%.2f%% feito"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2055,7 +2055,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Amigos"
 
@@ -2186,32 +2186,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Descargado"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Reconectar ao servidor"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2243,7 +2243,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Erro ao decarga-la lista de servidores dende %s"
@@ -2289,7 +2289,7 @@ msgstr[1] "%u liñas malformadas foron descartadas."
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2304,105 +2304,105 @@ msgstr "Clientes coñecidosde Bootstrap"
 msgid "Nodes (%u)"
 msgstr "Nodos (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Ip inválida ao bootstrap"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Porto inválido ao bootstrap"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Por favor encha todos os campos requeridos"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Estas seguro de que queres descargar un ficheiro nodes.dat novo?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Facendo isto borrarás os teus nodos actuais e reiniciarás a conexión "
 "Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Continuar?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: palabra de busca demasiado corta"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: A palabra buscada xa está na lista de búsqueda:"
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Lido %u contacto Kad"
 msgstr[1] "Lidos %u contactos Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Escribio %d contacto Kad"
 msgstr[1] "Escribio %d contactos Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nome de ficheiro"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Tamaño do arquivo"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Relación subida/baixada"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Subido"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Solicitado"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Aceptado"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Fontes completas"
 
@@ -2428,71 +2428,76 @@ msgstr "Versión descoñecida"
 msgid "Unable to get error description for error %d"
 msgstr "AVISO: Non se pode abrir o arquivo das peles '%s' para leer"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Hasheando"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Completando"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Completado"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pausado"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Erróneo"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Agardando"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Debe especificar un contrasinal non baleiro."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Contrasinal inválido, sen un hash MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Erro de conexión"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Errada conexión EC. Resposta baleira."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Conexión externa: Mala resposta do servidor. Conexión pechada."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Éxisto! Conexión establecida en aMule"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Éxito! Conexión establecida."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Conexión externa: Acceso denegado debido a:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Conexión externa: Acceso denegado"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Auto recarga iniciada"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2501,16 +2506,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ERRO: Non se puido escoitar o porto TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ERRO: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "AVISO: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Pechar"
 
@@ -2518,8 +2523,8 @@ msgstr "Pechar"
 msgid "Cut"
 msgstr "Cortar"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Copiar"
 
@@ -2528,7 +2533,7 @@ msgid "Paste"
 msgstr "Pegar"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Limpar"
 
@@ -2538,7 +2543,7 @@ msgstr "Seleccionar todo"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "Kb/s"
@@ -2615,7 +2620,7 @@ msgid "ServerIP: "
 msgstr "IP de servidor :"
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Non conectado"
 
@@ -2650,7 +2655,7 @@ msgstr "Sinatura Online: Activada"
 msgid "Online Signature: Disabled"
 msgstr "Sinatura Online: Desactivada"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Tempo de execución: %s"
@@ -2691,7 +2696,7 @@ msgstr "Ocultar aMule"
 msgid "Show aMule"
 msgstr "Mostrar aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Saír"
 
@@ -2778,7 +2783,7 @@ msgstr "Busca"
 msgid "Name:"
 msgstr "Nome:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tipo"
 
@@ -2806,38 +2811,38 @@ msgstr "Filtrado"
 msgid "File Type"
 msgstr "Tipo de ficheiro"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Calquera"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arquivos"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Imaxe de CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Imaxes"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programas"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Textos"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Vídeos"
 
@@ -2858,11 +2863,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2890,7 +2895,7 @@ msgstr "Invertir resultado"
 msgid "Hide Known Files"
 msgstr "Agochar ficheiros coñecidos"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Comezar"
 
@@ -2948,7 +2953,7 @@ msgstr "Nome completo"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2972,7 +2977,7 @@ msgstr "Estado do ficheiro part:"
 msgid "Last seen complete :"
 msgstr "Última vez visto completo:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transferencias"
 
@@ -3061,27 +3066,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Calificación de ficheiro"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Non evaluada"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Inválido / Corrupto / Falsificación"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Pobre"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Aceptable"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Boa"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Excelente"
 
@@ -3128,7 +3133,7 @@ msgid "Userhash :"
 msgstr "Hash do usuario :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Engadir"
 
@@ -3363,9 +3368,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Navegador"
 
@@ -3453,7 +3458,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3574,7 +3579,7 @@ msgstr "Introduza o espazo mínimo de disco desexado."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Gardar 10 fontes en ficheiros raros (< 20 fontes)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Subidas"
 
@@ -3817,7 +3822,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Activar o seguimento do porto UPnP no porto EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Contrasinal"
 
@@ -3900,8 +3905,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Seleccionar cor para esta categoría (seleccionada) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Reaxustar"
 
@@ -4303,88 +4308,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Activar Depuración-rexistro difuso."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "Abri-lo arquiv&O"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Categorías de mensaxe:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Agardando..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Engadir importes"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Reintentar seleccionado"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Borrar seleccionado"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Subidas activas :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Oculta os archivos compartidos"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Selecione o filtro de visionado"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Subidas activas"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Mostrar clientes"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Recargar lista"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Recargar os seus ficheiros compartidos"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Enviar"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Enviar a mensaxe especificada."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Pechar esta sesión de chat."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Conectar a calquera servidor e/ou Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Ficheiros compartidos"
 
@@ -4393,135 +4403,135 @@ msgstr "Ficheiros compartidos"
 msgid "Disabled [%s]"
 msgstr "Desactivado [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/seg"
 msgstr[1] "bytes/seg"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "segundos"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "minutos"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "horas"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Días"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "todo"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "todo o demais"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incompleto"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Parado"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Vídeo"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arquivo"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Texto"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Activo"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importando %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Lendo cartafol temporal"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Obtendo información básica de ficheiro info de descarga"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Creando ficheiro de destino"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Cargando datos desde a antiga descarga do ficheiro (%u de %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Gardando bloque de datos dun novo ficheiro de descarga (%u de %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Obtendo información do ficheiro fonte de descarga"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Engadindo descarga e gardando novo ficheiro part"
 
@@ -4537,12 +4547,12 @@ msgstr "Estado"
 msgid "Filehash"
 msgstr "Hash de ficheiro"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disco: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4550,14 +4560,14 @@ msgstr ""
 "Por favor escolla un cartafol para buscar descargas temporais! "
 "(subcartafoles serán incluidos)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Quere que os ficheiros fonte dunha descarga importada satisfactoriamente "
 "sexan borrados?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Borrar fontes?"
 
@@ -4674,7 +4684,7 @@ msgstr "O ficheiro part %s (%s) ten un ficheiro seed baleiro"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Erro lendo o ficheiro seed do ficheiro part (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4689,39 +4699,39 @@ msgstr[1] ""
 "Parte corrupta atopada (%d) en %d ficheiros part %s - FileResultHash |%s| "
 "FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Parte (%i) completada atopada en %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Rematado de rehashear %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Erro non esperado mentres completábase %s. Arquivo pausado"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Descarga rematada: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Eliminando ficheiro: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "ERRO: Non se puido crear o hash da parte baixada, conxunto de hashes non "
 "completo para '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4730,235 +4740,235 @@ msgstr ""
 "ERRO: Non se puido crear o hash da parte baixada, conxunto de hashes non "
 "completo (%s). Isto non debería ocorrer nunca"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "AVISO: Non hai suficiente espazo libre en disco! Pausando ficheiro: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Part descargado %i é corrupto no ficheiro: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Part corrupto recuperado %i para %s -> Bytes gardados: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Reservando"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Espazo no disco insuficiente"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Descargado"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ERRO: Fallou ó abrir o partfile '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Por defecto"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanés"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Árabe"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Estonio"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Euskera"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Búlgaro"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalán"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Chinés (Simplificado)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Chinés (Tradicional)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Croata"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Checo"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danés"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holandés"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Inglés (R. U.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonio"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandés"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francés"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galego"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Alemán"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Grego"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebreo"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Húngaro"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiano"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiano (Suizo)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Xaponés"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Coreano"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituano"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Noruego (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polaco"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugués"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugués (Brasileiro)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Ruso"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Esloveno"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Castelán"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Sueco"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turco"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Idioma"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Non dispoñible"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "Non hay opcións disponibles"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "O porto TCP non pode ser máis alto que 65532 debido a que o socket do "
 "servidor UDP está sendo TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Empregarase o porto predeterminado (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Conexión"
 
@@ -4966,7 +4976,7 @@ msgstr "Conexión"
 msgid "Directories"
 msgstr "Directorios"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servidores"
 
@@ -5017,7 +5027,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5033,26 +5043,26 @@ msgstr ""
 "aMule funcionará ben sen que cambie ningún\n"
 "destes parámetros."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "O tipo de proxy ao que estase conectando"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5060,36 +5070,41 @@ msgstr ""
 "aMule debe ser reiniciado para activar estes trocos:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- Porto TCP cambiado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- Porto UDP cambiado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Conexión externa pechada."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Nova conexión externa aceptada"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Conexión externa pechada."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Ofuscación de protocolo"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5098,20 +5113,20 @@ msgstr ""
 "Conexións externas non poden ser activadas a non ser que especifique un "
 "contrasinal válido."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Idioma cambiado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Cartafol temporal cambiado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "Tódalas redes están desactivadas."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5119,7 +5134,7 @@ msgstr ""
 "eD2k e Kad están desactivados.\n"
 "Non poderás conectarte ata activar ó menos un deles."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5127,7 +5142,7 @@ msgstr ""
 "Kad non se iniciará se non está activado o porto UDP.\n"
 "Activar o porto UDP ou desactivar Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5137,7 +5152,7 @@ msgstr ""
 "Debe reiniciar o aMule agora.\n"
 "Se non o reinicia ahora, algo malo pode suceder.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5147,41 +5162,41 @@ msgstr ""
 "Por favor completa ao menos unha URL para sinalar un ficheiro server.met.\n"
 "Prema no botón \"Lista\" para introducir unha URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Ficheiros temporais"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Ficheiros entrantes"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Sinaturas Online"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Escolla un cartafol para %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Atopar o reproductor de vídeo"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Selecione o navegador"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Executable%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Editar a lista dos servidores"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5189,77 +5204,77 @@ msgstr ""
 "Engadir aquí unha URL para descargar unha lista server.met.\n"
 "Só unha url nesta liña"
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Periodo de actualización: %d seg"
 msgstr[1] "Periodo de actualización: %d segs"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Tempo medio de gráfico: %d min"
 msgstr[1] "Tempo medio de gráfico: %d mins"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Escala gráfica de conexións: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Tamaño do ficheiro búfer %d byte"
 msgstr[1] "Tamaño do ficheiro búfer %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Tamaño da cola de subida %d cliente"
 msgstr[1] "Tamaño da cola de subida %d clientes"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Intervalo de refresco da conexion ao servidor: %d minuto"
 msgstr[1] "Intervalo de refresco da conexion ao servidor: %d minutos"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Intervalo de refresco da conexion ao servidor. Desactivada"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "desactivado"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Executar comando no evento `%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Activar execución de comando no núcleo"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Comando do núcleo:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Activar execución de comando no GUI"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Comando de GUI:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "As seguintes variables serán reemprazadas:"
 
@@ -5289,7 +5304,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Erro inesperado tentando buscar en Kad:"
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "IDFicheiro"
 
@@ -5402,7 +5417,7 @@ msgstr "ERRO: Socket inválido ó comprobar o timeout"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Tentando conectar a %s (%s:%i) fora de tempo."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5432,52 +5447,52 @@ msgstr ""
 "Ficheiro server.met corrupto, atopada marca de versión inválida: 0x%x, "
 "tamaño %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i servidor atopado no server.met"
 msgstr[1] "%i servidores atopados no server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d servidor engadido"
 msgstr[1] "%d servidores engadidos"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Erro de ES lendo o ficheiro known.met: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Servidor non engadido: [%s:%d] non especifica un porto válido."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Servidor non engadido: A IP de [%s:%d] está filtrada ou é inválida."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Servidor non engadido: Servidor con IP:Porto [%s:%d] coincidinte atopado na "
 "lista."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Servidor engadido: Servidor [%s:%d] empregando o nome '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5485,25 +5500,25 @@ msgstr ""
 "Estás conectado ao servidor que tenta borrar. Por favor desconéctese "
 "primeiro."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Erro ao abrir '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Erro ao gardar o ficheiro server.met"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Url inválida"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Finalizando a descarga da lista dos servidores de %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5512,28 +5527,28 @@ msgstr ""
 "pega unha lista de servidores válida neste arquivo para poder actualizar de "
 "forma automática a lista de servidores."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Descargando lista dos servidores de %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "AVISO: especificada unha URL inválida para la actualización automática de "
 "servidores : %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Erro en addresses.dat, server.met da url de auto descarga inválido"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Erro ao decarga-la lista de servidores dende %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5570,7 +5585,7 @@ msgid "Static"
 msgstr "Estático"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versión"
 
@@ -5596,8 +5611,8 @@ msgstr "¿Estas seguro de que queres borrar o servidor estático %s?"
 msgid "Servers (%i)"
 msgstr "Servidores (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Servidor"
 
@@ -5653,82 +5668,82 @@ msgstr "¿Estás seguro de que queres borrar o servidor seleccionado(s)?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "¿Estás seguro de que queres borrar os servidores seleccionados?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ERRO: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "AVISO: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "A nova IDcliente é %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "ATENCIÓN: ¡Reciviches ID-Baixa!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tIsto sucede porque está detrás dun cortafogos ou dun router."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPara máis información, por favor ves a http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Información recibida do servidor descoñecida! - demasiado corta"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Recibido %d novo servidor"
 msgstr[1] "Recibidos %d novos servidores"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Gardado completo da lista de servidores."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Servidor rexeitou o último comando"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Paquete bogus recibido do servidor: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Erro ao procesar o paquete desde o servidor: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Non se pode crear o fío da DNS para conectar a %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "IP de servidor %s (%s) está filtrada. Non conectará."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "usando ofuscación de protocolo."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Conectando a %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Non se puido aclarar a dns para o servidor %s: Imposible conectar!"
@@ -5918,87 +5933,92 @@ msgstr "Nome do arquivo"
 msgid "Shares File List"
 msgstr "Ficheiros compartidos"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Peticións"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Peticións aceptadas"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Datos transferidos"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Media de compartido"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Partes obtidas"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Fontes completas"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Ruta de directorio"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Engadir Comentario/Calificación"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Editar Comentario/Calificación"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Renomear"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Engadir os ficheiros en colección á lista de tranferencia"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Copiar a &URI magnética ao portapapeis"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Copiar enlace eD2k ó portapapeis (&Fonte)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 "Copiar enlace eD2k ó portapapeis (&Fonte) (&Con opcións de encriptación)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Copiar enlace eD2k ó portapapeis (&Nome do host)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Copiar enlace eD2k ó portapapeis (&Nome do host) (Con opcións de "
 "&encriptación)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Copiar enlace eD2k ó portapapeis (&AICH info)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Copiar enlace eD2k ó portapapeis (&AICH info)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Necesitas ter IDALTA para crear un enlace de fonte válido"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Ficheiros compartidos (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[PartFile]"
 
@@ -6007,235 +6027,235 @@ msgstr "[PartFile]"
 msgid "Remote File Name"
 msgstr "Nome do arquivo"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Datos subidos (Sesión (Total)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Overhead total (Paquetes ): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Petición de ficheiro Overhead (Paquetes): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Intercambio de fontes Overhead (Paquetes): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Servidores Overhead (Paquetes): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Overhead Kad (Paquetes ): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Cripta xerais (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Subidas activas: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Subidas agardando: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Sesión de subidas totais rematadas: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Total de subidas erradas na sesión: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Tempo medio de subida: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Datos descargados (Sesión (Total)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Fontes atopadas: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Descargas activas (pedazos): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Índice SU:BA Sesión (Total): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Velocidade media de baixada (Sesión): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Velocidade media de subida (Sesión): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Velocidade máxima de baixada (Sesión): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Velocidade máxima de subida (Sesión): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Reconexións: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tempo dende a primeira tranferencia: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Conectado ao servidor dende: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Conexións activas (estimadas): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Lí­mite máximo de conexións rechazado: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Media de conexións (estimado): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Pico de conexións (estimado): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Clientes"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Tamaño descoñecido"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Filtrado"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "Vetado"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Total:%i Coñecido: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Servidores activos: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Servidores caídos: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Total: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Servidores borrados: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Servidores filtrados: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Usuarios en servidores activos: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Ficheiros nos servidores activos: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Usuarios totais: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Ficheiros totais: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Ocupación do servidor: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Número de ficheiros compartidos: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Tamaño total dos ficheiros compartidos: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Tamaño medio de arquivo: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistema operativo"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Non recibido"
 
@@ -6294,7 +6314,7 @@ msgstr "Non é un número válido\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Hash inválido (a lonxitude debería ser exactamente 32 caracteres)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Petición fallida cun erro descoñecido."
 
@@ -6348,13 +6368,13 @@ msgstr "Conectado a %s %s %s"
 msgid "Now connecting"
 msgstr "Conectando"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "cortafogos"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "aceptar"
 
@@ -6807,21 +6827,21 @@ msgstr ""
 "Este comando quedou obsoleto e probablemente sexa eliminado nun futuro.\n"
 "Emprege '%s' en lugar dese.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Cliente texto do aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Convertendo conxuntos hash AICH antigos en '%s' a 64b en '%s'"
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "AVISO: O nome do ficheiro '%s' é inválido e foi renomeado a '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6895,7 +6915,7 @@ msgstr "Fallou ao executar o comando `%s' no evento `%s'."
 msgid "Download completed"
 msgstr "Descarga rematada"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "A ruta completa ao ficheiro."
 
@@ -6915,66 +6935,66 @@ msgstr "O tamaño do ficheiro en bytes."
 msgid "Cumulative download activity time."
 msgstr "Tempo de actividade de descarga acomulativo."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Nova sesión de chat comezada"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Mensaxe remitente."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Fora de espazo"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partición do disco."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Erro ao completar"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Procesando número de ficheiro %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Preguntou por hashes de partes (Só usado por ficheiros > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Non existe o ficheiro!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, o creador de enlaces eD2k do aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Benvido!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Parámetros de entrada"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Ficheiro a hashear"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Engadir URLs opcionais para este ficheiro"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Introduce aquí o arquivo do cal desexes calcular o enlace eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6983,15 +7003,15 @@ msgstr ""
 "caracter / ó final para permitir o aLinkCreator engadir o nome de arquivo "
 "actual"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Eliminar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Crear ligazón con codificacións de partes"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6999,81 +7019,81 @@ msgstr ""
 "Axuda para separar ficheiros novos e raros máis rapidamente, o coste será un "
 "tamaño de ligazón maior"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Ficheiro Hash MD4"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Hash do arquivo eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k link"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Gardar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Copiar ao portapapeis"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Abrir un arquivo para calcular o seu enlace eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Copiar o enlace eD2k calculado ó portapapeis"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Gardar o enlace eD2k calculado nun arquivo"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Acerca do aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Selecciona o arquivo do cal desexes calcular o enlace eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Nada para copiar agora !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Selecciona o arquivo para o enlace eD2k calculado"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Non se pode abrir"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Por favor introduza un nome de ficheiro non baleiro"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Nada para gardar agora !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7093,158 +7113,162 @@ msgstr ""
 "\n"
 "Distribuido baixo a licenza GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Hasheando..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Cancelado !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Feito en %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Xa ten engadida esta URL !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Por favor, introduza unha URL non baleira"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Non se pode abrir %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i día(s) %i hora(s) %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, Estatísticas aMule en liña"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Máximo índice de DE desde que wxCas está executándose"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Máximo índice DE absoluto durante execucións anteriores de wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Deter auto recargar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Gardar imaxe de estatísticas en liña"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Imprimir imaxe de estatísticas en liña"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Preferencias"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Acerca de wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Iniciar auto recargar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Auto recarga detida"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Auto recarga iniciada"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Gardar imaxe de estatísticas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Estatísticas aMule en liña"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7252,11 +7276,11 @@ msgstr ""
 "Houbo un problema imprimindo.\n"
 "Tal vez túa impresora actual non esté configurada?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Imprimindo"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7274,328 +7298,328 @@ msgstr ""
 "\n"
 "Distribuido baixo GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, non se está executando aMule..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule está iniciado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule estase executando, pero está desconectado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule está conectando..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, estado de aMule descoñecido..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " foi executado durante "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " está detido !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " non está conectado!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " está conectando..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " pasou algo estraño, compróbao !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " está conectado a "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "apagar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " conectado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr "con "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Total descargado: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Subido: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Descarga de sesión: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Descargado: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Subido: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Compartindo: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " ficheiro(s), Clientes en cola: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Tempo: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " en "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Media de carga de sistema (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Tempo de execución do sistema: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Directorio que contén o ficheiro amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Introduza aquí o directorio onde está teu ficheiro amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Intervalo de refresco en segundos"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Xerar un ficheiro de estatísticas sempre que se actualice"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Introduza aquí o directorio onde quere xerar a imaxe de estatísticas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Sube periodicamente túa imaxe de estatísticas ao servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "Url FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Ruta FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Introduza aquí a URL do seu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Introduza aquí o directorio onde poñer a súa imaxe de estatísticas no "
 "servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Usuario"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Introduza aquí o nome de Usuario para conectarse a teu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr ""
 "Introduza aquí o contrasinal de Usuario para conectarse a teu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Intervalo de actualización de FTP en minutos"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Validado"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "O cartafol que contén teu ficheiro de sinatura"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Cartafol onde se xenera a imaxe de estatísticas"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Cargar modelo <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Porto HTTP servidor Web"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Uso da redirección de portos UPnP no porto do servidor web"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Porto UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Usar compresión gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Contrasinal de acceso total para o servidor web"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Contrasinal de invitado para o servidor web"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Permitir acceso de invitado"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Denegar acceso de invitado"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Cargar/gardar a configuración do servidor web dende/a aMule remoto"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Ruta do ficheiro de configuración de aMule. NON USAR DIRECTAMENTE!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Desactivar intérprete PHP (obsoleto)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Recompila páxinas PHP para outra petición"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Servidor Web aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "conexión do cliente web aceptada\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Petición fallida co seguinte erro: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Ficheiro índice non atopado: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sesión expirada - petición de conexión\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sesión aceptada, conectado\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sesión aceptada, non conectado\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Ningunha sesión aberta - petición de conexión\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sesión creada - petición de conexión\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Procesando petición [orixinal]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Comprobando contrasinal\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Contrasinal hash inválido\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Contrasinal aceptado\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Contrasinal erróneo\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 "Non introduciches ningún contrasinal. Un contrasinal en branco non está "
 "permitido.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Desconexión solicitada\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Procesando solicitude [redirixida]: "
 
diff --git a/po/he.po b/po/he.po
index fe8c720..c987dc6 100644
--- a/po/he.po
+++ b/po/he.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: amule 2.20\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-04-11 00:21+0300\n"
 "Last-Translator: Peace Kramer <kpeace1 at gmail.com>\n"
 "Language-Team: Hebrew\n"
@@ -38,111 +38,111 @@ msgstr "גיבוב-המשתמש הספציפי אינו תקף!"
 msgid "Failed to open ED2KLinks file."
 msgstr "פתיחת הקובץ %s·(%s נכשלה"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr ""
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "נכשל"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 #, fuzzy
 msgid "aMule shutdown completed."
 msgstr "הורדה הסתיימה"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "אישרור יצאיה"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "גישה חיצונית חדשה התקבלה"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "אזהרה"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
 msgstr ""
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "מידע"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
 msgstr ""
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr ""
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr ""
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -152,11 +152,11 @@ msgid ""
 "Check your network to make sure the port is open for output and input."
 msgstr ""
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr ""
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr ""
 
@@ -201,144 +201,144 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "שם שרת:"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "שגיאה: לא יכול לפתוח קובץ יומן."
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr ""
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "היומן אופס."
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr ""
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr ""
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr ""
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr ""
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr ""
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr ""
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr ""
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr ""
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "עם מ\"ז נמוך (LowID)"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "עם מ\"ז גבוהה (HighID)"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr ""
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr ""
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "קאד התחיל."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "קאד נעצר."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "קאד מחובר (בסדר)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "קאד מחובר (מאחורי חומת אש)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "מנותק מקאד."
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr "אי אפשר להשתמש ברשת הקאד אם מוואת UDP מבוטלת בהעדפות, לא התחיל."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "קאד מבוטל בהעדפות, לא מתחבר."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -346,7 +346,7 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -355,19 +355,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr ""
@@ -444,9 +444,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "הודעה"
 
@@ -454,7 +454,7 @@ msgstr "הודעה"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "מתחבר"
 
@@ -488,7 +488,7 @@ msgstr "קאד: מכובה"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "ביטול"
 
@@ -505,7 +505,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "התנתק מהרשתות שאליהם אתה מחובר כעת"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "התחבר"
 
@@ -546,7 +546,7 @@ msgstr "אישרור יצאיה"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -561,81 +561,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "רשתות"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "חלון הרשתות"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "חיפושים"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "חלון החיפושים"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "הורדות"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "מוריד מהרשת"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "חלון הקבצים המשותפים"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "הודעות"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "חלון ההודעות"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "סטטיסטיקות"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "חלון גרפי הסטטיסטיקה"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "העדפות"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "חלון הגדרת ההעדפות"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "ייבא"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "כלי הייבא עבור קובץ-החלקים"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "אודות"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "אודות/עזרה"
 
@@ -655,7 +655,7 @@ msgstr ""
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "אֵימיול"
 
@@ -668,109 +668,109 @@ msgstr "שגיאה סופנית: יצירת קוצב-זמן נכשלה"
 msgid "Connect to remote amule"
 msgstr "התחבר לאימיול מרוחק"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "שגיאה סופנית: יצירת קוצב-זמן נכשלה"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 #, fuzzy
 msgid "Going to event loop..."
 msgstr "מנסה לשחזר את המידע של הקובץ"
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "מתחבר"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "התחברות נכשלה "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "הכול"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "לא ידוע"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "הניסיון לקבל את רשימת הקבצים המשותפים מהמשתמש '%s' כשלה."
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr "(חיקוי אימיול בגרסת %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr "(חיקוי אימיול)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "אקס-מיול (חיקוי אימיול)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.איקס (מבוסס על אימיול בגרסת 0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "כינוי:%s מ\"ז: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "בוּקַש: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -778,7 +778,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -786,7 +786,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "בקשה עבור קובץ לא ידוע"
 
@@ -929,12 +929,12 @@ msgid "Client Details"
 msgstr ""
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "מ\"ז נמוך (LowID)"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "מ\"ז גבוה (HighID)"
 
@@ -986,64 +986,64 @@ msgstr ""
 msgid "Not Available"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "המשתמש %s (%u) ביקש את רשימת הקבצים המשותפים שלך -> אושר"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "המשתמש %s (%u) ביקש את רשימת הקבצים המשותפים שלך -> נדחה"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "המשתמש %s (%u) ביקש את רשימת התקיות המשותפים שלך -> אושר"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "המשתמש %s (%u) ביקש את רשימת התקיות המשותפים שלך -> נדחה"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr "המשתמש %s (%u) ביקש את רשימת הקבצים המשותפים שלך בתקיה %s -> אושר"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr "המשתמש %s (%u) ביקש את רשימת הקבצים המשותפים שלך בתקייה %s -> נדחה"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "משתמש %s·(%u) משתף את התקייה %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "משתמש %s·(%u) שלח רשימת תקיות משותף בלי שהתבקש."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "משתמש %s (%u) שלח רשימה של קבצים משותפים עבור הספריה %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "משתמש %s (%u) סיים לשלוח את רשימת הקבצים המשותפים"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "משתמש %s·(%u) שלח רשימה של קבצים משותפים מבלי שהתבקש"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr "משתמש %s (%u) שלל גישה לרשימת הקבצים/תקיות שלו"
@@ -1058,7 +1058,7 @@ msgstr "שם משתמש"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "שם קובץ"
 
@@ -1099,33 +1099,33 @@ msgstr "אוטומטי [לא]"
 msgid "Auto [Hi]"
 msgstr "אוטומטי [גבוה]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "מאוד נמוך"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "נמוך"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "רגיל"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "גבוה"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "מאוד גבוה"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "שחרור"
 
@@ -1142,12 +1142,12 @@ msgid "Queue Full"
 msgstr "התור מלא"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "על התור"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "מוריד מהרשת"
 
@@ -1207,7 +1207,7 @@ msgstr "שרת מקומי"
 msgid "Remote Server"
 msgstr "שרת מרוחק"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "קאד"
@@ -1233,7 +1233,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "הסתיים"
 
@@ -1274,11 +1274,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "גודל"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "הועברו"
 
@@ -1291,17 +1291,17 @@ msgid "Progress"
 msgstr "התקדמות"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "מקורות"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "עדיפות"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "מצב"
@@ -1326,7 +1326,7 @@ msgstr "האם אתה בטוח שברצונך למחוק את הקובץ שנב
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "האם אתה בטוח שברצונל ךמחוק את הקבצים שנבחרו?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1334,7 +1334,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "אוטמטי"
 
@@ -1386,11 +1386,11 @@ msgstr "הראה את כל ההערות"
 msgid "Copy magnet URI to clipboard"
 msgstr "העתק מגנט URI ללוח"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "העתק משוב ללוח"
 
@@ -1406,34 +1406,34 @@ msgstr "ייחס לקטיגוריה"
 msgid "&Open the file"
 msgstr "&תפתח את הקובץ"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "הכנס שם חדש עבור קובץ זה"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "שינוי שם לקובץ"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d·%H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "הורדות (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "תקדימון לקובץ"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "שגיאה: הרצת נגן הסרטים נכשלה! הפקודה: '%s'"
@@ -1538,28 +1538,28 @@ msgstr "גישה חיצונית מנוטרלת מאחר שהסיסמא ריקה!
 msgid "External connections disabled in config file"
 msgstr "גישה מרוחקת מנוטרלת בקובץ ההגדרות"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "גישה חיצונית חדשה התקבלה"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "גישה מרחוק נכשלה עקב סיסמא ריקה בהעדפות!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "מחבר לקוח:%s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "גירסה לא ידועה"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1567,7 +1567,7 @@ msgstr ""
 "גירסת EC לא נכונה, יתכן ויש אי התאמה בינארית. השתמש בליבה ובלקוח חיצוני "
 "מאותו תצלום (גירסה)."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1576,203 +1576,203 @@ msgstr ""
 "אתה לא להתחבר לגרסה ששוחררה מSVN (כלי לניהול גרסאות תוכנה) ! *נאנח* ייתכן "
 "והתרסקות של התוכנה נמנעה"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "גרסת פרוטוקל לא תקפה."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "חסר התווית של גרסת הפרוטוקול."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "זיהוי נכשל"
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "זיהוי נכשל"
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "בקשה לא תקפה, כדאי שקודם תאמת."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "גישה אושרה."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr ""
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "ניסיון גישה שאינו מורשה. החיבור נסגר."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "פקודת קובץ-חלקים מרוחקת מכשלה: גיבוב הקובץ לא נמצא: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "גיבוב הקובץ לא מצא: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "אופס! שגיאה בעיבוד קוד-פעולה!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "השרת לא התווסף"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "לא נמצא השרת: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "צריך להגדיר שרת כדי להסירו"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "חיפוש פועל כרגע. ייבא מחדש תוצאות בעוד רגע!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "לא הגיוני לבצע חיפוש-רשתי מתוך ממשק מרוחק."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "אין נקודות עבור הגרף."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "הלקוח שלך אינו מוגדר עבור הרמה הזאת של פרטים."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "כבר בתהליך כיבוי."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "חיבור-חיצוני: מוסיף קישור '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "קישור לא תקף או שכבר נמצא ברשימה."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "קובץ לא נמצא."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "שם קובץ לא תכף."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "לא מצליח לשנות את השם של הקובץ."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "קאד מנוטרל בתוך ההעדפות."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "כבר מחובר לקאד."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "מתחבר לקאד..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "כל הרשתות מנוטרלות."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "מתנתק מקאד."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "קוד-פעולה לא תקף (גרסת פרוטקול שגויה?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1780,23 +1780,23 @@ msgid ""
 "Type '%s <command>' to get detailed info on <command>.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr ""
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr ""
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1804,59 +1804,59 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr ""
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr ""
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr ""
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr ""
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr ""
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
 "Ok, exiting %s...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1865,47 +1865,47 @@ msgid ""
 "Exiting...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr ""
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr ""
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr ""
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr ""
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr ""
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr ""
 
@@ -1918,8 +1918,8 @@ msgstr "פרטי הקובץ"
 msgid "%.1f%% done"
 msgstr "%.2f%% הושלם"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f ק\"ב/ש"
@@ -1936,7 +1936,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "חברים"
 
@@ -2067,32 +2067,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "מוריד %s"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "התחבר מחדש לשרת"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2124,7 +2124,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "פתיחת הקובץ %s·(%s נכשלה"
@@ -2168,7 +2168,7 @@ msgstr[1] "נזרקה השורה המעוותת %u"
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2183,103 +2183,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "צמתים (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "כתובת IP לא חוקית על מנת לבצע אתחול"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "מבואה לא תקפה על מנת לבצע אתחול"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "אנא מלא את כל השדות כפי שנדרש"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "האם את בטוח שברצונח להוריד קובץ nodes.dat חדש?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr "ביצוע פעולה זו תסיר את כל הצמתים הקחחצחם ןתאתחל את חיבור הקאדימליה."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "להמשיך?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "קאדימליה: מילת חיפוש קצרה מדי"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, fuzzy, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "קרא %u יוצרי קשר ל קאד"
 msgstr[1] "קרא %u יוצרי קשר ל קאד"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "שם הקובץ"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2305,71 +2305,76 @@ msgstr "גירסה לא ידועה"
 msgid "Unable to get error description for error %d"
 msgstr "אזהרה: לא ניתן לפתוח את קובץ הסקין '%s' לקריאה"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "מגבב"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "מסיים"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "סיים"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "הושהה"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "שגוי"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "ממתין"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "אתה חייב לציין סיסמא שאינה רקה."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "סיסמא לא תקינה היא איננה מגובבת בפורמט MD5"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "החיבור נכשל"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "ExternalConn: (התחברות חיצונית) תשובה לא טובה מהשרת. החיבור נסגר. ."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "הצלחה!נפתח חיבור ל aMule."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "הצלחה!נפתח חיבור ."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "חיבור חיצוני נסגר."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "רענון אוטמטי התחיל"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2378,16 +2383,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "סגור"
 
@@ -2395,8 +2400,8 @@ msgstr "סגור"
 msgid "Cut"
 msgstr "גזור"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "העתק"
 
@@ -2405,7 +2410,7 @@ msgid "Paste"
 msgstr "הדבק"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "נקה"
 
@@ -2415,7 +2420,7 @@ msgstr "בחר הכל"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "ק\"ב/ש"
@@ -2492,7 +2497,7 @@ msgid "ServerIP: "
 msgstr ""
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "מנותק"
 
@@ -2527,7 +2532,7 @@ msgstr ""
 msgid "Online Signature: Disabled"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "זמן פעולה: %s"
@@ -2568,7 +2573,7 @@ msgstr ""
 msgid "Show aMule"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "יציאה"
 
@@ -2649,7 +2654,7 @@ msgstr "חיפוש"
 msgid "Name:"
 msgstr "שם:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "סוג/טיפוס"
 
@@ -2677,38 +2682,38 @@ msgstr "מסנן"
 msgid "File Type"
 msgstr "סוג קובץ"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "כל דבר"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "ארכיבים"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "אודיו"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "אימג' של סי.די."
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "תמונות"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "תוכניות"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "טקסט"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "סרטים"
 
@@ -2729,11 +2734,11 @@ msgid "KB"
 msgstr "ק\"ב"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "מ\"ב"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "ג\"ב"
 
@@ -2761,7 +2766,7 @@ msgstr "הפוך תוצאות"
 msgid "Hide Known Files"
 msgstr "החבא קבצים מוכרים"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "התחל"
 
@@ -2819,7 +2824,7 @@ msgstr "שם מלא :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "ל\"ת"
 
@@ -2843,7 +2848,7 @@ msgstr "מצב קובץ-חלקים :"
 msgid "Last seen complete :"
 msgstr "נראה שלם בפעם האחרונה :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "מעביר"
 
@@ -2929,27 +2934,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "איכות הקובץ"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "לא מדורג"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "לא תקף / פגום / מזויף"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "דל"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "ממוצע"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "טוב"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "מצויין"
 
@@ -2994,7 +2999,7 @@ msgid "Userhash :"
 msgstr "גיבוב משתשמ :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "הוסף"
 
@@ -3222,9 +3227,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "דפדף"
 
@@ -3310,7 +3315,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3428,7 +3433,7 @@ msgstr ""
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "ההעלאות"
 
@@ -3667,7 +3672,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "סיסמא"
 
@@ -3750,8 +3755,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "אתחל מחדש"
 
@@ -4125,87 +4130,92 @@ msgid "Enable Verbose Debug-Logging."
 msgstr ""
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&תפתח את הקובץ"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "ממתין..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "העלאות פעילים :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "קבצים משותפים"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "בחר מסנן תצוגה"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "העלאות פעילים"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "לקוחות"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "טען מחדש את הקבצים המשותפים שלך"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "שלח"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "שולח את ההודעה המצויינת."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "סגור את הצ'אט הנוכחי."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "קבצים משותפים"
 
@@ -4214,137 +4224,137 @@ msgstr "קבצים משותפים"
 msgid "Disabled [%s]"
 msgstr "נוטרל [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 #, fuzzy
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "בית"
 msgstr[1] "בית"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "ק\"ב"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "ט\"ב"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "קילו"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "מגה"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "גיגה"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "טרה"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 #, fuzzy
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "בייט/שניה"
 msgstr[1] "בייט/שניה"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "מ\"ב/ש"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "שניות"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "דקות"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "שעות"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "ימים"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "הכול"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "כל האחרים"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "חלקי"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "נעצר"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "ווידאו"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "ארכיב"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "טקסט"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "פןעל"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "מייבא %s:·%s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "קורא את הספרייה הזמנית"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "מחלץ מידע בסיסי מקובץ מידע ההורדות"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "יוצר קובץ יעד"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "טוען מידע מקובץ הורדות ישן (%u·מ·%u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "שומר את בלוק המידע לתוך קובץ הורדות יחיד (%u·מ·%u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "מחלץ את מידע הקובץ-המורד מהמקור"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "מוסיף הורדה ושומר קובץ-חלקים"
 
@@ -4360,23 +4370,23 @@ msgstr "מצב"
 msgid "Filehash"
 msgstr "גיבוב-קובץ"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (דיסק: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr "נא לבחור תקייה לחפש קבצים זמניים שהורדו! (תתי תיקיות יכללו בחיפוש)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "האם אתה רוצה שקבצי המקורות של הורדות מוצלחות שיובאו, ימחקו?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "הסר מקור?"
 
@@ -4488,7 +4498,7 @@ msgstr "לקובץ-החלקים %s(%s) יש קובץ הזרעה לא חוקי."
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "שגיאה בקריאת קובץ ההזרעה של קובץ החלקים (%s·-·%s):·%s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4499,271 +4509,271 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "נמצא חלק שהושלם (%i) בתוך %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "הסתיים הגיבוב מחדש של %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "הסתיימה ההורדה של: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "מוחק את הקובץ: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "אזהרה. אין מספיק שטח דיסק פנוי! משהה את הקובץ %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "החלק %i שירד מתוך הקובץ %s פגום"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: תוקן החלק הפגום %i עבור %s -< בתים שנמשרו: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "ברירת מחדל של המערכת"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "אלבני"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "ערבית"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "אסטונית"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "בסקית"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "בולגרית"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "קטלונית"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "סינית (מופשטת)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "סינית (מסורתית)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "קרואטית"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "צ'כית"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "דנית"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "הולנדית"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "אנגלית (בריטית)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "אסטונית"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "פינית"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "צרפתית"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "גאלית"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "גרמנית"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "יוונית"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr ""
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "הונגרית"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "איטלקית"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "איטלקית (שוויצרית)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "יפנית"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "קוראינית"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "ליטאית"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "נורבגית (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "פונלית"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "פורטגזית"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "פורטגזית (ברזילאית)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "רוסית"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "סלובקית"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "ספרדית"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "שוודית"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "טורקית"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "לא זמין"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "מבואת ה TCP אינה יכולה להיות גבוהה יותר מ 65532 מאחר שמבואת ה UDP של השרת "
 "היא מבואת ה TCP +3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "נשתמש במבואה שבברירת מחדך (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "חיבור"
 
@@ -4771,7 +4781,7 @@ msgstr "חיבור"
 msgid "Directories"
 msgstr "מלונים"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "שרתים"
 
@@ -4822,7 +4832,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4832,26 +4842,26 @@ msgid ""
 "these settings."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -4859,36 +4869,41 @@ msgstr ""
 "אימיול חייב להיות מאותחל מחדש על מנת לאפשר את השינויים הללו:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- מבואת TCP שונתה \n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- מבואת UDP שונתה \n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "חיבור חיצוני נסגר."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "גישה חיצונית חדשה התקבלה"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "חיבור חיצוני נסגר."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "חיבור חיצוני נסגר."
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -4896,26 +4911,26 @@ msgstr ""
 "אתה אפשרת חיבוריים חיצוניים אבל לא הזנת סיסמא תקיפה.\n"
 "חיבורים חיצוניים לא יאופשרו אלא אם כן תוזן סיסמא תקיפה."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- השפה שונתה.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- הפסרייה הזמנית שונתה.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "כל הרשתות מנוטרלות."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -4923,7 +4938,7 @@ msgstr ""
 "קאד לא יתחיל אם מבואת ה UDB מנוטרלת.\n"
 "תאפשר את מבואת ה UDP או שתנטרל את קאד."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -4933,7 +4948,7 @@ msgstr ""
 "אתה חייב לאתחל את אימיול עכשיו!\n"
 "אם לא תאתחל את אימיול עכשיו אל תתלונן אם משהו רע יקרה.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -4943,41 +4958,41 @@ msgstr ""
 "בבקשה תכניס לפחות כתובת URL אחת שתצביע לקובץ server.met תקף.\n"
 "לחץ על הכפתור \"רשימה\" שליד הצ'קבוקס הזה כדי להכניס בתובת URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "קבצים זמניים"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "קבצים נכנסים"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "חתימה מקוונת"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "בחר תיקייה עבור %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "חפש נגן סרטים"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "בחר דפדפן"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "קובץ הרצה %s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -4985,77 +5000,77 @@ msgstr ""
 "הוסף כאן כתובות URL שמהם ניתן להוריד קבצי server.met.\n"
 "רק כתובת אחת בכל שורה."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, fuzzy, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "השהיית עדון: %d שניות"
 msgstr[1] "השהיית עדון: %d שניות"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, fuzzy, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "זמן עבור גרף הממוצע: %d דקות"
 msgstr[1] "זמן עבור גרף הממוצע: %d דקות"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "סקאלאת גרף החיבורים: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, fuzzy, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "גודל זיכרון זמני לקובץ: %d בתים"
 msgstr[1] "גודל זיכרון זמני לקובץ: %d בתים"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, fuzzy, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "גודל תור ההאלעות: %d לקוחות"
 msgstr[1] "גודל תור ההאלעות: %d לקוחות"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, fuzzy, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "רענון חיבור לשרת כל: %d דקות"
 msgstr[1] "רענון חיבור לשרת כל: %d דקות"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "רענון חיבור לשרת: מנוטרל"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "נוטרל [%s]"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "בצע פקודה בעת ארוע '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "אפשר הרצת פקודות על הליבה"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "פקודת ליבה:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "אפשר ביצוע פקודות על ממשק גרפי"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "פקודת ממשק גרפי:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "המשתנים הבאים יוחלפו:"
 
@@ -5083,7 +5098,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr "שגיאה לא צפויה בעת ניסיון ביצוע חיפוש ב קאד: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "מ\"ז של קובץ"
 
@@ -5193,7 +5208,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "פג הזמן עבור ניסיון ההתחברות ל %s·(%s:%i)"
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5220,99 +5235,99 @@ msgstr ""
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "שגיאת קריאה/כתיבה תוך כדי הקובץ known.met: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr ""
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr ""
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "נכשל בפתיחת '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr ""
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr ""
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "הסתיימה ההורדה של: %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5347,7 +5362,7 @@ msgid "Static"
 msgstr "קבוע"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "גירסא"
 
@@ -5371,8 +5386,8 @@ msgstr "האם אתה בטוח שאתה רוצה למחוק את השרת הקב
 msgid "Servers (%i)"
 msgstr "שרתים (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "שרת"
 
@@ -5428,82 +5443,82 @@ msgstr "האם אתה בטוח שאתה מעוניין למחוק את כל הש
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "האם אתה בטוח שאתה מעוניין למחוק את כל השרתים המסומנים?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "מ\"ז החדש ללקוח הוא %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "אזהרה: קיבלת מ\"ז נמוך (Low-ID)!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\t רוב הסיכויים שזה מאחר ואתה נמצא מאחור חומתאש או נתב."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tעבור מידע נוסף פנה ל http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "התקבל מידע על שרת, שהמידע לא ידוע! - קצר מדי"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, fuzzy, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "התקבל %d שרת חדש"
 msgstr[1] "התקבל %d שרת חדש"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "שמירת רשימת השרתים הסתיימה."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "השרת דחה את הפקודה האחרונה."
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "חבילה מדומה התקבלב משרת: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "שגיה לא מטופלת בעת עיבוד החבילה שתקלה מהשרת: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "לא יכול ליצור תהליכון לפענוח ה DNS כדי להתחבר ל %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "כתובת ה IP ak var, %s·(%s) מסוננת,  לא מתחבר."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "משתמש בערפול פרוטקול."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "מחבר ל %s·(%s·-·%s:%i)·%s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "לא יכול לפענח כתובת השרת של %s באמצעות DNS: לא יכול להתחבר!"
@@ -5694,84 +5709,89 @@ msgstr "שם קובץ"
 msgid "Shares File List"
 msgstr "קבצים משותפים"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "בקשות"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "בקשות שהתקבלו"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "מידע שנשנלח"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "יחס שיתוף"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "חלקים שהושגו"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "מקורות שלמים"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "נתיב תיקייה"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "הוסף תגובה/דירוג"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "ערוך תגובה/דירוג"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "שנה שם"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "הוסף קבצים שבאסופה לרשימת המשלוח"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "העתק מגנט &URI ללוח"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "העתק קישור ED2k ללוח (מידע &AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "אתה צריך מ\"ז גבוה (HighID) כדי לחןר קישור-מקור תקף"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "קבצים משותפים (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[קובץ-חלקים]"
 
@@ -5780,235 +5800,235 @@ msgstr "[קובץ-חלקים]"
 msgid "Remote File Name"
 msgstr "שם קובץ"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "מידע שהועלה (התחברות נוכחית(סכום כולל)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "סכום כולל של התקורה (חבילות): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "תקורת בקשות קבצים (חבילות): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "תקורת החלפת מקורות (חבילות): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "תקורת השרת (חבילות): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "תקורת קאד (חבילות): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "האלעות פעילות: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "העלאות בהמתנה: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "סכום כולל של האלעות מוצלחות: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "סכות כולל של העלאות שנשכשלו: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "זמן האלעה ממוצע: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "הורדת מידע (התחברות נוכחית (סכום כולל)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "מקורות שנמצאו: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "הורדות פעילות (נתחים): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "יחס העלאה:הורדה בהתחברות נוכחית (סכום כולל): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "התחברויות מחדש: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "זמן מאז העברה הראשונה: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "מחובר לשרת מאז: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "חיבורים פעילים (משוער): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "גבול מקסימלי של התחברויות הושג: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "חיבורים בממוצע (משוער): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "שיא החיבורים (משוער): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "לקוחות"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "גודל לא ידוע"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "מסוננים"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "חסום"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "סכום כולל: %i מוכר: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "שרתים פעילים: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "שרתים שנכשלו: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "סכום כולל: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "שרתים שנמחקו: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "שרתים שסוננו: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "משתמשים על שרתים פעילים: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "קבצים על שרתים פעילים: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "סכום כולל של משתמשים: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "סכום כולל של קבצים: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "תעסוקת שרתים: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "מספר קבצים משותפים: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "גודל כולל של קבצים משותפים: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "מערכת הפעלה"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "לא התקבל"
 
@@ -6065,7 +6085,7 @@ msgstr "לא מספר חוקי\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "לא גיבוב חוקי (האורך חייב להיות בדיוק 32 תווים)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "הבקשה נכשלה עם שגיאה לא ידועה"
 
@@ -6119,13 +6139,13 @@ msgstr "מחובר ל %s·%s·%s"
 msgid "Now connecting"
 msgstr "מתחבר עכשיו"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "חסום-חומתאש"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "בסדר"
 
@@ -6559,21 +6579,21 @@ msgstr ""
 "זאת פקודה מיושנת ועלולה להתבטל בעתיד.\n"
 "השתמש ב '%s' במקומה.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "לקוח טסטואלי של אֵימיול"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "ממיר את קבוצת הגיבובים בפורמט AICH עבור '%s' ל 64b עבור '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "אזהרה: שם הקובץ '%s' אינו חוקי והוא נקרא מחדש בשם '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "אזהרה: הקובץ '%s' כבר קיים. שם הקובץ החדש שונה ל '%s'."
@@ -6644,7 +6664,7 @@ msgstr ""
 msgid "Download completed"
 msgstr "הורדה הסתיימה"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "הנתיב המלא לקובץ"
 
@@ -6664,160 +6684,160 @@ msgstr "גודל הקובץ בבתים."
 msgid "Cumulative download activity time."
 msgstr "זמן מצטבר של פעולת הורדה."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "צ'אט חדש החל."
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "שולח ההודעה"
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "נגמר המקום"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "מחיצת דיסק."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "שגיאה בעת הסיום."
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "מעבד קובץ מס. %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "ביקשת גיבובים עבור חלקים (בשימוש רק עבור קבצים > 9.5 מ\"ב"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "קובץ %s אינו קיים!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "ברוכים הבאים!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "פרמטרים להזנה"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "גיבוב קובץ"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "הוסף כתובות URL אופתינליות לקובץ זה"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "הסר"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "צור קישור עם חלקי הגיבובים"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr "עזור להפיץ קבצים חדשים ונדירים יותר מהר, במחיר קידור יותר גדול"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "קובץ גיבובי MD4"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "שמור"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "העתק ללוח"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "אודות aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "אין שום דבר להעתיק נכון לעכשיו !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "לא הצליך לפתוח את "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "בבקשה תכניס שם קובץ שאינו ריק"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "שום דבר לשמור עכשיו !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6829,158 +6849,162 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "מגבב..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "בוטל !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "הסתיים ב %.2f שניות"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "כבר הוספת את כתובת URL הזאת !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "בבקשה תכניס כתובת URL שאינה ריקה"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "לא מצליח לפתוח את %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "ימים - %i, שעות -%i, דקות - %i, שניות - %i"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uימים %02uשעות %02uדקות %02uשניות"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uשעות %02uדקות %02uשניות"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02uדקות %02uשניות"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02uשניות"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f בתים"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f ק\"ב"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f מ\"ב"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f ג\"ב"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f ט\"ב"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "סטטיסטיקות מקוונות של אימיול - wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "קצב הורדה מקסימלי מאז ש wxCas החל לפעול"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "קצב הורדה מקסימלי אבסלוטי בעת הפעלות קודמות של wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "מערכת"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "עצור רענון אוטומטי"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "שמור תמונה סטטיסטית מקוונת"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "הדפס תמונה סטטיסטית מקוונת"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "הגדרת העדפות"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "אודות wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "החל רענון אוטומטי"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "רענון אוטמטי נעצר"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "רענון אוטמטי התחיל"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "שמור תמונה סטטיסטית"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "סטטיסטיקות מקוונות של אימיול"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -6988,11 +7012,11 @@ msgstr ""
 "ישנה בעייה בהדפסה.\n"
 "האם המדפסת הנוכחית שלך מוגדרת בצורה נכונה?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "מדפיס"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7009,323 +7033,323 @@ msgstr ""
 "\n"
 "מופץ תחת רשיון GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "או או.. אימיול לא פועל..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "אימיול פועל"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "אמיול פועל אך אינו מחובר"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "אימיול מתחבר..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "או או... המצב של אימיול אינו ידוע..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "אֵימיול "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " פועל במשך "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " הופסק !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " אינו מחובר !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " מתחבר..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " עושה משהו מוזר, תבדוק את זה!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " מחובר ל "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " קאד: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "מכובה"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " דלוק "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " עם "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "סכום כולל של הורדות: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", הועלה: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "הורד בהחתברות הנוכחית: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "מוריד: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " ק\"ב/ש, העלאה: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " ק\"ב/ש"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "משתף: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " קבצ(ים), לקוחות בתור: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "זמן: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " דלוק "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "עומס ממוצע של המערכת ( 1-5-15 דקות): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "משך הפעולה של המערכת:"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "תקיה המכילה את הקובץ amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "הכנס כאן את התקייה היכן שהקובץ amulesig.dat נמצא"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "קצב מרווח הרענון בשניות"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "צור תמונת סטאטוס בכל ארוע רענון"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "הכנס כאן את התקיה שבה אתה רוצה ליצור את תמונת הסטטוס"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "העלה בתקופתיות את תמונת הסטטוס לשרת FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "כתובת URL של FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "נתיב FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "הכנס כאן את כתובת ה URL של שרת ה FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "הכנס כאן את נתיב הספריה שבה אתה שם את תמונת הסטטוס על שרת ה FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "משתמש"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "הכנס כאן את שם המשתמש שאיתו תתחבר לשרת ה FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "הכנס את סיסמת הזיהוי להתחברות לשרת ה FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "קצב עדכון התקופתי של ה FTP בדקות"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "אַמת"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "תיקיה המכילה את קובץ החתימה שלך"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "תיקיה שבה יווצרו תמונות הסטאטוס"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "טוען תבנית<מחרוזת>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "מבואת UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "השמתש בדחיסת gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "אפשר גישה לאורחים"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "מנע גישה מאורחים"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "נתיב קובץ ההגדרות של אימיול. לא לשימוש בצורה ישירה!!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "נטרל מפענח PHP (מיושן-מבוטל)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "הדר מחדש דפי PHP לאחר כל בקשה"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "שרת אימיול רשתי"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "הבקשה נכשלה עם השגיאות הבאות: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "קובץ האינדקס לא נמצא"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "פג התוקף של החיבור - מבקש התחברות מחדש\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "התחברות הצליחה - מחובר\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "התחברות הצליחה, לא מזוהה\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "לא נפתחה התחברות - הולך לבקש להזדהות\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "נוצרה התחברות מבקש להזדהות\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "מעבד בקשה [מקורי]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "בודק סיסמא\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "גיבוב הסיסמא אינו תקף\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "הסיסמא בסדר\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "סיסמא שגויה\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "לא הזנת סיסמא. סיסמאות ריקות אינם קבילות.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "ב‏‎ֻקְשַה התנתקות\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "מעבד בקשה [הופנתה מחדש]: "
 
@@ -7552,9 +7576,6 @@ msgstr "מעבד בקשה [הופנתה מחדש]: "
 #~ msgid "Copy ED2k link to clipboard (Hostname) (With &Crypt options)"
 #~ msgstr "העתק קישור ED2k ללוח (שם שרת) (עם אופציות &הצפנה)"
 
-#~ msgid "Copy ED2k link to clipboard (&AICH info)"
-#~ msgstr "העתק קישור ED2k ללוח (מידע &AICH)"
-
 #~ msgid "Warning"
 #~ msgstr "אזהרה"
 
diff --git a/po/hr.po b/po/hr.po
index 8f759eb..e419fba 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule CVS\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2004-04-08 00:30+0100\n"
 "Last-Translator: Tea Lorenzmeier <tea1 at gmx.net>\n"
 "Language-Team: www.aMule.org <forum at aMule.org>\n"
@@ -36,110 +36,110 @@ msgstr ""
 msgid "Failed to open ED2KLinks file."
 msgstr "Neuspjelo otvaranje %s (%s)"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr ""
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Neuspjesno"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr ""
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Potvrda izlaza"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "Nova vanjska veza prihvacena\n"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr ""
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
 msgstr ""
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
 msgstr ""
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr ""
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr ""
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -149,11 +149,11 @@ msgid ""
 "Check your network to make sure the port is open for output and input."
 msgstr ""
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr ""
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr ""
 
@@ -199,144 +199,144 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "Ime servera :"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr ""
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr ""
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr ""
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr ""
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr ""
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr ""
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr ""
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr ""
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr ""
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr ""
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr ""
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr ""
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr ""
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr ""
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr ""
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr ""
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr ""
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr ""
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr ""
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr ""
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr ""
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -344,7 +344,7 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -353,19 +353,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr ""
@@ -442,9 +442,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr ""
 
@@ -452,7 +452,7 @@ msgstr ""
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Spajanje"
 
@@ -488,7 +488,7 @@ msgstr ""
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Otkaz"
 
@@ -507,7 +507,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Prekinuti vezu sa sadasnjim serverom"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Uspostavi vezu"
 
@@ -548,7 +548,7 @@ msgstr "Potvrda izlaza"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -563,81 +563,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr ""
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Pretrage"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Prozor pretraga"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Downloads"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Downloading"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Prozor dijeljenih fajlova"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Poruke"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Prozor poruka"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistike"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Prozor grafova statistike"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Opcije"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Prozor postavke opcija"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr ""
 
@@ -657,7 +657,7 @@ msgstr ""
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr ""
 
@@ -670,110 +670,110 @@ msgstr "Fatalna greska: Neuspjesno stvaranje tajmera"
 msgid "Connect to remote amule"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Fatalna greska: Neuspjesno stvaranje tajmera"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Spajanje"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr ""
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 #, fuzzy
 msgid "Ready"
 msgstr "Ponovno ucitati"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Nepoznat"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr ""
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 #, fuzzy
 msgid "Searching buddy for lowid connection"
 msgstr "ceka na spajanje..."
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr ""
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr ""
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr ""
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr ""
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, fuzzy, c-format
 msgid "Requested: %s\n"
 msgstr "Zahtijevan:"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, fuzzy, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -783,7 +783,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Fajl statistike za ovu misiju: Prihvaceno %d od %d zahtjeva, %s preneseno\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, fuzzy, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -793,7 +793,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Fajl statistike za ovu misiju: Prihvaceno %d od %d zahtjeva, %s preneseno\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Zatrazen nepoznat fajl"
 
@@ -937,12 +937,12 @@ msgid "Client Details"
 msgstr "Detalji klienta"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr ""
 
@@ -994,27 +994,27 @@ msgstr "Priznat - OK"
 msgid "Not Available"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1022,7 +1022,7 @@ msgstr ""
 "Korisnik %s (%u) ja zahtio tvoju listu dijeljenih fajlova za direktorij %s -"
 "> %s"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1030,32 +1030,32 @@ msgstr ""
 "Korisnik %s (%u) ja zahtio tvoju listu dijeljenih fajlova za direktorij %s -"
 "> %s"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Korisnik %s (%u) dijeli direktorije %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Korisnik %s (%u) je poslao listu dijeljenih fajlova za direktorij %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Korisnik %s (%u) ja zavrsio slanje liste dijeljenih fajlova"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Korisnik %s (%u) ja zavrsio slanje nezeljene liste dijeljenih fajlova"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1070,7 +1070,7 @@ msgstr "Ime korisnika"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Ime fajla"
 
@@ -1111,33 +1111,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Vi]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Vrlo nizak"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Nisko"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normalan"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Visoko"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Vrlo visok"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr ""
 
@@ -1154,12 +1154,12 @@ msgid "Queue Full"
 msgstr "Pun red cekanja"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "U redu cekanja"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Downloading"
 
@@ -1219,7 +1219,7 @@ msgstr ""
 msgid "Remote Server"
 msgstr ""
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr ""
@@ -1245,7 +1245,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Zavrseno"
 
@@ -1286,11 +1286,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Velicina"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Transferirano"
 
@@ -1303,17 +1303,17 @@ msgid "Progress"
 msgstr "Napredak"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Izvori"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioritet"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Status"
@@ -1340,7 +1340,7 @@ msgstr "Da li zaist zelis otkazati i obrisati ove fajlove ?\n"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Da li zaist zelis otkazati i obrisati ove fajlove ?\n"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1348,7 +1348,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automatski"
 
@@ -1400,11 +1400,11 @@ msgstr "Pokazi sve kommentare"
 msgid "Copy magnet URI to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr ""
 
@@ -1420,34 +1420,34 @@ msgstr "Odredi u kategoriju"
 msgid "&Open the file"
 msgstr "&Otvori fajl"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Downloads (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1551,233 +1551,233 @@ msgstr ""
 msgid "External connections disabled in config file"
 msgstr ""
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr ""
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr ""
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
 msgstr ""
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr ""
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr ""
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr ""
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr ""
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr ""
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr ""
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr ""
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr ""
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr ""
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr ""
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr ""
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr ""
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr ""
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr ""
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr ""
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr ""
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr ""
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr ""
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr ""
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr ""
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr ""
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr ""
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr ""
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1785,23 +1785,23 @@ msgid ""
 "Type '%s <command>' to get detailed info on <command>.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr ""
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr ""
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1809,59 +1809,59 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr ""
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr ""
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr ""
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr ""
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr ""
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
 "Ok, exiting %s...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1870,47 +1870,47 @@ msgid ""
 "Exiting...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr ""
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr ""
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr ""
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr ""
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr ""
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr ""
 
@@ -1923,8 +1923,8 @@ msgstr ""
 msgid "%.1f%% done"
 msgstr ""
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr ""
@@ -1941,7 +1941,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Prijatelji"
 
@@ -2073,32 +2073,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Downloaded:"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Nisi povezan sa serverom!"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2130,7 +2130,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Neuspio download serverliste od %s"
@@ -2173,7 +2173,7 @@ msgstr[1] ""
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2188,103 +2188,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr ""
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr ""
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr ""
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr ""
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2310,70 +2310,75 @@ msgstr "Nepoznat: %i"
 msgid "Unable to get error description for error %d"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Hashing"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Zavrsavanje"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Zavrseno"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pausirano"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Sa greskom"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Cekanje"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Parametri za spoljasnju vezu"
 
+#: src/LibSocketAsio.cpp:1259
+#, c-format
+msgid "Asio thread %d started"
+msgstr ""
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2382,16 +2387,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Zatvori"
 
@@ -2399,8 +2404,8 @@ msgstr "Zatvori"
 msgid "Cut"
 msgstr ""
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr ""
 
@@ -2409,7 +2414,7 @@ msgid "Paste"
 msgstr ""
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Ocisti"
 
@@ -2419,7 +2424,7 @@ msgstr ""
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2496,7 +2501,7 @@ msgid "ServerIP: "
 msgstr "ServerIP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Veza nije uspostavljena"
 
@@ -2531,7 +2536,7 @@ msgstr "Online potpis: Omogucen"
 msgid "Online Signature: Disabled"
 msgstr "Online potpis: Onemogucen"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Vrijeme korisnika: %s"
@@ -2572,7 +2577,7 @@ msgstr ""
 msgid "Show aMule"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Izlaz"
 
@@ -2647,7 +2652,7 @@ msgstr "Pretraga"
 msgid "Name:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tip"
 
@@ -2675,38 +2680,38 @@ msgstr ""
 msgid "File Type"
 msgstr ""
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Bilo koja"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arhiva"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD_Imidz"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Slike"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programi"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr ""
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Videa"
 
@@ -2727,11 +2732,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2759,7 +2764,7 @@ msgstr ""
 msgid "Hide Known Files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Start"
 
@@ -2817,7 +2822,7 @@ msgstr "Puno ime :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2841,7 +2846,7 @@ msgstr "Status pocetog fajla :"
 msgid "Last seen complete :"
 msgstr "Posljednji put vidjen kompletno :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transfer"
 
@@ -2927,27 +2932,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Kvalitet fajla"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Bez ocjene"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Neispravan / Koruptan / Falsifikat"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Los"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Vrlo dobar"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Dobar"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Odlican"
 
@@ -2992,7 +2997,7 @@ msgid "Userhash :"
 msgstr "Hash korisnika :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Dodaj"
 
@@ -3220,9 +3225,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Pretrazi :"
 
@@ -3308,7 +3313,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr ""
 
@@ -3426,7 +3431,7 @@ msgstr ""
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Uploadovi"
 
@@ -3666,7 +3671,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr ""
 
@@ -3749,8 +3754,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Izaberi boju za ovu kategoriju (trenutno izabrana) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Ponistenje"
 
@@ -4124,89 +4129,94 @@ msgid "Enable Verbose Debug-Logging."
 msgstr ""
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Otvori fajl"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Ceka ..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Aktivni uploadovi :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 #, fuzzy
 msgid "Percent of total files"
 msgstr "Ukupni fajlovi"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Dijeljeni fajlovi"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Izaberi filter za gledanje"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Aktivni uploadovi"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Pokazi liste"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Ponovno ucitati"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Posalji"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Dijeljeni fajlovi"
 
@@ -4215,137 +4225,137 @@ msgstr "Dijeljeni fajlovi"
 msgid "Disabled [%s]"
 msgstr "Onemoguceno [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 #, fuzzy
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "Bytes"
 msgstr[1] "Bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr ""
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr ""
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 #, fuzzy
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "kBytes/sec"
 msgstr[1] "kBytes/sec"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr ""
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sekundi"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "minuta"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr ""
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr ""
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "svi"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "svi drugi"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Nedovrseno"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Stopirano"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arhiva"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Tekst"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr ""
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr ""
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr ""
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr ""
 
@@ -4361,23 +4371,23 @@ msgstr ""
 msgid "Filehash"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr ""
 
@@ -4489,7 +4499,7 @@ msgstr ""
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, fuzzy, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4504,269 +4514,269 @@ msgstr[1] ""
 "Nadjen koruptan dio (%i) u %i pocetom fajlu %s - FileResultHash |%s| "
 "FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr ""
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Zavrseno rehashing %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Standard sistema"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr ""
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabic"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Estonian"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Basque"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgarian"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalan"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr ""
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr ""
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr ""
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr ""
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danish"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Dutch"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr ""
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonian"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finnish"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "French"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr ""
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "German"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr ""
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr ""
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Hungarian"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italian"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr ""
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr ""
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Korean"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lithuanian"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr ""
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polish"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portuguese"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr ""
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russian"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr ""
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spanish"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr ""
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr ""
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Jezik"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr ""
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr ""
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Veza"
 
@@ -4774,7 +4784,7 @@ msgstr "Veza"
 msgid "Directories"
 msgstr "Direktoriji"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Serveri"
 
@@ -4825,7 +4835,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4841,139 +4851,144 @@ msgstr ""
 "aMule ce raditi dobro iako ne promijenis\n"
 "nista od ovih opcija."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Parametri za spoljasnju vezu"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Parametri za spoljasnju vezu"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Parametri za spoljasnju vezu"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Parametri za spoljasnju vezu"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
 "If you do not restart now, don't complain if anything bad happens.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
 "Click on the button \"List\" by this checkbox to enter an URL."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Potrazi videoplejer"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -4981,77 +4996,77 @@ msgstr ""
 "Dodaj ovdje URLs da dobijes server.met fajlove. \n"
 "Samo jedna URL po liniji."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, fuzzy, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Obnovi kasnjenje : 5 sekundi"
 msgstr[1] "Obnovi kasnjenje : 5 sekundi"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, fuzzy, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Vrijeme za prosjecni graf: 100 minuta"
 msgstr[1] "Vrijeme za prosjecni graf: 100 minuta"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, fuzzy, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Velicina fajl buffera %i bytes"
 msgstr[1] "Velicina fajl buffera %i bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, fuzzy, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Duzina liste cekanja %i klienata"
 msgstr[1] "Duzina liste cekanja %i klienata"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, fuzzy, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Interval obnavljanja veze servera %i minuta"
 msgstr[1] "Interval obnavljanja veze servera %i minuta"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Interval obnavljanja veze servera: onemoguceno"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "onemoguci"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr ""
 
@@ -5079,7 +5094,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr ""
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "FileID"
 
@@ -5190,7 +5205,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr ""
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5217,100 +5232,100 @@ msgstr ""
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, fuzzy, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i servera pronadjeno u server.met"
 msgstr[1] "%i servera pronadjeno u server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, fuzzy, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d servera dodato"
 msgstr[1] "%d servera dodato"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 #, fuzzy
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Greska: fajl server.met je koruptan"
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Neocekivana fajl greska prilikom pisanja %s : %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr ""
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr ""
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr ""
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Neuspjelo spasavanje server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Neispravna URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Neuspio download serverliste od %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5345,7 +5360,7 @@ msgid "Static"
 msgstr "Staticni"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr ""
 
@@ -5369,8 +5384,8 @@ msgstr ""
 msgid "Servers (%i)"
 msgstr "Serveri (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Server"
 
@@ -5429,82 +5444,82 @@ msgstr "Da li zaist zelis otkazati i obrisati ove fajlove ?\n"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Da li zaist zelis otkazati i obrisati ove fajlove ?\n"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Novi klientID je %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr ""
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr ""
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, fuzzy, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Primljeno %d novih servera"
 msgstr[1] "Primljeno %d novih servera"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr ""
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Server je odbio posljednju komandu"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr ""
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr ""
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5693,84 +5708,89 @@ msgstr "Ime fajla"
 msgid "Shares File List"
 msgstr "Dijeljeni fajlovi"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Zahtjevi"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Prihvaceni zahtjevi"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Podatak transfera"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Dobiveni dijelovi"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Preimenovanje"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopiraj ed2k &linkove u klipbord (&Source)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Za ispravan izvorni link, potrebna je HIGH ID"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Dijeljeni fajlovi (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr ""
 
@@ -5779,235 +5799,235 @@ msgstr ""
 msgid "Remote File Name"
 msgstr "Ime fajla"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr ""
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Prosjecno vrijeme uploada: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr ""
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr ""
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr ""
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Ponovno vezan: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Vriejme od prvog transfera: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Spojen sa serverom vec: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr ""
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr ""
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Klienti"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Nepoznat: %i"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Filtrirani: %i"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "Zabranjen"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr ""
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr ""
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr ""
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Zauzetost servera: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Ukupna velicina dijeljenih fajlova: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr ""
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr ""
 
@@ -6063,7 +6083,7 @@ msgstr ""
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr ""
 
@@ -6117,13 +6137,13 @@ msgstr ""
 msgid "Now connecting"
 msgstr ""
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr ""
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr ""
 
@@ -6511,21 +6531,21 @@ msgid ""
 "Use '%s' instead.\n"
 msgstr ""
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr ""
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6597,7 +6617,7 @@ msgstr ""
 msgid "Download completed"
 msgstr ""
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr ""
 
@@ -6617,160 +6637,160 @@ msgstr ""
 msgid "Cumulative download activity time."
 msgstr ""
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr ""
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr ""
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr ""
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr ""
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6782,169 +6802,173 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 #, fuzzy
 msgid "Cancelled !"
 msgstr "Otkaz"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr ""
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -6955,324 +6979,324 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr ""
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 #, fuzzy
 msgid " kB/s"
 msgstr "kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr ""
 
@@ -7429,9 +7453,6 @@ msgstr ""
 #~ msgid "Copy ED2k &link to clipboard"
 #~ msgstr "Kopiraj ed2k &linkove u klipbord"
 
-#~ msgid "Copy ED2k link to clipboard (&Source)"
-#~ msgstr "Kopiraj ed2k &linkove u klipbord (&Source)"
-
 #~ msgid "Copy ED2k link to clipboard"
 #~ msgstr "Kopiraj ED2k link u klipbord"
 
diff --git a/po/hu.po b/po/hu.po
index 883a297..c37727c 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-11-09 01:17+0100\n"
 "Last-Translator: Dévai Tamás <gonosztopi at amule.org>\n"
 "Language-Team: Hungarian <hu at li.org>\n"
@@ -35,7 +35,7 @@ msgstr "A megadott felhasználói azonosító (userhash) érvénytelen!"
 msgid "Failed to open ED2KLinks file."
 msgstr "ED2KLinks fájl megnyitása sikertelen."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -43,37 +43,37 @@ msgstr ""
 "FIGYELEM: Nem adhatod magad forrásként egy eD2k hivatkozáshoz amíg alacsony "
 "azonosítód (lowid) van."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Kilépés a fő alkalmazásból..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Az amuleweb instancia - melynek a pid-je '%ld' - bezárása ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Az amuleweb instancia - melynek a pid-je '%ld' - kivégzése ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Sikertelen"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Mag leállítása."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Az aMule leállítása befejezve"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Memória debug eredmények az aMule bezárásáról:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -81,16 +81,16 @@ msgstr ""
 "\n"
 "EC beállítások"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Jelszó beállítva, külső kapcsolatok engedélyezve."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "FIGYELEM"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -98,13 +98,13 @@ msgstr ""
 "Nyelvi beállításaid egy konfigurációs változás miatt az alapértelmezettre "
 "lettek átállítva. Bocs."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Infó"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -112,16 +112,16 @@ msgstr ""
 "Nincs egyetlen kiszolgáló sem a kiszolgáló-listádban.\n"
 "Szeretnéd, hogy az aMule letöltsön egy új listát most?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Kiszolgáló-lista letöltése"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "web kiszolgáló fut, pid=%d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -132,23 +132,23 @@ msgstr ""
 "vagy fordítsd az aMule-t a --enable-webserver kapcsolóval és futtasd a make "
 "install parancsot."
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "HIBA"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Nem tudom a portokat a megadott címhez (%s) rendelni."
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "A %u port nem elérhető. Alacsony kliens azonosítót kapsz (LOWID)\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -164,11 +164,11 @@ msgstr ""
 "Ellenőrízd a hálózatodat, hogy megbizonyosodj, hogy a port nyitva van kifelé "
 "és befelé egyaránt."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Online-Aláírás fájl létrehozása sikertelen"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Az aMule OnlineAláírás fájl létrehozása sikertelen"
 
@@ -220,133 +220,133 @@ msgstr ""
 " Az OnlineAláírás letiltásra kerül, amíg ki nem javítod azt a beállítások "
 "menüpontban."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Szerver hostname értesítve"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Lemezterület helyfoglalás a '%s' fájl számára sikertelen: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "HIBA: Nem tudom megnyitni a napló fájlt"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "FIGYELEM: a napló üres. Valami nem stimmel."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Napló törölve"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "KiszolgálóÜzenet: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "A %s letöltése kihagyva, mert a kívánt fájl nem újabb."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Csomópont-lista letöltése sikertelen."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Nem sikerült megnyitni a letöltött verzió-ellenőrző fájlt"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Sérült verzió-ellenőrző fájl"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Az aMule egy elavult verzióját használod!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "A te aMule verziód %i.%i.%i, a legújabb verzió pedig %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "A legújabb verzió mindig megtalálható a http://www.amule.org honlapon."
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "FIGYELEM: A te aMule verziód elavult: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Az aMule verziód naprakész."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Verzió-ellenőrzés fájl letöltése sikertelen."
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Felhasználók: %s | Fájlok: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Felhasználók: E: %s K: %s | Fájlok: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Nincs hálózat kiválasztva"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "LowID-val"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "HighID-val"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Kapcsolódva ehhez %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Kapcsolódás %s-hez"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Leválasztva az eD2k-ról"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad elindítva."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad leállítva."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Kapcsolódva a Kad-hoz (rendben)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Kapcsolódva a Kad-hoz (tűzfal mögül)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Leválasztva a Kad-ról"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -354,11 +354,11 @@ msgstr ""
 "A Kad hálózat nem használható, ha az UDP port le van tiltva a "
 "beállításokban, nem indítom."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "A Kad hálózat le van tiltva  a beállításokban, nem kapcsolódom."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -371,7 +371,7 @@ msgstr ""
 "\"AcceptExternalConnections\" kulcs értékét 1-re a ~/.aMule/amule.conf "
 "fájlban."
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -386,19 +386,19 @@ msgstr ""
 "config paraméterrel, a jelszó beállításához. További információk http://wiki."
 "amule.org alatt találhatóak."
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - időzítő indítása"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: háttérbe való hasadás - viszlát"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Pid fájl létrehozása nem lehetséges"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "HIBA: %s"
@@ -481,9 +481,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Üzenet"
 
@@ -491,7 +491,7 @@ msgstr "Üzenet"
 msgid "aMule dialog destroyed"
 msgstr "aMule dialógus elpusztítva"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Kapcsolódás"
 
@@ -525,7 +525,7 @@ msgstr "Kad: Nincs kapcsolat"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Mégsem"
 
@@ -542,7 +542,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Leválaszt az éppen kapcsolódott hálózatokról."
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Kapcsolatfelvétel"
 
@@ -583,7 +583,7 @@ msgstr "Kilépés megerősítése"
 msgid "Launch Command: "
 msgstr "Parancs futtatása: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- alapértelmezett -"
 
@@ -598,80 +598,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "FIGYELEM: Nem tudom a(z) '%s' felület fáljt megnyitni olvasásra"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Hálózatok"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Hálózatok ablaka"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Keresések"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Keresés ablaka"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Letöltések"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Letöltések ablaka"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Megosztott fájlok"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Megosztott fájlok ablaka"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Üzenetek"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Üzenetek ablaka"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statisztikák"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Statisztikai grafikonok ablaka"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Beállítások"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Tulajdonságok beállításának ablaka"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importálás"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "A részfájl importáló eszköz"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Névjegy"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Névjegy/Súgó"
 
@@ -691,7 +691,7 @@ msgstr "Nincs hálózat"
 msgid "aMule remote control"
 msgstr "aMule távoli vezérlő"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule "
 
@@ -703,108 +703,108 @@ msgstr "Végzetes hiba: a Mag Időzítőjének létrehozása sikertelen"
 msgid "Connect to remote amule"
 msgstr "Kapcsolódás a távoli aMule-hez"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Végzetes hiba: a Lekérdezés Időzítőjének létrehozása sikertelen"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Esemény ciklus megkezdése..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Kapcsolódás..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Kapcsolódás sikertelen "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Távoli GUI EC esemény kezelő"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Kikapcsolás folyamatban"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Kapcsolat sikertelen. Kapcsolat felvétel %s:%d-el nem lehetséges\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Kapcsolat megszünt - aMule valószínüleg befejeződött."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Készen"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Mind"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "A '%s' könyvtár létrehozása a '%s' kategóriához nem lehetséges, a '%s' "
 "könyvtár megtartva."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Ismeretlen"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Megosztott fájlok lehozatala sikertelen a(z) '%s' felhasználótól"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Pajtás keresése lowid kapcsolatra"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Hamis eMule %#x verzió)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Hamis eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Hamis eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x  (az eMule v0.%u alapján)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Becenév: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Kért: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -813,7 +813,7 @@ msgstr[0] ""
 "Fájlstatisztika ehhez a folyamathoz: %d kérés elfogadva %d-ből, %s "
 "átmásolva\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -822,7 +822,7 @@ msgstr[0] ""
 "Fájlstatisztika az összes folyamathoz: %d kérés elfogadva %d-ből, %s "
 "átmásolva\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Ismeretlen lekérdezett fájl"
 
@@ -971,12 +971,12 @@ msgid "Client Details"
 msgstr "Kliens részletei"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1028,34 +1028,34 @@ msgstr "Hitelesítés - OK"
 msgid "Not Available"
 msgstr "Nem elérhető"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "A(z) %s (%u) felhasználó lekérdezte a megosztott fájlok listáját -> Elfogadva"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "A(z) %s (%u) felhasználó lekérdezte a megosztott fájlok listáját -> "
 "Megtagadva"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "A(z) %s (%u) felhasználó lekérdezte megosztott könyvtáraid listáját -> "
 "Elfogadva"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "A(z) %s (%u) felhasználó lekérdezte megosztott könyvtáraid listáját -> "
 "Megtagadva"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1063,7 +1063,7 @@ msgstr ""
 "A(z) %s (%u) felhasználó lekérdezte a '%s' könyvtárban megosztott fájljaid "
 "listáját -> elfogadva"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1071,35 +1071,35 @@ msgstr ""
 "A(z) %s (%u) felhasználó lekérdezte a '%s' könyvtárban megosztott fájljaid "
 "listáját -> megtagadva"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "A(z) %s (%u) felhasználó megosztja a '%s' könyvtárat"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "A(z) %s (%u) felhasználó kéretlen megosztott könyvtárakat küldött."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "A(z) %s (%u) felhasználó elküldte megosztott fájljai listáját a '%s' "
 "könyvtárhoz"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 "A(z) %s (%u) felhasználó befejezte megosztottfájl-listájának elküldését"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "A(z) %s (%u) felhasználó kéretlen megosztottfájl-listát küldött"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1116,7 +1116,7 @@ msgstr "Felhasználói név"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Fájlnév"
 
@@ -1158,33 +1158,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Ma]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Nagyon alacsony"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Alacsony"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normál"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Magas"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Nagyon magas"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Forgalomba helyez"
 
@@ -1201,12 +1201,12 @@ msgid "Queue Full"
 msgstr "Várólista betelt"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Várólistások"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Letöltés alatt"
 
@@ -1266,7 +1266,7 @@ msgstr "Helyi kiszolgáló"
 msgid "Remote Server"
 msgstr "Távoli kiszolgáló"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1292,7 +1292,7 @@ msgid "Search Result"
 msgstr "Keresés eredménye"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Befejezett"
 
@@ -1333,11 +1333,11 @@ msgid "Part"
 msgstr "Rész"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Méret"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Átmásolva"
 
@@ -1350,17 +1350,17 @@ msgid "Progress"
 msgstr "Folyamatjelző"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Források"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioritás"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Állapot"
@@ -1385,7 +1385,7 @@ msgstr "Biztos, hogy törlöd a kiválasztott fájlt?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Biztos, hogy törlöd a kiválasztott fájlokat?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1395,7 +1395,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automatikus"
 
@@ -1447,11 +1447,11 @@ msgstr "Összes megjegyzés megjelenítése"
 msgid "Copy magnet URI to clipboard"
 msgstr "Magnet URI másolása a vágólapra"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "eD2k hivatkozás másolása a vágólapra"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Visszajelzés másolása a vágólapra"
 
@@ -1467,24 +1467,24 @@ msgstr "Hozzárendelés kategórához"
 msgid "&Open the file"
 msgstr "Fájl &megnyitása"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Írd be az új nevet ennek a fájlnak:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Fájl átnevezés"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y.%m.%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Letöltések (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1493,11 +1493,11 @@ msgstr ""
 " hogy ezt a figyemeztetést ne kapd minden előnézetnél (alapértelmezett az "
 "mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Fájl előnézet"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "HIBA: Külső média-lejátszó indítása sikertelen! Parancs: `%s'"
@@ -1605,28 +1605,28 @@ msgstr "A külső kapcsolatok letiltásra kerültek üres jelszó miatt!"
 msgid "External connections disabled in config file"
 msgstr "A külső kapcsolatok le vannak tiltva konfig fájlban"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Új külső kapcsolat elfogadva"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "HIBA: nem tudtam fogadni egy új külső kapcsolatot"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Külső kapcsolat elutasítva, üres jelszó a beállításokban!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Kapcsolódó kliens: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Ismeretlen verzió"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1634,7 +1634,7 @@ msgstr ""
 "Helytelen EC verzió azonosító, összeférhetetlenség lehetséges. A fő- és a "
 "távoli programot ugyanabból a pillanatképből használd."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1642,172 +1642,172 @@ msgstr ""
 "Nem kapcsolódhatsz egy kiadott verzióhoz egy tetszőleges fejlesztés alatti "
 "verzióval! *sóhaj* lehetséges összeomlás megelőzve"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Érvénytelen protokoll verzió."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Hiányzó protokoll verzió azonosító."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr "Hitelesítés sikertelen: az EC jelszóként megadott hash érvénytelen."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Hitelesítés sikertelen: rossz jelszó."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Hitelesítés sikertelen: hiányzó jelszó."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Érvénytelen kérés, először hitelesíteni kell."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Hozzáférés elfogadva."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Hibaüzenet elküldve a \"%s\" klienshez."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Jogosulatlan hozzáférési kísérlet %s részéről. Kapcsolat lezárva."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Távoli PartFile parancs sikertelen: nem található FileHash: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "FileHash nem található: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "Hoppá! Opkód feldolgozási hiba!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Kiszolgáló nem lett hozzáadva"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "kiszolgáló nem található: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "ki kell jelölnöd a kiszolgálót az eltávolításhoz"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "Az eD2k le van tiltva a beállításokban."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Keresés folyamatban. Kérdezze le az eredményeket egy rövid idő múlva!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Webes keresésnek a távoli felületről nincs értelme."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Nincsenek pontok a grafikonhoz."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "A kliensed nincs beállítva ehhez a részletességi szinthez."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Külső kapcsolat: leállítás kérve"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Kikapcsolás folyamatban."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ExternalConn: hivatkozás hozzáadása: '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Érvénytelen hivatkozás, vagy már rajta van a listán."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Fájl nem található."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Érvénytelen fájl név."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Nem tudom átnevezni a fájlt."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "A Kad le van tiltva a beállításokban."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Már csatlakozva az eD2k-hoz."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Kapcsolódás az eD2k-hoz..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Már kapcsolódva a Kad-hoz."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Kapcsolódás a Kad-hoz..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Minden hálózat le van tiltva."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Leválasztva az eD2k-ról."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Leválasztva a Kad-ról."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Külső kapcsolat: érvénytelen opcode: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Érvénytelen opcode (rossz protokoll verzió?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Ismeretlen bővítmény '%s' a '%s' parancshoz.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Ismeretlen parancs: '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1815,7 +1815,7 @@ msgstr ""
 "\n"
 "Ennek a parancsnak nem lehet argumentuma.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1823,7 +1823,7 @@ msgstr ""
 "\n"
 "Ennek a parancsnak kötelező az argumentum.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1832,7 +1832,7 @@ msgstr ""
 "Ez a parancs nem teljes, az alábbi bővítmények valamelyikét kell "
 "használnod.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1840,11 +1840,11 @@ msgstr ""
 "\n"
 "Elérhető bővítések:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Elérhető parancsok:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1856,17 +1856,17 @@ msgstr ""
 "Ha részletes infót akarsz egy <parancs>-ról, add ki a '%s <parancs>' "
 "parancsot.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Kilép az alkalmazásból."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Súgó megjelenítése."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1874,7 +1874,7 @@ msgstr ""
 "Ha egy parancsról kérsz súgót, használd a 'help <parancs>'-ot.\n"
 "A teljes parancslistához használd a 'help'-et.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1885,48 +1885,48 @@ msgstr ""
 "A parancslistához használd a '%s'-et\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Szintaktikai hiba!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Hiba a parancs feldolgozásában - soha sem kellene előfordulnia! Kérlek, "
 "küldd el a hibajelentést\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Ennek a parancsnak nem kellene paraméterének lennie."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Ennek a parancsnak kötelező paramétert adni."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Érvénytelen paraméter."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Ez a parancs így nem teljes."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "A '%s' paranccsal kaphatsz bővebb segítséget.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Ez a(z) %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Ez a(z) %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1934,7 +1934,7 @@ msgstr ""
 "\n"
 "Kliens létrehozása...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1943,7 +1943,7 @@ msgstr ""
 "\n"
 "Ok, kilépés a %s-ből...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1957,47 +1957,47 @@ msgstr ""
 "\n"
 "Kilépés...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "E súgó megjelenítése."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host, ahol az aMule fut (alap: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Az aMule Távoli Elérés portja (alap: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Külső kapcsolat jelszava."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Konfiguráció betöltése fájlból."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Nem ír ki semmit a szabvány kimenetre."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Legyen bőbeszédű - mutassa a hibakeresési üzeneteket is."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Beállítja a program nyelvét."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "A parancssori opciók konfig fájlba írása."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Konfig fájl létrehozása az aMule konfig fájlja alapján."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "A program verziójának kiírása."
 
@@ -2010,8 +2010,8 @@ msgstr "Fájl részletei"
 msgid "%.1f%% done"
 msgstr "%.1f%% kész"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2030,7 +2030,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "KRITIKUS - nincsen kliens a StartChatSession-en"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Barátok"
 
@@ -2158,21 +2158,21 @@ msgstr "A letöltendő URL nem lehet üres"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "Az %s URL válasza: %i - Hiba (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Súlyos hiba a letöltött fájl írásakor"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "%d bájt letöltve"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Az elvárt %d bájt helyett %d bájt lett letöltve"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2180,11 +2180,11 @@ msgstr ""
 "Érvénytelen URL a HTTP letöltéshez, vagy a HTTP továbbításhoz (elfelejtetted "
 "a 'http://'-t ?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "A HTTP letöltési szerverhez való kapcsolódás sikertelen"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Érvénytelen válasz a HTTP letöltési szervertől"
 
@@ -2216,7 +2216,7 @@ msgstr "%s frissítése sikerrel járt."
 msgid "Error updating GeoIP.dat"
 msgstr "Hiba a GeoIP.dat frissítése közben."
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "%s letöltése %s-től sikertelen"
@@ -2257,7 +2257,7 @@ msgstr[0] "%u hibás sor lett eldobva."
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Új %s fájl átnevezése sikertelen, frissítés megszakítása."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP szűrő készen áll"
 
@@ -2274,47 +2274,47 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Csomópontok (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Érvénytelen IP a rendszerindításhoz"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Érvénytelen port a rendszerindításhoz"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Kérlek töltsd ki az összes kötelező mezőt"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Biztos, hogy le akarsz tölteni egy új nodes.dat fájlt?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Ezzel eltávolítod az aktuális csomópontokat és újraindul a Kademlia "
 "kapcsolat."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Folytassuk?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: a keresési kulcsszó túl rövid"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Kulcsszó a kereséshez: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: A keresési kulcsszó már a keresési listán: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2322,58 +2322,58 @@ msgstr ""
 "A nodes.dat fájl olvasása sikertelen volt - túl régi. Ez a verzió (0) már "
 "nincs támogatva."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "%u Kad kapcsolat beolvasva"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Nincsenek kontaktusok, indítsd el a betöltési folyamatot, vagy tölts le "
 "magad egy nodes.dat fájlt."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Csak %d Kad kapcsolat elérhető, a nodes.dat fájl nem lett felülírva"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "%d Kad kapcsolat kiírva"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Fájl név"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Fájl méret"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Megosztási arány"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Feltöltve"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Kért"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Elfogadott"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Teljes források"
 
@@ -2403,70 +2403,75 @@ msgstr "Ismeretlen hiba %d"
 msgid "Unable to get error description for error %d"
 msgstr "A %d hiba leírásának lekérése sikertelen"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Tördelőalgoritmizálás"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Befejezés"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Kész"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Szüneteltetve"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Hibás"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Várakozik"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Egy nem üres jelszót kell megadni."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Érvénytelen jelszó, nem egy MD5 hash!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Kapcsolódási hiba"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "EC kapcsolat sikertelen. Üres válasz."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Külső kapcsolat: Rossz válasz, kézfogás sikertelen. Kapcsolat megszüntetve."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Sikerült! Kapcsolat létrejött ezzel: aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Sikerült! Kapcsolat létrejött."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Külső kapcsolat: Hozzáférés megtagadva, mert: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Külső kapcsolat: Kézfogás sikertelen."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "HTTP letöltési szál elindítva"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: rendben."
@@ -2475,16 +2480,16 @@ msgstr "ListenSocket: rendben."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "HIBA: A TCP porton nem lehet hallgatni."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "HIBA: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "FIGYELEM: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Bezár"
 
@@ -2492,8 +2497,8 @@ msgstr "Bezár"
 msgid "Cut"
 msgstr "Kivágás"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Másolás"
 
@@ -2502,7 +2507,7 @@ msgid "Paste"
 msgstr "Beillesztés"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Törlés"
 
@@ -2512,7 +2517,7 @@ msgstr "Mindent kijelöl"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2589,7 +2594,7 @@ msgid "ServerIP: "
 msgstr "Kiszolgáló IP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Nincs kapcsolódva"
 
@@ -2624,7 +2629,7 @@ msgstr "Online Aláírás: Engedélyezve"
 msgid "Online Signature: Disabled"
 msgstr "Online Aláírás: Letiltva"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Aktivitási idő: %s"
@@ -2665,7 +2670,7 @@ msgstr "aMule elrejtése"
 msgid "Show aMule"
 msgstr "aMule megjelenítése"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Kilépés"
 
@@ -2752,7 +2757,7 @@ msgstr "Keresés"
 msgid "Name:"
 msgstr "Név:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Típus"
 
@@ -2780,38 +2785,38 @@ msgstr "Szűrés"
 msgid "File Type"
 msgstr "Fájltípus"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Akármelyik"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archívált fájlok"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Zene"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-Image"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Képek"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programok"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Dokumentumok"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Filmek"
 
@@ -2832,11 +2837,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2864,7 +2869,7 @@ msgstr "Eredmény megfordítása"
 msgid "Hide Known Files"
 msgstr "Ismert fájlok elrejtése"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Indít"
 
@@ -2921,7 +2926,7 @@ msgstr "Teljes név :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2945,7 +2950,7 @@ msgstr "Fájlrész állapot :"
 msgid "Last seen complete :"
 msgstr "Utoljára teljesnek látott :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Átvitel"
 
@@ -3034,27 +3039,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Fájl minősítése"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Nincs értékelve"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Érvénytelen / Sérült / Hamis"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Gyenge"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Korrekt"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Jó"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Kitűnő"
 
@@ -3101,7 +3106,7 @@ msgid "Userhash :"
 msgstr "Userhash :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Hozzáad"
 
@@ -3333,9 +3338,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Tallóz"
 
@@ -3423,7 +3428,7 @@ msgstr "Max egyidejű kapcsolatok:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3545,7 +3550,7 @@ msgstr "Add meg a kívánt min. szabad lemezterületet."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Mentsen el 10 forrást ritka fájloknál (< 20 forrás)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Feltöltések"
 
@@ -3787,7 +3792,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "UPnP port továbbítás engedélyezése az EC porton"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Jelszó"
 
@@ -3869,8 +3874,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Válassz színt ehhez a kategóriához (jelenleg kiválasztva) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Töröl"
 
@@ -4269,84 +4274,89 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Bőbeszédű hiba-naplózás engedélyezése"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "Fájl &megnyitása"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Üzenet kategóriák:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Várakozás..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Importálandók hozzáadása"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Kijelöltek újrapróbálása"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Kijelöltek eltávolítása"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Esemény típusok"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Statisztikák és várakozó kliensek a kiválasztott fájl(ok)hoz: Folyamat / "
 "Valaha"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Aktív feltöltések"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Összes fájl százalékaként"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Összes fájl"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Kiválasztott fájlok"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Csak aktív feltöltések"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Kliensek megjelenítése ehhez:"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Újratöltés:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Megosztott fájlok frissítése"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Küldés"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Megadott üzenet küldése."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Csevegési folyamat bezárása."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Kapcsolódás bármelyik kiszolgálóhoz és/vagy a Kad-hoz"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Megosztott fájlok"
 
@@ -4355,133 +4365,133 @@ msgstr "Megosztott fájlok"
 msgid "Disabled [%s]"
 msgstr "Tiltva [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "bájt"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "bájt/mp"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/mp"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "mp"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "perc"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "óra"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "nap"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "mind"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "összes egyéb"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Befejezetlen"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Megállítva"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Film"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Archívált"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Szöveg"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktív"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Konfigurációk könyvtára: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Várakozás a partfile kovertáló thread befejeztére..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "%s importálása: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Ideiglenes mappa olvasása"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Alapvető információk megszerzése a letöltési infó fájlból"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Célfájl létrehozása"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Adat töltése a régi letöltési fájlból (%u a(z) %u-ből)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Adat blokk mentése az új letöltési fájlba (%u a(z) %u-ből)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Forrás letöltési fájl információ megszerzése"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Új letöltés hozzáadása és az új részfájl mentése"
 
@@ -4497,12 +4507,12 @@ msgstr "Állapot"
 msgid "Filehash"
 msgstr "Fájl Hash"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Lemezen: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4510,12 +4520,12 @@ msgstr ""
 "Válassz egy mappát ahol ideiglenes letöltéseket fogok keresni! (az "
 "almappákban is)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Töröljem a sikeresen importált letöltések forrásait?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Források eltávolítása?"
 
@@ -4628,7 +4638,7 @@ msgstr "A(z) %s (%s) részfájlnak üres a seeds fájlja"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Hiba a részfájl forrás-fájljának olvasása közben (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4640,39 +4650,39 @@ msgstr[0] ""
 "Sérült részt (%d) találtam a %d részű %s fájlban - FileResultHash |%s| "
 "FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "(%i) befejezett fájlrészt találtam a(z) %s fájlban"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "%s újra algoritmizálása befejeződött"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Váratlan hiba a %s fájl befejezése közben. A fájl szüneteltetve."
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Letöltés befejeződött: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Fájl törlése: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "FIGYELEM: Nem tudom a letöltött részt hash-elni - hash-készlet a(z) '%s'-hez "
 "hiányos"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4681,7 +4691,7 @@ msgstr ""
 "HIBA: Nem tudom a letöltött részt hash-elni - hash-készlet hiányos (%s). Nem "
 "volna szabad előfordulnia"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4690,224 +4700,224 @@ msgstr ""
 "EOF hiba tördelőalgoritmizáláskor a %u. letöltött résznél, amely %u (max %u) "
 "hosszú és a(z) '%s' részfájlhoz tartozik, amely %u hosszú: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "FIGYELEM: Nincs elég szabad hely a lemezen! Fájl szüneteltetése: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "A %i. letöltött fájlrész sérült a %s fájlban"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: %i. sérült rész helyreállítva a '%s'-hez -> megmentett bájtok: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Helyfoglalás"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Elégtelen lemezterület"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Letöltve"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "HIBA: A(z) '%s' részfájl megnyitása sikertelen."
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Alapértelmezett"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albán"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arab"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asztúriai"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baszk"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bolgár"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalán"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Kínai (egyszerűsített)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Kínai (hagyományos)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Horvát"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Cseh"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Dán"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holland"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Angol (Egyesült Királyság)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Észt"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finn"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francia"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Gall"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Német"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Görög"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Héber"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Magyar"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Olasz"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Olasz (Svájci)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japán"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Koreai"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Litván"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norvég (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Lengyel"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugál"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugál (Brazíliai)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Orosz"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Szlovén"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spanyol"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Svéd"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Török"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukrán"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Nyelv megváltoztatása"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr "Nincsenek fordítások telepítve az aMule-hez"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr "Nincs elérhető nyelv"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "nincs elérhető opció"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Érvénytelen kategória találva, mellőzés"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "A TCP port nem lehet magasabb 65532-nél, mert a kiszolgáló UDP port = TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Alapértelmezett port lesz használva (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Nem létező megosztott könyvtár kihagyása: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Csatlakozás"
 
@@ -4915,7 +4925,7 @@ msgstr "Csatlakozás"
 msgid "Directories"
 msgstr "Mappák"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Kiszolgálók"
 
@@ -4969,7 +4979,7 @@ msgstr ""
 "    %PARTFILE - teljes út a fájlhoz\n"
 "    %PARTNAME - csak a fájl neve"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4985,26 +4995,26 @@ msgstr ""
 "Ezen beállítások módosítása nélkül is remekül fog\n"
 "működni az aMule."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Cfg csatolása a widget-hez (ID-je: %d, kulcsa: %s) sikertelen"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "Adatátvitel a Cfg-ből a Widget-be (ID-je: %d, kulcsa: %s) sikertelen."
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "A proxy típusa amihez kapcsolódsz"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "Adatátvitel a Widget-ből a Cfg-be (ID-je: %d, kulcsa: %s) sikertelen."
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5013,27 +5023,32 @@ msgstr ""
 "(ek):\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP port megváltozott.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP port megváltozott.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Külső kapcsolat port megváltoztatva.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Külső kapcsolat elfogadása megváltoztatva.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Külső kapcsolat interfész megváltoztatva.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protokoll zavarás"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5041,7 +5056,7 @@ msgstr ""
 "Az automatikusan frissített kiszolgálóü lista üres.\n"
 "A 'kiszolgáló lista automatikus frissítése induláskor' letiltva."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5049,19 +5064,19 @@ msgstr ""
 "Engedélyezted a távoli elérést, de nem adtál meg jelszót.\n"
 "A távoli elérés nem használható érvényes jelszó nélkül."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Nyelv megváltozott.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Ideiglenes mappa megváltozott.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- ED2K hálózat engedélyezve.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5069,7 +5084,7 @@ msgstr ""
 "Az eD2k és a Kad hálózat is le van tiltva.\n"
 "Nem fogsz tudni kapcsolódni, amíg legalább az egyiket nem engedélyezed."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5077,7 +5092,7 @@ msgstr ""
 "A Kad nem fog elindulni, ha az UDP portod le van tiltva.\n"
 "Engedélyezd az UDP portot vagy tiltsd le a Kad-ot."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5087,7 +5102,7 @@ msgstr ""
 "Most újra KELL indítanod az aMule-t.\n"
 "Ha nem indítod újra most, ne panaszkodj, ha bármi rossz történik.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5097,41 +5112,41 @@ msgstr ""
 "Kérlek adj meg legalább egy URL-t, ami érvényes server.met fájlra mutat .\n"
 "Az URL megadásához klikkelj a \"Lista\" gombra ezen checkbox mellett."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "az Ideiglenes fájloknak"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Bejövő fájlok"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "az Online aláírásnak"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Válassz egy mappát a %s-nek"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Böngészés a videolejátszóhoz"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Válaszd ki a böngésződet"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Futtatható%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Kiszolgáló lista szerkesztése"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5139,71 +5154,71 @@ msgstr ""
 "URL-ek felvétele a server.met fájl letöltéséhez.\n"
 "Egy sorba csak egy URL."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Frissítés késleltetése: %d másodperc"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Grafikon átlagos ideje: %d perc"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Kapcsolatok grafikon-skálája: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Fájl buffer méret: %d bájt"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Feltöltési várólista nagysága: %d kliens"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Kiszolgáló kapcsolat frissítési gyakorisága: %d perc"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Kiszolgáló kapcsolat frissítési gyakorisága: Tiltva"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "letiltva"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Parancs végrehajtása a(z) '%s' eseménynél"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Parancs futtatása a magon"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Mag parancs:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Parancs futtatása a grafikus felületen"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "GUI parancs:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "A következő változók lesznek behelyettesítve:"
 
@@ -5233,7 +5248,7 @@ msgstr "eD2k keresést nem lehet végrehajtani, ha nincs kapcsolódva az eD2k-ho
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Nem várt hiba amíg a Kad kereséssel próbálkoztam: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "Fájl ID"
 
@@ -5349,7 +5364,7 @@ msgstr "HIBA: A socket érvénytelen az időtúllépés-ellenőrzés során"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Kapcsolódási kísérlet %s-hez (%s:%i): időtúllépés."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Elkésett válasz érkezett egy DNS tudakozáshoz, figyelmen kívül hagyva."
 
@@ -5376,51 +5391,51 @@ msgstr "A server.met megnyitása sikertelen!"
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr "server.met fájl sérült, érvénytelen verzió-tag: 0x%x, mérete %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i kiszolgálót találtam a server.met fájlban"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d kiszolgáló hozzáadva"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Hiba: a 'server.met' fájl sérült: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "IO hiba a 'server.met' fájl olvasása közben: "
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Kiszolgáló nem lett hozzádva: [%s:%d] nem egy érvényes port."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 "Kiszolgáló nem lett hozzáadva: Az IP címe [%s:%d]-nek ki van szűrve vagy "
 "érvénytelen."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Kiszolgáló nem lett hozzáadva: Ezzel az IP:Port-tal [%s:%d] már van "
 "kiszolgáló a listában."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Kiszolgáló hozzáadva: Kiszolgáló [%s:%d] '%s' néven."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5428,25 +5443,25 @@ msgstr ""
 "Olyan kiszolgálót próbál törölni, amelyikhez csatlakozva van. Kérém először "
 "válassza le."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Nem sikerült megnyitni a '%s'-t"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "A server.met mentése sikertelen!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Érvénytelen URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Kiszolgáló lista letöltése %s-ről befejeződött"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5455,29 +5470,29 @@ msgstr ""
 "Kérlek írj be egy érvényes kiszolgáló-lista címet ebbe a fájlba, hogy "
 "automatikusan tudjam frissíteni a kiszolgáló listát."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Kiszolgáló lista letöltése %s-ről megkezdve."
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "FIGYELEM: érvénytelen URL megadva a kiszolgálók automatikus frissítéséhez: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "Nincs érvényes url a server.met fájl automatikus letöltéséhez az addresses."
 "dat fájlban"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Kiszolgáló lista letöltése sikertelen %s-ről"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5514,7 +5529,7 @@ msgid "Static"
 msgstr "Állandó"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Verzió"
 
@@ -5540,8 +5555,8 @@ msgstr "Biztos, hogy törlöd az állandó %s kiszolgálót"
 msgid "Servers (%i)"
 msgstr "Kiszolgálók száma (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Kiszolgáló"
 
@@ -5597,82 +5612,82 @@ msgstr "Biztos, hogy törlöd a kiválasztott kiszolgálót?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Biztos, hogy törlöd a kiválasztott kiszolgálókat?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "HIBA: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "FIGYELEM: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Az új ügyfélazonosító %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "FIGYELEM: Alacsony azonosítót (LowID) kaptál!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tLegvalószínűbb oka az lehet, hogy tűzfal vagy router mögött vagy."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 "\tTovábbi információért, kérlek látogasd meg a http://wiki.amule.org-ot"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Ismeretlen kiszolgáló infó fogadva! - túl rövid"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "%d új kiszolgáló fogadva"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Kiszolgáló-lista mentése kész."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "A kiszolgáló visszautasította az utolsó parancsot"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Hibás csomag érkezett a kiszolgálótól: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Kezeletlen hiba a kiszolgálóról történő adatok feldolgozásánál: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "A DNS feloldó szálat nem lehet létrehozni a %s-hez való kapcsolódáshoz"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "A %s IP-jű kiszolgáló (%s) ki van szűrve. Nem kapcsolódom."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "protokoll zavarással."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Kapcsolódás %s-hez (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Nem tudom a DNS-t feloldani a %s kiszolgálóhoz: Nem tudok kapcsolódni!"
@@ -5852,85 +5867,90 @@ msgstr "Helyi fájlnév"
 msgid "Shares File List"
 msgstr "Fájl lista megosztása"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Kérések"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Elfogadott kérések"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Átmásolt adat"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Megosztási arány"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Megszerzett részek"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Teljes források"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Könyvtár útvonal"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Megjegyzés/Értékelés hozzáadása"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Megjegyzés/Értékelés szerkesztése"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Átnevezés"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Add a gyűjteményben szereplő fájlokat az átviteli listához"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Magnet &URI másolása a vágólapra"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "eD2k hivatkozás másolása a vágólapra (Forrás)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "eD2k hivatkozás másolása a vágólapra (Forrás) (Titkosítási opciókkal)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "eD2k hivatkozás másolása a vágólapra (Gazda név)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "eD2k hivatkozás másolása a vágólapra (Gazda név) (Titkosítási opciókkal)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "eD2k hivatkozás másolása a vágólapra (AICH infó)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "eD2k hivatkozás másolása a vágólapra (AICH infó)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Érvényes forráshivatkozáshoz magas azonosító (HighID) szükséges"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Megosztott fájlok (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Részfájl]"
 
@@ -5938,235 +5958,235 @@ msgstr "[Részfájl]"
 msgid "Remote File Name"
 msgstr "Távoli fájlnév"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Feltöltött adatok (folyamat (összesen)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Összes többletterhelés (csomagok): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Fájlkérés többletterhelése (csomagok): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Forrásváltás többletterhelése (csomagok): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Kiszolgáló többletterhelése (csomagok): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kad többletterhelés (csomagok): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Titkosítás többletterhelés (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Aktív feltöltések: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Várakozó feltöltések: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Összes sikeres feltöltési folyamat: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Összes sikertelen feltöltési folyamat: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Átlagos feltöltési idő: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Letöltött adatok (folyamat (összesen)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Forrás találatok: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Aktív letöltések száma (adatelemek): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Fel:Le töltési folyamat aránya (összesen): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Átlagos letöltési arány (folyamat): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Átlagos feltöltési arány (folyamat): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Maximum letöltési arány (folyamat): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Maximum feltöltési arány (folyamat): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Újrakapcsolódások: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Első átvitel óta eltelt idő: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Kiszolgálóhoz kapcsolódva: %s óta"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktív kapcsolatok száma (becsült): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Max kapcsolódási korlát elérve: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Kapcsolatok átlagos száma (becsült): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Legtöbb kapcsolat (becsült): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Kliensek"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Ismeretlen: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Kiszűrve: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Kitiltott: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Összesen: %i Ismert: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Működő kiszolgálók: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Sikertelen kiszolgálók: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Összes: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Törölt kiszolgálók: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Kiszűrt kiszolgálók: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Felhasználók száma a működő kiszolgálókon: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Fájlok a működő kiszolgálókon: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Összes felhasználó: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Összes fájl: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Kiszolgáló leterheltség: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Megosztott fájlok száma: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Megosztott fájlok teljes mérete: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Átlagos fájlméret: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Operációs rendszer"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Nem fogadott"
 
@@ -6227,7 +6247,7 @@ msgstr "Érvénytelen szám\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Nem érvényes hash (a hossza pontosan 32 karakter kell legyen)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Kérés ismeretlen hibával sikertelen."
 
@@ -6281,13 +6301,13 @@ msgstr "Kapcsolódva %s-hez %s %s"
 msgid "Now connecting"
 msgstr "Kapcsolódás folyamatban"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "tűzfal mögül"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "rendben"
 
@@ -6723,21 +6743,21 @@ msgstr ""
 "Ez egy elavult parancs és a jövőben eltávolításra kerülhet.\n"
 "Használd a '%s'-t helyette.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule szöveges kliens"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "A régi AICH hashkészlet konvertálása 64b-re '%s'-ből '%s'-be."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "FIGYELEM: A fájlnév '%s' érvénytelen és '%s'-re lett átnevezve."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "FIGYELEM: A fájl '%s' már létezik, az új fájl '%s'-re lett nevezve."
@@ -6812,7 +6832,7 @@ msgstr ""
 msgid "Download completed"
 msgstr "Letöltés befejezve"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "A fájl teljes elérési útja."
 
@@ -6832,66 +6852,66 @@ msgstr "Fájlméret bájtokban."
 msgid "Cumulative download activity time."
 msgstr "Összegzett letöltési aktivitás idő."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Új beszélgetés kezdődött"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Üzenetküldő."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Helyhiány"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Lemez partíció."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Hiba a befejezésnél"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "%u fájl számának feldolgozása: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Rész-hash-eket kért (Csak 9.5 MB fájlméret fölött lehet használni)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Nem létező fájl !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, az aMule eD2k hivatkozás készítője"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Üdvözöljük!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Bemeneti paraméterek"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Fájl tördelőalgoritmizálása"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "URL(ek) hozzáadása ehhez a fájlhoz (nem kötelező)"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Itt azt a fájlt add meg, amelyhez eD2k hivatkozást akarsz generálni"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6900,15 +6920,15 @@ msgstr ""
 "végére / jelet teszel, az aLinkCreator automatikusan hozzáfűzi az aktuális "
 "fájlnevet."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Eltávolít"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Hivatkozás készítése rész-hash-ekkel"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6916,81 +6936,81 @@ msgstr ""
 "Új és ritka fájlokat segít gyorsabban elterjeszteni megnövelt "
 "hivatkozásméret segítségével"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 fájl hash"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k fájl hash"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k hivatkozás"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Ment"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Másolás a vágólapra"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Megnyitás"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Fájl megnyitása, amire eD2k hivatkozást kell készíteni"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "A számított eD2k hivatkozás másolása a vágólapra"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Mentés másként"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "A számított eD2k hivatkozás mentése fájlba"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "aLinkCreator Névjegy"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Válaszd ki a fájlt, hogy kiszámíttasd az eD2k hivatkozását"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Nem tudom megnyitni a vágólapot"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Nem került másolásra semmi !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Válaszd ki a fájlt a számított eD2k hivatkozásodnak"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Nem lehet megnyitni"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Kérlek, ne üres fájlnevet adj meg"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Nem került mentésre semmi !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7010,158 +7030,162 @@ msgstr ""
 "\n"
 "GPL alatt terjesztve"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Tördelőalgoritmizálás..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "Az aLinkCreator dolgozik"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "MD4 hash számítása..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "eD2k hash-ek számítása..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Megszakítva !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Elkészült  %.2f mp alatt"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Ezt az URL-t már felvette a letöltési listába !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Kérlek, ne üres URL-t adj meg "
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "%s-t nem lehet megnyitni"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i nap %i óra %i perc %i mp"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02un %02uó %02uperc %02ump"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uó %02uperc %02ump"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02uperc %02ump"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02ump"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, aMule Online Statisztikák"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Legmagasabb letöltési arány a wxCas futása óta"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Abszolút legmagasabb letöltési arány a wxCas előző futása alatt"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Rendszer"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Automatikus frissítés leállítása"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Online statisztikák mentése"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Online statisztikák nyomtatása"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Tulajdonságok beállítása"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "wxCas Névjegy"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Automatikus frissítés elindítása"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Automatikus frissítés leállítva"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Automatikus frissítés elindítva"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Statisztikák mentése"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule online statisztikák"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7169,11 +7193,11 @@ msgstr ""
 "Nyomtatási probléma történt.\n"
 "Lehet, hogy a nyomtatód nincs helyesen beállítva?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Nyomtatás"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7191,325 +7215,325 @@ msgstr ""
 "\n"
 "Distributed under GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Ó ó, az aMule nem fut..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule fut"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "Az aMule fut, de nincs kapcsolódva"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule kapcsolódása folyamatban..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Ó-Ó, az aMule állapota ismeretlen..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " fut "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " megállt !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " nincs kapcsolódva !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " kapcsolódás folyamatban ..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " valami különös történik, ellenőrízd !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " kapcsolódva ehhez: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "nincs"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " csatlakozva ehhez "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " ezzel "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Összes letöltés: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Feltöltés: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Szakasz letöltés: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Letöltés: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Feltöltés: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Megosztva: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " fájl(ok), Várólistás kliensek száma: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Idő: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " IP címen "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Rendszer betöltési átlag (1-5-15 perc): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "A rendszer aktivitási ideje (uptime): "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "amulesig.dat fájlt tartalmazó könyvtár"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Itt azt a könyvtárat add meg, ahol az amulesig.dat fájl található"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Frissítés gyakorisága mp-ben"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Statisztikai kép készítése minden frissítés alkalmával"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Itt azt a könyvtárat add meg, ahová a statisztikát akarod elkészíteni"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Statisztikai kép periódikus feltöltése FTP kiszolgálóra"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP Url"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP útvonal"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Itt az FTP kiszolgálójának az URL-jét add meg"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Könyvtár megadása"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Felhasználó"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr ""
 "Itt a felhasználói nevet add meg az FTP kiszolgálóra törénő bejelentkezéshez"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Itt a jelszavad add meg az FTP kiszolgálóra törénő bejelentkezéshez"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP frissítési gyakorisága percekben"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Mentés"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Aláírás fájlt tartalmazó könyvtár"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "A statisztika készítésének könyvtára"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Betölti a(z) <str> sablont"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Web kiszolgáló HTTP port"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "UPnP port továbbítás használata a web kiszolgáló porton"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP port"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Gzip tömörítés használata"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Teljes jogú jelszó a web kiszolgálóhoz"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Vendég jelszó a web kiszolgálóhoz"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Vendég felhasználó engedélyezése"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "vendég felhasználó tiltása"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 "A web kiszolgáló beálításait a távoli aMule-től kéri, illetve oda menti"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule konfig fájl útvonala. NE HASZNÁLD!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "PHP feldolgozó letiltása (nem ajánlott)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "PHP oldalak újrafordítása minden kérésnél"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule Web kiszolgáló"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "web ügyfél kapcsolat elfogadva\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "HIBA: nem tudom fogadni a web ügyfél kapcsolatot\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "A kérés sikertelen volt a következő hibával: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Index fájl nem található: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Munkafolyamat időtúllépés - bejelentkezés kérése\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Munkamenet rendben, bejelentkezve\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Munkamenet rendben, nincs bejelentkezve\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Nincs munkafolyamat megnyitva - bejelentkezés kérése\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Munkafolyamat létrehozva - bejelentkezés kérése\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Kérés feldolgozása [eredeti]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Nincsen megadva jelszó, bejelentkezés nem lesz engedélyezve."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Jelszó ellenőrzése\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Jelszó hash érvénytelen\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Jelszó rendben\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Hibás jelszó\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Nem adtál meg jelszót. Üres jelszó nem megengedett.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Kijelentkezés\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Kérés feldolgozása [átirányított]: "
 
@@ -7708,9 +7732,6 @@ msgstr "Kérés feldolgozása [átirányított]: "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Összes felhasználó: %s | Összes fájl: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "HTTP letöltési szál elindítva"
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr "Letöltés mérete nem érkezett meg, letöltés amíg a kapcsolat lezárul"
 
diff --git a/po/it.po b/po/it.po
index 90fc221..65cfeb6 100644
--- a/po/it.po
+++ b/po/it.po
@@ -22,7 +22,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: it\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-11-02 15:22+0100\n"
 "Last-Translator: Giuliano Manzitti <giuliano1979 at hotmail.com>\n"
 "Language-Team:  <it at li.org>\n"
@@ -54,7 +54,7 @@ msgstr "L'hash utente specificato non è valido!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Impossibile aprire il file ED2Links."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -62,37 +62,37 @@ msgstr ""
 "ATTENZIONE: non è possibile aggiungere te stesso come fonte di un link eD2k "
 "finché avrai un ID basso."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Uscita dall'applicazione..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Sto terminando l'istanza di amuleweb con pid `%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Sto terminando l'istanza di amuleweb con pid `%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Fallito"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Chiusura core."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Chiusura di aMule completa."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Risultati del debug della memoria per l'uscita da aMule:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -100,16 +100,16 @@ msgstr ""
 "\n"
 "Configurazione EC"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Password stabilita, connessioni esterne abilitate."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "ATTENZIONE"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -118,13 +118,13 @@ msgstr ""
 "predefinite dal sistema in conseguenza al cambio di configurazione. "
 "Spiacente."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -132,16 +132,16 @@ msgstr ""
 "Non hai alcun server nella lista dei server.\n"
 "Vuoi che aMule scarichi una lista ora?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Scaricamento della lista server"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "web server in esecuzione su pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -151,23 +151,23 @@ msgstr ""
 "può essere eseguito. Installa il pacchetto aMule web server, o compila aMule "
 "con l'opzione --enable-webserver"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ERRORE"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Impossibile aprire le porte sull'indirizzo specificato: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "La porta %u non è disponibile. Otterrai un ID basso\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -183,11 +183,11 @@ msgstr ""
 "Controlla le impostazioni di rete e verifica che la porta sia aperta in "
 "ingresso e in uscita."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Impossibile creare il file per la firma in linea"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Impossibile creare il file per la firma in linea di aMule"
 
@@ -239,134 +239,134 @@ msgstr ""
 "La firma in linea sarà pertanto disabilitata fino a quando il problema non "
 "sarà stato risolto attraverso il pannello delle preferenze."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Notificato il server hostname"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Preallocazione spazio su disco per il file '%s' fallita: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ERRORE: non posso aprire il file di log"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "ERRORE: il file di log è vuoto. Qualcosa non va."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Il file di log è stato cancellato"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Messaggio del server: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "Download saltato di %s, poichè il file richiesto non è il più recente."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Impossibile scaricare la lista dei nodi."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Impossibile aprire il file per il controllo della versione scaricato"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "File per il controllo della versione danneggiato"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Stai usando una versione non aggiornata di aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "La tua versione di aMule e' la %i.%i.%i e l'ultima è la %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "L'ultima versione è sempre disponibile su http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 "ATTENZIONE: La tua versione di aMuled e' obsoleta: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "La tua copia di aMule è aggiornata."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Impossibile scaricare il file per il controllo della versione"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Utenti: %s | File: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Utenti: E: %s K: %s | File: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Nessuna rete selezionata"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "con ID basso"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "con ID alto"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Connesso a %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Connessione in corso a %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Disconnesso dalla rete eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad avviato."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad arrestato."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Connesso alla rete Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Connesso alla rete Kad (firewalled)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Disconnesso dalla rete Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -374,11 +374,11 @@ msgstr ""
 "La rete Kad non può essere utilizzata se la porta UDP è disattivata dalle "
 "opzioni."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Rete Kad disattivata dalle opzioni, non mi connetto."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -390,7 +390,7 @@ msgstr ""
 "normale, far partire amuled con l'opzione --ec-config o impostare la voce "
 "\"AcceptExternalConnections\" a 1 nel file ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -405,19 +405,19 @@ msgstr ""
 "ec-config per impostare la password. Per maggiori informazioni http://wiki."
 "amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - Timer d'avvio"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: forzato in background - arrivederci"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Impossibile creare il file Pid"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ERRORE: %s"
@@ -501,9 +501,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Messaggio"
 
@@ -511,7 +511,7 @@ msgstr "Messaggio"
 msgid "aMule dialog destroyed"
 msgstr "Finestra di aMule distrutta"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Connessione in corso"
 
@@ -545,7 +545,7 @@ msgstr "Kad: Spento"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Annulla"
 
@@ -562,7 +562,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Disconnettiti dalla rete"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Connetti"
 
@@ -603,7 +603,7 @@ msgstr "Chiedi conferma prima di uscire"
 msgid "Launch Command: "
 msgstr "Comando di avvio:"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- predefinita -"
 
@@ -618,80 +618,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "ATTENZIONE: impossibile aprire in lettura il file '%s' della skin"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Reti"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Finestra reti"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Ricerca"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Finestra ricerche"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Download"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Finestra Downloads"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "File condivisi"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Finestra file condivisi"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Messaggi"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Finestra messaggi"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistiche"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Finestra grafici e statistiche"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Preferenze"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Finestra Preferenze"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importazione"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Strumento per l'importazione dei partfile"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Informazioni"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Informazioni/Aiuto"
 
@@ -711,7 +711,7 @@ msgstr "Nessuna rete"
 msgid "aMule remote control"
 msgstr "Controllo remoto di aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -723,108 +723,108 @@ msgstr "ERRORE FATALE: Creazione del Timer principale fallita"
 msgid "Connect to remote amule"
 msgstr "Connessione ad aMule remoto"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "ERRORE FATALE: Creazione del Timer di interrogazione fallita"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Ciclo evento..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Connessione in corso..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Connessione fallita "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Gestore eventi GUI EC remota"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Qualcosa è andato storto"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Connessione Fallita. Impossibile connettersi a %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Connessione persa - aMule verrà chiuso."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Pronto"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Tutto"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Impossibile creare la directory '%s' per la categoria '%s', verrà mantenuta "
 "la directory '%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Sconosciuto"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Impossibile ricevere i file condivisi dall'utente '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Ricerca amico per connessione con ID basso"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (falso eMule versione %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (falso eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (falso eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (basato su eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Nickname: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Richiesto: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -836,7 +836,7 @@ msgstr[1] ""
 "Statistiche file per questa sessione: Accettate %d di %d richieste, %s "
 "trasferiti\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -848,7 +848,7 @@ msgstr[1] ""
 "Statistiche file per tutte le sezioni: accettate %d di %d richieste, %s "
 "trasferite\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Richiesto file sconosciuto"
 
@@ -1001,12 +1001,12 @@ msgid "Client Details"
 msgstr "Dettagli client"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "ID basso"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "ID alto"
 
@@ -1058,34 +1058,34 @@ msgstr "Verificata - OK"
 msgid "Not Available"
 msgstr "Non disponibile"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "L'utente %s (%u) ha richiesto la lista dei file condivisi -> richiesta "
 "accettata"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "L'utente %s (%u) ha richiesto la lista dei file condivisi -> richiesta negata"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "L'utente %s (%u) ha richiesto la lista delle cartelle condivise -> richiesta "
 "accettata"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "L'utente %s (%u) ha richiesto la lista delle cartelle condivise -> richiesta "
 "negata"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1093,7 +1093,7 @@ msgstr ""
 "L'utente %s (%u) ha richiesto la lista dei file condivisi nella cartella '%"
 "s' -> richiesta accettata"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1101,34 +1101,34 @@ msgstr ""
 "L'utente %s (%u) ha richiesto la lista dei file condivisi nella cartella '%"
 "s' -> richiesta negata"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "L'utente %s (%u) condivide la cartella '%s'"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 "L'utente %s (%u) ha inviato una lista delle cartelle condivise non richiesta."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "L'utente %s (%u) ha inviato la lista dei file condivisi nella cartella '%s'"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "L'utente %s (%u) ha finito di inviare la lista dei file condivisi"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "L'utente %s (%u) ha inviato una lista di file condivisi non richiesta"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1145,7 +1145,7 @@ msgstr "Nome utente"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Nome file"
 
@@ -1188,33 +1188,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Alta]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Molto bassa"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Bassa"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normale"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Alta"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Molto alta"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Release"
 
@@ -1231,12 +1231,12 @@ msgid "Queue Full"
 msgstr "Coda piena"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "In coda"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Download in corso"
 
@@ -1296,7 +1296,7 @@ msgstr "Server locale"
 msgid "Remote Server"
 msgstr "Server remoto"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1322,7 +1322,7 @@ msgid "Search Result"
 msgstr "Risultato della Ricerca"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Completati"
 
@@ -1363,11 +1363,11 @@ msgid "Part"
 msgstr "Parte"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Dimensione"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Trasferiti"
 
@@ -1380,17 +1380,17 @@ msgid "Progress"
 msgstr "Avanzamento"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Fonti"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Priorità"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Stato"
@@ -1415,7 +1415,7 @@ msgstr "Sei sicuri di voler eliminare il file selezionato?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Sei sicuro di volere eliminare i file selezionati?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1425,7 +1425,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1477,11 +1477,11 @@ msgstr "Mostra tutti i commenti"
 msgid "Copy magnet URI to clipboard"
 msgstr "Copia URI magnet negli appunti"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Copia eD2k &link negli appunti"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Copia feedback negli appunti"
 
@@ -1497,24 +1497,24 @@ msgstr "Assegna a categoria"
 msgid "&Open the file"
 msgstr "&Apri file"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Inserisci un nuovo nome per questo file:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Rinomina file"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Download (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1523,11 +1523,11 @@ msgstr ""
 "seleziona nelle preferenze il tuo riproduttore video preferito (di default è "
 "mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Anteprima"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1638,29 +1638,29 @@ msgstr "Connessioni esterne disabilitate perché la password è vuota!"
 msgid "External connections disabled in config file"
 msgstr "Connessioni esterne disabilitate nel file di configurazione"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Accettata nuova connessione esterna"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ERRORE: impossibile accettare una nuova connessione esterna"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Connessione esterna rifiutata perché la password nelle preferenze è vuota!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Connessione al client: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Versione sconosciuta"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1668,7 +1668,7 @@ msgstr ""
 "ID della versione EC non corretto, potrebbe esserci un'incompatibilità "
 "binaria. Usare core e client remoto dello stesso snapshot."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1676,173 +1676,173 @@ msgstr ""
 "Non puoi connetterti a una versione definitiva da una versione SVN "
 "arbitraria! *sigh* possibile crash evitato"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Versione protocollo non valida."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Tag versione di protocollo mancante."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 "Autenticazione fallita: l'hash specificato come password EC non è valido."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Autenticazione fallita: password errata."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Autenticazione fallita: devi inserire la password."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Richiesta non valida, prima devi autenticarti."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Accesso consentito."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Invia il messaggio di errore \"%s\" al client."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Tentativo di accesso non autorizzato da %s. Connessione chiusa."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Comando Partfile remoto fallito: hash del file non trovato: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Hash del file non trovato: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OOPS! errore nel processare l'opcode!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Server non aggiunto"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "server non trovato: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "è necessario definire il server da rimuovere"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k è disabilitato nelle preferenze."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Ricerca in corso. Risultati in arrivo!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Non ha senso usare la ricerca Web da interfaccia remota."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Niente punti per il grafico."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Il tuo client non è configurato per questo livello di dettaglio."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Connessione Esterna: richiesto l'arresto"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Sto già uscendo."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ExternalConn: aggiungo il collegamento '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Collegamento non valido o già nella lista."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "File non trovato."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nome file non valido."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Impossibile rinominare il file."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "La rete Kad è disabilitata nelle Preferenze."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "eD2k è già connesso."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Connessione alla rete eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Già connesso alla rete Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Connessione alla rete Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Tutte le reti sono disabilitate."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Disconnesso dalla rete eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Disconnesso dalla rete Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Connessione Esterna: ricevuto un opcode invalido: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Opcode non valido (versione errata del protocollo?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Estensione '%s' sconosciuta per il comando '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Comando sconosciuto '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1850,7 +1850,7 @@ msgstr ""
 "\n"
 "Questo comando non può avere un argomento.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1858,7 +1858,7 @@ msgstr ""
 "\n"
 "Questo comando richiede un argomento.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1866,7 +1866,7 @@ msgstr ""
 "\n"
 "Questo comando è incompleto, devi usare una delle estensioni qui riportate.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1874,11 +1874,11 @@ msgstr ""
 "\n"
 "Estensioni disponibili:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Comandi disponibili:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1889,17 +1889,17 @@ msgstr ""
 "Tutti i comandi possono essere digitati in maiuscolo e minuscolo.\n"
 "Scrivi '%s <comando>' per avere informazioni dettagliate su un <comando>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Esce dall'applicazione."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Mostra aiuto."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1907,7 +1907,7 @@ msgstr ""
 "Per avere aiuto su un comando, digitare 'help <comando>'.\n"
 "Per avere la lista completa dei comandi, digitare 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1918,48 +1918,48 @@ msgstr ""
 "Usa '%s' per la lista dei comandi\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Errore di sintassi!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Errore nell'eseguire il comando - ciò non dovrebbe mai accadere! Segnala il "
 "bug\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Questo comando non deve avere parametri."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Questo comando richiede un parametro."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argomento non valido."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Questo comando è incompleto."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Digita '%s' per avere altro aiuto.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Questo è %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Questo è %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1967,7 +1967,7 @@ msgstr ""
 "\n"
 "Creazione del client in corso...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1976,7 +1976,7 @@ msgstr ""
 "\n"
 "Ok, uscita in corso da %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1990,47 +1990,47 @@ msgstr ""
 "\n"
 "Sto uscendo...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Mostra questo suggerimento."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host su cui aMule è in esecuzione (default: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Porta di aMule per le connessioni esterne (default: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Password connessioni esterne."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Leggi la configurazione da file."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Non stampare output sullo stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Verboso - mostra anche i messaggi di debug."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Imposta il locale del programma (lingua)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Salva le opzioni linea di comando nel file di configurazione."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Crea un file di configurazione basato su quello di aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Mostra la versione del programma."
 
@@ -2043,8 +2043,8 @@ msgstr "Dettagli file"
 msgid "%.1f%% done"
 msgstr "%.1f%% completato"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2064,7 +2064,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "CRITICO - nessun client in StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Amici"
 
@@ -2192,32 +2192,32 @@ msgstr "L'URL per scaricare non può essere vuoto."
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "L'URL %s ha risposto: %i - Errore (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Errore critico durante la scrittura del file scaricato."
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "Scaricato %d bytes"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Scaricati %d bytes invece dei %d attesi"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 "URL non valido per il download o il redirect HTTP (hai inserito 'http://' ?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Impossibile connettersi al server HTTP"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Risposta non valida dal server HTTP"
 
@@ -2249,7 +2249,7 @@ msgstr "%s aggiornato con successo"
 msgid "Error updating GeoIP.dat"
 msgstr "Errore durante l'aggiornamento di GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Impossibile scaricare %s da %s"
@@ -2294,7 +2294,7 @@ msgstr[1] "%u righe non valide sono state scartate."
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Impossibile rinominare il nuovo file %s,  aggiornamento interrotto."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "Filtro IP pronto"
 
@@ -2311,46 +2311,46 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nodi (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "IP non valido per il bootstrap"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Porta non valida per il bootstrap"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Completa tutti i campi obbligatori"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Sei sicuro di voler scaricare un nuovo file nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Così facendo, rimuoverai i nodi attuali e riavvierai la connessione Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Continuare?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: chiave di ricerca troppo corta"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Keyword per la ricerca: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: la chiave di ricerca è già nella lista: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2358,21 +2358,21 @@ msgstr ""
 "Impossibile leggere il file nodes.dat - versione troppo vecchia. Questa "
 "versione (0) non è più supportata."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Letto %u contatto Kad"
 msgstr[1] "Letti %u contatti Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Nessun contatto trovato, fai un bootstrap, oppure scarica un file nodes.dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
@@ -2380,39 +2380,39 @@ msgstr[0] "C'è solo %d contatto Kad disponibile, non scrivo il file nodes.dat"
 msgstr[1] ""
 "Ci sono solo %d contatti Kad disponibili, non scrivo il file nodes.dat"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Scritto %d contatto Kad"
 msgstr[1] "Scritti %d contatti Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nome file"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Dimensione file"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Rapporto condivisione"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Inviato"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Richiesto"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Accettato"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Fonti complete"
 
@@ -2444,70 +2444,75 @@ msgstr "Errore sconosciuto %d"
 msgid "Unable to get error description for error %d"
 msgstr "Impossibile avere una descrizione per l'errore %d"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Hashing in corso"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "In completamento"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Completo"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "In pausa"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Errato"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "In attesa"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Devi specificare una password non vuota."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Password non valida, non è un hash MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Connessione non riuscita"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Connessione EC fallita. Risposta vuota."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Connessione Esterna: risposta non valida dal server. Connessione chiusa."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Fatto! Connessione stabilita con aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Fatto! Connessione stabilita."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Connessione Esterna: Accesso negato a causa di: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Connessione Esterna: errore di negoziazione."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Processo di download HTTP avviato"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: Ok."
@@ -2516,16 +2521,16 @@ msgstr "ListenSocket: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ERRORE: Impossibile mettersi in ascolto sulla porta TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ERRORE: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "ATTENZIONE: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Chiudi"
 
@@ -2533,8 +2538,8 @@ msgstr "Chiudi"
 msgid "Cut"
 msgstr "Taglia"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Copia"
 
@@ -2543,7 +2548,7 @@ msgid "Paste"
 msgstr "Incolla"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Pulisci"
 
@@ -2553,7 +2558,7 @@ msgstr "Seleziona tutto"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2630,7 +2635,7 @@ msgid "ServerIP: "
 msgstr "IP server: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Non connesso"
 
@@ -2665,7 +2670,7 @@ msgstr "Firma in linea: abilitata"
 msgid "Online Signature: Disabled"
 msgstr "Firma in linea: disabilitata"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Uptime: %s"
@@ -2706,7 +2711,7 @@ msgstr "Nascondi aMule"
 msgid "Show aMule"
 msgstr "Mostra aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Esci"
 
@@ -2791,7 +2796,7 @@ msgstr "Cerca"
 msgid "Name:"
 msgstr "Nome:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tipo"
 
@@ -2819,38 +2824,38 @@ msgstr "Filtraggio"
 msgid "File Type"
 msgstr "Tipo file"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Qualsiasi"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archivi"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Immagini CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Immagini"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programmi"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Testi"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Video"
 
@@ -2871,11 +2876,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2903,7 +2908,7 @@ msgstr "Inverti risultati"
 msgid "Hide Known Files"
 msgstr "Nascondi file conosciuti"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Inizia"
 
@@ -2960,7 +2965,7 @@ msgstr "Nome completo:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/D"
 
@@ -2984,7 +2989,7 @@ msgstr "Stato file part:"
 msgid "Last seen complete :"
 msgstr "Ultima volta visto completo:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Trasferimento"
 
@@ -3072,27 +3077,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Qualità file"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Senza voto"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Non valido / Danneggiato / Falso"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Mediocre"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Discreto"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Buono"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Eccellente"
 
@@ -3138,7 +3143,7 @@ msgid "Userhash :"
 msgstr "Hash utente:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Aggiungi"
 
@@ -3376,9 +3381,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Sfoglia"
 
@@ -3469,7 +3474,7 @@ msgstr "Connessioni massime simultanee:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ed2k"
 
@@ -3589,7 +3594,7 @@ msgstr "Inserire lo spazio disco minimo desiderato."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Salva 10 fonti per i file rari (< 20 fonti)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Upload"
 
@@ -3831,7 +3836,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Abilita il port forwarding UPnP sulla porta EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Password"
 
@@ -3913,8 +3918,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Seleziona colore per questa categoria (attualmente selezionata):"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Pulisci"
 
@@ -4313,83 +4318,88 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Abilita il log dettagliato dei messaggi di debug."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Apri file"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Categorie messaggi:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "In attesa..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Aggiunge importazioni"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Riprova selezionati"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Rimuovi selezionati"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Tipi di evento"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Statistiche e client in coda per i(l) file selezionati(o) : Sessione / Totale"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Upload attivi"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Percentuale di file totali"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Tutti i file"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Seleziona files"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Solo upload attivi"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Mostra client per"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Ricarica lista:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Ricarica file condivisi"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Invia"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Invia messaggio specificato."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Chiude questa sessione di chat."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Connetti a qualsiasi server e/o a Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "File condivisi"
 
@@ -4398,136 +4408,136 @@ msgstr "File condivisi"
 msgid "Disabled [%s]"
 msgstr "Disabilitato [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/s"
 msgstr[1] "bytes/sec"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sec"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "ore"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "giorni"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "tutti"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "tutti gli altri"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incompleti"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Fermo"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Archivi"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Testo"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Attivo"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Directory di configurazione in uso: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 "In attesa della fine del processo di conversione del file incompleto..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importazione %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Lettura cartella dei file temporanei"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Recupero informazioni di base dal file info del download"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Creazione file di destinazione"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Caricamento dati da vecchio file in download (%u su %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Salvataggio blocchi di dati in un singolo file (%u su %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Recupero informazioni fonti e file in download in corso"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Aggiunta download e salvataggio nuovo partfile in corso"
 
@@ -4543,12 +4553,12 @@ msgstr "Stato"
 msgid "Filehash"
 msgstr "Filehash"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disco: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4556,13 +4566,13 @@ msgstr ""
 "Scegli una cartella in cui cercare download temporanei! (le sottocartelle "
 "saranno incluse)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Vuoi che le fonti per i download importati con successo siano eliminate?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Rimuovere le fonti?"
 
@@ -4680,7 +4690,7 @@ msgstr "Il file incompleto %s (%s) ha un file delle fonti vuoto"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Errore nella lettura del file delle fonti del partfile (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4695,39 +4705,39 @@ msgstr[1] ""
 "Trovata parte danneggiata (%d) in %d parti %s - FileResultHash |%s| FileHash "
 "|%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Trovata parte completata (%i) in %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Nuovo hashing completato %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Errore imprevisto durante il completamento di %s. File in pausa."
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Download completato: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Cancellazione file: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "ATTENZIONE: impossibile creare l'hash del file parziale - hashset incompleto "
 "per '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4736,7 +4746,7 @@ msgstr ""
 "ERRORE: Impossibile creare l'hash del file parziale - hashset incompleto (%"
 "s). Ciò non dovrebbe mai accadere"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4745,227 +4755,227 @@ msgstr ""
 "EOF durante l'hashing della parte %u scaricata con lunghezza %u (max %u) del "
 "partfile '%s' con lunghezza %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 "ATTENZIONE: non c'è abbastanza spazio libero su disco! Metto in pausa il "
 "file: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "La parte di file scaricata %i è danneggiata in: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: recuperata parte danneggiata %i in %s -> risparmiati byte: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Allocando"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Spazio su disco insufficiente"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Scaricato"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ERRORE: Apertura file parziale fallita '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Predefinita di sistema"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanese"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabo"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturiano"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Basco"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgaro"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalano"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Cinese (semplificato)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Cinese (tradizionale)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Croato"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Ceco"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danese"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Olandese"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Inglese (U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estone"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandese"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francese"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galiziano"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Tedesco"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Greco"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Ebraico"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Ungherese"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiano"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiano (Svizzera)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Giapponese"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Coreano"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituano"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norvegese (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polacco"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portoghese"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portoghese (brasiliano)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russo"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Sloveno"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spagnolo"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Svedese"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turco"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ucraino"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Lingua"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr "Non ci sono traduzioni installate per aMule"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr "Nessuna lingua disponibile"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "nessuna opzione disponibile"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Trovata categoria non valida, ignorata"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "La porta TCP non può essere superiore a 65532 perché il socket UDP è fissato "
 "a TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Sarà usata la porta di predefinita (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Scartando le cartelle condivise non esistenti: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Connessione"
 
@@ -4973,7 +4983,7 @@ msgstr "Connessione"
 msgid "Directories"
 msgstr "Cartelle"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Server"
 
@@ -5027,7 +5037,7 @@ msgstr ""
 "    %PARTFILE - percorso completo del file\n"
 "    %PARTNAME - solamente il nome del file"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5042,26 +5052,26 @@ msgstr ""
 "\n"
 "aMule funzionerà anche senza modificare questi parametri."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Insuccesso nel collegare Cfg al widget con ID %d e chiave %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "Insuccesso nel trasferire dati da Cfg al widget con ID %d e chiave %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Il tipo di proxy a cui ti stai connettendo"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "Insuccesso nel trasferire dati dal widget al Cfg con ID %d e chiave %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5069,27 +5079,32 @@ msgstr ""
 "aMule deve essere riavviato per rendere effettive queste modifiche:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- Modifica della porta TCP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- Modifica della porta UDP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Porta della connessione esterna modificata. \n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Accetta connessione esterna modificata. \n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Interfaccia connessione esterna modificata. \n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Offuscamento del protocollo"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5097,7 +5112,7 @@ msgstr ""
 "La tua lista dei server per l'aggiornamento automatico è vuota.\n"
 "L'aggiornamento automatico all'avvio della lista dei server sarà disattivato."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5106,19 +5121,19 @@ msgstr ""
 "Le connessioni esterne non possono essere abilitate a meno che tu non scelga "
 "una password valida."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Modifica della lingua.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Modifica della cartella Temp.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- Rete ED2K abilitata.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5126,7 +5141,7 @@ msgstr ""
 "Entrambe le reti eD2k e Kad sono disattivate.\n"
 "Non potrai connetterti finché non ne abiliterai almeno una."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5134,7 +5149,7 @@ msgstr ""
 "Kad non può partire se la porta UDP è disabilitata.\n"
 "Abilitala o disabilita Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5144,7 +5159,7 @@ msgstr ""
 "DEVI riavviare aMule ADESSO.\n"
 "Se non lo fai, non lamentarti se succede qualcosa di strano.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5154,41 +5169,41 @@ msgstr ""
 "Inserisci l'URL di almeno un server valido nel file server.met.\n"
 "Fai clic sul pulsante \"Lista\" per inserire l'URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "File temporanei"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "File completi"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Firme in linea"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Scegli una cartella per i %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Sfoglia per trovare un riproduttore video"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Scegli browser"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Eseguibile%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Modifica la lista dei server"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5196,76 +5211,76 @@ msgstr ""
 "Inserisci l'URL da cui scaricare il file server.met.\n"
 "Solo un URL per riga."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Intervallo aggiornamento: %d secondo"
 msgstr[1] "Intervallo aggiornamento: %d secondi"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Intervallo grafico della media: %d minuto"
 msgstr[1] "Intervallo grafico della media: %d minuti"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Scala grafico delle connessioni: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Dimensione buffer file: %d byte"
 msgstr[1] "Dimensione buffer file: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Dimensione coda upload: %d client"
 msgstr[1] "Dimensione coda upload: %d client"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Intervallo aggiornamento connessione ai server: %d minuto"
 msgstr[1] "Intervallo aggiornamento connessione ai server: %d minuti"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Intervallo aggiornamento connessione ai server: disabilitato"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "disattivato"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Esegui comando se si verifica l'evento '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Abilita l'esecuzione del comando sul core"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Comando Core:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Abilita l'esecuzione del comando sulla GUI"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Comando GUI:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Le seguenti variabili saranno sostituite:"
 
@@ -5296,7 +5311,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Errore imprevisto durante la ricerca su Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID File"
 
@@ -5412,7 +5427,7 @@ msgstr "ERRORE: Nessun Socket valido trovato entro il tempo massimo"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Connessione a %s (%s:%i) non riuscita per time-out."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Risultato ricerca DNS ricevuto in ritardo, ignoro."
 
@@ -5441,75 +5456,75 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Server.met corrotto, trovato tag di versione non valido: 0x%x, dimensione %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "Trovato %i server nel file server.met"
 msgstr[1] "Trovati %i server nel file server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "Aggiunto %d server"
 msgstr[1] "Aggiunti %d server"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Errore: il file 'server.met' è corrotto:"
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "Errore IO durante la lettura del file 'server.met':"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Server non aggiunto: [%s:%d] non specifica una porta valida."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Server non aggiunto: l'IP di [%s:%d] è filtrato o non valido."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Server non aggiunto: server con corrispondente IP:Porta [%s:%d] trovato "
 "nella lista."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Server aggiunto: server [%s:%d] con il nome '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr "Sei connesso al server che vuoi eliminare. Disconnettiti prima."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Impossibile aprire '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Impossibile salvare il file server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "URL non valido"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Terminato il download della lista dei server da %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5518,28 +5533,28 @@ msgstr ""
 "indirizzo che contenga la lista di server in questo file in modo da poter "
 "aggiornare automaticamente la lista"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Inizia il download della lista dei server da %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "ATTENZIONE: hai specificato un URL non valido per l'aggiornamento automatico "
 "dei server: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Nessun URL di file server.met valido in addresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Impossibile scaricare la lista dei server da %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5575,7 +5590,7 @@ msgid "Static"
 msgstr "Statico"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versione"
 
@@ -5601,8 +5616,8 @@ msgstr "Sei sicuro di voler eliminare il server statico %s?"
 msgid "Servers (%i)"
 msgstr "Server (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Server"
 
@@ -5658,83 +5673,83 @@ msgstr "Sei sicuro di voler eliminare il server selezionato?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Sei sicuro di voler eliminare i server selezionati?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ERRORE: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "ATTENZIONE: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Il nuovo clientID è %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "ATTENZIONE: hai ricevuto un ID basso!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tProbabilmente perché il tuo pc è dietro un firewall o router."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPer altre informazioni visita http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Ricevute informazioni sconosciute dal server! - troppo corto"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Ricevuto %d nuovo server"
 msgstr[1] "Ricevuti %d nuovi server"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Salvataggio della lista dei server completato."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Il server ha rifiutato l'ultimo comando"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Pacchetto bogus ricevuto dal server: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Errore non gestito durante l'elaborazione del pacchetto dal server: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 "Non è possibile creare un thread per risolvere il DNS per connettersi a %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "L'ip del server %s (%s) è filtrato. Connessione bloccata."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "utilizzo offuscamento del protocollo."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Connessione a %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5913,85 +5928,90 @@ msgstr "Nome file locale"
 msgid "Shares File List"
 msgstr "Lista file condivisi"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Richieste"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Richieste accettate"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Dati trasferiti"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Rapporto di condivisione"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Parti ricevute"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Fonti complete"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Percorso cartella"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Aggiungi commento/giudizio"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Modifica commento/giudizio"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Rinomina"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Aggiungi i file della collezione alla lista dei trasferimenti"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Copia &URI magnet negli appunti"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Copia eD2k &link negli appunti (&Source)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Copia eD2k &link negli appunti (Source) (&With Crypt options)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Copia il collegamento eD2k negli appunti (&Hostname)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Copia il collegamento eD2k negli appunti (Hostname) (With &Crypt options)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Copia il collegamento eD2k negli appunti (&AICH info)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Copia il collegamento eD2k negli appunti (&AICH info)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Hai bisogno di un ID alto per creare un sourcelink valido"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "File condivisi (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "File in scaricamento"
 
@@ -5999,235 +6019,235 @@ msgstr "File in scaricamento"
 msgid "Remote File Name"
 msgstr "Nome file remoto"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Dati inviati (sessione (totale)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Overhead totale (pacchetti): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Overhead per richieste file (pacchetti): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Overhead per scambio fonti (pacchetti): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Overhead server (pacchetti): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Overhead Kad (pacchetti): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Crypt overhead (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Upload attivi: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Upload in attesa: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Totale sessioni di upload riuscite: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Totale sessioni di upload fallite: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Tempo upload medio: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Dati scaricati (sessione (totale)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Fonti trovate: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Download attivi (parti): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Rapporto UL:DL sessione (totale): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Velocità di scaricamento media (Sessione): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Velocità d'invio media (Sessione): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Velocità di scaricamento massima (Sessione): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Velocità d'invio massima (Sessione): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Riconnessioni: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tempo dal primo trasferimento: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Connesso al server da: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Connessioni attive (stima): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Limite massimo connessioni raggiunto: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Connessioni medie (stima): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Picco connessioni (stima): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Client"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Sconosciuti: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtrati: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Bannati: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Totale: %i Conosciuti: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Server attivi: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Server falliti: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Totale: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Server rimossi: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Server filtrati: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Utenti su server attivi: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "File su server attivi: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Utenti totali: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "File totali: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Occupazione server: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Numero di file condivisi: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Dimensione totale file condivisi: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Dimensione media del file: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistema operativo"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Non ricevuto"
 
@@ -6286,7 +6306,7 @@ msgstr "Non è un numero valido\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Non è un hash valido (la lunghezza deve essere di 32 caratteri)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Richiesta non riuscita con errore sconosciuto."
 
@@ -6340,13 +6360,13 @@ msgstr "Connesso a %s %s %s"
 msgid "Now connecting"
 msgstr "Connessione in corso"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "firewalled"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6782,22 +6802,22 @@ msgstr ""
 "Questo è un comando obsoleto, e in futuro potrebbe essere rimosso.\n"
 "Al suo posto usa '%s'.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Client testuale aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Conversione dei vecchi hashset AICH in '%s' a 64b: '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "ATTENZIONE: '%s' non è un nome di file valido ed è stato rinominato in '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6871,7 +6891,7 @@ msgstr "Impossibile eseguire il comando `%s' per l'evento `%s'."
 msgid "Download completed"
 msgstr "Download completato"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Il percorso completo del file."
 
@@ -6891,66 +6911,66 @@ msgstr "La dimensione del file in bytes."
 msgid "Cumulative download activity time."
 msgstr "Tempo cumulativo di download."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Nuova sessione chat iniziata"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Mittente del messaggio."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Spazio esaurito"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partizione disco."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Errore nel completamento"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Elaborazione del file numero %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Hai richiesto l'hash delle parti (solo per file > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> File inesistente!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, il creatore di link eD2k per aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Benvenuto!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Parametri di ingresso"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "File da esaminare"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Aggiungi URL per questo file"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Inserisci qui il file di cui vuoi creare il collegamento eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6958,15 +6978,15 @@ msgstr ""
 "Inserisci qui l'URL che vuoi aggiungere al collegamento eD2k: Aggiungi / "
 "alla fine per permettere a aLinkCreator di aggiungere l'attuale nome del file"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Rimuovi"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Crea collegamento con hash delle parti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6974,81 +6994,81 @@ msgstr ""
 "Aiuta a diffondere più in fretta i file nuovi e rari, al costo di una "
 "connessione più lunga"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Hash del File MD4"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Hash del File eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "Collegamento eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Salva"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Copia negli appunti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Apri"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Apri un file per generare il suo link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Copia il link eD2k generato negli appunti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Salva come"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Salva su file il link eD2k generato"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Informazioni su aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Seleziona il file di cui vuoi creare il link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Non posso aprire gli appunti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Non c'è niente da copiare per ora!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Seleziona il file di cui vuoi generare il link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Impossibile aprire "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Inserire un nome file non vuoto"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Non c'è niente da salvare per ora!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7068,158 +7088,162 @@ msgstr ""
 "\n"
 "Distribuito sotto licenza GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Hashing..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator sta lavorando per voi"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Calcolo Hash MD4 in corso..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Calcolo Hash eD2k in corso..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Annullato !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Eseguito in %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Hai già aggiunto questo URL!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Inserire un URL non vuoto"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Impossibile aprire %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i giorno(i) %i ora(e) %i minuto(i) %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uG %02uore %02umin %02usec"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uore %02umin %02usec"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02usec"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, statistiche in linea di aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Velocità di DL massima da quando wxCas è attivo"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Velocità di DL massima nelle precedenti sessioni di wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Ferma aggiornamento automatico"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Salva immagine statistiche in linea"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Stampa immagine statistiche in linea"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Preferenze"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Informazioni su wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Avvia aggiornamento automatico"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Aggiornamento automatico fermato"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Aggiornamento automatico avviato"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Salva immagine statistiche"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Statistiche in linea di aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7227,11 +7251,11 @@ msgstr ""
 "C'è stato un problema durante la stampa.\n"
 "La stampante potrebbe non essere impostata correttamente?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Stampa in corso"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7249,324 +7273,324 @@ msgstr ""
 "\n"
 "Distribuito con licenza GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule non è in esecuzione..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule è in funzione"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule è in esecuzione, ma è disconnesso"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule si sta connettendo..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh oh, stato di aMule sconosciuto..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr "è stato in funzione per "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " è fermo !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " non è connesso !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " si sta connettendo..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " sta facendo qualcosa di strano, controllare!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " è connesso a "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "inattivo"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " è attivo "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " con "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Download totale: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Download sessione: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Condivisione: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " file, client in coda: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Tempo: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " attivo "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Carico medio del sistema (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Uptime del sistema: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Cartella contenente il file amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Inserire la cartella contenente il file amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Intervallo di aggiornamento in secondi"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Genera un'immagine delle statistiche ad ogni aggiornamento"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Inserire la cartella nella quale generare l'immagine delle statistiche"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Carica periodicamente l'immagine delle statistiche sul server FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "URL FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Percorso FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Inserire URL del tuo server FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Inserire la directory del server FTP nella quale copiare l'immagine"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Utente"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Inserisci il nome utente per accedere al server FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Inserisci la password per accedere al server FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Intervallo di aggiornamento FTP in minuti"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Verifica"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Cartella contenente il file di firma"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Cartella nella quale generare l'immagine"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Carica modello <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Web server porta HTTP"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Usa l'UPnP port forwarding sulla porta del server web"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Porta UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Usa compressione gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Password per l'accesso pieno al web server"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Password per l'accesso Guest al web server"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Permetti l'accesso guest"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Vieta l'accesso guest"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Carica/salva le impostazioni del web server da/su l'aMule remoto"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Percorso del file di configurazione di aMule. Non usare direttamente!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Disabilita interprete PHP (deprecato)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Ricompila pagine PHP ad ogni richiesta"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Server web di aMule "
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "connessione web client accettata\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "ERRORE: impossibile accettare la connessione del client web\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Richiesta non riuscita per l'errore: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "File indice non trovato: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sessione scaduta - accesso richiesto\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sessione valida, utente registrato\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sessione valida, utente registrato\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Nessuna sessione aperta - richiesta di accesso\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sessione creata - richiesta di accesso\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Elaborazione richiesta [originale]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Nessuna password specificata, login fallito."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Verifica password\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Hash della password non valido\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Password valida\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Password errata\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 "Non hai inserito alcuna password e le password vuote non sono ammesse.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Disconnessone richiesta\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Elaborazione richiesta [rediretta]: "
 
@@ -7762,9 +7786,6 @@ msgstr "Elaborazione richiesta [rediretta]: "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Utenti totali: %s | File totali: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "Processo di download HTTP avviato"
-
 #~ msgid "Download size: %i"
 #~ msgstr "Dimensioni download (%i)"
 
diff --git a/po/it_CH.po b/po/it_CH.po
index af54409..e96138c 100644
--- a/po/it_CH.po
+++ b/po/it_CH.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: it_CH\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-06-12 22:36+0100\n"
 "Last-Translator: Luca Pagliero <luca at lucapagliero.it>\n"
 "Language-Team: Italian_CH\n"
@@ -47,64 +47,64 @@ msgstr "L'hash utente specificato non e' valido!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Impossibile aprire %s (%s)"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 #, fuzzy
 msgid "Now, exiting main app..."
 msgstr ""
 "\n"
 "Ok, uscita in corso da %s...\n"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Fallito"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 #, fuzzy
 msgid "aMule shutdown completed."
 msgstr "Download completato"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Chiedi conferma prima di uscire"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "Accettata nuova connessione esterna"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "ATTENZIONE"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -113,13 +113,13 @@ msgstr ""
 "predefinite dal sistema in conseguenza al cambio di configurazione. "
 "Spiacente."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -127,39 +127,39 @@ msgstr ""
 "Non hai alcun server nella lista dei server.\n"
 "Vuoi che aMule scarichi una lista ora?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Server list download"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Impossibile associare porte all'indirizzo specificato: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "La porta %u non e' disponibile. Otterrai un LowID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -175,11 +175,11 @@ msgstr ""
 "Controlla le impostazioni di rete e verifica che la porta sia aperta in "
 "ingresso e in uscita."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Impossibile creare il file per la firma online"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Impossibile creare il file per la firma online di aMule"
 
@@ -231,135 +231,135 @@ msgstr ""
 "La firma online verra' pertanto disabilitata fino a quando il problema non "
 "sara' stato risolto attraverso il pannello delle preferenze."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "Nome server:"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ERRORE: non posso aprire il file di log"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "ERRORE: il file di log e' vuoto. Qualcosa non va"
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Il file di log e' stato cancellato"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Messaggio del server: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Impossibile scaricare la lista dei nodi."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Impossibile aprire il file per il controllo della versione scaricato"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "File per il controllo della versione corrotto"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Stai usando una versione non aggiornata di aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "La tua versione di aMule e' la %i.%i.%i e l'ultima e' la %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "L'ultima versione e' sempre disponibile su http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 "ATTENZIONE: La tua versione di aMuled e' obsoleta: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "La tua copia di aMule e' aggiornata"
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Impossibile scaricare il file per il controllo della versione"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Utenti: %s | Files: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Utenti: E: %s K: %s | Files: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Nessuna rete selezionata"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "con LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "con HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Connesso a %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Connessione in corso a %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad avviato."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad arrestato."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Connesso alla rete Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Connesso alla rete Kad (firewalled)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Disconnesso dalla rete Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -367,11 +367,11 @@ msgstr ""
 "La rete Kad non puo' essere utilizzata se la porta UDP e' disattivata dalle "
 "opzioni."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Rete Kad disattivata dalle opzioni, non mi connetto."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 #, fuzzy
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
@@ -384,7 +384,7 @@ msgstr ""
 "normale, far partire amuled con l'opzione --ec-config o impostare la voce "
 "\"AcceptExternalConnections\" a 1 nel file ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -393,19 +393,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ERRORE: %s"
@@ -483,9 +483,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Messaggio"
 
@@ -493,7 +493,7 @@ msgstr "Messaggio"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Connessione in corso"
 
@@ -527,7 +527,7 @@ msgstr "Kad: Spento"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Annulla"
 
@@ -544,7 +544,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Disconnetti dalla reti attualmente connesse"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Connetti"
 
@@ -586,7 +586,7 @@ msgstr "Chiedi conferma prima di uscire"
 msgid "Launch Command: "
 msgstr "Comando: %s"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -601,81 +601,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "ATTENZIONE: Impossibile aprire il file della skin '%s' in lettura"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Reti"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Finestra reti"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Ricerca"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Finestra ricerche"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Download"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Download in corso"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Files condivisi"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Finestra file condivisi"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Messaggi"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Finestra messaggi"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistiche"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Finestra grafici e statistiche"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Preferenze"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Finestra Impostazione preferenze"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importazione"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Strumento per l'importazione dei partfile"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Informazioni"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Informazioni/Aiuto"
 
@@ -695,7 +695,7 @@ msgstr "nessuna rete"
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -708,109 +708,109 @@ msgstr "ERRORE FATALE: impossibile creare il timer"
 msgid "Connect to remote amule"
 msgstr "Connessione ad aMule remoto"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "ERRORE FATALE: impossibile creare il timer"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 #, fuzzy
 msgid "Going to event loop..."
 msgstr "Tentativo di recupero informazioni sul file..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Connessione in corso"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Connessione fallita "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Tutto"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Sconosciuto"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Impossibile ricevere i file condivisi dall'utente '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (falso eMule versione %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (falso eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (falso eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (basato su eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Nickname: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Richiesto: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -822,7 +822,7 @@ msgstr[1] ""
 "Statistiche file per questa sessione: accettate %d di %d richieste, %s "
 "trasferite\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -834,7 +834,7 @@ msgstr[1] ""
 "Statistiche file per tutte le sessioni: accettate %d di %d richieste, %s "
 "trasferite\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Richiesto file sconosciuto"
 
@@ -984,12 +984,12 @@ msgid "Client Details"
 msgstr "Dettagli client"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1041,34 +1041,34 @@ msgstr "Verificata - OK"
 msgid "Not Available"
 msgstr "Non disponibile"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "L'utente %s (%u) ha richiesto la lista dei file condivisi -> richiesta "
 "accettata"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "L'utente %s (%u) ha richiesto la lista dei file condivisi -> richiesta negata"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "L'utente %s (%u) ha richiesto la lista delle directory condivise -> "
 "richiesta accettata"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "L'utente %s (%u) ha richiesto la lista delle directory condivise -> "
 "richiesta negata"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1076,7 +1076,7 @@ msgstr ""
 "L'utente %s (%u) ha richiesto la lista dei file condivisi nella directory %s "
 "-> richiesta accettata"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1084,35 +1084,35 @@ msgstr ""
 "L'utente %s (%u) ha richiesto la lista dei file condivisi nella directory %s "
 "-> richiesta negata"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "L'utente %s (%u) condivide la directory %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 "L'utente %s (%u) ha inviato una lista delle directory condivise non "
 "richiesta."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "L'utente %s (%u) ha inviato la lista dei file condivisi nella directory %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "L'utente %s (%u) ha finito di inviare la lista dei file condivisi"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "L'utente %s (%u) ha inviato una lista di file condivisi non richiesta"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1129,7 +1129,7 @@ msgstr "Nome utente"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Nome file"
 
@@ -1170,33 +1170,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Alta]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Molto bassa"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Bassa"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normale"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Alta"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Molto alta"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Release"
 
@@ -1213,12 +1213,12 @@ msgid "Queue Full"
 msgstr "Coda piena"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "In coda"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Download in corso"
 
@@ -1278,7 +1278,7 @@ msgstr "Server locale"
 msgid "Remote Server"
 msgstr "Server remoto"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1304,7 +1304,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Completati"
 
@@ -1345,11 +1345,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Dimensione"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Trasferiti"
 
@@ -1362,17 +1362,17 @@ msgid "Progress"
 msgstr "Avanzamento"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Fonti"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Priorita'"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Stato"
@@ -1397,7 +1397,7 @@ msgstr "Sei sicuro di voler cancellare il file selezionato?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Sei sicuro di voler cancellare i files selezionati?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1407,7 +1407,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1459,11 +1459,11 @@ msgstr "Mostra tutti i commenti"
 msgid "Copy magnet URI to clipboard"
 msgstr "Copia URI magnet negli appunti"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Copia il &link eD2k negli appunti"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Copia feedback negli appunti"
 
@@ -1479,34 +1479,34 @@ msgstr "Assegna a categoria"
 msgid "&Open the file"
 msgstr "&Apri file"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Inserisci un nuovo nome per questo file:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Rinomina file"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Download (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Anteprima"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "ERRORE: impossibile eseguire il media player esterno! Comando: '%s'"
@@ -1611,29 +1611,29 @@ msgstr "Connessioni esterne disabilitate perche' la password e' vuota!"
 msgid "External connections disabled in config file"
 msgstr "Connessioni esterne disabilitate nel file di configurazione"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Accettata nuova connessione esterna"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ERRORE: non posso accettare una nuova connessione esterna"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Connessione esterna rifiutata perche' la password nelle preferenze e' vuota!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Connessione al client: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Versione sconosciuta"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1641,7 +1641,7 @@ msgstr ""
 "ID della versione EC non corretto, potrebbe esserci un'incompatibilita' "
 "binaria. Usare core e client remoto dello stesso snapshot."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1650,175 +1650,175 @@ msgstr ""
 "Non puoi connetterti a una versione finale da una versione CVS qualsiasi! "
 "*sigh* possibile crash evitato"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Versione protocollo non valida"
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Tag versione di protocollo mancante"
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "Autenticazione fallita"
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "Autenticazione fallita"
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "Richiesta non valida, prima devi autenticarti"
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Accesso consentito"
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Filtra i messaggi da client sconosciuti"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Tentativo di accesso non autorizzato. Connessione chiusa."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Comando Partfile remoto fallito: hash del file non trovato: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Hash del file non trovato: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OOPS! errore nel processare l'opcode!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Server non aggiunto"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "server non trovato: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "e' necessario definire Il server da rimuovere"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k è disabilitata nelle preferenze."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Ricerca in corso. Risultati in arrivo!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Non ha senso usare la ricerca Web da interfaccia remota."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Niente punti per il grafico."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Il tuo client non e' configurato per questo livello di dettaglio."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Sto gia' uscendo."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ExternalConn: aggiungo il link '%s'"
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Link non valido o gia' nella lista."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "File non trovato."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nome file non valido."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Impossibile rinominare il file."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "La rete Kad e' disabilitata nelle Preferenze."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Gia' connesso alla rete Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Connessione alla rete Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Tutte le reti sono disabilitate."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Disconnesso dalla rete Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Opcode non valido (versione errata del protocollo?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Estensione '%s' sconosciuta per il comando '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Comando sconosciuto '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1826,7 +1826,7 @@ msgstr ""
 "\n"
 "Questo comando non puo' avere un argomento.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1834,7 +1834,7 @@ msgstr ""
 "\n"
 "Questo comando richiede un argomento.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1843,7 +1843,7 @@ msgstr ""
 "Questo comando e' incompleto, devi usare una delle estensioni qui "
 "riportate.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1851,11 +1851,11 @@ msgstr ""
 "\n"
 "Estensioni disponibili:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Comandi disponibili:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1866,17 +1866,17 @@ msgstr ""
 "Tutti i comandi possono essere digitati in maiuscolo o minuscolo.\n"
 "Digitare '%s <comando>' per avere informazioni dettagliate su <comando>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Esce dall'applicazione."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Mostra aiuto."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1884,7 +1884,7 @@ msgstr ""
 "Per avere aiuto su un comando, digitare 'help <comando>'.\n"
 "Per avere la lista completa dei comandi, digitare 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1895,48 +1895,48 @@ msgstr ""
 "Usa '%s' per la lista dei comandi\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Errore di sintassi!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Errore nell'eseguire il comando - cio' non dovrebbe mai accadere! Per "
 "favore, segnala il bug\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Questo comando non deve avere parametri."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Questo comando richiede un parametro."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argomento non valido."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Questo comando e' incompleto."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Digita '%s' per avere altro aiuto.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Questo e' %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Questo e' %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1944,7 +1944,7 @@ msgstr ""
 "\n"
 "Creazione del client in corso...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1953,7 +1953,7 @@ msgstr ""
 "\n"
 "Ok, uscita in corso da %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1967,47 +1967,47 @@ msgstr ""
 "\n"
 "Sto uscendo...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Mostra questo suggerimento"
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host su cui aMule e' in esecuzione (default: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Porta di aMule per le connessioni esterne (default: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Password connessioni esterne"
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Leggi la configurazione da file"
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Non stampare output sullo stdout"
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Verboso - mostra anche i messaggi di debug"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Imposta la localizzazione (lingua) del programma"
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Salva le opzioni linea di comando nel file di configurazione"
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Crea un file di configurazione basato su quello di aMule"
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Mostra la versione del programma"
 
@@ -2020,8 +2020,8 @@ msgstr "Dettagli file"
 msgid "%.1f%% done"
 msgstr "%.2f%% completato"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2038,7 +2038,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Amici"
 
@@ -2169,32 +2169,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Scaricato"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Riconnetti al server"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2226,7 +2226,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Impossibile scaricare la lista dei server da %s"
@@ -2272,7 +2272,7 @@ msgstr[1] "%u righe non valide sono state scartate."
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2289,105 +2289,105 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nodi (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "IP non valido per il bootstrap"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Porta non valida per il bootstrap"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Completa tutti i campi obbligatori"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Sei sicuro di voler scaricare un nuovo file nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Cosi' facendo, rimuoverai i nodi attuali e riavvierai la connessione "
 "Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Continuare?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: chiave di ricerca troppo corta"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Letto %u contatto Kad"
 msgstr[1] "Letti %u contatti Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Scritto %d contatto Kad"
 msgstr[1] "Scritti %d contatti Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nome file"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Dimensione"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Rapporto di condivisione"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Inviato"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Richiesto"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Accettato"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Sorgenti complete"
 
@@ -2413,71 +2413,76 @@ msgstr "Versione sconosciuta"
 msgid "Unable to get error description for error %d"
 msgstr "ATTENZIONE: Impossibile aprire il file della skin '%s' in lettura"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Hashing in corso"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "In completamento"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Completo"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "In pausa"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Errato"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "In attesa"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Devi specificare una password non vuota."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Password non valida, non e' un hash MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Connessione fallita"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Connessione EC fallita. Risposta vuota."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Connessione esterna: Risposta errata dal server. Connessione chiusa."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Fatto! Connessione stabilita con aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Fatto! Connessione stabilita"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Connessione esterna: Accesso negato perché:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Connessione esterna: Accesso negato"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Thread di sincronizzazione avviato."
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2486,16 +2491,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ERRORE: Non posso ricevere dalla porta TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Chiudi"
 
@@ -2503,8 +2508,8 @@ msgstr "Chiudi"
 msgid "Cut"
 msgstr "Taglia"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Copia"
 
@@ -2513,7 +2518,7 @@ msgid "Paste"
 msgstr "Incolla"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Pulisci"
 
@@ -2523,7 +2528,7 @@ msgstr "Seleziona tutto"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2600,7 +2605,7 @@ msgid "ServerIP: "
 msgstr "IP server: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Non connesso"
 
@@ -2635,7 +2640,7 @@ msgstr "Firma online: abilitata"
 msgid "Online Signature: Disabled"
 msgstr "Firma online: disabilitata"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Uptime: %s"
@@ -2676,7 +2681,7 @@ msgstr "Nascondi"
 msgid "Show aMule"
 msgstr "Mostra"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Esci"
 
@@ -2759,7 +2764,7 @@ msgstr "Cerca"
 msgid "Name:"
 msgstr "Nome:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tipo"
 
@@ -2787,38 +2792,38 @@ msgstr "Filtraggio"
 msgid "File Type"
 msgstr "Tipo file"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Qualsiasi"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archivi"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Immagini CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Immagini"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programmi"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Testi"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Video"
 
@@ -2839,11 +2844,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2871,7 +2876,7 @@ msgstr "Inverti risultati"
 msgid "Hide Known Files"
 msgstr "Nascondi file conosciuti"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Inizia"
 
@@ -2929,7 +2934,7 @@ msgstr "Nome completo:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/D"
 
@@ -2953,7 +2958,7 @@ msgstr "Stato file part:"
 msgid "Last seen complete :"
 msgstr "Ultima volta visto completo:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Trasferimento"
 
@@ -3039,27 +3044,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Qualita' file"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Senza voto"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Non valido / Corrotto / Falso"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Mediocre"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Discreto"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Buono"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Eccellente"
 
@@ -3106,7 +3111,7 @@ msgid "Userhash :"
 msgstr "Hash utente:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Aggiungi"
 
@@ -3343,9 +3348,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Sfoglia"
 
@@ -3433,7 +3438,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ed2k"
 
@@ -3551,7 +3556,7 @@ msgstr "Inserire lo spazio disco minimo desiderato"
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Salva 10 fonti per i file rari (< 20 fonti)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Upload"
 
@@ -3793,7 +3798,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Abilita il port forwarding UPnP sulla porta EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Password"
 
@@ -3876,8 +3881,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Seleziona colore per questa categoria (attualmente selezionata):"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Pulisci"
 
@@ -4278,88 +4283,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Abilita il log dettagliato dei messaggi di debug"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Apri file"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Categorie messaggi:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "In attesa..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Aggiunge importazioni"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Riprova selezionati"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Rimuvi selezionati"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Upload attivi:"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Non mostrare file condivisi"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Seleziona filtro di visualizzazione"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Upload attivi"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Mostra client"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Ricarica lista"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Ricarica file condivisi"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Invia"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Invia messaggio specificato"
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Chiude questa sessione di chat"
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Connetti a qualsiasi server e/o a Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "File condivisi"
 
@@ -4368,135 +4378,135 @@ msgstr "File condivisi"
 msgid "Disabled [%s]"
 msgstr "Disabilitato [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/s"
 msgstr[1] "bytes/s"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sec"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "ore"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "giorni"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "tutti"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "tutti gli altri"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incompleti"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Fermo"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Archivi"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Testo"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Attivo"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importazione %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Lettura directory dei file temporanei"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Recupero informazioni di base dal file info del download"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Creazione file di destinazione"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Caricamento dati da vecchio file in download (%u su %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Salvataggio blocchi di dati in un singolo file (%u su %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Recupero informazioni fonti e file in download in corso"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Aggiunta download e salvataggio nuovo partfile in corso"
 
@@ -4512,12 +4522,12 @@ msgstr "Stato"
 msgid "Filehash"
 msgstr "Filehash"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disco: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4525,13 +4535,13 @@ msgstr ""
 "Scegli una directory in cui cercare download temporanei! (le sottodirectory "
 "saranno incluse)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Vuoi che le fonti per i download importati con successo siano cancellate?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Rimuovi fonti?"
 
@@ -4648,7 +4658,7 @@ msgstr "Il file incompleto %s (%s) ha un file delle fonti vuoto"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Errore nella lettura del file delle fonti del partfile (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4663,274 +4673,274 @@ msgstr[1] ""
 "Trovata parte corrotta (%d) in %d parti %s - FileResultHash |%s| FileHash |%"
 "s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Trovata parte completata (%i) in %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Nuovo hashing completato %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Download completato: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Cancellazione file: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 "ATTENZIONE: non c'e' abbastanza spazio libero su disco! Metto in pausa il "
 "file: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "La parte di file scaricata %i e' corrotta in: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: recuperata parte corrotta %i in %s -> risparmiati byte: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Scaricato"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Predefinita di sistema"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanese"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabo"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Estone"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Basco"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgaro"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalano"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Cinese (semplificato)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Cinese (tradizionale)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Croato"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Ceco"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danese"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Olandese"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Inglese (U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estone"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandese"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francese"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galiziano"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Tedesco"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Greco"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Ebraico"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Ungherese"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiano"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiano (Svizzera)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Giapponese"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Coreano"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituano"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norvegese"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polacco"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portoghese"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portoghese (brasiliano)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russo"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Sloveno"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spagnolo"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Svedese"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turco"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Lingua"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Non disponibile"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "La porta TCP non puo' essere superiore a 65532 perche' il socket UDP e' "
 "fissato a TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Verra' usata la porta di default (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Connessione"
 
@@ -4938,7 +4948,7 @@ msgstr "Connessione"
 msgid "Directories"
 msgstr "Directory"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Server"
 
@@ -4989,7 +4999,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5004,26 +5014,26 @@ msgstr ""
 "\n"
 "aMule funzionera' anche senza modificare questi parametri."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Il tipo di proxy a cui ti stai connettendo"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5031,36 +5041,41 @@ msgstr ""
 "aMule deve essere riavviato per rendere effettive queste modifiche:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- Modifica della porta TCP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- Modifica della porta UDP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Connessione esterna chiusa"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Accettata nuova connessione esterna"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Connessione esterna chiusa"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Offuscamento del Protocollo"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5069,20 +5084,20 @@ msgstr ""
 "Le connessioni esterne non possono essere abilitate a meno che tu non scelga "
 "una password valida"
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Modifica della lingua.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Modifica della cartella Temp.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "Tutte le reti sono disabilitate."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5090,7 +5105,7 @@ msgstr ""
 "Le reti eD2k e Kad sono entrambe disabilitate.\n"
 "Non potrai connetterti finché non ne abiliterai almeno una."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5098,7 +5113,7 @@ msgstr ""
 "Kad non puo' partire se la porta UDP e' disabilitata.\n"
 "Abilitala o disabilita Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5108,7 +5123,7 @@ msgstr ""
 "DEVI riavviare aMule ADESSO.\n"
 "Se non lo fai, non lamentarti se succede qualcosa di brutto.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5118,41 +5133,41 @@ msgstr ""
 "Inserisci l'URL di almeno un server valido nel file server.met.\n"
 "Clicca sul pulsante \"Lista\" per inserire l'URL"
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "File temporanei"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "File completi"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Firme online"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Scegli una directory per i %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Sfoglia per trovare un riproduttore video"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Scegli browser"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Eseguibile%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Modifica la lista dei server"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5160,77 +5175,77 @@ msgstr ""
 "Inserisci l'URL da cui scaricare il file server.met.\n"
 "Solo un URL per riga"
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Intervallo aggiornamento: %d secondo"
 msgstr[1] "Intervallo aggiornamento: %d secondi"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Intervallo grafico della media: %d minuto"
 msgstr[1] "Intervallo grafico della media: %d minuti"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Scala grafico delle connessioni: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Dimensione buffer file: %d byte"
 msgstr[1] "Dimensione buffer file: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Dimensione coda upload: %d client"
 msgstr[1] "Dimensione coda upload: %d clients"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Intervallo aggiornamento connessione ai server: %d minuto"
 msgstr[1] "Intervallo aggiornamento connessione ai server: %d minuti"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Intervallo aggiornamento connessione ai server: disabilitato"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "disabilita"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Esegui comando se si verifica l'evento '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Abilita l'esecuzione del comando sul core"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Comando Core:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Abilita l'esecuzione del comando sulla GUI"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Comando GUI:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Le seguenti variabili saranno sostituite:"
 
@@ -5259,7 +5274,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Errore imprevisto durante la ricerca su Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID File"
 
@@ -5375,7 +5390,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Connessione a %s (%s:%i) fallita per time-out"
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5404,101 +5419,101 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Server.met corrotto, trovato tag di versione non valido: 0x%x, dimensione %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "Trovato %i server nel file server.met"
 msgstr[1] "Trovati %i servers nel file server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "Aggiunto %d server"
 msgstr[1] "Aggiunti %d servers"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Errore IO durante la lettura del file known.met: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Server non aggiunto: [%s:%d] non specifica una porta valida"
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Server non aggiunto: l'IP di [%s:%d] e' filtrato o non valido"
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Server non aggiunto: server con corrispondente IP:Porta [%s:%d] trovato "
 "nella lista"
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Server aggiunto: server [%s:%d] con il nome '%s'"
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr "Sei connesso al server che vuoi cancellare. Disconnettiti prima"
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Impossibile aprire '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Impossibile salvare il file server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "URL non valido"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Completato scaricamento lista server da %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Iniziato scaricamento lista server da %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Nessun URL di file server.met valido in addresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Impossibile scaricare la lista dei server da %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5534,7 +5549,7 @@ msgid "Static"
 msgstr "Statico"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versione"
 
@@ -5560,8 +5575,8 @@ msgstr "Sei sicuro di voler cancellare il server statico %s?"
 msgid "Servers (%i)"
 msgstr "Server (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Server"
 
@@ -5617,83 +5632,83 @@ msgstr "Sei sicuro di voler cancellare il server selezionato?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Sei sicuro di voler cancellare i server selezionati?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Il nuovo clientID e' %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "ATTENZIONE: Hai ricevuto un ID Basso!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tProbabilmente perche' il tuo pc e' dietro un firewall o router."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPer altre informazioni visita http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Ricevute informazioni sconosciute dal server! - troppo corto"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Ricevuto %d nuovo server"
 msgstr[1] "Ricevuti %d nuovi servers"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Salvataggio della lista dei server completato"
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Il server ha rifiutato l'ultimo comando"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Pacchetto bogus ricevuto dal server: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Errore non gestito durante l'elaborazione del pacchetto dal server: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 "Non e' possibile creare un thread per risolvere il DNS per connettersi a %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "L'ip del server %s (%s) e' filtrato. Connessione bloccata."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "utilizzo offuscamento del protocollo."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Connessione a %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5884,86 +5899,91 @@ msgstr "Nome file"
 msgid "Shares File List"
 msgstr "File condivisi"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Richieste"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Richieste accettate"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Dati trasferiti"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Percentuale Condivisione"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Parti ricevute"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Fonti complete"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Percorso directory"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Aggiungi commento/giudizio"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Modifica commento/giudizio"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Rinomina"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Aggiungi i files della collection alla lista dei trasferimenti"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Copia &URI magnet negli appunti"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Copia il link eD2k negli appunti (&Sorgente)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 "Copia il link eD2k negli appunti (Sorgente) (&Con opzioni di crittatura)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Copia il link eD2k negli appunti (&Nome host)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Copia il link eD2k negli appunti (Nome host) (Con &opzioni di crittatura)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Copia il link eD2k negli appunti (informazioni &AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Copia il link eD2k negli appunti (informazioni &AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Hai bisogno di un HighID per creare un sourcelink valido"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "File condivisi (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "File in download"
 
@@ -5972,235 +5992,235 @@ msgstr "File in download"
 msgid "Remote File Name"
 msgstr "Nome file"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Dati inviati (sessione (totale)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Overhead totale (pacchetti): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Overhead per richieste file (pacchetti): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Overhead per scambio fonti (pacchetti): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Overhead server (pacchetti): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Overhead Kad (pacchetti): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Upload attivi: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Upload in attesa: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Totale sessioni di upload riuscite: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Totale sessioni di upload fallite: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Tempo upload medio: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Dati scaricati (sessione (totale)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Fonti trovate: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Download attivi (parti): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Rapporto UL:DL sessione (totale): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Riconnessioni: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tempo dal primo trasferimento: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Connesso al server da: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Connessioni attive (stima): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Limite massimo connessioni raggiunto: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Connessioni medie (stima): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Picco connessioni (stima): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Client"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Dimensione sconosciuta"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Filtrati"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "Bannati"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Totale: %i Conosciuti: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Server attivi: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Server falliti: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Totale: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Server rimossi: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Server filtrati: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Utenti su server attivi: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "File su server attivi: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Utenti totali: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "File totali: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Occupazione server: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Numero di file condivisi: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Dimensione totale file condivisi: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistema operativo"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Non ricevuto"
 
@@ -6260,7 +6280,7 @@ msgstr "Non e' un numero valido\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Non e' un hash valido (la lunghezza deve essere di 32 caratteri)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Richiesta fallita con errore sconosciuto"
 
@@ -6314,13 +6334,13 @@ msgstr "Connesso a %s %s %s"
 msgid "Now connecting"
 msgstr "Connessione in corso"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "firewalled"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6763,23 +6783,23 @@ msgstr ""
 "Questo è un comando deprecato, e potrebbe essere rimosso in futuro.\n"
 "Usa '%s' al suo posto.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Client testuale aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Conversione dei vecchi hashset AICH in '%s' a 64b: '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "ATTENZIONE: '%s' non e' un nome di file valido ed e' stato rinominato in '%"
 "s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "ATTENZIONE: Esiste gia' un file col nome '%s', rinomino in '%s'."
@@ -6853,7 +6873,7 @@ msgstr "Impossibile eseguire il comando `%s' per l'evento `%s'."
 msgid "Download completed"
 msgstr "Download completato"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Il percorso completo del file."
 
@@ -6873,66 +6893,66 @@ msgstr "La dimensione del file in bytes."
 msgid "Cumulative download activity time."
 msgstr "Tempo cumulativo di download."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Nuova sessione di chat iniziata"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Mittente del messaggio."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Spazio esaurito"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partizione disco."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Errore nel completamento"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Elaborazione del file numero %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Hai richiesto l'hash delle parti (solo per file > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> File inesistente!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, il creatore di link eD2k di aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Benvenuto!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Parametri di ingresso"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "File da esaminare"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Aggiungi URL per questo file"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Inserisci il file del quale calcolare il link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6940,15 +6960,15 @@ msgstr ""
 "Inserisci qui l'URL che vuoi aggiungere al link eD2k: Aggiungi / alla fine "
 "per fare in modo che aLinkCreator aggiunga il nome del file corrente"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Rimuovi"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Crea link con hash delle parti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6956,81 +6976,81 @@ msgstr ""
 "Aiuta a diffondere piu' in fretta i file nuovi e rari, al costo di una "
 "connessione piu' lunga"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Hash MD4"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Hash eD2k del file"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Salva"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Copia negli appunti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Apri un file per calcolarne il link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Copia il link eD2k calcolato negli appunti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Salva il link eD2k calcolato in un file"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Informazioni su aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Seleziona il file del quale calcolare il link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Non c'e' niente da copiare per ora!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Seleziona il file del tuo link eD2k calcolato"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Impossibile aprire "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Inserire un nome file non vuoto"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Non c'e' niente da salvare per ora!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7050,158 +7070,162 @@ msgstr ""
 "\n"
 "Distribuito sotto licenza GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Hashing..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Annullato!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Eseguito in %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Hai gia' aggiunto questo URL!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Inserire un URL non vuoto"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Impossibile aprire %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i giorno(i) %i ora(e) %i minuto(i) %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uG %02uore %02umin %02usec"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uore %02umin %02usec"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02usec"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, statistiche online di aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Velocita' di DL massima da quando wxCas e' attivo"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Velocita' di DL massima nelle precedenti sessioni di wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Ferma aggiornamento automatico"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Salva immagine statistiche online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Stampa immagine statistiche online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Preferenze"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Informazioni su wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Avvia aggiornamento automatico"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Aggiornamento automatico fermato"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Aggiornamento automatico avviato"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Salva immagine statistiche"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Statistiche online aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7209,11 +7233,11 @@ msgstr ""
 "C'e' stato un problema durante la stampa.\n"
 "La stampante potrebbe non essere impostata correttamente?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Stampa in corso"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7231,325 +7255,325 @@ msgstr ""
 "\n"
 "Distribuito con licenza GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule non e' in esecuzione..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule e' in funzione"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule e' in esecuzione, ma e' disconnesso"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule si sta connettendo..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh oh, stato di aMule sconosciuto..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr "e' stato in funzione per "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " e' fermo !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " non e' connesso !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " si sta connettendo..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " sta facendo qualcosa di strano, controllare!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " e' connesso a "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "off"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " e' attivo "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr "con "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Download totale: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Download sessione: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr "kB/s, Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Condivisione: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr "file, client in coda: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Tempo: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr "attivo "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Carico medio del sistema (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Uptime del sistema: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Directory contenente il file amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Inserire la directory contentente il file amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Intervallo di aggiornamento in secondi"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Genera un'immagine delle statistiche ad ogni aggiornamento"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 "Inserire la directory nella quale generare l'immagine delle statistiche"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Carica periodicamente l'immagine delle statistiche sul server FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "URL FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Percorso FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Inserire URL del tuo server FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Inserire la directory del server FTP nella quale copiare l'immagine"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Utente"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Inserire username per il login nel server FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Inserire password per il login nel server FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Intervallo di aggiornamento FTP in minuti"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Verifica"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Directory contenente il file di firma"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Directory nella quale generare l'immagine"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Carica modello <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Porta HTTP del server web"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Usa istradamento UPnP sulla porta del server web"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Porta UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Usa compressione gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Password per accesso totale al server web"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Password ospite del server web"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Permetti l'accesso guest"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Vieta l'accesso guest"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Carica/salva le impostazioni del server web da/su aMule remoto"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Percorso del file di configurazione di aMule. Non usare direttamente!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Disabilita interprete PHP (deprecato)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Ricompila pagine PHP ad ogni richiesta"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule Web Server"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "connessione web client accettata\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Richiesta fallita per l'errore: %s"
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "File indice non trovato: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sessione scaduta - login richiesto\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sessione valida, utente loggato\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sessione valida, utente loggato\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Nessuna sessione aperta - richiesta login\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sessione creata - richiesta login\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Elaborazione richiesta [originale]:"
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Verifica password\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Hash della password non valido\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Password valida\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Password errata\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 "Non hai inserito alcuna password e le password vuote non sono ammesse.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Logout richiesto\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Elaborazione richiesta [rediretta]:"
 
@@ -7738,10 +7762,6 @@ msgstr "Elaborazione richiesta [rediretta]:"
 #~ msgstr "Utenti totali: %s | File totali: %s"
 
 #, fuzzy
-#~ msgid "HTTP download thread started"
-#~ msgstr "Thread di sincronizzazione avviato."
-
-#, fuzzy
 #~ msgid "Download size: %i"
 #~ msgstr "Download (%i)"
 
diff --git a/po/ja.po b/po/ja.po
index bc35507..823eef0 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ja\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-05-31 01:09+0900\n"
 "Last-Translator: \n"
 "Language-Team: Japanese\n"
@@ -36,64 +36,64 @@ msgstr "指定されたユーザハッシュは不正です!"
 msgid "Failed to open ED2KLinks file."
 msgstr "%s(%s)を開くことはできませんでした"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 #, fuzzy
 msgid "Now, exiting main app..."
 msgstr ""
 "\n"
 "OK、%s を終了中です…\n"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "失敗しました"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 #, fuzzy
 msgid "aMule shutdown completed."
 msgstr "ダウンロード完了"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "終了の確認"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "新しい外部接続を認められました"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "警告"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -101,13 +101,13 @@ msgstr ""
 "申し訳ありませんが、設定の変更を行ったため、あなたのロケールはシステム標準に"
 "変更されました。"
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "情報"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -115,39 +115,39 @@ msgstr ""
 "サーバリストにはサーバが一つも入っていません。今aMuleに新しいサーバリストをダ"
 "ウンロードしますか?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "サーバリストのダウンロード"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "指定したアドレスにポートをバインドできませんでした: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "ポート%uは利用できません。あなたにはLOWIDが与えられます\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -162,11 +162,11 @@ msgstr ""
 "\n"
 "ネットワークを調べ、ポートが入出力に対して開いているか確認してください。"
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "オンライン証明ファイルの生成に失敗しました"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "aMuleのオンライン証明ファイルの生成に失敗しました"
 
@@ -220,135 +220,135 @@ msgstr ""
 "あなたが指定したオンライン証明ファイルのフォルダは不正です!\n"
 "設定で訂正するまでオンライン証明を無効にします。"
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "サーバ名:"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "ファイル '%s' のディスク領域の事前確保が失敗しました: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "エラー:ログファイルを開くことはできません"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "注意:ログファイルは空です。何かがおかしいです。"
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "ログはリセットされました"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "サーバ・メッセージ:%s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "ノード・リストをダウンロードのに失敗しました。"
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "ダウンロードされたバージョン確認ファイルを開くのに失敗しました。"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "破損されたバージョン確認ファイル"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "あなたは古いバージョンのaMuleを使用しています!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "あなたのaMuleバージョンは%i.%i.%iで、最新バージョンは%li.%li.%liです"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "最新バージョンはいつもhttp://www.amule.orgにあります"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 "警告:あなたのaMuledバージョンは古くなっています:%i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "あなたのaMuleは最新のバージョンです。"
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "バージョン確認ファイルのダウンロードに失敗しました"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "ユーザ: %s | ファイル: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "ユーザ: E: %s K: %s | ファイル: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "ネットワークが選択されていません"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "LowIDを持っています"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "HighIDを持っています"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "接続しています:%s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "%sに接続中です"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kadを開始しました。"
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kadを中止しました。"
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Kadに接続しています(OK)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Kadに接続しています(ファイアウォール)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Kadから切断しています"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -356,11 +356,11 @@ msgstr ""
 "UDPポートが設定で無効にされていると、Kadネットワークを使用できないため、開始"
 "しません。"
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kadネットワークは設定で無効にされているため、接続はしません。"
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 #, fuzzy
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
@@ -373,7 +373,7 @@ msgstr ""
 "ec-configで起動させるか、あるいはファイル~/.aMule/amule.confの中でキー"
 "\"AcceptExternalConnections\"を1に設定してください。"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -382,19 +382,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "エラー: %s"
@@ -471,9 +471,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "メッセージ"
 
@@ -481,7 +481,7 @@ msgstr "メッセージ"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "接続中"
 
@@ -515,7 +515,7 @@ msgstr "Kad: オフ"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "キャンセル"
 
@@ -532,7 +532,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "ネットワークから切断します。"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "接続する"
 
@@ -574,7 +574,7 @@ msgstr "終了の確認"
 msgid "Launch Command: "
 msgstr "コマンド: %s"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -589,81 +589,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "ネットワーク"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "ネットワークウィンドウ"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "検索"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "検索ウィンドウ"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "ダウンロード数"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "ダウンロード"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "共有ファイルウィンドウ"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "メッセージ"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "メッセージウィンドウ"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "統計"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "統計グラフウィインドウ"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "設定"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "個人設定ウィンドウ"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "インポート"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "部分ファイルをインポートするためのツール"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "情報"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "ソフトウェア情報/ヘルプ"
 
@@ -683,7 +683,7 @@ msgstr "ネットワークなし"
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -696,109 +696,109 @@ msgstr "致命的なエラー:タイマを生成できませんでした"
 msgid "Connect to remote amule"
 msgstr "リモートamuleへ接続する"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "致命的なエラー:タイマを生成できませんでした"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 #, fuzzy
 msgid "Going to event loop..."
 msgstr "ファイル情報を回復しようとしています…"
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "接続中"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "接続に失敗しました "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "全て"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "不明"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "ユーザ '%s' から共有ファイルを取得することができませんでした"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr "(偽のeMuleバージョン %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr "(偽のeMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule(偽のeMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x(eMule v0.%u に基づいています)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "NickName: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "要求:%s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -806,7 +806,7 @@ msgid_plural ""
 msgstr[0] ""
 "当セッションのファイル統計: %d / %d の要求を受け入れ、%s 転送された\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -814,7 +814,7 @@ msgid_plural ""
 msgstr[0] ""
 "全セッションのファイル統計: %d / %d の要求を受け入れ、%s 転送された\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "不明なファイルが要求されました"
 
@@ -959,12 +959,12 @@ msgid "Client Details"
 msgstr "クライアントの詳細"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1016,33 +1016,33 @@ msgstr "検証されています"
 msgid "Not Available"
 msgstr "利用不可能です"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "ユーザ %s(%u)はあなたの共有ファイル・リストを要求しました -> 許可しました"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "ユーザ %s(%u)はあなたの共有ファイル・リストを要求しました -> 拒否しました"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "ユーザ %s(%u)はあなたの共有ディレクトリ・リストを要求しました -> 許可しまし"
 "た"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "ユーザ %s(%u)はあなたの共有ディレクトリ・リストを要求しました -> 拒否しまし"
 "た"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1050,7 +1050,7 @@ msgstr ""
 "ユーザ %s(%u)はあなたのディレクトリ %s の共有ファイル・リストを要求しまし"
 "た -> 許可しました"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1058,32 +1058,32 @@ msgstr ""
 "ユーザ %s(%u)はあなたのディレクトリ %s の共有ファイル・リストを要求しまし"
 "た -> 拒否しました"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "ユーザ %s(%u)は %s のディレクトリを共有しています"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "ユーザ %s(%u)は要求されていない共有ディレクトリを送りました。"
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "ユーザ %s(%u)はディレクトリ %s の共有ファイル・リストを送りました。"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "ユーザ %s(%u)は共有ファイル・リストの送信を終了しました"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "ユーザ %s(%u)は無用の共有ファイル・リストを送りました。"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1100,7 +1100,7 @@ msgstr "ユーザ名"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "ファイル名"
 
@@ -1140,33 +1140,33 @@ msgstr "オート [No]"
 msgid "Auto [Hi]"
 msgstr "オート [Hi]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "非常に低い"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "低い"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "普通"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "高い"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "非常に高い"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "離す"
 
@@ -1183,12 +1183,12 @@ msgid "Queue Full"
 msgstr "キューが一杯"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "キューに入っています"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "ダウンロード"
 
@@ -1248,7 +1248,7 @@ msgstr "ローカルサーバ"
 msgid "Remote Server"
 msgstr "リモートサーバ"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1274,7 +1274,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "完成された数"
 
@@ -1315,11 +1315,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "サイズ"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "転送済み"
 
@@ -1332,17 +1332,17 @@ msgid "Progress"
 msgstr "進捗状況"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "ソース数"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "優先度"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "ステータス"
@@ -1367,7 +1367,7 @@ msgstr "本当に選択されたファイルを削除しますか?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "本当に選択されたファイルを削除しますか?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1377,7 +1377,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "自動"
 
@@ -1429,11 +1429,11 @@ msgstr "全てのコメントを表示"
 msgid "Copy magnet URI to clipboard"
 msgstr "マグネットURIをクリップボードへコピーする"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "フィードバックをクリップボードにコピーする"
 
@@ -1449,34 +1449,34 @@ msgstr "カテゴリに割り当てる"
 msgid "&Open the file"
 msgstr "ファイルを開く(&O)"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "このファイルの新しい名前を入力してください:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "ファイルの改名"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "ダウンロード数(%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "ファイル・プレビュー"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "エラー:外部メディア・プレイヤーを実行できませんでした!コマンド: `%s'"
@@ -1584,28 +1584,28 @@ msgstr "外部接続は空パスワードのため無効にしました!"
 msgid "External connections disabled in config file"
 msgstr "外部接続を設定ファイルに無効しました"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "新しい外部接続を認められました"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "個人設定に空欄のパスワードがあるため、外部接続を拒否しました!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "クライアントを接続中: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "不明なバージョン"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1613,7 +1613,7 @@ msgstr ""
 "間違ったECバージョンID。バイナリ不互換性の可能性があります。同じスナップ"
 "ショットの コアとリモートを使用してください。"
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1622,177 +1622,177 @@ msgstr ""
 "任意CVSバージョンからリリースバージョンに接続はできません! *ハァ…*起こり得る"
 "クラッシュを予防しました"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "無効なプロトコルバージョン。"
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "プロトコルバージョンタグがありません。"
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "認証に失敗しました。"
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "認証に失敗しました。"
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "無効なリクエストです。先に認証をしてください。"
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "アクセスを認められました。"
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "知らないクライアントからのメッセージをフィルタする"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "不正アクセスの試みがなされました。接続は閉じました。"
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "リモート部分ファイルコマンドが失敗しました:ファイルハッシュは見付かりません"
 "でした: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "ファイルハッシュは見付かりませんでした: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "あら!OpCode処理エラーが発生しました!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "サーバは追加しませんでした"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "サーバは見付かりませんでした: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "削除したいサーバを定義しなければなりません"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "検索中です。あと少しで結果をもう一度取ってきます!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "リモートインタフェイスからWebSearchする意味がありません。"
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "グラフを表示するための点がありません。"
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "あなたのクライアントはこの詳細段階には設定されていません。"
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "既にシャットダウン中です。"
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ExternalConn:次のリンクを追加中です: '%s'。"
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "不正なリンク、またはリンクがすでにリストに入っています。"
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "ファイルは見付かりませんでした。"
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "不正なファイル名。"
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "ファイルを改名できません。"
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kadは個人設定に無効されています。"
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "すでにKadに接続しています。"
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Kadに接続中です…"
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "全てのネットワークが無効になっています。"
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Kadから切断しています。"
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "不正なOpCode(プロトコルバージョンが違いますか?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "'%s'コマンドに不明な拡張子'%s'。\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "不明なコマンド'%s'。\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1800,7 +1800,7 @@ msgstr ""
 "\n"
 "このコマンドには引数は認められていません。\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1808,7 +1808,7 @@ msgstr ""
 "\n"
 "このコマンドには引数が必要です。\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1816,7 +1816,7 @@ msgstr ""
 "\n"
 "このコマンドは不完全です。下記から拡張をひとつ選択してください。\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1824,11 +1824,11 @@ msgstr ""
 "\n"
 "利用可能な拡張:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "利用可能なコマンド:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1839,17 +1839,17 @@ msgstr ""
 "すべてのコマンドは大文字と小文字を区別しません。\n"
 "'%s <コマンド>'を入力すると<コマンド>の詳細情報が表示されます。\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "アプリケーションが終了します。"
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "ヘルプを表示します。"
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1857,7 +1857,7 @@ msgstr ""
 "コマンドに対してヘルプを得るためには'help <コマンド>'を入力してください。\n"
 "全てのコマンドのリストを得るためには'help'を入力してください。\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1868,48 +1868,48 @@ msgstr ""
 "コマンド・リストには'%s'を使用してください\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "シンタックス・エラー!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "コマンドを処理する時にエラーが発生しました。これはありえない!バッグをリポー"
 "トしてください\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "このコマンドには引数が認められていません。"
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "このコマンドには引数が不可欠です。"
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "引数が不正です。"
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "このコマンドは不完全です。"
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "'%s'を入力して、ヘルプを得てください。\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "これは %s %s %s です\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "これは %s %s です\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1917,7 +1917,7 @@ msgstr ""
 "\n"
 "クライアントを生成中です…\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1926,7 +1926,7 @@ msgstr ""
 "\n"
 "OK、%s を終了中です…\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1940,47 +1940,47 @@ msgstr ""
 "\n"
 "終了中です…\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "このヘルプ・テキストを表示する。"
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "aMuleが起動しているホストです。(デフォルト:localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "aMuleの外接続用のポート。(デフォルト:4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "外接続用のパスワード。"
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "設定をファイルから読み込む。"
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "アウトプットをstdoutにプリンとしないように。"
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "冗長にして:デバッグ・メッセージも表示する。"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "プログラム・ロカールを設定する(言語)。"
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "コマンド・ライン・オプションを設定ファイルに書き込む。"
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "aMuleの設定ファイルを元に設定ファイルを生成する。"
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "プログラム・バージョンをプリンとする。"
 
@@ -1993,8 +1993,8 @@ msgstr "ファイルの詳細"
 msgid "%.1f%% done"
 msgstr "%.2f%%終わりました"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2011,7 +2011,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "友達"
 
@@ -2140,32 +2140,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "ダウンロード済み"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "サーバへ再接続する"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2197,7 +2197,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "サーバリストを%sからダウンロードするのに失敗しました"
@@ -2243,7 +2243,7 @@ msgstr[0] "不正な形式の行を %u 個破棄しました。"
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2260,100 +2260,100 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "ノード数(%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "ブートストラップするためには正しくないIPです"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "ブートストラップするためには正しくないポートです"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "必要なフィールドをすべて入力してください"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "本当に新しいnodes.datファイルをダウンロードしますか?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr "そうすると、現在のノードがなくなり、Kademliaへの接続も初期化されます。"
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "続けますか?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: 検索キーワードが短すぎます"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "%u 個のKadコンタクトを読み込みました"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "%d個のKadコンタクトを書き込みました"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "ファイル名"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "ファイルサイズ"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "共有比"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "アップロード済み"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "要求済み"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "受付済み"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "ソース完了"
 
@@ -2379,71 +2379,76 @@ msgstr "不明なバージョン"
 msgid "Unable to get error description for error %d"
 msgstr "注意: スキンファイル '%s' を読むために開けませんでした"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "ハッシュ中"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "完了中"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "完了"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "停止"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "エラーあり"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "待機"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "空のパスワードは無効です。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "不正なパスワード、 MD5ハッシュではありません!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "接続に失敗しました"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "ExternalConn: サーバーからの応答が不正です。接続を閉じました。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "成功です!aMuleへの接続を確立しました "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "成功です!接続を確立しました。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "外接続用のパスワード。"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "同期化スレドを始めました。"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2452,16 +2457,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "閉じる"
 
@@ -2469,8 +2474,8 @@ msgstr "閉じる"
 msgid "Cut"
 msgstr "カット"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "コピー"
 
@@ -2479,7 +2484,7 @@ msgid "Paste"
 msgstr "ペースト"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "クリア"
 
@@ -2489,7 +2494,7 @@ msgstr "全ての選択"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2566,7 +2571,7 @@ msgid "ServerIP: "
 msgstr "サーバIP:"
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "接続されていません"
 
@@ -2601,7 +2606,7 @@ msgstr "オンライン証明:有効です"
 msgid "Online Signature: Disabled"
 msgstr "オンライン証明:無効です"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "動作時間: %s"
@@ -2642,7 +2647,7 @@ msgstr "aMuleを隠す"
 msgid "Show aMule"
 msgstr "aMuleを表示する"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "終了"
 
@@ -2724,7 +2729,7 @@ msgstr "検索"
 msgid "Name:"
 msgstr "名前:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "タイプ"
 
@@ -2752,38 +2757,38 @@ msgstr "フィルタリング"
 msgid "File Type"
 msgstr "フィルタの種類"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "すべて"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "アーカイブ"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "オーディオ"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CDイメージ"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "画像"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "プログラム"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "テキスト"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "ビデオ"
 
@@ -2804,11 +2809,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2836,7 +2841,7 @@ msgstr "結果を反転する"
 msgid "Hide Known Files"
 msgstr "既知のファイルを隠す"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "開始"
 
@@ -2894,7 +2899,7 @@ msgstr "完全名:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "非適用"
 
@@ -2918,7 +2923,7 @@ msgstr "部分ファイルの状態:"
 msgid "Last seen complete :"
 msgstr "最後に完全として見た時間:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "転送"
 
@@ -3006,27 +3011,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "ファイルの質"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "評価されていません"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "不正/損被/偽造"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "悪い"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "悪くない"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "良い"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "優秀"
 
@@ -3072,7 +3077,7 @@ msgid "Userhash :"
 msgstr "ユーザ・ハッシュ:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "追加"
 
@@ -3303,9 +3308,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "閲覧"
 
@@ -3392,7 +3397,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3512,7 +3517,7 @@ msgstr "望ましい最小のディスク領域をここに入力してくださ
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "珍しいファイルには10ソースを保存する(<20ソース)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "アップロード数"
 
@@ -3755,7 +3760,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "ECポートでUPnPポート転送を有効にする"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "パスワード"
 
@@ -3838,8 +3843,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "このカテゴリの色を選択する(現在選択中):"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "リセット"
 
@@ -4243,88 +4248,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "冗長なデバッグ・ロギングを有効にする"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "ファイルを開く(&O)"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "メッセージのカテゴリ:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "待機中…"
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "インポートを追加する"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "選択したものを再試行"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "選択したものを破棄"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "アクティブなアップロード数:"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "共有ファイルを隠す"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "ビュー・フィルタを選択してください"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "アクティブなアップロード数"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "クライアントを表示する"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "リストを再ロードする"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "共有ファイルを再ロードする"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "送信する"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "指示するメッセージを送信します。"
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "チャット・セションを閉じます。"
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "すべてのサーバ、もしくはKadに接続する"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "共有ファイル"
 
@@ -4333,134 +4343,134 @@ msgstr "共有ファイル"
 msgid "Disabled [%s]"
 msgstr "使用不可能 [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "バイト"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "B/s"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "秒"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "分"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "時間"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "日"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "全て"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "他の全て"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "未完成"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "中断しています"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "ビデオ"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "アーカイブ"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "テキスト"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "アクティブ"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "%s:%sをインポートします"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "一時フォルダを読み中です"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "基本情報をダウンロード情報ファイルから取ってきます"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "当てファイルを作成中です"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "古いダウンロード・ファイル(%uから%u)からデータをロード中です"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 "データ・ブロックを一つの新しいダウンロード・ファイル(%uから%u)に纏め中です"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "ソース・ダウンロードファイル情報を取ってきます"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "ダウンロードを追加して、新しい部分ファイルを保存中です"
 
@@ -4476,12 +4486,12 @@ msgstr "状況"
 msgid "Filehash"
 msgstr "ファイル・ハッシュ"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s(ディスク:%s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4489,12 +4499,12 @@ msgstr ""
 "一時ダウンロードを検索するフォルダを選択してください(サブフォルダは含まれま"
 "す)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "成功にインポートしたダウンロードのソース・ファイルを削除しますか?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "ソースを削除しますか?"
 
@@ -4608,7 +4618,7 @@ msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 "部分ファイルのシード・ファイルを読む時にエラーが発生しました:(%s - %s)%s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4620,272 +4630,272 @@ msgstr[0] ""
 "破損されている部分(%d)が%d部分、ファイル%sに見つかりました:FileResultHash "
 "|%s| FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "完成した部分(%i)が%sに見つかりました"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "%sの再ハッシュを終了しました"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "ダウンロードが終了しました:%s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "ファイルを削除します:%s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "注意:ディスク容量が足りません!ファイルを停止します:%s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "ダウンロードした部分%i(ファイル:%s)は破損されています"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 "ICH:破損された部分%i(%sのため)を回復しました→:%s バイトを保存しました"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "領域確保中"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "ダウンロード済み"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "エラー: 部分ファイル '%s' が開けませんでした"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "システムの標準設定"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "アルバニア語"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "アラブ語"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "エストニア語"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "バスク語"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "ブルガリア語"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "カタロニア語"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "中国語(簡体字)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "中国語(繁体字)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "クロアチア語"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "チェコ語"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "デンマーク語"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "オランダ語"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "英語(U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "エストニア語"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "フィンランド語"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "フランス語"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "ガリシア語"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "ドイツ語"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "ギリシア語"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "ヘブライ語"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "ハンガリー語"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "イタリア語"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "イタリア語(スイス)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "日本語"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "韓国語"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "リトアニア語"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "ルウェー語"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "ポーランド語"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "ポルトガル語"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "ポルトガル語(ブラジル)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "ロシア語"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "スロベニア語"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "スペイン語"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "スウェーデン語"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "トルコ語"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "言語"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "利用不可"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "サーバのUDPソケトがTCP+3であるためTCPポートを65532以上には設定できません"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "デフォルトポートを使用します (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "接続"
 
@@ -4893,7 +4903,7 @@ msgstr "接続"
 msgid "Directories"
 msgstr "ディレクトリ"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "サーバ数"
 
@@ -4944,7 +4954,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4960,61 +4970,66 @@ msgstr ""
 "この設定を変更しなくてもaMuleはうまく動いて\n"
 "います。"
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "接続するプロクシーの種類"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
 msgstr "この変更点を有効するにはaMuleを再起動しなければなりません:\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCPポートを変更しました。\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDPポートを変更しました。\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "外部接続は終了しました。"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "新しい外部接続を認められました"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "外部接続は終了しました。"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "プロトコルを難読化する"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5022,26 +5037,26 @@ msgstr ""
 "外部接続を有効にしましたがパスワードを設定していません。\n"
 "有効なパスワードを設定しないと外部接続を可能できません。"
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- 言語を変更しました。\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- 一時フォルダを変更しました。\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "全てのネットワークが無効になっています。"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5049,7 +5064,7 @@ msgstr ""
 "UDPポートが無効になっているとKadは開始できません。\n"
 "UDPポートを有効にするか、またはKadを無効にしてください。"
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5059,7 +5074,7 @@ msgstr ""
 "必ず早急にaMuleを再起動してください。\n"
 "今すぐに再起動しなければ、挙動がおかしくなる可能性があります。\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5069,41 +5084,41 @@ msgstr ""
 "せめて一つのURLを入力して、有効なserver.metファイルを指定してください。\n"
 "このチェックボクスの近くの\"表\"ボタンをクリックして、URLを入力してください。"
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "一時ファイル"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "受信ファイル"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "オンライン署名"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr " %s のためのフォルダを選択する"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "ビデオプレイヤーを選択する"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "ブラウザを選択する"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "実行ファイル%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5111,72 +5126,72 @@ msgstr ""
 "server.metファイルをダウンロードするURLをここに追加してください。\n"
 "一行にひとつのURLのみです。"
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "アップデート遅延時間: %d 秒"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "平均グラフの時間: %d 分"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "接続グラフスケール: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "ファイルバッファサイズ: %d バイト"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "アップロードキューサイズ: %d クライアント"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "サーバ接続リフレッシュ遅延時間: %d 分"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "サーバ接続リフレッシュ遅延時間: 無効"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "無効にする"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr " `%s' イベントにコマンドを実行する"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "コアにコマンドを実行することを有効にする"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "コアコマンド:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "GUIにコマンドを実行することを有効にする"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "GUIコマンド:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "次の変数は置換されます:"
 
@@ -5205,7 +5220,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Kadを検索する間に不明なエラーが発生しました: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ファイルID"
 
@@ -5318,7 +5333,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "%s(%s:%i)の接続の試しがタイムアウトました。"
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5348,100 +5363,100 @@ msgstr ""
 "server.metファイルは破損しています。不正なバージョン・タグが見つかりました:"
 "0x%x、サイズ %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "server.metに%i個のサーバが見つかりました"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d個のサーバが追加されました"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "known.metファイル%sを読む時にIOエラーが発生しました"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "サーバは追加されていません:[%s:%d]は正当なポートを指示していません。"
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 "サーバは追加されていません:[%s:%d]はフィルタされているか、または不正です。"
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "サーバは追加されていません:同じ[%s:%d]のIP:ポートはリストに見つかりました。"
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "サーバは追加されました:[%s:%d]は'%s'という名前を使用しています。"
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 "削除しようとするサーバには現在接続しています。先に切断を行ってください。"
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "'%s'を開くことができませんでした"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "server.metを保存するのに失敗しました!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "不正なURL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "サーバリストを%sからダウンロードするのを完了しました"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "サーバリストを%sからダウンロードするのを開始する"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "addresses.datに、正しいserver.metの自動ダウンロードURLがありません。"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "サーバリストを%sからダウンロードするのに失敗しました"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5477,7 +5492,7 @@ msgid "Static"
 msgstr "スタティック"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "バージョン"
 
@@ -5503,8 +5518,8 @@ msgstr "スタティックサーバ %s を本当に削除しますか?"
 msgid "Servers (%i)"
 msgstr "サーバ (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "サーバ"
 
@@ -5560,81 +5575,81 @@ msgstr "全ての選択されたサーバを本当に削除しますか?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "全ての選択されたサーバを本当に削除しますか?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "新しいclientidは%uです"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "注意:あなたはLow-IDを得られました!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\t恐らくパソコンがファイラウォールやルータの裏にあるのが原因です。"
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\t詳しい情報にはhttp://wiki.amule.orgを参考してください"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "不明なサーバ情報を受信しました!理由:短しぎます"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "%d個の新しいサーバを受信しました"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "サーバ・リストの保存を終了しました。"
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "サーバは最後のコマンドを断りました"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "サーバ%sから偽造のパケットが届きました"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "サーバ%sのパケットを処理する時に未処理例外エラーが発生しました"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "%sに接続するためのDNS解決スレッドを作成せきません。"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "IPアドレス%sのサーバ%sはフィルタリングされています。接続はしません。"
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "難読化プロトコルを使用しています。"
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "%s(%s - %s:%i)%sへ接続中です。"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "%sに接続するためのDNSは解決できませんでした:接続はできません!"
@@ -5823,84 +5838,89 @@ msgstr "ファイル名"
 msgid "Shares File List"
 msgstr "共有ファイル"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "要求"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "認められた要求"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "転送されたデータ"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "共有比"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "得られた部分"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "完成したソース"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "ディレクトリパス"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "コメントおよび評価を追加する"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "コメントおよび評価を編集する"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "改名する"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "コレクションに存在するファイルを転送リストに追加する"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "マグネット &URI をクリップボードにコピーする"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "ED2kリンクをクリップボードにコピーする(&AICH インフォ)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "有効なソースリンクを作るにはHighIDが必要です"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "共有ファイル(%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[部分ファイル]"
 
@@ -5909,235 +5929,235 @@ msgstr "[部分ファイル]"
 msgid "Remote File Name"
 msgstr "ファイル名"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "アップロードされたデータ(セッション合計): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "合計オーバヘッド(パケット数): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "ファイル要求のオーバヘッド(パケット数): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "ソース交換のオーバヘッド(パケット数): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "サーバのオーバヘッド(パケット数): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kadのオーバヘッド(パケット数): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "暗号化オーバーヘッド (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "アクティブなアップロード数: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "待機中のアップロード数: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "成功したアップロードセッションの合計: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "失敗したアップロードセッションの合計: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "平均アップロード時間: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "ダウンロードされたデータ(セッション合計): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "見付かったソース: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "アクティブなダウンロード数(塊数): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "セッションの合計UL/DL比: %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "再接続数: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "最初の転送からの経過時間: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "サーバへの接続時刻: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "アクティブな接続数(推測): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "最大接続数への到達: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "平均接続数(推測): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "ピーク接続数(推測): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "クライアント数"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "サイズが不明です"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "フィルタされた数"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "接続禁止"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "合計: %i 既知: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "動作サーバ数: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "失敗したサーバ数: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "合計: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "削除されたサーバ数: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "フィルタされたサーバ数: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "動作サーバのユーザ数: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "動作サーバのファイル数: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "ユーザ合計: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "ファイル合計: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "サーバ占有: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "共有ファイル数: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "共有ファイルの合計サイズ: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "オペレーティング・システム"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "受信していません"
 
@@ -6195,7 +6215,7 @@ msgstr "正当な数字ではありません\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "正当なハッシュではありません(長さは丁度32半角文字あるべきです)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "不明なエラーによって要求が失敗しました。"
 
@@ -6249,13 +6269,13 @@ msgstr "%s %s %sに接続されています"
 msgid "Now connecting"
 msgstr "只今接続中です"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "ファイアウォールされています"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6697,21 +6717,21 @@ msgstr ""
 "これは廃止予定のコマンドで、将来に存在がなくなる可能性が高いです。\n"
 "代わりに'%s'を使用してください。\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMuleテキストクライアント"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "'%s' の古いAICHハッシュセットを '%s' の64bに変換中です。"
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "警告:ファイル名 '%s' は無効です。'%s' に改名されました。"
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6785,7 +6805,7 @@ msgstr "イベント'%2$s'にコマンド'%1$s'を起動できませんでした
 msgid "Download completed"
 msgstr "ダウンロード完了"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "ファイルのフルパス。"
 
@@ -6805,162 +6825,162 @@ msgstr "ファイルのサイズ(バイト)。"
 msgid "Cumulative download activity time."
 msgstr "累計ダウンロード活動時間"
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "新しいチャットセッションの開始"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "メッセージ送信者。"
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "空き容量不足"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "ディスク・パーティション。"
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "完了中にエラー"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "ファイル %u: %s 番を処理中です"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 "パートハッシュを要求しました(9.5MB以上のファイルサイズのみに使用されます)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> このファイルは存在していません!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "ようこそ!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "入力パラメタ"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "ハッシュをするファイル"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "このファイルにオプショナルURLを追加する"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "削除"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "パートハッシュでリンクを生成する"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
 "リンクサイズが大きくなるかわりに、新しくて珍しいファイルの配布を速くする"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4ファイルハッシュ"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "保存する"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "クリップボードへコピーする"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "aLinkCreatorについて"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "現在コピーできる物がありません!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "開くことができません: "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "空でないファイル名を入力してください"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "現在保存できるものがありません!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6972,158 +6992,162 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "ハッシュ中…"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "キャンセルされました!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr " %.2f 秒で完了しました"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "このURLはもう追加しました!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "空でないURLを入力してください"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "%s を開くことができません"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i 日 %i 時間 %i 分 %i 秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas、aMuleのオンライン統計"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "wxCasの起動以来の最大DL速度"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "前のwxCas起動を含めて記憶した最大DL速度"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "システム"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "オートリフレッシュを中止する"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "オンライン統計イメージを保存する"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "オンライン統計イメージを印刷する"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "設定"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "wxCasについて"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "オートリフレッシュを開始する"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "オートリフレッシュを中止しました"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "オートリフレッシュを開始しました"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "統計イメージを保存する"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMuleのオンライン統計"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7131,11 +7155,11 @@ msgstr ""
 "印刷中に問題が発生しました。\n"
 "選択されたプリンタの設定に異常がありませんか?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "印刷中です"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7153,323 +7177,323 @@ msgstr ""
 "\n"
 "GPLの元で配布されます"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "aMuleは動作していません…"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMuleは動作しています"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMuleは動作していますが接続はしていません"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMuleは接続中です…"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "aMuleのステータスは不明です…"
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " の動作時間は "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " は停止しています!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " は接続していません!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " は接続中です…"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " の挙動が変です。チェックしてください!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " は次のものに接続しています: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kas: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "オフ"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " はオンです "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " とともに "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "合計ダウンロード: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr "、 アップロード: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "セッションダウンロード: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "ダウンロード: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s、アップロード: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "共有: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " ファイル、キュー中のクライアント: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "時間: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " オン "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "システムロード平均 (1-5-15分): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "システム動作時間: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "amulesig.datファイルの入っているディレクトリ"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "amulesig.datファイルが入っているディレクトリをここに入力してください"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "リフレッシュレート間隔(秒)"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "各リフレッシュイベントで統計イメージを生成する"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "統計イメージを生成したいディレクトリをここに入力してください"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "統計イメージを定期的にFTPサーバへアップロードする"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTPのUrl"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTPのパース"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "FTPサーバのURLをここに入力してください"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "統計イメージを置きたいFTPサーバのディレクトリをここに入力してください"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "ユーザ"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "FTPサーバのログインに使うユーザ名をここに入力してください"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "FTPサーバのログインに使うパスワードをここに入力してください"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTPアップデートレート間隔(分)"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "実証"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "署名ファイルが入っているフォルダ"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "統計イメージを生成するフォルダ"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "テンプレート <str> をロードします"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnPポート"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "gzip圧縮を使用する"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "ゲストアクセスを許可する"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "ゲストアクセスを拒否する"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMuleの設定ファイルパス。注意:直接使用しないでください!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "PHPインタープリタを無効にする(非推奨)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "各要求ごとにPHPページを再コンパイルする"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMuleウェブサーバ"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "ウェブクライアント接続が受け入れられました\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "次のエラーによって要求が失敗しました: %s。"
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "インデックスファイルが見付かりませんでした: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "セッション有効期限が切れました - ログインを要求しています\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "セッションOK、ログインしています\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "セッションOK、ログインしていません\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "セッションが開いていません - ログインを要求します\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "セッションを作成しました - ログインを要求しています\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "要求を処理中です [original]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "パスワードをチェック中です\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "パスワードのハッシュが無効です\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "パスワードOKです\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "パスワードが正しくありません\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "パスワードを入力しませんでした。空のパスワードは許可されていません。\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "ログアウトが要求されました\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "要求を処理中です [変更しました]: "
 
@@ -7634,10 +7658,6 @@ msgstr "要求を処理中です [変更しました]: "
 #~ msgstr "ユーザ合計: %s | ファイル合計: %s"
 
 #, fuzzy
-#~ msgid "HTTP download thread started"
-#~ msgstr "同期化スレドを始めました。"
-
-#, fuzzy
 #~ msgid "Download size: %i"
 #~ msgstr "ダウンロード数(%i)"
 
@@ -8027,9 +8047,6 @@ msgstr "要求を処理中です [変更しました]: "
 #~ "ED2kリンクをクリップボードにコピーする(Hostname)(With &Cryptオプショ"
 #~ "ン)"
 
-#~ msgid "Copy ED2k link to clipboard (&AICH info)"
-#~ msgstr "ED2kリンクをクリップボードにコピーする(&AICH インフォ)"
-
 #~ msgid "Warning"
 #~ msgstr "警告"
 
diff --git a/po/ko_KR.po b/po/ko_KR.po
index 3348da6..21be20c 100644
--- a/po/ko_KR.po
+++ b/po/ko_KR.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ko_KR\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2007-09-12 16:04+0900\n"
 "Last-Translator: Hyunju Kang <rexington at gmail.com>\n"
 "Language-Team: Korean <hoenny at daum.net>\n"
@@ -39,63 +39,63 @@ msgstr "설정된 사용자 해시가 옳바르지 않습니다!"
 msgid "Failed to open ED2KLinks file."
 msgstr "%s(%s)을 열지 못했습니다."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 #, fuzzy
 msgid "Now, exiting main app..."
 msgstr ""
 "\n"
 "좋아, 나가는중 %s...\n"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "실패"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr ""
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "종료 확인"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "새로운 외부연결이 승인되었습니다."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "경고"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -103,13 +103,13 @@ msgstr ""
 "지역정보(로케일)가 설정 변경으로 인해 시스템 기본값으로 변경되었습니다. 죄송"
 "합니다."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "정보"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -117,39 +117,39 @@ msgstr ""
 "서버 목록에 서버가 없습니다.\n"
 "새로운 서버목록을 내려 받으시겠습니까?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "서버 목록 내려받기"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "포트 %u는 사용할 수 없습니다. 낮은아이디를 가질것입니다.\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -164,11 +164,11 @@ msgstr ""
 "\n"
 "나가고 들어오는것에 대해 포트가 열려있는지 통신망을 체크하세요. "
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "온라인서명 파일을 생성하지 못함"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "어뮬 온라인서명 파일을 생성하지 못함"
 
@@ -220,134 +220,134 @@ msgstr ""
 "지정한 온라인 서명 파일을 위한 폴더가 유효하지 않습니다.\n"
 " 온라인 서명은 환경설정에서 수정될 때까지 비활성화 됩니다."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "서버 이름:"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "오류: 로그파일을 열 수 없음"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "경고: 로그파일이 비어있습니다. 뭔가 잘못되어 있습니다."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "로그가 초기화되었습니다."
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "서버메시지: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "노드 목록을 내려받지 못했습니다."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "내려받은 버젼 검사 파일을 열지 못했습니다."
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "손상된 버젼 검사 파일"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "오래된 어뮬 버젼을 사용하고 있습니다!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "어뮬 버젼은 %i.%i.%i이며 최신 버젼은 %li.%li.%li입니다."
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "최신 버젼은 항상 http://www.amule.org 에서 찾을 수 있습니다."
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "경고: 어뮬 버젼은 오래되었습니다: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "어뮬은 최신 버전입니다."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "버젼 검사 파일을 내려받지 못했습니다."
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "낮은아이디로"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "높은아이디로"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "%s %s에 연결되었음"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "%s에 연결중"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad를 시작했습니다."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad를 멈췄습니다."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Kad에 연결됨 (양호)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Kad에 연결됨 (방화벽)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Kad로부터 연결이 끊김"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -355,11 +355,11 @@ msgstr ""
 "Kad 네트워크는 UDP 포트가 비활성될 시 사용할 수 없으며, 따라서 시작하지 않습"
 "니다."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad 네트워크가 환경설정에서 비활성되어, 연결하지 않습니다."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 #, fuzzy
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
@@ -371,7 +371,7 @@ msgstr ""
 "화하기 위해서는 --ec-config를 사용하여 시작하거나 ~/.aMule/amule.conf 파일내"
 "에 \"AcceptExternalConnections\" 키를 1로 설정하여야 합니다."
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -380,19 +380,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "오류: %s"
@@ -469,9 +469,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "메시지"
 
@@ -479,7 +479,7 @@ msgstr "메시지"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "연결중"
 
@@ -517,7 +517,7 @@ msgstr " Kad: "
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "취소"
 
@@ -536,7 +536,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "통신망으로부터 연결을 끊습니다."
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "연결"
 
@@ -579,7 +579,7 @@ msgstr "종료 확인"
 msgid "Launch Command: "
 msgstr "명령: %s"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -594,81 +594,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "통신망"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "통신망 창"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "검색"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "검색 창"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "내려받기"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "받는중"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "공유 파일 창"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "메시지"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "메시지 창"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "통계"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "통계 그래프 창"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "환경설정"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "환경 설정 창"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "가져오기"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "부분파일 가져오기 도구"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "정보"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "정보/도움"
 
@@ -688,7 +688,7 @@ msgstr ""
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "어뮬"
 
@@ -701,109 +701,109 @@ msgstr "치명적 오류: 타이머 생성 실패"
 msgid "Connect to remote amule"
 msgstr "원격 어뮬에 연결함"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "치명적 오류: 타이머 생성 실패"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 #, fuzzy
 msgid "Going to event loop..."
 msgstr "파일 정보를 복구하려고 하고있습니다..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "연결중"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "연결 실패"
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "전부"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "알수없는"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "사용자 %s로부터 공유파일을 찾지 못했습니다."
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (가짜 이뮬 버젼 %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (가짜 이뮬)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "엑스뮬(가짜 이뮬)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (이뮬 v0.%u 기반)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "별명: %s 아이디: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, fuzzy, c-format
 msgid "Requested: %s\n"
 msgstr "요청됨:"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, fuzzy, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -813,7 +813,7 @@ msgstr[0] ""
 msgstr[1] ""
 "이 세션의 파일상태: %d가 수락되었습니다.(%d 요청의) %s에게 전달되었습니다.\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, fuzzy, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -825,7 +825,7 @@ msgstr[1] ""
 "모든 세션의 파일상태: %d가 수락되었습니다.(%d 요청의) %s에게 전달되었습니"
 "다.\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "알 수 없는 파일이 요청되었습니다."
 
@@ -969,12 +969,12 @@ msgid "Client Details"
 msgstr "클라이언트 세부내역"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "낮은아이디"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "높은아이디"
 
@@ -1026,64 +1026,64 @@ msgstr "인증됨"
 msgid "Not Available"
 msgstr "불가능"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "사용자 %s(%u)가 공유파일 목록을 요청합니다. -> 허락됨"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "사용자 %s(%u)가 공유파일 목록을 요청합니다. -> 거부됨"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "사용자 %s(%u)가 공유폴더 목록을 요청합니다. -> 허락함"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "사용자 %s(%u)가 공유폴더 목록을 요청합니다. -> 거부됨"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr "사용자 %s(%u)가 폴더 %s의 공유파일 목록을 요청합니다. -> 허락됨"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr "사용자 %s(%u)가 폴더 %s의 공유파일 목록을 요청합니다. -> 거부됨"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "사용자 %s (%u)는 %s 폴더를 공유하고있습니다."
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "사용자 %s (%u)는 공유폴더를 요청하지 않았습니다."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "사용자 %s (%u)는 %s 폴더의 공유파일 목록을 보냅니다."
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "사용자 %s (%u)는 공유파일 목록 전송을 마쳤습니다."
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "사용자 %s (%u)는 공유파일 목록을 원하지않습니다."
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr "사용자 %s (%u)는 공유파일이나 공유폴더 목록에 접근하는것을 거부합니다."
@@ -1098,7 +1098,7 @@ msgstr "사용자이름"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "파일 이름"
 
@@ -1139,33 +1139,33 @@ msgstr "자동[아님]"
 msgid "Auto [Hi]"
 msgstr "자동[높음]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "매우 낮음"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "낮음"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "보통"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "높음"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "매우높음"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "개방"
 
@@ -1182,12 +1182,12 @@ msgid "Queue Full"
 msgstr "대기열이 가득참"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "대기열에"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "받는중"
 
@@ -1247,7 +1247,7 @@ msgstr "지역 서버"
 msgid "Remote Server"
 msgstr "원격 서버"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1273,7 +1273,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "완료됨"
 
@@ -1314,11 +1314,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "크기"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "전송됨"
 
@@ -1331,17 +1331,17 @@ msgid "Progress"
 msgstr "진척"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "자료"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "우선권"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "상태"
@@ -1368,7 +1368,7 @@ msgstr "선택된파일을 지우시겠습니까?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "선택된파일을 지우시겠습니까?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1376,7 +1376,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "자동"
 
@@ -1428,11 +1428,11 @@ msgstr "모든 의견 보기"
 msgid "Copy magnet URI to clipboard"
 msgstr "magnet URI를 클립보드로 복사"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "반응을 클립보드에 복사"
 
@@ -1448,34 +1448,34 @@ msgstr "분류로 할당"
 msgid "&Open the file"
 msgstr "파일 열기(&O)"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "새이름 넣으세요:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "파일 이름변경"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "내려받기 (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "미리보기"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, fuzzy, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "오류: 외부 재생기를 실행하지 못했습니다."
@@ -1580,28 +1580,28 @@ msgstr "빈암호 때문에 외부연결이 불가능합니다."
 msgid "External connections disabled in config file"
 msgstr "이 환경설정에서 외부연결은 불가능합니다."
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "새로운 외부연결이 승인되었습니다."
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "환경설정의 빈암호로 인해 외부연결이 거부되었습니다."
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "연결중인 클라이언트: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "알수없는 버젼"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1609,7 +1609,7 @@ msgstr ""
 "불확실한 외부연결 버젼 아이디, 이것은 바이너리와 호환되지 않습니다. 동일한 스"
 "냅삿으로부터 코어와 원격을 사용하세요."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1618,175 +1618,175 @@ msgstr ""
 "비정식 CVS 버젼으로부터 릴리즈된 버젼에 연결할수없습니다! *휴우* 있을 수 있었"
 "던 충돌을 막았습니다."
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "유효하지 않은 프로토콜 버젼입니다"
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "프로토콜 버젼 태그 없음"
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "인증에 실패했습니다."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "인증에 실패했습니다."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "유효하지않은 요청, 먼저 인증을 하세요."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "접근 허가되었습니다."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "알 수 없는 클라이언트로부터 메시지를 차단"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "허락되지않은 접속입니다. 연결이 끊깁니다."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "원격 부분파일 명령 실패: 파일해시를 찾을 수 없음: %s "
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "파일해시를 찾을 수 없음: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "이런! 명령코드 처리 오류!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "서버가 추가되지 않음"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "서버가 발견되지 않음: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "제거할 서버의 정의가 필요합니다."
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "검색중입니다. 금방 결과를 다시 가져옵니다."
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "원격 인터페이스로부터 웹검색은 좋지않은 선택입니다."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "그래프가 비어있음."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "클라이언트는 세부 수준이 구성되지 않았습니다."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "이미 종료하는중입니다."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "외부연결: '%s' 링크를 추가합니다."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "유효하지 않은 링크거나 이미 목록에 존재합니다."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "파일을 찾을 수 없습니다."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "유효하지 않은 파일 이름입니다."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "파일이름을 변경할 수 없습니다."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad는 환경설정에서 비활성화되어 있습니다."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "이미 Kad에 연결되었습니다."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Kad에 연결중..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "모든 통신망을 사용할수 없습니다."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Kad로부터 연결이 끊겼습니다."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "유효하지 않은 실행코드(잘못된 프로토콜 버젼?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "알수없는 확장 '%s' ('%s'명령에 대해)\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "알수없는 명령 '%s' \n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1794,7 +1794,7 @@ msgstr ""
 "\n"
 "이 명령은 인수를 가질 수 없습니다.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1802,7 +1802,7 @@ msgstr ""
 "\n"
 "이 명령은 반드시 인수가 있어야 합니다.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1810,7 +1810,7 @@ msgstr ""
 "\n"
 "이 명령은 불완전합니다. 반드시 아래의 확장중 하나를 사용해야 합니다.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1818,11 +1818,11 @@ msgstr ""
 "\n"
 "가능한 확장:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "가능한 명령:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, fuzzy, c-format
 msgid ""
 "\n"
@@ -1833,17 +1833,17 @@ msgstr ""
 "모든 명령은 대소문자를 구분하지 않습니다.\n"
 "<명령어>에 대한 자세한 정보를 얻으려면 'help <명령어>'를 입력하세요.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "응용프로그램에서 나감."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "도움말을 보여줍니다."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1851,7 +1851,7 @@ msgstr ""
 "명령어에 대한 도움말은, 'help <명령어>'를 입력하세요.\n"
 "모든 명령어 목록을 보려면, 'help'를 입력하세요.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1862,46 +1862,46 @@ msgstr ""
 "명령 목록을 위해 %s를 사용합니다.\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "문법 오류!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr "명령 처리에 오류 발생 - 일어나면 안 됩니다! 버그 리포트를 하세요\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "이 명령은 어떤 변수도 필요하지 않습니다."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "이 명령은 반드시 변수가 있어야 합니다."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "유효하지 않은 인수입니다."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "불완전한 명령입니다."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "더 많은 도움말을 위해서는 '%s'를 입력하세요.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "이것은 %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "이것은 %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1909,7 +1909,7 @@ msgstr ""
 "\n"
 "클라이언트 생성중...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1918,7 +1918,7 @@ msgstr ""
 "\n"
 "좋아, 나가는중 %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1932,47 +1932,47 @@ msgstr ""
 "\n"
 "종료중...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "이 도움말을 보여줍니다."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "어뮬이 실행중인 호스트. (기본: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "외부연결을 위한 어뮬 포트. (기본: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "외부연결 암호"
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "파일로부터 환경설정을 읽습니다."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "표준출력으로는 어떤 출력도 하지 않습니다."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "상세하게 - 디버그 메시지도 보여줍니다."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "프로그램 지역정보 (로케일, 언어)를 설정합니다."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "명령줄 설정을 환경설정 파일에 기록합니다."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "어뮬의 설정 파일에 기초하여 설정 파일을 생성합니다."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "프로그램 버전을 출력합니다."
 
@@ -1985,8 +1985,8 @@ msgstr "파일 세부내역"
 msgid "%.1f%% done"
 msgstr "%.2f%% 완료"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2003,7 +2003,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "친구"
 
@@ -2136,32 +2136,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "내려받기 %s"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "서버에 재접속"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2193,7 +2193,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "%s로부터 서버 목록를 내려받지 못함"
@@ -2241,7 +2241,7 @@ msgstr[1] ""
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2258,103 +2258,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "노드 (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "초기적재에 유효하지 않은 IP"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "초기적재에 유효하지 않은 포트"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "모든 항목을 채워주세요."
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "새로운 nodes.dat파일을 내려받으시겠습니까?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr "현재노드는 제거되고 카뎀리아 연결이 다시 시작됩니다."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "계속할까요?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "카뎀리아: 검색어가 너무 짧습니다."
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, fuzzy, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "%u개의 Kad 접속을 읽었음"
 msgstr[1] "%u개의 Kad 접속을 읽었음"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "파일 이름"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2380,71 +2380,76 @@ msgstr "알수없는 버젼"
 msgid "Unable to get error description for error %d"
 msgstr "경고: 외형 파일 '%s'(을)를 읽을 수 없습니다."
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "해시중"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "완료중"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "완료"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "중지됨"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "오류투성이"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "대기중"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "반드시 암호를 설정해야 합니다."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "잘못된 패스워드, MD5 해시가 아닙니다."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "연결 실패"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "외부연결: 서버 응답 불량. 연결이 끊겼습니다."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "성공! 어뮬에 연결 되었습니다 "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "성공! 연결이 되었습니다."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "외부연결 암호"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "동기화 스레드가 시작되었습니다."
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2453,16 +2458,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "닫기"
 
@@ -2470,8 +2475,8 @@ msgstr "닫기"
 msgid "Cut"
 msgstr "자르기"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "복사"
 
@@ -2480,7 +2485,7 @@ msgid "Paste"
 msgstr "붙이기"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "깨끗이"
 
@@ -2490,7 +2495,7 @@ msgstr "모두 선택"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2567,7 +2572,7 @@ msgid "ServerIP: "
 msgstr "서버 IP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "아직 연결되지 않았습니다."
 
@@ -2602,7 +2607,7 @@ msgstr "온라인 서명: 활성화"
 msgid "Online Signature: Disabled"
 msgstr "온라인 서명: 비활성화"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "올려주기 시간: %s"
@@ -2643,7 +2648,7 @@ msgstr "어뮬 숨기기"
 msgid "Show aMule"
 msgstr "어뮬 보이기"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "종료"
 
@@ -2725,7 +2730,7 @@ msgstr "검색"
 msgid "Name:"
 msgstr "이름:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "종류"
 
@@ -2753,38 +2758,38 @@ msgstr "필터링"
 msgid "File Type"
 msgstr "파일 종류"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "어떤"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "압축"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "음악"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD이미지"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "그림"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "프로그램"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "문장"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "동영상"
 
@@ -2805,11 +2810,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2837,7 +2842,7 @@ msgstr "반전 결과"
 msgid "Hide Known Files"
 msgstr "알려진 파일을 숨김"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "시작"
 
@@ -2895,7 +2900,7 @@ msgstr "전체 이름 :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "없음"
 
@@ -2919,7 +2924,7 @@ msgstr "부분파일 상태 :"
 msgid "Last seen complete :"
 msgstr "마지막 부분이 완료 :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "전송"
 
@@ -3005,27 +3010,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "파일 품질"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "선택되지 않은"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "유효하지않은 / 손상된 / 가짜"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "나쁜"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "그저그런"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "좋은"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "아주좋은"
 
@@ -3071,7 +3076,7 @@ msgid "Userhash :"
 msgstr "사용자 해시 :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "추가"
 
@@ -3300,9 +3305,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "탐색"
 
@@ -3388,7 +3393,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr "카뎀리아"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2k"
 
@@ -3506,7 +3511,7 @@ msgstr "원하는 최소한의 디스크공간을 입력하세요."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "희귀한 파일인 경우 10개의 자료 저장 (<20 자료)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "올려주기"
 
@@ -3748,7 +3753,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "외부연결 포트에 UPnP 포트포워딩 활성화"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "암호"
 
@@ -3831,8 +3836,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "이 분류의 색을 선택 (일반적으로 선택된) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "초기화"
 
@@ -4223,88 +4228,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "상세한 디버그-로깅 활성화"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "파일 열기(&O)"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "메시지 분류:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "대기중..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "가져오기 추가"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "선택된 것을 재시도"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "선택된 것을 삭제"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "활성화된 올려주기 :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "공유된 파일을 숨김"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "보기 필터 선택"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "활성화된 올려주기"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "클라이언트 보기"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "목록 다시읽기"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "공유된 파일을 다시 읽어들임"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "보내기"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "지정된 메시지를 보냅니다."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "이 채팅세션을 닫습니다."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "서버 혹은 Kad에 연결"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "공유 파일"
 
@@ -4313,137 +4323,137 @@ msgstr "공유 파일"
 msgid "Disabled [%s]"
 msgstr "비활성화 [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 #, fuzzy
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "bytes"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 #, fuzzy
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "bytes/s"
 msgstr[1] "bytes/s"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "초"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "분"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "시"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "일"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "전부"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "다른 모두"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "내려받음"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "멈춤"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "비디오"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "압축"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "문자"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "활성화"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "가져오는중 %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "임시 폴더를 읽는중"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "내려받은 정보 파일로부터 기본적인 정보를 재생"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "대상 파일을 생성"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "오래된 내려받은 파일로부터 데이터를 읽어들임 (%u (%u의))"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "데이터 블럭을 새 내려받은 파일로 저장 (%u (%u의))"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "내려받은 파일 정보 자료를 재생"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "내려받기에 추가하고 새 부분파일을 저장"
 
@@ -4459,23 +4469,23 @@ msgstr "상태"
 msgid "Filehash"
 msgstr "파일 해시"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s(디스크: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr "임시 내려받기를 위해 검색할 폴더를 선택하세요! (하위 폴더 포함)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "성공적으로 가져온 내려받기 파일을 삭제하겠습니까?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "자료를 삭제하겠습니까?"
 
@@ -4588,7 +4598,7 @@ msgstr "부분파일 %s(%s)은 빈 핵심파일을 가지고 있습니다."
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "부분파일의 핵심파일(%s - %s)을 읽는중 오류: %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, fuzzy, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4603,271 +4613,271 @@ msgstr[1] ""
 "손상된 부분(%d)이 발견되었습니다. (%d부분 파일 %s에 있는) - 파일해시결과 |%"
 "s| 파일해시 |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "완료된 부분(%i)이 발견되었습니다.  (%s에 있는)"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "%s의 재해시가 완료되었습니다."
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "내려받기 완료: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "파일 삭제: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "경고: 충분한 디스크공간이 없습니다! 파일 정지: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "%i 부분 내려받기는 파일이 손상되었습니다: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: 손상된 부분 %i를 복구했습니다. (%s의) -> 저장된 바이트: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "기본 설정"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr ""
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "아랍어"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "에스토니아어"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "바스크어"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "불가리아어"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "카탈로니아어"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "중국어(간체)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "중국어(번체)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "크로티아어"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr ""
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "덴마크어"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "네델란드어"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "영어(영국)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "에스토니아어"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "필란드어"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "프랑스어"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "갈리시아어"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "독일어"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr ""
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr ""
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "헝가리어"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "이탈리아어"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "이탈리아어(스위스)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr ""
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "한국어"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr ""
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr ""
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "폴란드어"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "포르투갈어"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "포르투갈어(브라질)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "러시아어"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "슬로베니아어"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "스페인어"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr ""
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "터키어"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "언어"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "유효하지 않음"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "서버 UDP 소켓이 TCP+3이 되기위해서 TCP 포트가 65532보다 커서는 안됩니다."
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "기본 포트가 사용될 것입니다.(%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "연결"
 
@@ -4875,7 +4885,7 @@ msgstr "연결"
 msgid "Directories"
 msgstr "폴더"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "서버"
 
@@ -4926,7 +4936,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4942,26 +4952,26 @@ msgstr ""
 "이 설정들을 조정하지 않아도\n"
 "어뮬은 잘 동작할 것입니다."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "연결하고 있는 프록시 타입"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -4969,36 +4979,41 @@ msgstr ""
 "변경사항을 활성화 하기위해 어뮬을 재시작해야 합니다:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP 포트가 변경되었습니다.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP 포트가 변경되었습니다.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "외부연결 끊겼습니다."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "새로운 외부연결이 승인되었습니다."
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "외부연결 끊겼습니다."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "프로토콜 난독화"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5006,26 +5021,26 @@ msgstr ""
 "외부연결이 횔성화되어 있지만, 암호를 설정하지 않았습니다.\n"
 "외부연결은 유효한 암호가 설정되기전까지 활성화되지 않습니다."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- 언어가 변경되었습니다.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- 임시 폴더가 변경되었습니다.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "모든 통신망을 사용할수 없습니다."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5033,7 +5048,7 @@ msgstr ""
 "UDP 포트가 비활성화되어 있으면 Kad는 시작하지 않을 것입니다.\n"
 "UDP 포트를 활성화시키거나 Kad를 비활성화시키십시오."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5043,7 +5058,7 @@ msgstr ""
 "지금 바로 어뮬을 재시작해야 합니다.\n"
 "만일 재시작하지 않는다면, 나쁜 일이 일어나도 불평하지 마십시오.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5053,41 +5068,41 @@ msgstr ""
 "적어도 한개의 유효한 server.met파일을 가르키는 URL을 적으세요.\n"
 "URL을 입력하려면 채크박스 옆의 \"목록\"버튼을 클릭하세요."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "임시 파일"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "내려받은 파일"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "온라인 서명"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "%s하기 위한 폴더를 선택하세요."
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "비디오재생을 위한 브라우즈"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "브라우저 선택"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "실행할수 있는 %s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5095,77 +5110,77 @@ msgstr ""
 "server.met파일을 내려받을 URL을 추가하세요.\n"
 "각 행에 오직 하나의 URL을 넣으세요."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, fuzzy, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "갱신 지연: %d 초"
 msgstr[1] "갱신 지연: %d 초"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, fuzzy, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "평균 그래프 시간: %d 분"
 msgstr[1] "평균 그래프 시간: %d 분"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "연결 그래프 크기: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, fuzzy, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "파일 버퍼 크기: %d 바이트"
 msgstr[1] "파일 버퍼 크기: %d 바이트"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, fuzzy, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "올려주기 대기열 크기: %d 클라이언트"
 msgstr[1] "올려주기 대기열 크기: %d 클라이언트"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, fuzzy, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "서버 연결 갱신 주기: %d 분"
 msgstr[1] "서버 연결 갱신 주기: %d 분"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "서버 연결 갱신 주기: 비활성화"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "비활성화"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "`%s' 사건에 명령을 실행"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "코어에 명령 실행 활성화"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "코어 명령어:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "GUI에 명령 실행 활성화"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "GUI 명령어:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "다음 변수들은 교체됩니다.:"
 
@@ -5193,7 +5208,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Kad 검색 시도 중에 예기치 못한 에러: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "파일아이디"
 
@@ -5304,7 +5319,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "%s(%s:%i)에 접속을 시도하는데 시간이 지났습니다."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5332,99 +5347,99 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Server.met 파일이 손상됨, 유효하지 않는 버젼정보를 발견함: 0x%x, size %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, fuzzy, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "server.met에서 %i개의 서버가 발견됨"
 msgstr[1] "server.met에서 %i개의 서버가 발견됨"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, fuzzy, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d 서버가 추가됨"
 msgstr[1] "%d 서버가 추가됨"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "known.met 파일을 읽는동안 입출력 오류: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "서버 추가되지 않음: [%s:%d]은 유효한 포트가 정해지지 않았습니다."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "서버 추가되지 않음: [%s:%d]의 IP가 유효하지 않거나 차단되었습니다."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr "서버 추가되지 않음: IP:포트[%s:%d]와 같은 서버가 목록에 있습니다."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "서버 추가됨: [%s:%d]서버 '%s'이름을 사용"
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr "삭제하려고하는 서버에 접속되어있습니다. 부디 먼저 연결을 끊으세요."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "'%s'을(를) 열지 못했습니다."
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "server.met을 저장하지 못함!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "유효하지 않는 주소입니다."
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "%s로부터 서버 목록를 내려받지 못함"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "adrresses.dat에 유효한 server.met 자동갱신 주소가 없습니다."
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "%s로부터 서버 목록를 내려받지 못함"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5459,7 +5474,7 @@ msgid "Static"
 msgstr "정적"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "버젼"
 
@@ -5485,8 +5500,8 @@ msgstr "정적 서버 %s를 삭제하시겠습니까?"
 msgid "Servers (%i)"
 msgstr "서버 (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "서버"
 
@@ -5550,82 +5565,82 @@ msgstr "선택된 서버를 삭제하시겠습니까?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "선택된 서버를 삭제하시겠습니까?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "새로운 클라이어트 아이디는 %u임"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr ""
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\t이러한 대부분의 이유는 방화벽이나 라우터때문입니다."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\t더 많은 정보는 http://wiki.amule.org을 참조하세요."
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "알수없는 서버 정보를 받았습니다! - 매우 짧음"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, fuzzy, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "새로운 서버 %d개를 받음"
 msgstr[1] "새로운 서버 %d개를 받음"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "서버목록 저장이 완료되었습니다."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "서버가 마지막 명령을 거부함"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "가짜 패킷을 서버로부터 받았습니다: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "서버로부터 패킷을 처리하는동안 조치할수 없는 오류가 생겼습니다: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "%s에 연결하기 위한 DNS 해석 쓰레드를 만들수 없음"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "서버 IP %s(%s)가 차단되었습니다. 연결할수 없습니다."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "프로토콜 난독화를 사용합니다."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "%s (%s - %s:%i) %s에 연결합니다."
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "%s 서버에 대한 DNS를 해석 할 수 없음: 연결할수 없습니다!"
@@ -5815,84 +5830,89 @@ msgstr "파일 이름"
 msgid "Shares File List"
 msgstr "공유 파일"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "요청"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "허락된 요청"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "전송된 크기"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "공유 비율"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "획득한 부분"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "완료된 자료"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "폴더 경로"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "의견/등급 추가"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "의견/등급 편집"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "이름변경"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "컬렉션내의 파일을 전송목록에 추가"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "magnet URI를 클립보드로 복사(&U)"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "ED2k 링크를 클립보드에 복사(&AICH info)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "유효한 자료 링크를 만들기 위해서 높은아이디가 필요합니다."
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "공유된 파일(%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[부분 파일]"
 
@@ -5901,235 +5921,235 @@ msgstr "[부분 파일]"
 msgid "Remote File Name"
 msgstr "파일 이름"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "올려준 데이터 (세션 (전체)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "전체 추가자원 (패킷): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "파일 요청 추가자원 (패킷): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "자료 교환 추가자원 (패킷): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "서버 추가자원 (패킷): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kad 추가자원(패킷): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "활성화된 올려주기: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "대기중인 올려주기: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "성공적인 전체 올려주기 세션 : %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "실패한 전체 올려주기 세션: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "평균 올려주기 시간: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "내려받은 데이터 (세션 (전체)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "발견된 자료: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "활성화된 내려받기 (큰 부분): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "세션 올려주기:내려받기 비율 (전체): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "재접속: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "첫 전송으로부터 시간: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "다음으로부터 서버에 연결됨: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "활성화된 연결 (평가): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "최대 연결 제한 접근함: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "평균 연결 (평가): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "최대 연결 (평가): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "클라이언트"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "알수없는 크기"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "차단됨"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "퇴장됨"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "전체: %i 알려진: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "동작중인 서버: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "실패한 서버: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "전체: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "삭제된 서버: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "차단된 서버: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "동작중인 서버의 사용자: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "동작중인 서버의 파일: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "전체 사용자: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "전체 파일: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "서버 할당: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "공유된 파일의 수: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "공유파일의 전체 크기: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "운영체제"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "받은게 없음"
 
@@ -6188,7 +6208,7 @@ msgstr "유효한 숫자가 아님\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "유효한 해시가 아님 (길이는 정확히 32자여야 함)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "알 수 없는 오류로 요청이 실패함."
 
@@ -6242,13 +6262,13 @@ msgstr "%s %s %s에 연결됨"
 msgid "Now connecting"
 msgstr "지금 연결중"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "방화벽됨"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "확인"
 
@@ -6680,21 +6700,21 @@ msgid ""
 "Use '%s' instead.\n"
 msgstr ""
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr ""
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "'%s'의 낡은 AICH 해시셋을 64b로 '%s'에 변환합니다."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "경고: 파일 이름 '%s'는 유효하지 않으며 '%s'로 변경되었습니다."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "경고: 파일 이름 '%s'는 이미 존재하며, 새 파일은 '%s'로 변경되었습니다."
@@ -6765,7 +6785,7 @@ msgstr "`%s' 명령을 실행하는데 실패했습니다. (`%s' 사건에대해
 msgid "Download completed"
 msgstr ""
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr ""
 
@@ -6785,80 +6805,80 @@ msgstr ""
 msgid "Cumulative download activity time."
 msgstr ""
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr ""
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr ""
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr ""
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr ""
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "파일숫자 %u 처리: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "부분 해시를 요청했습니다. (오직 파일크기가 9.5 MB 보다 클때 사용)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> 존재하는 파일이 없음!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "환영합니다!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "설정값 입력"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "파일을 해시"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "이 파일의 추가주소를 더합니다."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "삭제"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "부분해시의 링크를 생성합니다."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6866,81 +6886,81 @@ msgstr ""
 "링크의 크기를 증가시키는 대신 새 파일 및 희귀한 파일을 빠르게 퍼지는 데에 도"
 "움을 줍니다."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "md4 파일 해시"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "저장"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "클립보드로 복사"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "aLinkCreator에 대하여"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "지금 복사할것은 아무것도 없습니다!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "열수 없음"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "제발, 파일이름을 비우지 마세요."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "지금 저장한것은 없습니다!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6952,159 +6972,163 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "해시중..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 #, fuzzy
 msgid "Cancelled !"
 msgstr "취소됨!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "%.2f 초만에 완료"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "이미 이 주소가 추가되어 있습니다!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "주소를 비우지 마세요."
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "%s를 열수없음."
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i 일 %i 시간 %i 분 %i 초"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02u일 %02u시 %02u분 %02u초"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02u시 %02u분 %02u초"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02u분 %02u초"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02u초"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, 어뮬 온라인 통계"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "wxCas 현재 실행시 최대 내려받기 속도"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "wxCas 이전 실행시부터 절대적 최대 내려받기 속도"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "시스템"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "자동갱신 멈춤"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "온라인 정적그림을 저장"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "온라인 정적그림을 프린트"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "환경 설정"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "wxCas에 대하여"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "자동갱신을 시작"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "자동갱신을 멈춤"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "자동갱신이 시작됨"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "통계 이미지를 저장"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "어뮬 온라인 통계"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7112,11 +7136,11 @@ msgstr ""
 "프린트하는데 문제가 있습니다.\n"
 "혹시 현재 프린터가 올바로 설정되지 않았나요?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "프린트함"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7134,325 +7158,325 @@ msgstr ""
 "\n"
 "GPL로 배포합니다."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "어어, 어뮬이 실행중이 아닙니다..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "어뮬은 실행중입니다."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "어뮬은 실행중이나 연결이 끊겨 있습니다."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "어뮬은 연결중..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "어어, 어뮬의 상태는 알수없음..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "어뮬 "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " 위해 실행되고있는 "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " 은 멈추어져 있습니다."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " 은 연결되지 않았습니다."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " 은 연결중..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " 무엇인가 이상하게 동작하고 있음, 확인 요망!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " 는 다음으로 연결중: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "끔"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr "켜졌습니다."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 #, fuzzy
 msgid " with "
 msgstr "] with "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "전체 내려받기: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", 올려주기: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "내려받기 세션: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "내려받기: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr "올려주기, kB/s: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 #, fuzzy
 msgid " kB/s"
 msgstr "kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "공유함: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr "대기열에있는 파일, 클라이언트: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "시간:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr "켬"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "시스템 부하 평균 (1-5-15 분): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "시스템 연속 작동 시간: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "amulesig.dat 파일을 포함한 폴더"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "amulesig.dat 파일이 있는 폴더를 이곳에 입력하세요."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "갱신율 초당 간격"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "매회 갱신할 때 통계 이미지를 생성합니다."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "통계 이미지를 생성하는것을 원하는 장소 폴더를 이곳에 입력하세요."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "FTP 서버의 통계 이미지를 정기적으로 올려줍니다."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP Url"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP 경로"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "FTP 서버의 URL을 이곳에 입력하세요."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "FTP 서버에 통계 이미지가 위치할 폴더를 이곳에 입력하세요."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "사용자"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "FTP 서버로 로그인하기 위한 사용자이름을 이곳에 입력하세요."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "FTP 서버로 로그인하기 위한 암호를 이곳에 입력하세요."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP 갱신율 분당 간격"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "유효합니다"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "서명 파일이 있는 폴더"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "통계 이미지를 생성하는곳의 폴더"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "템플릿<str>을 읽음"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP 포트"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "gzip 압축 사용"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "손님 접근 허가"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "손님 접근 금지"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "어뮬 설정 파일 경로. DO NOT USE DIRECTLY!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "PHP 해석자를 (권장되지 않는) 사용않함"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "각 요청의 PHP 페이지를 재컴파일함"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "어뮬 웹 서버"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "다음과 같은 오류로 요청 실패함: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "인덱스 파일을 찾을 수 없음:"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "세션이 만료됨 - 로그인 요청중\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "세션 확인, 로그인 됨\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "세션 확인, 로그인 안됨\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "열린 세션 없음 - 로그인을 요청할 것임\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "세션이 생성됨 - 로그인 요청중\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "요청 처리중 [원본]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "암호를 검사중\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "암호 해시가 유효하지 않음\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "암호 맞음\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "암호 틀림\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "암호를 입력하지 않았습니다. 빈암호는 사용할수 없습니다.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "로그아웃이 요청됨\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "요청 처리중[redirected]: "
 
@@ -7613,10 +7637,6 @@ msgstr "요청 처리중[redirected]: "
 #~ msgstr "전체 사용자: %s | 전체 파일: %s"
 
 #, fuzzy
-#~ msgid "HTTP download thread started"
-#~ msgstr "동기화 스레드가 시작되었습니다."
-
-#, fuzzy
 #~ msgid "Download size: %i"
 #~ msgstr "내려받기 (%i)"
 
@@ -7952,9 +7972,6 @@ msgstr "요청 처리중[redirected]: "
 #~ msgid "Copy ED2k link to clipboard (Hostname) (With &Crypt options)"
 #~ msgstr "ED2k 링크를 클립보드로 복사 (Hostname) (With &Crypt options)"
 
-#~ msgid "Copy ED2k link to clipboard (&AICH info)"
-#~ msgstr "ED2k 링크를 클립보드에 복사(&AICH info)"
-
 #~ msgid "Warning"
 #~ msgstr "경고"
 
diff --git a/po/lt.po b/po/lt.po
index d273326..66738da 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: lt\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-06-08 10:44+0100\n"
 "Last-Translator: Dovydas Sankauskas <laisve at gmail.com>\n"
 "Language-Team: Lithuanian <komp_lt at konf.lt>\n"
@@ -38,7 +38,7 @@ msgstr "Nurodyta naudotojo maišos f-ja klaidinga!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Nepavyko atverti %s (%s)"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -46,58 +46,58 @@ msgstr ""
 "DĖMESIO: jei jūsų ID yra žemas, negalite įdėti savęs prie eD2k nuorodos "
 "šaltinių."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 #, fuzzy
 msgid "Now, exiting main app..."
 msgstr ""
 "\n"
 "Darbas baigiamas %s...\n"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Nepavyko"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 #, fuzzy
 msgid "aMule shutdown completed."
 msgstr "Atsiuntimas baigtas"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Baigimo patvirtinimas"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "Naujas išorinis ryšys priimtas"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "DĖMESIO"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -105,13 +105,13 @@ msgstr ""
 "Pasikeitus parinktims aplinkos kalba buvo pakeista į sistemoje numatytą "
 "kalbą."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Informacija"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -119,16 +119,16 @@ msgstr ""
 "Serverių sąraše nėra nei vieno serverio.\n"
 "Ar pageidaujate, kad aMule dabar atsiųstų naują sąrašą?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Serverių sąrašo siuntimas"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "žiniatinklio serverio pid yra %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -139,23 +139,23 @@ msgstr ""
 "arba sukompiliuokite aMule su --enable-webserver parinktimi ir paleiskite "
 "„make install“."
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "KLAIDA"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Nepavyko susieti prievadų su nurodytu adresu: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Prievadas %u neprieinamas. Gavote žemą ID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -172,11 +172,11 @@ msgstr ""
 "Patikrinkite sistemines tinklo parinktis ir įsitikinkite, kad nurodytas "
 "prievadas atviras tiek išsiuntimui, tiek priėmimui."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Nepavyko sukurti keičiamo parašo failo"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Nepavyko sukurti keičiamo aMule parašo failo"
 
@@ -227,134 +227,134 @@ msgstr ""
 "Neteisingai nurodėte keičiamo parašo aplanką!\n"
 "Keičiamas parašas bus išjungtas tol, kol pakeisite parinktis."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "Serverio pavadinimas:"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Nepavyko paskirti disko vietos failui „%s“: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "KLAIDA: nepavyko atverti žurnalo failo"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "DĖMESIO: žurnalas tuščias. Kažkas čia ne taip."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Žurnalas išvalytas"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Serverio pranešimas: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Nepavyko atsiųsti mazgų sąrašo."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Nepavyko atverti atsiųstos versijos tikrinimo failo"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Sugadintas versijos tikrinimo failas"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Naudojate pasenusią aMule versiją!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Ši aMule versija yra %i.%i.%i, o naujausia versija yra %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Naujausią versiją bet kada galima atsisiųsti iš http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "DĖMESIO: ši aMule versija yra pasenusi: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Naudojate naują aMule versiją."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Nepavyko atsiųsti versijos tikrinimo failo"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Naudotojai: %s | Failai: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Naudotojai: eD2k: %s Kad: %s | Failai: eD2k: %s Kad: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Neparinktas joks tinklas"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "žemas ID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "aukštas ID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Prisijungta prie %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Jungiamasi prie %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Atsijungta nuo eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kademlia paleista."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kademlia sustabdyta."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Prisijungta prie Kademlia"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Prisijungta prie Kademlia (už ugniasienės)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Atsijungta nuo Kademlia"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -362,11 +362,11 @@ msgstr ""
 "Nepavyks prisijungti prie Kademlia tinklo, jei parinktyse yra išjungtas UDP "
 "prievadas."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kademlia tinklas išjungtas parinktyse, ryšys nebus užmezgamas."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 #, fuzzy
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
@@ -379,7 +379,7 @@ msgstr ""
 "arba paleiskite amuled su parametru --ec-config, arba faile ~/.aMule/amule."
 "conf nustatykite parametro „AcceptExternalConnections“ reikšmę lygią 1."
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -388,19 +388,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "KLAIDA: %s"
@@ -479,9 +479,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Žinutė"
 
@@ -489,7 +489,7 @@ msgstr "Žinutė"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Jungiamasi"
 
@@ -523,7 +523,7 @@ msgstr "Kad: išjungta"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Atšaukti"
 
@@ -540,7 +540,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Atsijungti nuo pasirinktų tinklų"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Prisijungti"
 
@@ -581,7 +581,7 @@ msgstr "Baigimo patvirtinimas"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -596,81 +596,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "DĖMESIO: nepavyko atverti temos failo „%s“ skaitymui"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Tinklas"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Tinklo langas"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Paieška"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Paieškos langas"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Siuntimai"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Atsiunčiama"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Dalinami failai"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Dalinamų failų langas"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Žinutės"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Žinučių langas"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistika"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Statistikos grafikų langas"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Parinktys"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Parinkčių langas"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Įkelti"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Dalinai atsiųstų failų įkėlimo įrankis"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Apie"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Apie/pagalba"
 
@@ -690,7 +690,7 @@ msgstr "Jokio tinklo"
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -703,109 +703,109 @@ msgstr "KRITINĖ KLAIDA: nepavyko sukurti laiko skaitliuko"
 msgid "Connect to remote amule"
 msgstr "Prisijungti prie nutolusio aMule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "KRITINĖ KLAIDA: nepavyko sukurti laiko skaitliuko"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 #, fuzzy
 msgid "Going to event loop..."
 msgstr "Bandoma atstatyti failo informaciją..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Jungiamasi"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Prisijungti nepavyko"
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Viskas"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Nežinoma"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Nepavyko gauti dalinamų failų iš vartotojo „%s“"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (neteisinga eMule versija %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (neteisinga eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (neteisinga eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (paremta eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Slapyvardis: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Paprašė: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -817,7 +817,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Šio seanso failų statistika: priimta %d iš %d prašymų, %s persiųsta\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -829,7 +829,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Visų seansų failų statistika: priimta %d iš %d prašymų, %s persiųsta\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Paprašė nežinomo failo"
 
@@ -977,12 +977,12 @@ msgid "Client Details"
 msgstr "Kliento savybės"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "Žemas ID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "Aukštas ID"
 
@@ -1034,67 +1034,67 @@ msgstr "Praėjo patikrinimą"
 msgid "Not Available"
 msgstr "Nepasiekiama"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Naudotojas %s (%u) paprašė dalinamų failų sąrašo –> suteikta"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Naudotojas %s (%u) paprašė dalinamų failų sąrašo –> atmesta"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Naudotojas %s (%u) paprašė dalinamų aplankų sąrašo –> suteikta"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Naudotojas %s (%u) paprašė dalinamų aplankų sąrašo –> atmesta"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr ""
 "Naudotojas %s (%u) paprašė dalinamų failų iš aplanko %s sąrašo –> suteikta"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr ""
 "Naudotojas %s (%u) paprašė dalinamų failų iš aplanko %s sąrašo –> atmesta"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Naudotojas %s (%u) dalinasi aplanku %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Naudotojas %s (%u) atsiuntė neprašytus dalinamų failų aplankus"
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "Naudotojas %s (%u) atsiuntė neprašytą dalinamų failų sąrašą aplankui %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Naudotojas %s (%u) baigė siųsti dalinamų failų sąrašą"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Naudotojas %s (%u) atsiuntė neprašytą dalinamų failų sąrašą"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1110,7 +1110,7 @@ msgstr "Vardas"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Failo pavadinimas"
 
@@ -1152,33 +1152,33 @@ msgstr "Automatiškai (normalus)"
 msgid "Auto [Hi]"
 msgstr "Automatiškai (aukštas)"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Labai žemas"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Žemas"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normalus"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Aukštas"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Labai aukštas"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Leidinys"
 
@@ -1195,12 +1195,12 @@ msgid "Queue Full"
 msgstr "Eilė pilna"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Eilėje"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Atsiunčiama"
 
@@ -1260,7 +1260,7 @@ msgstr "Vietinis serveris"
 msgid "Remote Server"
 msgstr "Nutolęs serveris"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kademlia"
@@ -1286,7 +1286,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Baigtos"
 
@@ -1327,11 +1327,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Dydis"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Persiųsta"
 
@@ -1344,17 +1344,17 @@ msgid "Progress"
 msgstr "Eiga"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Šaltiniai"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioritetas"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Būsena"
@@ -1379,7 +1379,7 @@ msgstr "Ar tikrai norite pašalinti pažymėtą failą?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Ar tikrai norite pašalinti pažymėtus failus?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1389,7 +1389,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automatiškas"
 
@@ -1441,11 +1441,11 @@ msgstr "Rodyti komentarus"
 msgid "Copy magnet URI to clipboard"
 msgstr "Kopijuoti magneto URI į talpyklę"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Kopijuoti eD2k &nuorodą į talpyklę"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Kopijuoti atsakymą į talpyklę"
 
@@ -1461,24 +1461,24 @@ msgstr "Priskirti į kategoriją"
 msgid "&Open the file"
 msgstr "&Atverti failą"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Įrašykite naują failo pavadinimą:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Pervadinti failą"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Atsiuntimai (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1486,11 +1486,11 @@ msgstr ""
 "Norėdami nebematyti šio įspėjimo kiekvienos peržiūros metu,\n"
 "parinktyse nurodykite pageidaujamą video grotuvą (numatytas yra mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Failo peržiūra"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "KLAIDA: nepavyko paleisti išorinio vaizdo grotuvo! Komanda: „%s“"
@@ -1599,29 +1599,29 @@ msgstr "Išoriniai ryšiai atjungti, nes slaptažodis tuščias!"
 msgid "External connections disabled in config file"
 msgstr "Išoriniai ryšiai atjungti parinkčių faile"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Naujas išorinis ryšys priimtas"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "KLAIDA: nepavyko priimti išorinio ryšio"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Išorinis ryšys nepriimtas, nes parinktyse nurodytas tuščias slaptažodis!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Jungiasi klientas: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Nežinoma versija"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1630,7 +1630,7 @@ msgstr ""
 "Programos branduolį ir nutolusią aplinką naudokite kompiliuotą iš tos pačios "
 "pradinio kodo versijos."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1639,176 +1639,176 @@ msgstr ""
 "Nepavyks prie galutinės leidimo versijos prisijungti iš SVN versijos! Ech, "
 "buvo išvengta galimo programos lūžimo"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Neteisinga protokolo versija."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Trūksta protokolo versijos žymės."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "Patvirtinimas nepavyko."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "Patvirtinimas nepavyko."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "Klaidingas prašymas, iš pradžių turite būti atpažinti."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Prieiga suteikta."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Filtruoti žinutes nuo nežinomų klientų"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Bandymas gauti prieigą. Prieiga nesuteikta, ryšys nutrauktas."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Nutolusio dalinio failo komanda nepavyko. Failo maišos funkcija nerasta: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Failo maišos funkcija nerasta: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "Oi! OpCode vykdymo klaida!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Serveris neįdėtas"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "serveris nerastas: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "Nurodykite serverį, kurį pašalinti"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k išjungtas parinktyse."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Ieškoma. Tuoj bus gauti rezultatai!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "www paieška iš nutolusios programos neturi prasmės."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Grafikui nėra duomenų."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Šis klientas nesuderintas pateikti tiek detalių."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Išorinis ryšys: gautas prašymas išjungti"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Jau išsijungiama."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Išoriniai ryšiai: įdedama nuoroda %s."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Klaidinga nuoroda arba failas sąraše jau yra."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Failas nerastas."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Klaidingas failo pavadinimas."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Nepavyko pervadinti failo."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kademlia išjungta parinktyse."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Prie eD2k jau prisijungta."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Jungiamasi prie eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Prie Kademlia jau prisijungta."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Jungiamsi prie Kademlia..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Visi tinklai išjungti."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Atsijungta nuo eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Atsijungta nuo Kademlia."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Išorinis ryšys: gautas klaidingas opcode: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Klaidingas opcode (bloga protokolo versija?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Nežinomas plėtinys %s (komandai %s).\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Nežinoma komanda %s.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1816,7 +1816,7 @@ msgstr ""
 "\n"
 "Ši komanda neturi kintamųjų.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1824,7 +1824,7 @@ msgstr ""
 "\n"
 "Šiai komandai reikia kintamojo.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1832,7 +1832,7 @@ msgstr ""
 "\n"
 "Ši komanda nebaigta, naudokite vieną iš plėtinių žemiau.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1840,11 +1840,11 @@ msgstr ""
 "\n"
 "Galimi plėtiniai:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Galimos komandos:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1855,17 +1855,17 @@ msgstr ""
 "Visoms komandoms svarbu raidžių dydis.\n"
 "Įrašę „%s <komanda>“ gausite išsamią informaciją apie <komandą>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Baigti programos darbą."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Rodyti pagalbą."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1873,7 +1873,7 @@ msgstr ""
 "Įrašę „help <komanda>“ gausite išsamią informaciją apie <komandą>.\n"
 "Įrašę „help“ gausite pilną komandų sąrašą.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1884,48 +1884,48 @@ msgstr ""
 "Įrašę „%s“ gausite komandų sąrašą\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Sintaksės klaida!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Apdorojant komandą įvyko klaida! To neturėjo niekada atsitikti! Prašome "
 "pranešti apie klaidą\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Ši komanda negali turėti parametrų."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Ši komanda privalo turėti parametrą."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Klaidingas kintamasis."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Komanda neužbaigta."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Įrašę „%s“ gausite išsamesnę pagalbą.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Tai %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Tai %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1933,7 +1933,7 @@ msgstr ""
 "\n"
 "Kuriamas klientas...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1942,7 +1942,7 @@ msgstr ""
 "\n"
 "Darbas baigiamas %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1956,47 +1956,47 @@ msgstr ""
 "\n"
 "Darbas baigiamas...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Rodyti šį pagalbos tekstą."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Mazgas, kuriame paleista aMule. Numatyta: localhost"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "aMule išorinių ryšių prievadas. Numatyta: 4712"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Išorinių ryšių slaptažodis."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Nuskaityti parinktis iš failo."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Nepateikti išvesties į stdout įrenginį."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Rodyti išsamius pranešimus, negi klaidų taisymo pranešimus."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Nurodyti programos kalbą."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Komandų eilutės parinktis įrašyti į parinkčių failą."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Sukurti parinkčių failą pagal aMule parinkčių failą."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Atspausdinti programos versiją."
 
@@ -2009,8 +2009,8 @@ msgstr "Failo savybės"
 msgid "%.1f%% done"
 msgstr "%.2f%% baigta"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2027,7 +2027,7 @@ msgstr "Nepavyko atverti draugų sąrašo failo „emfriends.met“ rašymui!"
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Draugai"
 
@@ -2158,32 +2158,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Atsiųsta"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Prisijungti prie serverio iš naujo"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2215,7 +2215,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Nepavyko iš %s atsiųsti serverių sąrašo"
@@ -2262,7 +2262,7 @@ msgstr[2] "%u klaidingų įrašų neįkelta."
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2279,54 +2279,54 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Mazgai (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Klaidingas inicializavimo IP"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Klaidingas inicializavimo prievadas"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Prašome užpildyti visus privalomus laukus"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Ar tikrai norite atsisiųsti naują nodes.dat failą?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Atsiuntus naują node.dat failą bus pašalinti dabartiniai mazgai ir bus iš "
 "naujo prisijungta prie Kademlia tinklo."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Tęsti?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: ieškomas žodis pernelyg trumpas"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
@@ -2334,12 +2334,12 @@ msgstr[0] "Nuskaitytas %u Kad kontaktas"
 msgstr[1] "Nuskaityti %u Kad kontaktai"
 msgstr[2] "Nuskaityta %u Kad kontaktų"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
@@ -2347,7 +2347,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
@@ -2355,32 +2355,32 @@ msgstr[0] "Įrašytas %d Kad kantaktas"
 msgstr[1] "Įrašyti %d Kad kantaktai"
 msgstr[2] "Įrašyta %d Kad kantaktų"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Failo pavadinimas"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Failo dydis"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Platinimo santykis"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Išsiųsta"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Paprašyta"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Priimta"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Pilni šaltiniai"
 
@@ -2406,71 +2406,76 @@ msgstr "Nežinoma versija"
 msgid "Unable to get error description for error %d"
 msgstr "DĖMESIO: nepavyko atverti temos failo „%s“ skaitymui"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Vykdoma maiša"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Patvirtinama"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Baigta"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pristabdyta"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Klaidinga"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Laukiama"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Turite įrašyti netuščią slaptažodį."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Klaidingas slaptažodis, ne MD5 maiša!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Ryšio klaida"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Nepavyko užmegzti išorinio ryšio. Gautas tuščias atsakymas."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Išorinis ryšys: neteisingas atsakymas iš serverio. Ryšys nutrauktas."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Pavyko! Užmegztas ryšys su aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Pavyko! Ryšys užmegztas."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Išorinis ryšys: prieiga nesuteikta"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Išorinis ryšys: prieiga nesuteikta"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Automatinis atnaujinimas paleistas"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2479,16 +2484,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr "KLAIDA: nepavyko klausytis TCP prievado."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "KLAIDA: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "DĖMESIO: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Užverti"
 
@@ -2496,8 +2501,8 @@ msgstr "Užverti"
 msgid "Cut"
 msgstr "Iškirpti"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopijuoti"
 
@@ -2506,7 +2511,7 @@ msgid "Paste"
 msgstr "Įterpti"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Išvalyti"
 
@@ -2516,7 +2521,7 @@ msgstr "Pažymėti viską"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2593,7 +2598,7 @@ msgid "ServerIP: "
 msgstr "Serverio IP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Neprisijungta"
 
@@ -2628,7 +2633,7 @@ msgstr "Keičiamas parašas: įjungta"
 msgid "Online Signature: Disabled"
 msgstr "Keičiamas parašas: išjungta"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Seanso trukmė: %s"
@@ -2669,7 +2674,7 @@ msgstr "Slėpti aMule"
 msgid "Show aMule"
 msgstr "Rodyti aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Baigti"
 
@@ -2753,7 +2758,7 @@ msgstr "Paieška"
 msgid "Name:"
 msgstr "Pavadinimas:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tipas"
 
@@ -2781,38 +2786,38 @@ msgstr "Filtrai"
 msgid "File Type"
 msgstr "Failo tipas"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Bet kas"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Supakuoti failai"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Garso failai"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD atvaizdai"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Paveiksliukai"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programos"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Teksto failai"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Vaizdo failai"
 
@@ -2833,11 +2838,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2865,7 +2870,7 @@ msgstr "Apversti filtrą"
 msgid "Hide Known Files"
 msgstr "Slėpti žinomus failus"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Pradėti"
 
@@ -2924,7 +2929,7 @@ msgstr "Pilnas pavadinimas:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "Nežinoma"
 
@@ -2948,7 +2953,7 @@ msgstr "Dalinio failo būsena:"
 msgid "Last seen complete :"
 msgstr "Paskutinį kartą matytas pilnas:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Siuntimas"
 
@@ -3034,27 +3039,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Failo kokybė"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Nevertinta"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Klaidinga/sugadinta"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Prasta"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Labai gera"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Gera"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Puiki"
 
@@ -3099,7 +3104,7 @@ msgid "Userhash :"
 msgstr "Naudotojo maišos f-ja:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Įdėti"
 
@@ -3334,9 +3339,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Naršyti"
 
@@ -3424,7 +3429,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3544,7 +3549,7 @@ msgstr "Įrašykite kiek diske palikti laisvos vietos."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Įrašyti 10 šaltinių retiems failams (mažiau nei 20 šaltinių)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Išsiuntimai"
 
@@ -3788,7 +3793,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "EC prievade įjungti UPnP prievadų perdavimą"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Slaptažodis"
 
@@ -3871,8 +3876,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Nurodykite dabartinės kategorijos spalvą:"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Perkrauti"
 
@@ -4268,88 +4273,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Įjungti išsamų klaidų taisymo žurnalą."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Atverti failą"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Žinučių kategorijos:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Laukiama..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Įdėti failus"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Pažymėtas bandyti iš naujo"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Pašalinti pažymėtas"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Aktyvūs išsiuntimai:"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Slėpti dalinamus failus"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Parinkite filtrą"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Aktyvūs išsiuntimai"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Rodyti klientus"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Atnaujinti sąrašą"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Atnaujinti dalinamų failų sąrašą"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Siųsti"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Išsiųsti įrašytą žinutę."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Baigti pokalbį ir užverti pokalbio kortelę."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Prisijungti prie bet kurio serverio ir/ar Kademlia tinklo"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Dalinami failai"
 
@@ -4358,137 +4368,137 @@ msgstr "Dalinami failai"
 msgid "Disabled [%s]"
 msgstr "Išjungta [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "baitas"
 msgstr[1] "baitai"
 msgstr[2] "baitų"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "baitas/s"
 msgstr[1] "baitai/s"
 msgstr[2] "baitų/s"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "s"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min."
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "val."
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "dienų"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "Viskas"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "Visa kita"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Neužbaigtos"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Sustabdyta"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Vaizdo failai"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Supakuoti failai"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Teksto failai"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktyvios"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Įkeliama %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Skaitomas laikinų failų aplankas"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Laukiama pradinės informacijos iš atsiunčiamos informacijos failo"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Kuriamas paskirties failas"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Įkeliami duomenys iš seno atsiuntimo failo (%u iš %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Duomenų blokas įrašomas į naują atsiuntimo failą (%u iš %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Laukiama atsiuntimo failo šaltinių informacijos"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Įkeliamas atsiuntimo failas ir įrašomas naujas dalinis failas"
 
@@ -4504,12 +4514,12 @@ msgstr "Būklė"
 msgid "Filehash"
 msgstr "Maišos f-ja"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (diskas: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4517,12 +4527,12 @@ msgstr ""
 "Įrašykite aplanką, kuriame ieškoti dalinai atsiųstų failų! Paaplankiai bus "
 "irgi apieškoti."
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Ar norite, kad sėmingai įkeltų failų pradiniai failai būtų pašalinti?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Pašalinti pradinius failus?"
 
@@ -4642,7 +4652,7 @@ msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 "Nuskaitant dalių failo platinančių šaltinių failą įvyko klaida (%s – %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4660,39 +4670,39 @@ msgstr[2] ""
 "Aptikta klaidinga dalis (%d) %d dalių faile %s – failo rezultatų maišos f-ja "
 "|%s| failo maišos f-ja |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Aptikta baigta dalis (%i) %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Baigtas maišos f-jos reikšmės perskaičiavimas %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Baigiant siųsti %s įvyko netikėta klaida. Failas pristabdytas"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Atsiųsta: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Šalinamas failas: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "DĖMESIO: atsiųstai daliai nepavyko apskaičiuoti maišos funkcijos – %s maišos "
 "reikšmės nebaigtos"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4701,236 +4711,236 @@ msgstr ""
 "DĖMESIO: atsiųstai daliai nepavyko apskaičiuoti maišos funkcijos – %s maišos "
 "reikšmės nebaigtos. Tokių dalykų neturi būti"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "Dėmesio: diske nepakanka laisvos vietos! Failas pristabdomas: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Atsiųsta sugadinta %i dalis: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 "Klaidų taisymo įrankis: atstatyta sugadinta dalis %i %s –> išgelbėta %s baitų"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Paskiriama vieta"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Nepakanka laisvos vietos"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Atsiųsta"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "KLAIDA: nepavyko atverti dalių failo „%s“"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Numatyta"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanų"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabų"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Estų"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baskų"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgarų"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalonų"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Kinų (supaprastinta)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Kinų (tradicinė)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Kroatų"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Čekų"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danų"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Olandų"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Anglų (DB)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estų"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Suomių"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Prancūzų"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galisijos"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Vokiečių"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Graikų"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Žydų"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Vengrų"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italų"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italų (Šveicarijos)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonų"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Korėjiečių"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lietuvių"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norvegų (naujoji norvegų)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Lenkų"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugalų"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugalų (Brazilijos)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Rusų"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Slovėnų"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Ispanų"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Švedų"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turkų"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Kalba"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Nėra"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "TCP prievadas negali būti didesnis nei 65532, nes serverio UDP prievadas yra "
 "TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Bus naudojamas numatytas prievadas (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Kanalas"
 
@@ -4938,7 +4948,7 @@ msgstr "Kanalas"
 msgid "Directories"
 msgstr "Aplankai"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Serveriai"
 
@@ -4989,7 +4999,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5004,26 +5014,26 @@ msgstr ""
 "\n"
 "aMule puikiai veikia nieko nepakeitus šiame lange."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Atstovaujančio serverio, prie kurio jungsitės, tipas"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5031,36 +5041,41 @@ msgstr ""
 "Kad įsigaliotų šie pakeitimai, aMule reikia paleisti iš naujo:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "– pakeistas TCP prievadas.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "– pakeistas UDP prievadas.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Išorinis ryšys nutrauktas."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Naujas išorinis ryšys priimtas"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Išorinis ryšys nutrauktas."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protokolo slėpimas"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5068,20 +5083,20 @@ msgstr ""
 "Įjungėte išorinius ryšius, bet parinktyse nenurodėte slaptažodžio.\n"
 "Kol nenurodysite slaptažodžio, išoriniai ryšiai nebus įjungti."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "– kalba pakeista.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "– laikinų failų aplankas pakeistas.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "Visi tinklai išjungti."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5089,7 +5104,7 @@ msgstr ""
 "Tiek eD2k, tiek Kademlia tinklai yra išjungti.\n"
 "Norėdami prisijungti įjunkite bent vieną iš šių tinklų."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5097,7 +5112,7 @@ msgstr ""
 "Nepavyks prisijungti prie Kademlia tinklo, nes išjungtas UDP prievadas.\n"
 "Arba įjunkite UDP prievadą, arba išjunkite Kademlia tinklą."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5107,7 +5122,7 @@ msgstr ""
 "Būtina paleisti aMule iš naujo.\n"
 "Jei dabar pat neperleisite aMule, nesiskųskite jei kas nors bus ne taip.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5117,41 +5132,41 @@ msgstr ""
 "Įrašykite bent vieną server.met failo URL.\n"
 "Norėdami įrašyti URL, paspauskite mygtuką „Sąrašas“."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Laikini failai"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Atsiųsti failai"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Keičiami parašai"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Parinkite aplanką %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Parinkite video grotuvą"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Parinkite naršyklę"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Vykdomas failas %s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Keisti serverių sąrašą"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5159,7 +5174,7 @@ msgstr ""
 "Įrašykite server.met failų URL.\n"
 "Vieną URL vienoje eilutėje."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
@@ -5167,7 +5182,7 @@ msgstr[0] "Atnaujinimo intervalas: %d s"
 msgstr[1] "Atnaujinimo intervalas: %d s"
 msgstr[2] "Atnaujinimo intervalas: %d s"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
@@ -5175,12 +5190,12 @@ msgstr[0] "Vidurkių grafiko trukmė: %d min."
 msgstr[1] "Vidurkių grafiko trukmė: %d min."
 msgstr[2] "Vidurkių grafiko trukmė: %d min."
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Ryšių grafiko mastelis: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
@@ -5188,7 +5203,7 @@ msgstr[0] "Failų buferio dydis: %d baitas"
 msgstr[1] "Failų buferio dydis: %d baitai"
 msgstr[2] "Failų buferio dydis: %d baitų"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
@@ -5196,7 +5211,7 @@ msgstr[0] "Išsiuntimo eilės dydis: %d klientas"
 msgstr[1] "Išsiuntimo eilės dydis: %d klientai"
 msgstr[2] "Išsiuntimo eilės dydis: %d klientų"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
@@ -5204,37 +5219,37 @@ msgstr[0] "Serverio ryšio atnaujinimo intervalas: %d min."
 msgstr[1] "Serverio ryšio atnaujinimo intervalas: %d min."
 msgstr[2] "Serverio ryšio atnaujinimo intervalas: %d min."
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Serverio ryšio atnaujinimo intervalas: išjungta"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "Išjungti"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Įvykus „%s“ įvykiui įvykdyti komandą"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Įjungti komandos vykdymą branduolyje"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Branduolio komanda:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Įjungti komandos vykdymą grafinėje aplinkoje"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Grafinės aplinkos komanda:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Šie kintamieji bus pakeisti:"
 
@@ -5264,7 +5279,7 @@ msgstr "eD2k paieška negalima, jei eD2k tarnyba neužmezgė ryšio"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Vykdant Kademlia paiešką įvyko netikėta klaida: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "Failo ID"
 
@@ -5379,7 +5394,7 @@ msgstr "KLAIDA: neteisingas lizdas (socket) baigiantis laiko limitui"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Baigėsi bandymo susijungti laikas %s (%s:%i)."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5409,7 +5424,7 @@ msgstr ""
 "Failas server.met sugadintas, aptiktas klaidingas versijos įrašas: 0x%x, "
 "dydis %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
@@ -5417,7 +5432,7 @@ msgstr[0] "server.met faile rastas %i serveris"
 msgstr[1] "server.met faile rasti %i serveriai"
 msgstr[2] "server.met faile rasta %i serverių"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
@@ -5425,36 +5440,36 @@ msgstr[0] "%d serveris įdėtas"
 msgstr[1] "%d serveriai įdėti"
 msgstr[2] "%d serverių įdėta"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Nuskaitant known.met failą įvyko IO klaida: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Serveris neįdėtas: [%s:%d] nurodytas klaidingas prievadas."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Serveris neįdėtas: [%s:%d] IP adresas klaidingas arba nepraėjo filtro."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr "Serveris neįdėtas: [%s:%d] toks serveris jau yra."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Serveris įdėtas: [%s:%d] pavadinimas %s."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5462,25 +5477,25 @@ msgstr ""
 "Prie serverio, kurį norite pašalinti, esate šiuo metu prisijungę. Norėdami "
 "pašalinti serverį, iš pradžių turite atsijungti."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Nepavyko atverti %s"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Nepavyko įrašyti server.met failo!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Klaidingas URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Sėkmingai atsiųstas serverių sąrašas iš %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5488,30 +5503,30 @@ msgstr ""
 "Faile „addresses.dat“ nerasta serverių sąrašo įrašų. Norėdami automatiškai "
 "atnaujinti sąrašą į šį failą įkelkite teisingą serverių sąrašo adresą."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Atsiųsti serverių sąrašą iš %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "DĖMESIO: automatiškam serverių sąrašo atnaujinimui pateiktas neteisingas "
 "URL: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "Faile addresses.dat nerasta nei vieno teisingo server.met failo automatinio "
 "atsiuntimo URL"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Nepavyko iš %s atsiųsti serverių sąrašo"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5547,7 +5562,7 @@ msgid "Static"
 msgstr "Statiškas"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versija"
 
@@ -5574,8 +5589,8 @@ msgstr "Ar tikrai norite pašalinti šį statišką serverį %s"
 msgid "Servers (%i)"
 msgstr "Serveriai (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Serveris"
 
@@ -5631,39 +5646,39 @@ msgstr "Ar tikrai norite pašalinti pažymėtą serverį?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Ar tikrai norite pašalinti pažymėtus serverius?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "KLAIDA: %s (%s) – %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "DĖMESIO: %s (%s) – %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Naujas kliento ID yra %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "DĖMESIO: gavote žemą ID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tLabiausiai tikėtina, kad esate už ugniasienės ar maršrutizatoriaus."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 "\tNorėdami sužinoti daugiau informacijos apsilankykite http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Gauta nežinomo serverio informacija per trumpa!"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
@@ -5671,44 +5686,44 @@ msgstr[0] "Aptiktas %d naujas serveris"
 msgstr[1] "Aptikti %d nauji serveriai"
 msgstr[2] "Aptikta %d naujų serverių"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Serverių sąrašo įrašymas baigtas."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Serveris atmetė paskutinę komandą"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Iš serverio %s gautas klaidingas paketas"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Apdorojant iš serverio %s gautą paketą įvyko nežinoma klaida"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Prisijungiant prie %s nepavyko sukurti DNS ryšio gijos"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Serverio IP %s (%s) nepraėjo filtro. Ryšys nebus užmezgamas."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "naudojamas protokolo slėpimas."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Prisijungta prie %s (%s – %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Nepavyko išsiaiškinti serverio %s DNS. Ryšys nebus užmezgamas!"
@@ -5900,86 +5915,91 @@ msgstr "Failo pavadinimas"
 msgid "Shares File List"
 msgstr "Dalinami failai"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Prašymai"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Patenkinti prašymai"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Persiųsta duomenų"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Dalinimo santykis"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Gautos dalys"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Pilni šaltiniai"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Kelias"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Įdėti komentarą/įvertinimą"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Keisti komentarą/įvertinimą"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Pervadinti"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Failus iš kolekcijos įkelti į siuntimo sąrašą"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopijuoti magneto &URI į talpyklę"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Kopijuoti eD2k nuorodą į talpyklę (&šaltinį)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Kopijuoti eD2k nuorodą į talpyklę (šaltinį su ši&fravimo parinktimis)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Kopijuoti eD2k nuorodą į talpyklę (&kompiuterio pavadinimą)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Kopijuoti eD2k nuorodą į talpyklę (kompiuterio pavadinimą su šif&ravimo "
 "parinktimis)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Kopijuoti eD2k nuorodą į talpyklę (&klaidų taisymo informaciją)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopijuoti eD2k nuorodą į talpyklę (&klaidų taisymo informaciją)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Norėdami sukurti šaltinio nuorodą, privalote turėti aukštą ID"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Dalinami failai (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Dalių failas]"
 
@@ -5988,235 +6008,235 @@ msgstr "[Dalių failas]"
 msgid "Remote File Name"
 msgstr "Failo pavadinimas"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Išsiųsta duomenų (per seansą (iš viso)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Tarnybinis srautas iš viso (paketai): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Tarnybinis srautas failų prašymams (paketai): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Tarnybinis srautas šaltinių apsikeitimui (paketai):%s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Tarnybinis srautas serveriams (paketai): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kademlia tarnybinis srautas (paketai): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Šifravimo tarnybinis srautas (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Aktyvūs išsiuntimai: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Laukiantys išsiuntimai: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Iš viso sėkmingų išsiuntimų: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Iš viso nepavykusių išsiuntimų: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Vidutiniškai išsiuntimas trunka: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Atsiųsta duomenų (per seansą (iš viso)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Rasta šaltinių: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Aktyvūs atsiuntimai (dalys): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Seanso Išs./Ats. santykis (iš viso): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Vidutinė atsiuntimo sparta (seanso): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Vidutinė išsiuntimo sparta (seanso): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Didžiausia atsiuntimo sparta (seanso): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Didžiausia išsiuntimo sparta (seanso): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Ryšis pakartotinai užmegztas: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Pirmą kartą siųsta prieš: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Prisijungta prie serverio prieš: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktyvių ryšių skaičius (apytikriai): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Didžiausias leistinas ryšių skaičius pasiektas: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Vidutinis ryšių skaičius (apytikriai): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Daugiausia ryšių (apytikriai): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Naudotojai"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Dydis nežinomas"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Filtruota"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "Užblokuota"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Iš viso: %i atpažinta: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Veikiantys serveriai: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Neveikiantys serveriai: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Iš viso: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Pašalinti serveriai: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Filtruoti serveriai: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Naudotojų kiekis veikiančiuose serveriuose: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Failų kiekis veikiančiuose serveriuose: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Iš viso naudotojų: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Iš viso failų: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Serverių užimtumas: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Dalinamų failų kiekis: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Bendras dalinamų failų dydis: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Vidutinis failo dydis: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Operacinė sistema"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Negauta"
 
@@ -6277,7 +6297,7 @@ msgstr "Neteisingas skaičius\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Neteisinga maišos funkcija (turi būti 32 simbolių dydžio)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Vykdant užduotį įvyko nežinoma klaida."
 
@@ -6331,13 +6351,13 @@ msgstr "Prisijungta prie %s %s %s"
 msgid "Now connecting"
 msgstr "Jungiamasi"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "ugniasienė"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "gerai"
 
@@ -6789,23 +6809,23 @@ msgstr ""
 "Ši komanda pasenusi ir ateityje gali būti pašalinta.\n"
 "Geriau naudokite „%s“.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule tekstinis klientas"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 "Senos klaidų taisymo maišos reikšmės keičiamos „%s“ keičiamos 64b „%s“."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "Dėmesio: failo pavadinimas %s yra klaidingas, todėl buvo pakeistas į %s."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "Dėmesio: failas %s jau yra, naujas failas pervadintas į %s."
@@ -6878,7 +6898,7 @@ msgstr "Nepavyko įvykdyti komandos „%s„ įvykiui „%s“."
 msgid "Download completed"
 msgstr "Atsiuntimas baigtas"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Pilnas kelias iki failo."
 
@@ -6898,68 +6918,68 @@ msgstr "Failo dydis baitais."
 msgid "Cumulative download activity time."
 msgstr "Visas atsiuntimo laikas."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Pradėtas naujas pokalbis"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Žinutės antraštė."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Trūksta laisvos vietos"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Disko skirsnis."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Baigiant siųsti failą įvyko klaida"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Apdorojamo failo numeris %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 "Pageidavote dalinių maišos rezultatų (naudojamų tik didesniems nei 9,5 MB "
 "failams)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s —> tokio failo nėra!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, aMule eD2k nuorodų kūrimo įrankis"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Sveikiname!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Įvesties parametrai"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Pateikti failo maišos funkciją"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Šiam failui įdėti papildomus URL"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Įrašykite failą, kuriam kursite eD2k nuorodą"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6967,95 +6987,95 @@ msgstr ""
 "Įrašykite URL, kurį pridėsite prie eD2k nuorodos. Gale pridėjus „/“ "
 "aLinkCreator pridės dabartinio failo pavadinimą"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Pašalinti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Kurti nuorodas su dalių maišos f-jomis"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr "Nauji ir reti failai bus platinamos sparčiau, bet nuoroda taps ilgesnė"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 failo maišos f-ja"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k failo maišos f-ja"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k nuoroda"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Įrašyti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Kopijuoti į talpyklę"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Atverti failą ir apskaičiuoti jo eD2k nuorodą"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Kopijuoti apskaičiuotą eD2k nuorodą į talpyklę"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Įrašyti apskaičiuotą eD2k nuorodą į failą"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Apie aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Nurodykite failą, kuriam skaičiuosite eD2k nuorodą"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Kol kas nėra ką kopijuoti!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Nurodykite failą apskaičiuotai eD2k nuorodai"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Nepavyko atverti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Įrašykite failo pavadinimą"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Kol kas nėra ką įrašyti!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7075,158 +7095,162 @@ msgstr ""
 "\n"
 "Platinama pagal GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Skaičiuojamos maišos f-jos reikšmės..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Atšaukta!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Atlikta per %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Šis URL jau įdėtas!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Įrašykite URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Nepavyko atverti %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i d. %i val. %i min. %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02ud %02uv %02um %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uv %02um %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02um %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, aMule dabartinė statistika"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Didžiausia ats. sparta nuo wxCas paleidimo"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Pati didžiausia ats. sparta per praeitus wxCas seasus"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Sustabdyti automatinį atnaujinimą"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Įrašyti dabartinės statistikos grafiką"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Spausdinti dabartinės statistikos grafiką"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Parinktys"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Apie wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Paleisti automatinį atnaujinimą"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Automatinis atnaujinimas sustabdytas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Automatinis atnaujinimas paleistas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Įrašyti statistikos grafiką"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule dabartinė statistika"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7234,11 +7258,11 @@ msgstr ""
 "Spausdinant įvyko klaida.\n"
 "Gali būti, kad spausdintuvas nėra tinkamai suderintas."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Spausdinama"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7256,323 +7280,323 @@ msgstr ""
 "\n"
 "Platinama pagal GPL licenciją"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oi! aMule nepaleista..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule paleista"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule paleista, bet ryšys neužmegztas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule užmezga ryšį..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oi! aMule būsena nežinoma..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " vykdoma "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " sustabdyta!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " ryšys neužmegztas!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " užmezga ryšį..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " elgiasi keistai, prašome patikrinti!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " užmezgė ryši su "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "išj."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " įj."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " su "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Išviso atsiųsta: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Išsiųsta: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Atsiųsta per šį seansą: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Atsiųsta: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Išsiųsta: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Dalinamasi: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " failas(ai), naudotojai eilėje: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Trukmė: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " – "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Vidutinis sistemos apkrovimas (per 1–5–15 min.): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Sistemos veikimo trukmė: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "amulesig.dat failo aplankas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Įrašykite aplanką, kuriame yra amulesig.dat failas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Atnaujinimo intervalas sekudėmis"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Kurti statistikos grafiką po kiekvieno atnaujinimo"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Įrašykite aplanką, kuriame bus kuriamas statistikos grafikas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Periodiškai siųsti staitikos grafiką į FTP serverį"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP URL"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP kelias"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Įrašykite FTP serverio adresą"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Įrašykite FTP serverio aplanką, į kurį kelsite statistikos grafiką"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Vartotojas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Įrašykite vartotoją, kuriuo jungsitės prie FTP serverio"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Įrašykite vartotojo, kuriuo jungsitės prie FTP serverio, slaptažodį"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP atnaujinimo intervalas minutėmis"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Patvirtinti"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Aplankas, kuriame yra parašo failas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Aplankas, kuriame kuriamas statistikos grafikas"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Įkelti šabloną <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Žiniatinklio serverio HTTP prievadas"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "UPnP prievadus persiunti žiniatinklio serverio prievade"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP prievadas"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Naudoti gzip pakavimą"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Pilnos prieigos prie žiniatinklio serverio slaptažodis"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Svečio prieigos prie žiniatinklio serverio slaptažodis"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Įjungti svečio prieigą"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Išjungti svečio prieigą"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Įkelti/įrašyti žiniatinklio serverio parinktis iš/į nutolusio aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule parinkčių failas. NENAUDOKITE TIESIOGIAI!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Išjungti PHP interpretatorių (pasenusi)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Kiekvieną kartą perkompiliuoti PHP puslapius"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule www serveris"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "Priimtas žiniatinklio kliento ryšys\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Vykdant užduotį įvyko klaida: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Indekso failas nerastas: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Seansas baigėsi – prašoma prisijungti iš naujo\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Seansas pradėtas, priega gauta\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Seansas pradėtas, priega negauta\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Seansas nepradėtas – bus prašoma prisijungti\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Seansas sukurtas – prašoma prisijungti\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Apdorojamas prašymas [pradinis]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Tikrinamas slaptažodis\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Slaptažodžio maišos funkcija neteisinga\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Slaptažodis priimtas\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Neteisingas slaptažodis\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Neįrašėte slaptažodžio. Tuščias slaptažodis neleidžiamas.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Prašoma atsijungti\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Apdorojamas prašymas [persiųstas]: "
 
diff --git a/po/nl.po b/po/nl.po
index f1586f3..d0dda81 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: nl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-11-11 03:26+0100\n"
 "Last-Translator: Frank van der Loo <f.vanderloo at gmail.com>\n"
 "Language-Team: Dutch <nl at li.org>\n"
@@ -41,7 +41,7 @@ msgstr "De aangegeven userhash is niet geldig!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Kon bestand ED2KLinks niet openen."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -49,37 +49,37 @@ msgstr ""
 "WAARSCHUWING: U kunt uzelf niet toevoegen als bron voor een eD2k link "
 "terwijl u een laag id hebt."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Hoofdapp wordt nu afgesloten..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Amuleweb-instantie met pid '%ld' wordt afgesloten ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Amuleweb-instantie met pid '%ld' wordt gedood ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Mislukt"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Kern wordt afgesloten."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "aMule is afgesloten."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Geheugen debug resultaten voor het afsluiten van aMule:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -87,16 +87,16 @@ msgstr ""
 "\n"
 "EV configuratie"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Wachtwoord ingesteld en externe verbindingen ingeschakeld."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "WAARSCHUWING"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -104,13 +104,13 @@ msgstr ""
 "De taalinstelling is veranderd in Systeem Standaard vanwege een configuratie "
 "wijziging. Sorry."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -118,16 +118,16 @@ msgstr ""
 "U heeft geen servers in de serverlijst.\n"
 "Wilt u dat aMule nu een nieuwe lijst download?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Download van serverlijst"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "webserver draait met pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -137,23 +137,23 @@ msgstr ""
 "amuleweb kan niet gestart worden. Installeer a.u.b. het pakket met de aMule "
 "webserver, of compileer aMule met --enable-webserver en draai make install."
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "FOUT"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Kon geen poorten koppelen aan het opgegeven adres: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Poort %u is niet beschikbaar. U krijgt een LAAG ID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -169,11 +169,11 @@ msgstr ""
 "Controleer uw netwerk en zorg ervoor dat de poort open is voor in- en "
 "uitgaand verkeer."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Kon OnlineHandtekening Bestand niet maken"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Kon aMule OnlineHandtekening Bestand niet maken"
 
@@ -227,133 +227,133 @@ msgstr ""
 "ONGELDIG!\n"
 " OnlineSignature is UITGESCHAKELD totdat u dit verbetert in voorkeuren."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Server hostnaam geïnformeerd"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Toewijzen schijfruimte voor bestand '%s' mislukt: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "FOUT: kan logbestand niet openen"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "WAARSCHUWING: logbestand is leeg. Er is iets mis."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Log is gereset"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "ServerBericht: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "Download van %s overgeslagen, omdat gevraagd bestand niet nieuwer is."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Kon nodes lijst niet downloaden."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Kon gedownload versie controle bestand niet openen"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Beschadigd versie controle bestand"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "U gebruikt een verouderde versie van aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Uw aMule versie is %i.%i.%i en de nieuwste versie is %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "De nieuwste versie kan altijd gevonden worden op http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "WAARSCHUWING: Uw aMuled versie is verouderd: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "U heeft de nieuwste aMule versie."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Kon versie controle bestand niet downloaden"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Gebruikers: %s | Bestanden: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Gebruikers: E: %s K: %s | Bestanden: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Geen netwerken geselecteerd"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "met Laag ID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "met Hoog ID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Verbonden met %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Verbinden met %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Verbinding verbroken met eD2K"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad gestart."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad gestopt."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Verbonden met Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Verbonden met Kad (firewalled)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Verbinding met Kad verbroken"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -361,11 +361,11 @@ msgstr ""
 "Kad netwerk kan niet gebruikt worden als de UDP poort is uitgeschakeld in "
 "voorkeuren, wordt niet gestart."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad netwerk is uitgeschakeld in voorkeuren, wordt niet mee verbonden."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -377,7 +377,7 @@ msgstr ""
 "normale aMule, start amuled met de optie --ec-config of stel de waarde van "
 "\"AcceptExternalConnections\" in op 1 in het bestand ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -392,19 +392,19 @@ msgstr ""
 "de vlag --ec-config om het wachtwoord in te stellen. Meer informatie is te "
 "vinden op http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - timer wordt gestart"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: naar de achtergrond - tot ziens"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Kan Pid-Bestand Niet Aanmaken"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "FOUT: %s"
@@ -488,9 +488,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Bericht"
 
@@ -498,7 +498,7 @@ msgstr "Bericht"
 msgid "aMule dialog destroyed"
 msgstr "aMule dialoogvenster afgesloten"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Aan het verbinden"
 
@@ -532,7 +532,7 @@ msgstr "Kad: Uitgeschakeld"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Annuleren"
 
@@ -549,7 +549,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Verbreek de huidige verbin"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Verbinden"
 
@@ -590,7 +590,7 @@ msgstr "Afsluit bevestiging"
 msgid "Launch Command: "
 msgstr "Voer Commando Uit: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- standaard -"
 
@@ -605,80 +605,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "WAARSCHUWING: Kon skinbestand '%s' niet openen om te lezen"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Netwerken"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Netwerken Venster"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Zoeken"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Zoekvenster"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Downloads"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Downloadsvenster"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Gedeelde bestanden"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Gedeelde Bestanden Venster"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Berichten"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Berichten Venster"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistieken"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Statistieken Venster (Grafieken)"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Voorkeuren"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Voorkeuren Instellingen Venster"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importeer"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Het partbestand importeer programma"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Over"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Over/Help"
 
@@ -698,7 +698,7 @@ msgstr "Geen netwerk"
 msgid "aMule remote control"
 msgstr "aMule besturing op afstand"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -710,108 +710,108 @@ msgstr "Fatale Fout: Kon Core Timer niet aanmaken"
 msgid "Connect to remote amule"
 msgstr "Verbind met amule op afstand"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Fatale Fout: Kon Poll Timer niet aanmaken"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Naar de gebeurtenislus..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Aan het verbinden..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Verbinding mislukt "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "GUI EV gebeurtenisafhandelaar op afstand"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Wordt afgesloten"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Verbinding Mislukt. Kon niet verbinden met %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Verbinding verbroken - aMule is waarschijnlijk afgesloten."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Klaar"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Alle"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Kan directory '%s' niet aanmaken voor categorie '%s', directory '%s' wordt "
 "behouden."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Onbekend"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Kon gedeelde bestanden niet ontvangen van gebruiker '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Op zoek naar buddy voor laag id verbinding"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Nep eMule versie %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Nep eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Nep eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (gebaseerd op eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "BijNaam: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Aangevraagd: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -823,7 +823,7 @@ msgstr[1] ""
 "Bestandsstatistieken voor deze sessie: Geaccepteerd %d van %d aanvragen, %s "
 "overgebracht\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -835,7 +835,7 @@ msgstr[1] ""
 "Bestandsstatistieken voor alle sessies: Geaccepteerd %d van %d aanvragen, %s "
 "overgebracht\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Aangevraagd bestand is onbekend"
 
@@ -986,12 +986,12 @@ msgid "Client Details"
 msgstr "Client Details"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "Laag ID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "Hoog ID"
 
@@ -1043,27 +1043,27 @@ msgstr "Gecontroleerd - OK"
 msgid "Not Available"
 msgstr "Niet Beschikbaar"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Gebruiker %s (%u) vroeg uw gedeelde-bestandenlijst op -> Geaccepteerd"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Gebruiker %s (%u) vroeg uw gedeelde-bestandenlijst op -> Geweigerd"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Gebruiker %s (%u) vroeg uw gedeelde-directorieslijst op -> Toegestaan"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Gebruiker %s (%u) vroeg uw gedeelde-directorieslijst op -> Geweigerd"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1071,7 +1071,7 @@ msgstr ""
 "Gebruiker %s (%u) vroeg uw gedeelde-bestandenlijst van directory '%s' op -> "
 "geaccepteerd"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1079,32 +1079,32 @@ msgstr ""
 "Gebruiker %s (%u) vroeg uw gedeelde-bestandenlijst van directory '%s' op -> "
 "geweigerd"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Gebruiker %s (%u) deelt directory '%s'"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Gebruiker %s (%u) stuurde niet-opgevraagde gedeelde dirs."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Gebruiker %s (%u) stuurde gedeelde-bestandenlijst van directory '%s'"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Gebruiker %s (%u) heeft gedeelde-bestandenlijst gestuurd"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Gebruiker %s (%u) stuurde ongewild gedeelde-bestandenlijst"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1120,7 +1120,7 @@ msgstr "Gebruikersnaam"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Bestandsnaam"
 
@@ -1163,33 +1163,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Ho]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Heel laag"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Laag"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normaal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Hoog"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Heel Hoog"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Vrijgeven"
 
@@ -1206,12 +1206,12 @@ msgid "Queue Full"
 msgstr "Wachtrij vol"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "In wachtrij"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Downloaden"
 
@@ -1271,7 +1271,7 @@ msgstr "Lokale Server"
 msgid "Remote Server"
 msgstr "Server op Afstand"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1297,7 +1297,7 @@ msgid "Search Result"
 msgstr "Zoekresultaat"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Compleet"
 
@@ -1338,11 +1338,11 @@ msgid "Part"
 msgstr "Part"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Grootte"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Overgebracht"
 
@@ -1355,17 +1355,17 @@ msgid "Progress"
 msgstr "Voortgang"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Bronnen"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioriteit"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Status"
@@ -1390,7 +1390,7 @@ msgstr "Weet u zeker dat u het geselecteerde bestand wilt verwijderen?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Weet u zeker dat u de geselecteerde bestanden wilt verwijderen?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1400,7 +1400,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1452,11 +1452,11 @@ msgstr "Bekijk alle commentaren"
 msgid "Copy magnet URI to clipboard"
 msgstr "Kopieer magnet URI naar klembord"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Kopieer eD2k &link naar klembord"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Kopieer feedback naar klembord"
 
@@ -1472,24 +1472,24 @@ msgstr "Toewijzen aan catgorie"
 msgid "&Open the file"
 msgstr "&Open het bestand"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Voer een nieuwe naam voor dit bestand in:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Naam wijzigen"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Downloads (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1498,11 +1498,11 @@ msgstr ""
 "dient u uw video afspeelprogramma in te stellen bij voorkeuren (standaard is "
 "mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Voorbeeld"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "FOUT: Opstarten externe mediaspeler mislukt! Commando: '%s'"
@@ -1610,28 +1610,28 @@ msgstr "Externe verbindingen uitgeschakeld vanwege leeg wachtwoord!"
 msgid "External connections disabled in config file"
 msgstr "Externe verbindingen uitgeschakeld in config bestand"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nieuwe externe verbinding geaccepteerd"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "FOUT: kon nieuwe externe verbinding niet accepteren"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Externe verbinding geweigerd vanwege leeg wachtwoord bij voorkeuren!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Client verbinden: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Onbekende versie"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1639,7 +1639,7 @@ msgstr ""
 "Incorrecte EV versie ID, mogelijk niet compatible. Gebruik kern en op "
 "afstand van dezelfde snapshot."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1647,173 +1647,173 @@ msgstr ""
 "U kunt niet verbinden met een release versie vanaf een willekeurig "
 "ontwikkelingssnapshot! *zucht* mogelijke crash voorkomen"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Ongeldige protocol versie."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Ontbrekend protocol versielabel."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr "Authenticatie mislukt: ongeldige hash opgegeven als EV-wachtwoord."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Authenticatie mislukt: verkeerd wachtwoord."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Authenticatie mislukt: ontbrekend wachtwoord."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Ongeldig verzoek, authenticeer eerst a.u.b."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Toegang verleend."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Foutmelding \"%s\" verzonden naar client."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Poging tot ongeautoriseerde toegang van %s. Verbinding gesloten."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "PartBestand-commando op afstand mislukt: BestandsHash niet gevonden: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "BestandsHash niet gevonden: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OEPS! OpCode verwerkingsfout!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Server niet toegevoegd"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "server niet gevonden: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "moet de te verwijderen server defini?ren"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2K is uitgeschakeld in voorkeuren."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Bezig met zoeken. Haal de resultaten op over een momentje!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "WebSearch vanaf afstand is zinloos."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Geen punten voor grafiek."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Uw client is niet geconfigureerd voor dit niveau van details."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Externe Verbinding: afsluiten aangevraagd"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Al bezig met afsluiten."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ExterneVerb: link '%s' wordt toegevoegd."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Ongeldige link of al op de lijst."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Bestand niet gevonden."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Ongeldige bestandsnaam."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Kon naam van bestand niet wijzigen."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad is uitgeschakeld in voorkeuren."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Al verbonden met eD2K."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Aan het verbinden met eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Al verbonden met Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Verbinding met Kad wordt gemaakt..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Alle netwerken zijn uitgeschakeld."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Verbinding met eD2K verbroken."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Verbinding met Kad verbroken."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Externe Verbinding: ongeldige opcode ontvangen: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Ongeldige opcode (verkeerde protocol versie?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Onbekende extensie '%s' van het '%s' commando.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Onbekend commando '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1821,7 +1821,7 @@ msgstr ""
 "\n"
 "Dit commando heeft geen argumenten.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1829,7 +1829,7 @@ msgstr ""
 "\n"
 "Dit commando moet een argument hebben.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1838,7 +1838,7 @@ msgstr ""
 "Dit commando is niet compleet, u moet een van onderstaande uitbreidingen "
 "gebruiken.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1846,11 +1846,11 @@ msgstr ""
 "\n"
 "Beschikbare uitbreidingen:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Beschikbare commando's:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1861,17 +1861,17 @@ msgstr ""
 "Alle commandos zijn hoofdlettergevoelig.\n"
 "Type '%s <command>' om gedetailleerde info te krijgen over <command>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Sluit het programma af."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Toon help."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1879,7 +1879,7 @@ msgstr ""
 "Om help te krijgen over een commando, type 'help <commando>'.\n"
 "Om de volledige commando lijst te krijgen type 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1890,48 +1890,48 @@ msgstr ""
 "Gebruik '%s' voor commando lijst\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Syntax fout!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Fout bij het verwerken van commando - zou nooit mogen gebeuren! Rapporteer "
 "deze bug, a.u.b.\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Dit commando heeft geen parameters."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Dit commando moet een parameter hebben."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Ongeldig argument."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Dit is een incompleet commando."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Type '%s' voor meer help.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Dit is %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Dit is %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1939,7 +1939,7 @@ msgstr ""
 "\n"
 "Aanmaken van client...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1948,7 +1948,7 @@ msgstr ""
 "\n"
 "Ok, %s wordt afgesloten...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1963,47 +1963,47 @@ msgstr ""
 "\n"
 "Bezig met afsluiten...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Toon deze help tekst"
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host waar aMule draait. (standaard: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "aMules poort voor Externe Verbindingen. (standaard: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Externe Verbinding wachtwoord."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Lees configuratie uit bestand."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Print geen uitvoer naar stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Wees uitgebreid - toon ook debug berichten."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Stelt programma locale (taal) in."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Schrijf opties op de opdrachtregel naar config bestand."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Maakt config bestand gebaseerd op aMules config bestand."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Toon programma versie."
 
@@ -2016,8 +2016,8 @@ msgstr "Bestandsdetails"
 msgid "%.1f%% done"
 msgstr "%.1f%% voltooid"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2034,7 +2034,7 @@ msgstr "Kon niet schrijven naar vriendenlijst-bestand 'emfriends.met'!"
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "KRITIEK - geen client bij StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Vrienden"
 
@@ -2162,21 +2162,21 @@ msgstr "De URL om te downloaden mag niet leeg zijn"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "De URL %s leverde op: %i - Fout (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Kritieke fout bij het schrijven van gedownload bestand"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "%d bytes gedownload"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Verwachtte %d bytes, maar %d bytes gedownload"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2184,11 +2184,11 @@ msgstr ""
 "Ongeldige URL voor HTTP download of HTTP redirection (bent u 'http://' "
 "vergeten?"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Kon niet verbinden met HTTP downloadserver"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Ongeldig antwoord van HTTP downloadserver"
 
@@ -2220,7 +2220,7 @@ msgstr "%s succesvol geüpdatet"
 msgid "Error updating GeoIP.dat"
 msgstr "Fout bij het updaten van GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Kon %s niet downloaden van %s"
@@ -2263,7 +2263,7 @@ msgstr[1] "%u misvormde regels zijn genegeerd"
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Kon nieuw bestand %s niet hernoemen, update wordt gestopt."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP-filter is klaar"
 
@@ -2280,47 +2280,47 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nodes (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Ongeldig ip om van te bootstrappen"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Ongeldige poort om van te bootstrappen"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Vul a.u.b. alle benodigde velden in"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Weet u zeker dat u een nieuw nodes.dat bestand wilt downloaden?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Dat zal uw huidige nodes verwijderen en de Kademlia verbinding opnieuw "
 "starten."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Verder gaan?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: zoekwoord te kort"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Zoekwoord: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: Zoekwoord staat al op de zoeklijst: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2328,60 +2328,60 @@ msgstr ""
 "Kon bestand nodes.dat niet lezen - te oud. Deze versie (0) wordt niet meer "
 "ondersteund."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "%u Kad contact gelezen"
 msgstr[1] "%u Kad contacten gelezen"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Geen contacten gevonden, bootstrap a.u.b., of download een nodes.dat bestand."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Slechts %d Kad contact beschikbaar, nodes.dat niet beschreven"
 msgstr[1] "Slechts %d Kad contacten beschikbaar, nodes.dat niet beschreven"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "%d Kad contact geschreven"
 msgstr[1] "%d Kad contacten geschreven"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Bestandsnaam"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Bestandsgrootte"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Deel ratio"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Geüpload"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Aangevraagd"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Geaccepteerd"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Complete bronnen"
 
@@ -2411,70 +2411,75 @@ msgstr "Onbekende fout %d"
 msgid "Unable to get error description for error %d"
 msgstr "Kon foutbeschrijving niet verkrijgen voor fout %d"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Aan het hashen"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Voltooien"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Compleet"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Gepauzeerd"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Foutief"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Wachten"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "U moet een niet-leeg wachtwoord opgeven."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Ongeldig wachtwoord, geen MD5 hash!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Verbindingsfout"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "EV verbinding mislukte. Leeg antwoord."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Externe Verbinding: Slecht antwoord, handshake mislukt. Verbinding verbroken."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Succes! Verbinding gemaakt met aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Gelukt! Verbinding gemaakt."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Externe Verbinding: Toegang geweigerd omdat: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Externe Verbinding: Handshake mislukt."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "HTTP download thread gestart"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: Ok."
@@ -2483,16 +2488,16 @@ msgstr "ListenSocket: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "FOUT: Kon niet luisteren op TCP poort"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "FOUT: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "WAARSCHUWING: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Sluiten"
 
@@ -2500,8 +2505,8 @@ msgstr "Sluiten"
 msgid "Cut"
 msgstr "Knippen"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopiëren"
 
@@ -2510,7 +2515,7 @@ msgid "Paste"
 msgstr "Plakken"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Wissen"
 
@@ -2520,7 +2525,7 @@ msgstr "Alles Selecteren"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2598,7 +2603,7 @@ msgstr "ServerIP: "
 
 # msgstr "Verbinden"
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Niet verbonden"
 
@@ -2633,7 +2638,7 @@ msgstr "Online Handtekening: Ingeschakeld"
 msgid "Online Signature: Disabled"
 msgstr "Online Handtekening: Uitgeschakeld"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Uptime: %s"
@@ -2674,7 +2679,7 @@ msgstr "Verberg aMule"
 msgid "Show aMule"
 msgstr "Toon aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Afsluiten"
 
@@ -2761,7 +2766,7 @@ msgstr "Zoeken"
 msgid "Name:"
 msgstr "Naam:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Type"
 
@@ -2789,38 +2794,38 @@ msgstr "Filters"
 msgid "File Type"
 msgstr "BestandsType"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Alles"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archieven"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Geluid"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-Images"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Plaatjes"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programma's"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Teksten"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Video's"
 
@@ -2841,11 +2846,11 @@ msgid "KB"
 msgstr "kB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2873,7 +2878,7 @@ msgstr "Resultaat Omkeren"
 msgid "Hide Known Files"
 msgstr "Verberg Bekende Bestanden"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Start"
 
@@ -2930,7 +2935,7 @@ msgstr "Volledige Naam :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/B"
 
@@ -2954,7 +2959,7 @@ msgstr "Partbestandsstatus :"
 msgid "Last seen complete :"
 msgstr "Laatst compleet gezien :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Overdracht"
 
@@ -3043,27 +3048,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Bestands Kwaliteit"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Niet beoordeeld"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Onbruikbaar / Beschadigd / Nep"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Matig"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Redelijk"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Goed"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Uitstekend"
 
@@ -3110,7 +3115,7 @@ msgid "Userhash :"
 msgstr "Gebruikershash :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Toevoegen"
 
@@ -3343,9 +3348,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Bladeren"
 
@@ -3437,7 +3442,7 @@ msgstr "Max gelijktijdige verbindingen:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3556,7 +3561,7 @@ msgstr "Voer hier de gewenste min schijfruimte in."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Bewaar 10 bronnen van zeldzame bestanden (<20 bronnen)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Uploads"
 
@@ -3797,7 +3802,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Schakel UPnP port forwarding van de EV-poort in"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Wachtwoord"
 
@@ -3879,8 +3884,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Selecteer kleur voor deze Categorie (nu geselecteerd) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Leegmaken"
 
@@ -4283,84 +4288,89 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Schakel Uitgebreid Debug-Loggen in."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Open het bestand"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Bericht Categorie?n"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Wachtend..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Voeg geïmporteerden toe"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Probeer geselecteerde opnieuw"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Verwijder geselecteerde"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Gebeurtenistypes"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Statistieken en clients in wachtrij voor geselecteerd(e) bestand(en) : "
 "Sessie / Alle"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Actieve Uploads"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Procent van alle bestanden"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Alle bestanden"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Geselecteerde bestanden"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Alleen actieve uploads"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Toon Clients voor"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Opnieuw laden:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Laad uw gedeelde bestanden opnieuw"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Verstuur"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Verstuurt het opgegeven bericht."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Sluit deze chat-sessie."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Verbind met een server en/of Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Gedeelde Bestanden"
 
@@ -4369,135 +4379,135 @@ msgstr "Gedeelde Bestanden"
 msgid "Disabled [%s]"
 msgstr "Uitgeschakeld [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/sec"
 msgstr[1] "bytes/sec"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "seconden"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "minuten"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "uren"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Dagen"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "alle"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "alle anderen"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incompleet"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Gestopt"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Archief"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Tekst"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Actief"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Gebruikte configdir: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Wachten tot partbestand-conversiethread sterft..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Bezig met importeren van %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Tijdelijke map wordt gelezen"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Basisinformatie van download info bestand wordt opgehaald"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Doelbestand wordt aangemaakt"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Data van oud download bestand wordt geladen (%u van %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Data block wordt bewaard in nieuw enkel download bestand (%u van %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Bron downloadbestand informatie wordt opgehaald"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Download wordt toegevoegd en nieuw partbestand bewaard"
 
@@ -4513,12 +4523,12 @@ msgstr "Status"
 msgid "Filehash"
 msgstr "Bestandshash"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Schijf: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4526,14 +4536,14 @@ msgstr ""
 "Kies a.u.b. een map om te doorzoeken naar tijdelijke downloads! "
 "(onderliggende mappen worden meegenomen)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Wilt u dat de bron bestanden van succesvol ge?mporteerde bestanden "
 "verwijderd worden?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Verwijder bronnen?"
 
@@ -4648,7 +4658,7 @@ msgstr "Partbestand %s (%s) heeft een leeg seeds bestand"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Fout bij het lezen van partbestands seeds bestand (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4663,38 +4673,38 @@ msgstr[1] ""
 "Beschadigd deel (%d) gevonden in %d delen bestand %s - FileResultHash |%s| "
 "FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Compleet deel (%i) gevonden in %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Klaar met opnieuw hashen %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Onverwachte fout tijdens het voltooien van %s. Bestand gepauzeerd"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Klaar met downloaden: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Verwijderen van bestand: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "WAARSCHUWING: Kan gedownload deel niet hashen - incomplete hashset voor '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4703,7 +4713,7 @@ msgstr ""
 "FOUT: Kan gedownload deel niet hashen - hashset incompleet (%s). Dit zou "
 "nooit mogen gebeuren"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4712,226 +4722,226 @@ msgstr ""
 "EOB bij het hashen van gedownload deel %u met lengte %u (max %u) van "
 "partbestand '%s' met lengte %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 "WAARSCHUWING: Niet voldoende vrije schijfruimte! Pauzeren van bestand: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Gedownload deel %i is beschadigd in bestand: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Beschadigd deel %i van %s hersteld -> Bespaarde bytes: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Toewijzen"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Onvoldoende schijfruimte"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Gedownload"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "FOUT: Kon partbestand '%s' niet openen"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Systeem standaard"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanees"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabisch"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturisch"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baskisch"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgaars"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalaans"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Chinees (Vereenvoudigd)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Chinees (Traditioneel)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Kroatisch"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Tsjechisch"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Deens"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Nederlands"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Engels (V.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonisch"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Fins"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Frans"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Gallisch"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Duits"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Grieks"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebreeuws"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Hongaars"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiaans"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiaans (Zwitsers)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japans"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Koreaans"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Litouws"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Noors"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Pools"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugees"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugees (Braziliaans)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russisch"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Sloveens"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spaans"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Zweeds"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turks"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Oekraïens"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Verander Taal"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr "Er zijn geen vertalingen voor aMule geïnstalleerd"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr "Geen talen beschikbaar"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "geen opties beschikbaar"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Ongeldige categorie gevonden, wordt overgeslagen"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "TCP poort kan niet hoger zijn dan 65532 omdat de server UDP poort de TCP "
 "poort + 3 is"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Standaard poort zal worden gebruikt (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Laten vallen van niet-bestaande gedeelde directory: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Verbinding"
 
@@ -4939,7 +4949,7 @@ msgstr "Verbinding"
 msgid "Directories"
 msgstr "Directories"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servers"
 
@@ -4993,7 +5003,7 @@ msgstr ""
 "    %PARTFILE - volledig pad naar het bestand\n"
 "    %PARTNAME - alleen bestandsnaam"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5009,26 +5019,26 @@ msgstr ""
 "aMule zal goed draaien zonder deze instellingen\n"
 "te wijzigen."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Kon Cfg niet verbinden met widget met ID %d en sleutel %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "Kon data niet overdragen van Cfg naar widget met ID %d en sleutel %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Het type proxy waarmee u verbinding maakt"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "Kon data niet overdragen van Widget naar Cfg met ID %d en sleutel %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5036,27 +5046,32 @@ msgstr ""
 "aMule moet opnieuw gestart worden om deze veranderingen toe te passen:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP poort veranderd.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP poort veranderd.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Poort voor externe verbinding veranderd.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Acceptatie voor externe verbinding veranderd.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Interface voor externe verbinding veranderd.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protocol Obfuscatie"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5064,7 +5079,7 @@ msgstr ""
 "Uw Auto-update serverlijst is leeg.\n"
 "'Auto-update serverlijst bij het opstarten' wordt uitgeschakeld."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5073,19 +5088,19 @@ msgstr ""
 "Externe verbindingen kunnen niet ingeschakeld worden tenzij een geldig "
 "wachtwoord is ingesteld."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Taal veranderd.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Temp directory veranderd.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- ED2K netwerk ingeschakeld.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5093,7 +5108,7 @@ msgstr ""
 "Zowel het eD2K als het Kad netwerk zijn uitgeschakeld.\n"
 "U kun niet verbinden tot u minimaal een netwerk inschakelt."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5101,7 +5116,7 @@ msgstr ""
 "Kad zal niet starten als uw UDP poort is uitgeschakeld.\n"
 "Schakel de UDP poort in of schakel Kad uit."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5111,7 +5126,7 @@ msgstr ""
 "U MOET aMule nu opnieuw starten.\n"
 "Als u dat niet doet moet u niet klagen als er iets misgaat.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5121,41 +5136,41 @@ msgstr ""
 "Vul a.u.b. minimaal een URL naar een geldig server.met bestand in.\n"
 "Klik op de knop \"Lijst\" hiernaast om een URL in te voeren."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Tijdelijke bestanden"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Binnenkomende bestanden"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Online Handtekeningen"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Kies een directory voor %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Blader naar videospeler"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Selecteer browser"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Uitvoerbare%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Bewerk serverlijst"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5163,76 +5178,76 @@ msgstr ""
 "Voeg hier URL's toe om server.met bestanden te downloaden.\n"
 "Slechts een url per regel."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Update vertraging: %d seconde"
 msgstr[1] "Update vertraging: %d seconden"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Tijd voor gemiddeldengrafiek: %d minuut"
 msgstr[1] "Tijd voor gemiddeldengrafiek: %d minuten"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Schaal Verbindingengrafiek: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Grootte van Bestandsbuffer: %d byte"
 msgstr[1] "Grootte van Bestandsbuffer: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Grootte van Uploadwachtrij: %d client"
 msgstr[1] "Grootte van Uploadwachtrij: %d clients"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Server verbinding verversingsinterval: %d minuut"
 msgstr[1] "Server verbinding verversingsinterval: %d minuten"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Server verbinding verversingstijd: Uitgeschakeld"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "uitgeschakeld"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Voer commando uit bij gebeurtenis '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Schakel uitvoeren van commando's in kern in"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Kern commando:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Schakel uitvoeren van commando's in GUI in"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "GUI commando:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "De volgende variabelen worden vervangen:"
 
@@ -5261,7 +5276,7 @@ msgstr "eD2K zoekopdracht kan niet worden uitgevoerd als eD2K niet draait"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Onverwachte fout bij Kad zoekopdracht: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "BestandsID"
 
@@ -5375,7 +5390,7 @@ msgstr "FOUT: Socket ongeldig op timeoutcheck"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Poging tot verbinden met %s (%s:%i) gaf time out."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Laat resultaat van DNS lookup ontvangen, wordt genegeerd."
 
@@ -5404,50 +5419,50 @@ msgstr ""
 "Server.met bestand beschadigd, ongeldig versielabel gevonden: 0x%x, grootte %"
 "i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i server in server.met gevonden"
 msgstr[1] "%i servers in server.met gevonden"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d server toegevoegd"
 msgstr[1] "%d servers toegevoegd"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Fout: het bestand 'server.met' is beschadigd: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "IO fout bij het lezen van know'server.met': "
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Server niet toegevoegd: [%s:%d] bevat geen geldige poort."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Server niet toegevoegd: Het IP van [%s:%d] is gefilterd of ongeldig."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Server niet toegevoegd: Server met IP:Poort [%s:%d] al gevonden in lijst."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Server toegevoegd: Server op [%s:%d] met naam '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5455,25 +5470,25 @@ msgstr ""
 "U bent verbonden met de server die u probeert te verwijderen. Vebreek a.u.b. "
 "eerst de verbinding."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Kon '%s' niet openen"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Kon server.met niet opslaan!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Ongeldige URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Downloaden van serverlijst vanaf %s voltooid"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5481,27 +5496,27 @@ msgstr ""
 "Geen serverlijstadres gevonden in 'addresses.dat'. Plaats een geldig "
 "serverlijstadres in dit bestand om uw serverlijst automatisch te updaten"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Begin downloaden serverlijst van %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "WAARSCHUWING: ongeldige URL opgegeven voor het auto-updaten van servers: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Geen geldige server.met auto-download url in addresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Kon serverlijst niet downloaden van %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5538,7 +5553,7 @@ msgid "Static"
 msgstr "Statisch"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versie"
 
@@ -5564,8 +5579,8 @@ msgstr "Weet u zeker dat u de statische server %s wilt verwijderen"
 msgid "Servers (%i)"
 msgstr "Servers (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Server"
 
@@ -5621,82 +5636,82 @@ msgstr "Weet u zeker dat u de geselecteerde server wilt verwijderen?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Weet u zeker dat u de geselecteerde servers wilt verwijderen?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "FOUT: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "WAARSCHUWING: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Nieuwe clientid is %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "WAARSCHUWING: U heeft een laag ID gekregen!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tDit komt waarschijnlijk omdat u achter een firewall of router zit."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tVoor meer informatie, bekijk http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Onbekende server info ontvangen! - te kort"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "%d nieuwe server ontvangen"
 msgstr[1] "%d nieuwe servers ontvangen"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Bewaren van server-lijst compleet."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Server keurde laatste opdracht af"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Fout pakket ontvangen van server: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Onafgehandelde fout bij het verwerken van pakket van de server: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Kan DNS thread niet aanmaken voor het verbinden met %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Server IP %s (%s) is gefilterd.  Wordt niet mee verbonden."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "maakt gebruik van protocol obfuscatie."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Verbinding wordt gemaakt met %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Kan dns niet vinden voor server %s: Kan niet verbinden!"
@@ -5874,84 +5889,89 @@ msgstr "Lokale Bestandsnaam"
 msgid "Shares File List"
 msgstr "Deelt Bestandenlijst"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Aanvragen"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Geaccepteerde Aanvragen"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Overgebrachte Data"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Deelverhouding"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Ontvangen Delen"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Complete Bronnen"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Directory Pad"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Voeg Commentaar/Waardering toe"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Bewerk Commentaar/Waardering"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Hernoemen"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Voeg bestanden in verzameling toe aan overdrachtenlijst"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopieer magnet &URI naar klembord"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Kopieer eD2k link naar klembord (&Source)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Kopieer eD2k link naar klembord (Bron) (&With Crypt options)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Kopieer eD2k link naar klembord (&Hostnaam)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "Kopieer eD2k link naar klembord (Hostnaam) (Met &Crypt opties)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Kopieer eD2k link naar klembord (&AICH info)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopieer eD2k link naar klembord (&AICH info)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "U heeft een Hoog ID nodig om een geldige bronlink te maken"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Gedeelde Bestanden (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[PartBestand]"
 
@@ -5959,235 +5979,235 @@ msgstr "[PartBestand]"
 msgid "Remote File Name"
 msgstr "Bestandsnaam Op Afstand"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Geuploade Data (Sessie (Totaal)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Totale Overhead (Pakketten): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Bestand Aanvraag Overhead (Pakketten): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Bron Uitwisseling Overhead (Pakketten): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Server Overhead (Pakketten): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kad Overhead (Pakketten): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Crypt overhead (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Actieve Uploads: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Wachtende Uploads: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Totaal van succesvolle upload sessies: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Totaal van mislukte upload sessies: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Gemiddelde upload tijd: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Gedownloade Data (Sessie (Totaal)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Gevonden Bronnen: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Actieve Download (blokken): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Sessie UL:DL Verhouding (Totaal): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Gemiddelde downloadsnelheid (Sessie): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Gemiddelde uploadsnelheid (Sessie): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Max downloadsnelheid (Sessie): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Max uploadsnelheid (Sessie): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Hernieuwde verbindingen: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tijd Sinds Eerste Overdracht: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Verbonden Met Server Sinds: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Actieve Verbindingen (schatting): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Max Verbinding Grens Bereikt: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Gemiddelde Verbindingen (schatting): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Aantal Piek Verbindingen (schatting): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Clients"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Onbekend: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Gefilterd: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Geband: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Totaal: %i Bekend: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Werkende Servers: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Mislukte Servers: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Totaal: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Verwijderde Servers: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Gefilterde Servers: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Gebruikers op Werkende Servers: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Bestanden op Werkende Servers: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Totaal Gebruikers: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Totaal Bestanden: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Server Bezetting: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Aantal Gedeelde Bestanden: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Totale grootte van Gedeelde Bestanden: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Gemiddelde bestandsgrootte: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Besturingssysteem"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Niet Ontvangen"
 
@@ -6248,7 +6268,7 @@ msgstr "Niet een geldig nummer\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Geen geldige hash (lengte moet precies 32 tekens zijn)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Aanvraag mislukt met een onbekende fout."
 
@@ -6302,13 +6322,13 @@ msgstr "Verbonden met %s %s %s"
 msgid "Now connecting"
 msgstr "Aan het verbinden"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "firewalled"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6741,22 +6761,22 @@ msgstr ""
 "Dit is een afgekeurd commando, en kan in de toekomst verwijderd worden.\n"
 "Gebruik '%s' in de plaats.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule tekst client"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Oude AICH hashsets in '%s' worden omgezet in 64b in '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "WAARSCHUWING: De bestandsnaam '%s' is ongeldig en is gewijzigd in '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6832,7 +6852,7 @@ msgstr "Kon commando `%s' niet uitvoeren bij gebeurtenis `%s'."
 msgid "Download completed"
 msgstr "Download voltooid"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Het volledige pad naar het bestand."
 
@@ -6854,68 +6874,68 @@ msgstr "De grootte van het bestand in bytes."
 msgid "Cumulative download activity time."
 msgstr "Cumulatieve download activiteitsduur."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Nieuwe chatsessie begonnen"
 
 # ambiguous in EN, check translation
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Afzender bericht."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Geen schijfruimte meer"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Schijfpartitie."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Fout bij completeren"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Bestand nummer %u wordt verwerkt: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 "U heeft om deel hashes gevraagd (Alleen gebruikt voor bestanden > 9,5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Niet bestaand bestand !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, de aMule eD2k link maker"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Welkom!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Invoer parameters"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Bestand om te Hashen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Voeg Optionele URLs toe aan dit bestand"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Voer hier het bestand in waarvan u de eD2k link wilt laten berekenen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6923,15 +6943,15 @@ msgstr ""
 "Voer hier de URL in die u wilt toevoegen aan de eD2k link: Voeg / toe aan "
 "het eind om aLinkCreator de huidige bestandsnaam toe te laten voegen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Verwijder"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Maak link met deel-hashes"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6939,81 +6959,81 @@ msgstr ""
 "Help om nieuwe en zeldzame bestanden sneller te verspreiden, ten koste van "
 "een verhoogde linkgrootte"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 BestandsHash"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k BestandsHash"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k link"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Opslaan"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Kopieer naar klembord"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Openen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Open een bestand om zijn eD2k link te berekenen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Kopieer berekende eD2k link naar klembord"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Opslaan als"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Bewaar berekende eD2k link naar bestand"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Over aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Selecteer het bestand waarvoor u de eD2k link wilt laten berekenen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Kan het klembord niet openen"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Er is nu niets om te kopiëren !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Selecteer het bestand voor uw berekende eD2k link"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Kon niet openen "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Voer a.u.b. een niet lege bestandsnaam in"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Er is nu niets om te bewaren !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7033,158 +7053,162 @@ msgstr ""
 "\n"
 "Verspreid onder de GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Aan het hashen..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator is aan het werk voor u"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "MD4 Hash word berekend..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "eD2k Hashes worden berekend..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Afgebroken !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Gedaan in %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "U heeft deze URL al toegevoegd !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Voer a.u.b. een niet lege URL in"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Kon %s niet openen"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dag(en) %i u(u)r(en) %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uu %0umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uu %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxcas, aMule Online Statistieken"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Maximum DL snelheid sinds wxCas draait"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Absolute Maximum DL snelheid tijdens vorige keren dat wxCas draaide"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Systeem"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Stop Auto Verversen"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Bewaar Online Statistieken figuur"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Print Online Statistieken figuur"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Voorkeur instellingen"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Over wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Begin Auto Verversen"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Auto Verversen gestopt"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Auto Verversen gestart"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Bewaar Statistieken FIguur"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule Online Statistieken"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7192,11 +7216,11 @@ msgstr ""
 "Er was een probleem tijdens het printen.\n"
 "Misschien is uw printer niet goed ingesteld?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Aan het printen"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7214,326 +7238,326 @@ msgstr ""
 "\n"
 "Verspreid onder de GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh oh, aMule draait niet..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule draait"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule draait, maar niet verbonden"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule maakt verbinding..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, aMule status is onbekend..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " draait "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " is gestopt !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " is niet verbonden !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " is aan het verbinden..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " doet iets raars, controleer het !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " is verbonden met "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "uit"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " is aan "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " met"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Totale Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Sessie Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Deelt: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " bestand(en), Clients in wachtrij: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Tijd: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr "aan"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Gemiddelde Systeem Belasting (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Systeem uptime: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Directory die het bestand amulesig.dat bevat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Voer hier de directory in waar uw amulesig.dat bestand is"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Tijd tussen de verversingen in seconden"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Genereer een status figuur bij elke verversing"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 "Voer hier de directory in waar u het statistieken figuur wilt laten genereren"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Upload uw status figuur regelmatig naar een FTP server"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP Url"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP Pad"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Voer hier de URL in van uw FTP server"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Voer hier de directory in waar uw status figuur op de FTP server moet komen"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Gebruiker"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Voer hier de Gebruikersnaam in om in te loggen op uw FTP server"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Voer hier het Wachtwoord in om in te loggen op uw FTP server"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Tijd tussen de FTP updates in minuten"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Controleer"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Directory die uw handtekening bestand bevat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Directory waar het statistieken figuur gegenereerd moet worden"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Laadt template <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Webserver HTTP poort"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Gebruik UPnP port forwarding voor webserverpoort"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP poort"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Gebruik gzip compressie"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Wachtwoord voor volledige toegang tot webserver"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Gast wachtwoord voor webserver"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Sta gast toegang toe"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Weiger gast toegang"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Laad/bewaar webserverinstellingen van/naar aMule op afstand"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule config bestand pad. NIET DIRECT GEBRUIKEN!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Schakel PHP interpreter uit (verouderd)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Compileer PHP pagina's opnieuw bij elke aanvraag"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule Web Server"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "Webclient verbinding geaccepteerd\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "FOUT: kan verbinding van web client niet accepteren\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Aanvraag mislukt met de volgende fout: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Indexbestand niet gevonden: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sessie verlopen - login wordt aangevraagd\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sessie ok, ingelogd\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sessie ok, niet ingelogd\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Geen sessie geopend - login wordt aangevraad\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sessie aangemaakt - login wordt aangevraagd\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Aanvraag wordt verwerkt [origineel]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Geen wachtwoord opgegeven, login wordt niet toegestaan."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Controleren van wachtwoord\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Wachtwoordhash ongeldig\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Wachtwoord ok\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Wachtwoord fout\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 "U heeft geen wachtwoord ingevoerd. Een leeg wachtwoord is niet toegestaan.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Loguit aangevraagd\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Aanvraag wordt verwerkt [omgeleid]: "
 
@@ -7722,9 +7746,6 @@ msgstr "Aanvraag wordt verwerkt [omgeleid]: "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Totaal Gebruikers: %s | Totaal Bestanden: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "HTTP download thread gestart"
-
 #~ msgid "Download size: %i"
 #~ msgstr "Downloadgrootte: %i"
 
diff --git a/po/nn.po b/po/nn.po
index f39e525..a5c9f87 100644
--- a/po/nn.po
+++ b/po/nn.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: nn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-06-10 23:09+0200\n"
 "Last-Translator: Hallvor Brunstad <Hallvor_1976 at yahoo.com>\n"
 "Language-Team:  <i18n-nn at lister.ping.uio.no>\n"
@@ -41,7 +41,7 @@ msgstr "Den innskrivne brukarhashen er ikkje gyldig!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Greidde ikkje å opne %s·(%s)"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -49,58 +49,58 @@ msgstr ""
 "ÅTVARING: Du kan ikkje leggje deg sjølv til som kjelde for ei eD2k lenkje "
 "medan du har ein lågid."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 #, fuzzy
 msgid "Now, exiting main app..."
 msgstr ""
 "\n"
 "Ok,·avsluttar·%s...\n"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Mislukka"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 #, fuzzy
 msgid "aMule shutdown completed."
 msgstr "Nedlasting fullført"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Stadfesting av avslutting"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "Ny ekstern kopling akseptert"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "ÅTVARING"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -108,13 +108,13 @@ msgstr ""
 "Dine lokale innstilingar har vorte endra til opprinnelege "
 "systeminnstillingar på grunn av konfigurasjonsending. Beklager."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -122,16 +122,16 @@ msgstr ""
 "Du har ingen tenarar i tenarlista.\n"
 "Vil du at aMule skal laste ned ei ny liste no?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Nedlasting av tenarliste"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "vevtenar køyrer på pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -141,23 +141,23 @@ msgstr ""
 "køyrast. Installer pakken som inneheld vevtenaren til aMule, eller kompiler "
 "aMule med --enable-webserver og køyr make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "FEIL"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Greidde ikkje å knyte portar til adressa: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Port·%u er ikkje tilgjengeleg. Du vil få LågID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -173,11 +173,11 @@ msgstr ""
 "Sjekk nettverket ditt for å vere viss på at porten er open for inn- og "
 "utgåande trafikk."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Greidde ikkje å lage OnlineSigfil"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Greidde ikkje å lage aMule si OnlineSigfil."
 
@@ -229,134 +229,134 @@ msgstr ""
 "Mappa spesifisert for nettsignaturar er UGANGBAR!\n"
 " Nettsignaturar vert DEAKTIVERT fram til du ordnar det i innstillingar."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "Tenarnamn:"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Henting av diskplass for fila '%s' mislukka: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "FEIL: Greier ikkje å opne loggfila"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "ÅTVARING: loggfila er tom. Noko er gale."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Loggen har vorte nullstilt"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Tenarmelding: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Klarte ikkje å laste ned nodelista."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Klarte ikkje å opne den nedlaste utgåvesjekkfila"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Korrupt utgåvesjekkfil"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Du nyttar ei utdatert utgåve av aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Di utgåve av aMule er %i.%i.%i og den siste utgåva er %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Den siste utgåva finst alltid på http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "ÅTVARING: Utgåva di av aMule er utdatert: %i.%i.%i·<·%li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Utgåva di av aMule er oppdatert."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Klarte ikkje å laste ned utgåvesjekkfila"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Brukarar: %s | Filer: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Brukarar: E %s K: %s | Filer: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Ingen valde nettverk"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "med LågID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "med HøgID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Tilkopla %s·%s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Koplar til %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Fråkopla eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad starta"
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad stogga."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Tilkopla Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Tilkopla Kad (brannmura)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Fråkopla Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -364,11 +364,11 @@ msgstr ""
 "Kad kan ikkje nyttast dersom UDP-porten er deaktivert i innstillingar. "
 "Startar ikkje."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad-nettverket er deaktivert i innstillingar. Koplar ikkje til."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 #, fuzzy
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
@@ -381,7 +381,7 @@ msgstr ""
 "aMule, starte amuled med valet --ec-config eller set lykelen "
 "\"AcceptExternalConnections\" til 1 i fila ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -390,19 +390,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "Feil: %s"
@@ -480,9 +480,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Melding"
 
@@ -490,7 +490,7 @@ msgstr "Melding"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Koplar til"
 
@@ -524,7 +524,7 @@ msgstr "Kad: Av"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Avbryt"
 
@@ -541,7 +541,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Kople frå dei aktive nettverka"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Kople til"
 
@@ -582,7 +582,7 @@ msgstr "Stadfesting av avslutting"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -597,81 +597,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "ÅTVARING: Greidde ikkje å opne hudfila '%s' for lesing"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Nettverk"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Nettverksavindauge"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Søk"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Søkjevindauge"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Nedlastingar"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Lastar ned"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Delte filer"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Vindauge for delte filer"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Meldingar"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Meldingsvindauge"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistikk"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Statistikkgrafvindauge"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Innstillingar"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Innstillingsvalsvindauge"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importér"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Verkty for delfilimport"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Om"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Om/hjelp"
 
@@ -691,7 +691,7 @@ msgstr "Ikkje noko nettverk"
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -704,109 +704,109 @@ msgstr "FATAL FEIL: Greidde ikkje å lage tidtakar"
 msgid "Connect to remote amule"
 msgstr "Kople til aMule over nettet"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "FATAL FEIL: Greidde ikkje å lage tidtakar"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 #, fuzzy
 msgid "Going to event loop..."
 msgstr "Freistar å hente fram att filinformasjon..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Koplar til"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Oppkopling mislukka "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Alle"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Ukjend"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Greidde ikkje å hente delte filer frå brukar '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Falsk eMuleutgåve %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Falsk eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Falsk eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x·(basert på eMule·v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Brukarnamn: %s·ID:·%u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Etterspurt: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -817,7 +817,7 @@ msgstr[1] ""
 "Filstatistikk for denne økta: Godkjende %d av %d etterspurnader, %s "
 "overført\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -828,7 +828,7 @@ msgstr[1] ""
 "Filstatistikk for alle økter: Godkjende %d av %d etterspurnader, %s "
 "overført\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Etterspurt ukjend fil"
 
@@ -974,12 +974,12 @@ msgid "Client Details"
 msgstr "Klientdetaljar"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LågID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HøgID"
 
@@ -1031,66 +1031,66 @@ msgstr "Granska - OK"
 msgid "Not Available"
 msgstr "Ikkje tilgjengeleg"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Brukar %s·(%u) etterspurde liste over dei delte filene dine -> Godteke"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Brukar·%s (%u)·etterspurde·liste·over·dei·delte·filene·dine·-> Nekta"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Brukar %s·(%u) etterspurte lista di over delte katalogar -> Godteke"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Brukar·%s (%u)·etterspurte·lista·di·over·delte·katalogar·->·Nekta"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr ""
 "Brukar %s·(%u) etterspurte lista over delte filer for katalogen %s·-> godteke"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr ""
 "Brukar·%s (%u)·etterspurte·lista·over·delte·filer·for·katalogen·%s ->·nekta"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Brukar %s·(%u) deler katalogen %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Brukar %s·(%u) sende ikkje etterspurte delte kataloger."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Brukar %s·(%u) sende liste over delte filer for katalogen %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Brukar %s·(%u) er ferdig med å sende liste over delte filer"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Brukar%s·(%u) sende ikkje etterspurt liste over delte filer"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr "Brukar %s·(%u) nekta tilgang til delte kataloger/filer"
@@ -1105,7 +1105,7 @@ msgstr "Brukarnamn"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Filnamn"
 
@@ -1146,33 +1146,33 @@ msgstr "Auto·[No]"
 msgid "Auto [Hi]"
 msgstr "Auto·[Hø]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Svært låg"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Låg"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Vanleg"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Høg"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Svært høg"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Offentleggjering"
 
@@ -1189,12 +1189,12 @@ msgid "Queue Full"
 msgstr "Kø full"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "I kø"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Lastar ned"
 
@@ -1254,7 +1254,7 @@ msgstr "Lokal tenar"
 msgid "Remote Server"
 msgstr "Fjern tenar"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1280,7 +1280,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Ferdig"
 
@@ -1321,11 +1321,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Storleik"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Overført"
 
@@ -1338,17 +1338,17 @@ msgid "Progress"
 msgstr "Framdrift"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Kjelder"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioritet"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Status"
@@ -1373,7 +1373,7 @@ msgstr "Er du viss på at du vil slette den valde fila?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Er du viss på at du vil slette dei valte filene?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1383,7 +1383,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automatisk"
 
@@ -1435,11 +1435,11 @@ msgstr "Syn alle kommentarar"
 msgid "Copy magnet URI to clipboard"
 msgstr "Kopiér magnet URI til utklippstavla"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Kopier eD2k &lenka til utklippstavla"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Kopiér tilbakemelding til utklippstavla"
 
@@ -1455,24 +1455,24 @@ msgstr "Vel kategori"
 msgid "&Open the file"
 msgstr "&Opne fila"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Skriv nytt namn på denne fila:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Døyp om fil"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d·%H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Nedlastingar (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1480,11 +1480,11 @@ msgstr ""
 "Vel ein videospelar i innstillingar for å hindre at denne åtvaringa kjem opp "
 "ved kvar førehandssyning (mplayer er standard)"
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Førehandssyning"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "FEIL: Greidde ikkje å starte ekstern mediespelar! Kommando: '%s'"
@@ -1592,28 +1592,28 @@ msgstr "Eksterne koplingar deaktiverte på grunn av tomt passord!"
 msgid "External connections disabled in config file"
 msgstr "Eksterne koplingar deaktiverte i konfigurasjonsfila"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Ny ekstern kopling akseptert"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "FEIL: greidde ikkje å ta imot ei ny ekstern kopling"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Ekstern kopling nekta på grunn av tomt passord i innstillingar!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Koplar til klient: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Ukjend utgåve"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1621,7 +1621,7 @@ msgstr ""
 "Ikkje rett EC utgåve ID: det kan vere binær inkompatibilitet. Bruk core og "
 "remote frå same snapshot."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1630,175 +1630,175 @@ msgstr ""
 "Du kan ikkje kople til ei utgivingsutgåve frå ei vilkårleg SVN utgåve! "
 "*sukk* mogleg krasj unngått"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Ugyldig protokullutgåve."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Manglande merkelapp for protokollutgåve."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "Godkjenning mislukka."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "Godkjenning mislukka."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "Ugyldig etterspurnad, du treng godkjenning først."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Tilgang innvilga."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Filtrér meldingar frå ukjende klientar"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Uaotorisert freisting på tilgang. Kopling lukka."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Kommando for fjern delfil mislukka: Filhash ikkje funnen: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Filhash ikkje funnen: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OPS! Handsamingsfeil i OpCode!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Tenar ikkje lagd til"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "tenar ikkje funnen: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "treng å velje tenar for fjerning"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k er deaktivert i innstillingar"
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Søk i framdrift. Hentar inn att resultata om ein augneblink!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Nettsøk frå fjern adresse gir ikkje meining."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Ingen punkt for graf."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Klienten din er ikkje konfigurert for dette detaljnivået."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Ekstern kopling: avslutting etterspurt"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Avsluttar allereie."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Eksternkopling: legg til lenkje '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Ikkje gangbar lenkje eller lenka allereie på lista."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Fil ikkje funne."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Ikkje gangbart filnamn."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Ikkje i stand til å døype om fila."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad er deaktivert i innstillingar."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Allereie tilkopla eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Koplar til eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Allereie tilkopla Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Koplar til Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Alle nettverk er deaktiverte."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Fråkopla eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Fråkopla Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Ekstern kopling: ugangbar opkode motteken: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Ikkje gangbar opkode (feil protokollutgåve?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Ukjend forlenging·'%s'·for·'%s'·kommandoen.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Ukjend kommando '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1806,7 +1806,7 @@ msgstr ""
 "\n"
 "Denne kommandoen kan ikkje ha eit argument.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1814,7 +1814,7 @@ msgstr ""
 "\n"
 "Denne kommandoen må ha eit argument.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1822,7 +1822,7 @@ msgstr ""
 "\n"
 "Denne kommandoen er ikkje komplett; du må nytte ein av forlengjarane under.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1830,11 +1830,11 @@ msgstr ""
 "\n"
 "Tilgjengelege forlengjarar:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Tilgjengelege kommandoar:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1845,17 +1845,17 @@ msgstr ""
 " Alle kommandoar kan utførast med store og små bokstavar.\n"
 "Skriv '%s <kommando>'for meir opplysningar om <kommando>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Avsluttar programmet."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Syne hjelp."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1863,7 +1863,7 @@ msgstr ""
 "For å få hjelp til ein kommando, skriv 'help·<kommando>'.\n"
 "For full kommandoliste, skriv 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1874,47 +1874,47 @@ msgstr ""
 "Bruk·'%s'·for·kommandoliste\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Syntaksfeil!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Handsamingsfeil av kommando - burde aldri skje! Vér god å rapportere feilen\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Denne kommandoen skulle ikkje ha nokon parameter."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Denne komamndoen må ha eit parameter."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Ugangbart argument."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Denne kommandoen er ikkje komplett."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Skriv '%s'·for å få meir hjelp.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Dette er %s·%s·%s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Dette er %s·%s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1922,7 +1922,7 @@ msgstr ""
 "\n"
 "Opprettar klient...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1931,7 +1931,7 @@ msgstr ""
 "\n"
 "Ok,·avsluttar·%s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1945,47 +1945,47 @@ msgstr ""
 "\n"
 "Avsluttar...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Syne denne hjelpeteksten."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Vert der aMule køyrer (standard: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "aMule sin port for eksternkopling (standard: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Passord for eksternkopling."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Les innstillingar frå fil."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Ikkje skriv ut data til stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Vér utførleg - syne óg avfeilingsmeldingar,"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Set programspråk."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Skriv kommandolinjealternativa til konfigurasjonsfila."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Lagar konfigurasjonsfil basert på aMule si konfigurasjonsfil."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Skriv programutgåve."
 
@@ -1998,8 +1998,8 @@ msgstr "Fildetaljar"
 msgid "%.1f%% done"
 msgstr "%.2f%%·ferdig"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f·kB/s"
@@ -2016,7 +2016,7 @@ msgstr "Greidde ikkje å opne venelista 'enfriends.met' for skriving!"
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Vener"
 
@@ -2147,32 +2147,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Lasta ned"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Kople til tenar att"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2204,7 +2204,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Greidde ikkje å laste ned tenarlista frå %s"
@@ -2249,7 +2249,7 @@ msgstr[1] "%u vanskapte linjer vart forkasta."
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2266,104 +2266,104 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Noder (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Ikkje gangbar IP for eigenoppstart"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Ikkje gangbar port for eigenoppstart"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Vér god å fylle ut alle naudsynte felt"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Er du viss på at du vil laste ned ei ny nodes.dat fil?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Å gjere dette vil fjerne dine novérande noder og starte Kademlia på nytt."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Halde fram?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: for kort søkjeord"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Las %u kadkontakt"
 msgstr[1] "Las %u kadkontaktar"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Skreiv %d kadkontakt"
 msgstr[1] "Skreiv %d kadkontaktar"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Filnamn"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Filstorleik"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Delingsrate"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Lasta opp"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Etterspurt"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Godkjend"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Komplette kjelder"
 
@@ -2389,71 +2389,76 @@ msgstr "Ukjend utgåve"
 msgid "Unable to get error description for error %d"
 msgstr "ÅTVARING: Greidde ikkje å opne hudfila '%s' for lesing"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Hashar"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Ferdigstiller"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Ferdig"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pausa"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Feilaktig"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Ventar"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Du må skrive inn eit passord som ikkje er tomt."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Feil passord! Ikkje MD5 hash!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Oppkoplingsfeil"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "EC kopling feila. Tomt svar."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Ekstern kopling: Dårleg svar frå tenar. Kopling stengd."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Vellukka! Kopling til aMule er oppretta "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Vellukka! Kopling oppretta."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Ekstern kopling: Tilgang nekta fordi:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Ekstern kopling: Tilgang nekta"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Autooppfrisking starta"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2462,16 +2467,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr "FEIL: Greidde ikkje lytte til TCP port."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "FEIL: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "ÅTVARING: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Stengje"
 
@@ -2479,8 +2484,8 @@ msgstr "Stengje"
 msgid "Cut"
 msgstr "Klipp ut"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopiér"
 
@@ -2489,7 +2494,7 @@ msgid "Paste"
 msgstr "Lim inn"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Frigjer plass"
 
@@ -2499,7 +2504,7 @@ msgstr "Vél alle"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2576,7 +2581,7 @@ msgid "ServerIP: "
 msgstr "TenarIP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Ikkje tilkopla"
 
@@ -2611,7 +2616,7 @@ msgstr "Nettsignatur: Aktivert"
 msgid "Online Signature: Disabled"
 msgstr "Nettsignatur: Deaktivert"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Oppetid: %s"
@@ -2652,7 +2657,7 @@ msgstr "Gøyme aMule"
 msgid "Show aMule"
 msgstr "Syne aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Avslutt"
 
@@ -2735,7 +2740,7 @@ msgstr "Søk"
 msgid "Name:"
 msgstr "Namn:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Sort"
 
@@ -2763,38 +2768,38 @@ msgstr "Filtrerer"
 msgid "File Type"
 msgstr "Filtype"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Alle"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arkiv"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Lyd"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-bilete"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Bilete"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Program"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Tekstar"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Videoar"
 
@@ -2815,11 +2820,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2847,7 +2852,7 @@ msgstr "Snu resultat"
 msgid "Hide Known Files"
 msgstr "Gøyme kjende filer"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Start"
 
@@ -2905,7 +2910,7 @@ msgstr "Fullt namn :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "I/T"
 
@@ -2929,7 +2934,7 @@ msgstr "Delfilstatus :"
 msgid "Last seen complete :"
 msgstr "Sist sett komplett :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Overføring"
 
@@ -3015,27 +3020,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Filkvalitet"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Ikkje gitt verdi"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Ugyldig / Korrupt /Falsk"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Dårleg"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Middels"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "God"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Utmerka"
 
@@ -3081,7 +3086,7 @@ msgid "Userhash :"
 msgstr "Brukarhash :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Legg til"
 
@@ -3313,9 +3318,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Bla"
 
@@ -3401,7 +3406,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2k"
 
@@ -3519,7 +3524,7 @@ msgstr "Skriv inn mimimum ønska diskplass."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Lagre 10 kjelder til sjeldne filer (< 20 kjelder)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Opplastingar"
 
@@ -3761,7 +3766,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Aktivér UPnP-portvidaresending på EC-porten"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Passord"
 
@@ -3844,8 +3849,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Vel farge for denne kategprien (no valt)"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Still attende"
 
@@ -4241,88 +4246,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Aktivér utførleg avfeilingslogg."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Opne fila"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Meldingskategoriar:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Ventar..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Importér"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Prøv om att valde"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Fjern valde"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Aktive opplastingar :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Gøyme delte filer"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Vel synsfilter"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Aktive opplastingar"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Syne klientar"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Last om att lista"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Lastar inn att delte filer"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Send"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Sender meldinga."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Stengje denne lynmeldingsøkta."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Kople til vilkårleg tenar og/eller Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Delte filer"
 
@@ -4331,135 +4341,135 @@ msgstr "Delte filer"
 msgid "Disabled [%s]"
 msgstr "Deaktivert [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/sek"
 msgstr[1] "bytes/sek"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sekund"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "minutt"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "timar"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Dagar"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "alle"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "alle andre"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Uferdig"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Stogga"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arkiv"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Tekst"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktiv"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importerer %s:·%s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Les mellombels mappe"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Hentar grunnleggjande informasjon frå nedlastingsinformasjonfil"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Lagar målfil"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Lastar data frå gamal nedlastingsfil (%u·av·%u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Lagrer datablokk til ei einaste nedlastingsfil (%u·of·%u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Hentar informasjon frå nedlastingsfilkjelde"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Legg til nedlasting og lagrar ny delfil"
 
@@ -4475,12 +4485,12 @@ msgstr "Tilstand"
 msgid "Filehash"
 msgstr "Filhash"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s·(Disk:·%s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4488,12 +4498,12 @@ msgstr ""
 "Vér god å velje ei katalog til å søkje på mellombelse nedlastingar! "
 "(underkatalogar vil verte inkluderte)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Vil du slette kjeldefilene til vellukka importerte nedlastingar?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Ta bort kjelder?"
 
@@ -4607,7 +4617,7 @@ msgstr "Delfila ·%s·(%s) har ei ugangbar kjeldefil"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Feil i lesing av delfila si kjeldefil (%s·-·%s):·%s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4621,39 +4631,39 @@ msgstr[1] ""
 "Fann korrupt del (%d) i %d deler i fila %s - Filresultathash |%s| Filhash |%"
 "s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Fann ferdig del (%i)·i·%s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Ferdig med omhashing av %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Uventa feil ved fullføring av %s. Sette fila på pause"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Ferdig med å laste ned: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Slettar fila: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "ÅTVARING: Greier ikkje å hashe nedlasta del - hashsett ikkje komplett for '%"
 "s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4662,234 +4672,234 @@ msgstr ""
 "FEIL: Greier ikkje å hashe nedlasta del - hashsett ikkje komplett (%s). "
 "Dette burde aldri skje"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "ÅTVARING: Ikkje nok ledig diskplass! Set fila %s på pause"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Nedlasta del %i er korrupt i fila: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Attskapte korrupt del %i·for·%s·->·Lagra bytes:·%s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Hentar plass"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Ikkje nok diskplass"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Lasta ned"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "Feil: Greidde ikkje opne delfila '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Standardinnstillingar"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albansk"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabisk"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Estisk"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baskisk"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgarsk"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalansk"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Kinesisk (forenkla)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Kinesisk (tradisjonell)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Kroatisk"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Tsjekkisk"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Dansk"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Nederlansk"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Engelsk (U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estisk"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finsk"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Fransk"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galisisk"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Tysk"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Gresk"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebraisk"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Ungarsk"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiensk"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiensk (sveitsisk)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japansk"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Koreansk"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Litauisk"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norsk (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polsk"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugisisk"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugisisk (Brasil)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russisk"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Slovensk"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spansk"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Svensk"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Tyrkisk"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Språk"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Ikkje tilgjengeleg"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "TCP port kan ikkje vere høgare enn 65532 fordi tenaren si UDPkopling er TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Standardport vert nytta (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Kopling"
 
@@ -4897,7 +4907,7 @@ msgstr "Kopling"
 msgid "Directories"
 msgstr "Katalogar"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Tenarar"
 
@@ -4948,7 +4958,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4964,26 +4974,26 @@ msgstr ""
 "aMule køyrer fint utan justering av nokon av\n"
 "desse innstillingane."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Typen vikar du koplar til"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -4991,36 +5001,41 @@ msgstr ""
 "aMule·treng omstart for å gjere endringane moglege:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "-·TCP-porten endra.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "-·UDP-porten endra.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Ekstern kopling lukka."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Ny ekstern kopling akseptert"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Ekstern kopling lukka."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protokolltåkeleggjing"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5028,20 +5043,20 @@ msgstr ""
 "Du har aktivert eksterne koplingar, men har ikkje skrive inn eit passord.\n"
 "Eksterne koplingar kan ikkje aktiverast utan eit gyldig passord."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Språk endra.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Mellombels mappe endra.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "Alle nettverk er deaktiverte."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5049,7 +5064,7 @@ msgstr ""
 "Både eD2k og kadnettverket er dekativert.\n"
 "Du vil ikkje klare å kople til før du aktiverer minst eitt av dei."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5057,7 +5072,7 @@ msgstr ""
 "Kad kan ikkje starte dersom UDP-porten er deaktivert.\n"
 "Aktivér UDP-porten eller deaktivér Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5067,7 +5082,7 @@ msgstr ""
 "Du MÅ starte om att aMule no.\n"
 "Ikkje klag dersom du ikkje gjer dette og du får problem.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5077,41 +5092,41 @@ msgstr ""
 "Vér god og fylle ut ein URL som peikar til ei gyldig server.met fil.\n"
 "Klikk på knappen \"Liste\" ved denne boksen for å skrive inn ein URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Mellombelse filer"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Innkomande filer"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Nettsignaturar"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Vel ei mappe for %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Bla etter videospelar"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Vél nettlesar"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Køyrbar%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Handsame tenarlista"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5119,77 +5134,77 @@ msgstr ""
 "Skriv inn URL`en for å laste ned server.met filer.\n"
 "Berre ein URL på kvar linje."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Oppdateringspause: %d sekund"
 msgstr[1] "Oppdateringspause: %d sekund"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Tid for gjennomsnittleg graf: %d minutt"
 msgstr[1] "Tid for gjennomsnittleg graf; %d minutt"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Koplingsgrafskala: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Filbufferstorleik: %d byte"
 msgstr[1] "Filbufferstorleik: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Opplastingskøstorleik: %d klient"
 msgstr[1] "Opplastingskøstorleik: %d klientar"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Oppfriskingsinterval på tenarkoplingar: %d minutt"
 msgstr[1] "Oppfriskingsinterval på tenarkoplingar: %d minutt"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Oppfriskingsintervall for tenarkopling: Deaktivert"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "deaktivere"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Køyr kommando på `%s' hending"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Aktivér kommandokøyring i kjernen"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Kjernekommando:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Aktivér kommandokøyring på drakt"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Draktkommando:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Følgjande variablar vert erstatta:"
 
@@ -5217,7 +5232,7 @@ msgstr "eD2k søk kan ikkje gjennomførast dersom eD2k ikkje er tilkopla"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Uventa feil oppstod under søk på Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "FilID"
 
@@ -5330,7 +5345,7 @@ msgstr "FEIL: Ugangbar sokkel ved uttellingssjekk"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Tilkoplingsfreisting til %s·(%s:%i)·gjekk over tida."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5358,75 +5373,75 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Server.met fila er korrupt, ugangbar merkelapp på utgåve: 0x%x,·storleik·%i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i tenar funne i server.met"
 msgstr[1] "%i tenarar funne i server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d tenar lagd til"
 msgstr[1] "%d tenarar lagde til"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "IO feil underlesing av known.met fila: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Tenar ikkje lagd til: [%s:%d] oppgir ikkje ein gangbar port."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Tenar ikkje lagd til: IP`en til [%s:%d] er filtrert eller ugangbar."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr "Tenar ikkje lagd til: Tenar med lik IP:Port [%s:%d] funne i lista."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Tenar lagd til: Tenar på [%s:%d] som nyttar namnet '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 "Du er tilkopla tenaren du freistar å slette. Vér god å kople frå først."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Greidde ikkje å opne '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Greidde ikkje å lagre server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Ugangbar URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Tenarlista ferdig nedlasta frå %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5434,26 +5449,26 @@ msgstr ""
 "Inga tenarlistadresse funnen i 'addresses.dat'. Lim inn ei gangbar "
 "tenarlisteadresse i denne fila for å automatisk oppdatere tenarlista di"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Last ned tenarlista frå %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr "ÅTVARING: ikkje gangbar URL for automatisk oppdatering av tenarar: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Ugangbar autonedlastingsnettside for server.met i addresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Greidde ikkje å laste ned tenarlista frå %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5488,7 +5503,7 @@ msgid "Static"
 msgstr "Statisk"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Utgåve"
 
@@ -5514,8 +5529,8 @@ msgstr "Er du sikker på at du vil slette den statiske tenaren %s"
 msgid "Servers (%i)"
 msgstr "Tenarar (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Tenar"
 
@@ -5571,82 +5586,82 @@ msgstr "Er du viss på at du vil slette den valde tenaren."
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Er du viss på at du vil slette dei valde tenarane?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "FEIL: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "ÅTVARING: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Ny klientid er %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "ÅTVARING: Du har motteke ein Låg-ID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tTruleg har dette skjedd fordi du er bak ein brannmur eller ruter."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tFor meir informasjon, sjå http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Ukjend tenarinfo motteke! - for kort"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Tok mot %d ny tenar"
 msgstr[1] "Tok mot %d nye tenarar"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Lagring av tenarlista ferdig."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Tenar avviste siste kommando"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Falske pakkar mottekne frå tenar: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Urøyvd feil under handsaming av pakke frå tenar: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Kan ikkje skape DNS-løysande tråd for å kople til %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Tenar IP %s·(%s) er filtrert.  Koplar ikkje til."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "brukar protokolltåkelegging."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Koplar til·%s·(%s·-·%s:%i)·%s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Greidde ikkje å løyse dns for tenar %s: Greier ikkje å kople til!"
@@ -5836,84 +5851,89 @@ msgstr "Filnamn"
 msgid "Shares File List"
 msgstr "Delte filer"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Etterspurnader"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Godtekne etterspurnader"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Overførte data"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Delingssamsvar"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Nedlasta delar"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Komplette kjelder"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Katalogsti"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Legg til kommentar/Rangering"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Endre kommentar/Rangering"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Endre namn"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Legg filer frå samlinga til overføringslista"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopiér magnet &URI til utklippstavla"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Kopier eD2k lenka til utklippstavla (&Kjelde)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Kopier eD2k lenkje til utklippstavle (Kjelde) &Med krypteringsval)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Kopier eD2k lenkje til utklippstavla (&Vertsnamn)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "Kopier eD2k lenkje til utklippstavla (Vertsnamn) (Med &krypteringsval)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Kopier eD2k lenkje til utklippstavla (&AICH info)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopier eD2k lenkje til utklippstavla (&AICH info)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Du treng ein HøgID for å lage ei gangbar kjeldelenkje"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Delte filer (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Delfil]"
 
@@ -5922,235 +5942,235 @@ msgstr "[Delfil]"
 msgid "Remote File Name"
 msgstr "Filnamn"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Opplasta data (økt (total)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Totalt dataoverskot (pakkar): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Dataoverskot på filetterspurnader (pakkar): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Dataoverskot på kjeldeutveksling (pakkar): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Dataoverskot på tenar (pakkar): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Dataoverskot Kad (pakkar): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Krypteringsdataoverskot (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Aktive opplastingar: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Ventande opplastingar: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Tal på samtlege vellukka opplastingar: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Tal på samtlege mislukka opplastingar: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Gjennomsnittleg opplastingstid: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Nedlasta data (økt (total)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Funne kjelder: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Aktive nedlastingar (delar): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Økt OL:NL proporsjon (total): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Gjennomsnittleg nedlastingsfart (økt): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Gjennomsnittleg opplastingsfart (økt): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Raskaste nedlastingsfart (økt): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Raskaste opplastingsfart (økt): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Attkoplingar: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tid sidan første overføring: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Tilkopla tenar sidan: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktive koplingar (berekna): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Maksimal koplingsgrense nådd: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Gjennomsnittleg tal på koplingar (berekna): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Topp koplingar (berekna): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Klientar"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Ukjend storleik"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Filtrert"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "Nekta"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Total:·%i·Kjend:·%i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Fungerande tenarar: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Mislukka tenarar: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Total:·%s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Sletta tenarar: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Filtrerte tenarar: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Brukarar på fungerande tenarar: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Filer på fungerande tenarar: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Totalt brukertal: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Totalt filtal: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Tenerlast: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Tal på delte filer: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Total storleik på delte filer: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Gjennomsnittleg filstorleik: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Operativsystem"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Ikkje motteke"
 
@@ -6209,7 +6229,7 @@ msgstr "Ikkje gangbart tal\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Ikkje gangbar hash (lengde må vere nøyaktig 32 teikn)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Etterspurnaden mislukka med ukjend feil."
 
@@ -6263,13 +6283,13 @@ msgstr "Tilkopla %s·%s·%s"
 msgid "Now connecting"
 msgstr "Koplar til no"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "brannmura"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6719,21 +6739,21 @@ msgstr ""
 "fjerna i framtida.\n"
 "Bruk '%s' i staden\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule tekstklient"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Konverterer gamle AICH hashsett i '%s'·til·64b·i·'%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "ÅTVARING: Filnamnet '%s' er feil og har vorte omdøypt til '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "ÅTVARING: Fila '%s' finst allereie; ny fil omdøypt til '%s'."
@@ -6805,7 +6825,7 @@ msgstr "Greidde ikkje å utføre kommendoen `%s'·på·`%s hending."
 msgid "Download completed"
 msgstr "Nedlasting fullført"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Fullstendig sti til fila"
 
@@ -6825,66 +6845,66 @@ msgstr "Filstorleiken i bytes."
 msgid "Cumulative download activity time."
 msgstr "Samla tid på nedlastingsaktivitet."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Ny lynmeldingsøkt starta"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Meldingssendar."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Tom for plass"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Diskpartisjon,"
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Feil ved ferdigstilling"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Handsamar filnummer %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Du har spurt etter delhashar (Berre brukt på filer > 9,5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s·--->·Fila finst ikkje·!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, lenkjeskaparen for aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Velkomen!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Innmatingsparameter"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Fil å hashe"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Legg til valfrie URL`ar for denne fila"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Skriv inn fila du vil lage eD2k lenkje til her"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6892,15 +6912,15 @@ msgstr ""
 "Skriv inn internettadressa du vil leggje til eD2k lenka: Legg til / på "
 "slutten for å la aLinkCreator leggje til det noverande filnamnet "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Ta bort"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Lag lenkje "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6908,81 +6928,81 @@ msgstr ""
 "Hjelp til med å spreie nye og sjeldne filer raskare, men med auka "
 "lenkjestorleik"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 filhash"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k filhash"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k lenkje"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Lagre"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Kopiér til utklippstavle"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Opne ei fil for å rekne ut eD2k lenka hennar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Kopier utrekna eD2k lenkje til skrivebordet"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Lagre utrekna eD2k lenkje til fil"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Om aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Vel fila du vil rekne ut eD2k lenkje til"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Ikkje noko å kopiére no !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Vel fila til den utrekna eD2k lenka"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Ikkje i stand til å opne"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Vér god å skrive inn eit filnamn som ikkje er tomt"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Ikkje noko å lagre akkurat no !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7002,158 +7022,162 @@ msgstr ""
 "\n"
 "Distribuert under GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Hashar..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Avbrote!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Ferdig om %.2f·s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Du har allereie lagt til denne URL`en!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Vér god å skrive inn ein URL som ikkje er tom"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Ikkje i stand til å opne %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dag(ar) %i timar %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f·KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "WxCas, aMule nettstatistikk"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Høgaste nedlastingsfart medan wxCas har køyrt"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Absolutt maksimum nedlastingsfart nokon gong medan wxCas har køyrt"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "System"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Stopp. Autooppfrisking"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Lagre nettstatistikkbiletet"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Skriv ut nettstatistikkbiletet"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Innstillingsval"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Om wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Start autooppfrisking"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Autooppfrisking stogga"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Autooppfrisking starta"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Lagre statistikkbilete"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule nettstatistikk"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7161,11 +7185,11 @@ msgstr ""
 "Det oppstod eit problem med utskrifta.\n"
 "Kanskje er ikkje skrivaren din innstilt skikkeleg?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Skriv ut"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7183,323 +7207,323 @@ msgstr ""
 "\n"
 "Distribuert·under·GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Å nei, aMule køyrer ikkje..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule køyrer"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule køyrer, men fråkopla"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule koplar til..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Å nei, ukjend status for aMule..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " har køyrt i "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " er stogga !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " er ikkje tilkopla !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " koplar til..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " gjer noko rart, sjekk det !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " er tilkopla "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "av"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " er på "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " med "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Total nedlasting: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr " Opplasting: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Nedlasting denne økta: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Nedlasting: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, opplasting: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Deler: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " filer, klientar i kø: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Tid: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " på "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Gjennomsnittleg systembelasting (1-5-15·min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Oppetid: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Katalog som inneheld amulesig.dat fila"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Skriv inn kvar katalogen som inneheld amulesig.dat fila er"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Oppfriskingsintervall i sekund"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Lag eit statistikkbilete ved kvar oppfriskingshending"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Skriv inn katalogen du vil lage statistikkbiletet i"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Last regelbunde opp statistikkbilete til ein FTP tenar"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP-Url"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTPsti"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Skriv inn URL til FTP tenar"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Skriv inn katalogen du lastar statistikkbiletet til FTPtenaren til"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Brukar"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Skriv inn brukarnamnet for å logge inn på FTPtenaren din"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Skriv inn brukarpassordet for å logge inn på FTPtenaren din"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP oppdateringsintervall i minutt"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Validere"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Katalog som inneheld signaturfila di"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Katalog der statistikkbiletet vert laga"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Lastar modell <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "HTTP port for vevtenar"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Bruk UPnP portvidarekopling på vevtenarport"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP port"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Nytt gzipkomprimering"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Fulltilgangspassord for vevtenar"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Gjestepassord for vevtenar"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Gje løyve til gjestetilgang"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Nekt gjestetilgang"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Last/lagre vevtenarinnstillingar frå/til fjern aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule konfugurasjonsfilsti. IKKJE NYTT DIREKTE!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Deaktivér PHP tolk (frårådd)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Omkompilér PHP-sider ved kvar etterspurnad"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule vevtenar"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "vevklientoppkopling godkjend\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Etterspurnaden mislukka med følgjande feil: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Registerfil ikkje funne: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Økt utgått - ber om logginn\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Økt ok, logga inn\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Økt ok, ikkje innlogga\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Inga økt opna - vil be om logginn\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Økt oppretta - ber om logginn\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Handsamar etterspurnad [original]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Sjekkar passord\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Passord hash feil\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Passord ok\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Feil passord\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Du skreiv ikkje inn eit passord. Tomt passord er ikkje tillate.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Utlogging etterspurt\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Handsamar etterspurnad [omdirigert]: "
 
diff --git a/po/pl.po b/po/pl.po
index 48d1950..e1b7f2b 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2010-08-19 01:21+0100\n"
 "Last-Translator: Michał Trzebiatowski <hippie_1968 at hotmail.com>\n"
 "Language-Team: translationproject.org/team/pl.html <translation-team-"
@@ -46,44 +46,44 @@ msgstr "Wybrany skrót użytkownika jest niepoprawny!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Nie udało się otworzyć pliku ED2KLinks."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 "UWAGA: Nie możesz dodać samego siebie jako źródło linku ed2k, gdy masz lowid."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Teraz, zakańczam główną aplikację..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, fuzzy, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Zakańczam instancję amuleweb z pid `%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, fuzzy, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Zabiłam instancję amuleweb z pid `%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Nieudane"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Zakończenie jądra."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Zamykanie aMule zakończone."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Wyniki debugu pamięci dla wyjścia aMule:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -91,16 +91,16 @@ msgstr ""
 "\n"
 "Konfiguracja EC"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Ustawione hasło i włączone połączenia zewnętrzne."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "UWAGA"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -108,13 +108,13 @@ msgstr ""
 "Twoje ustawienia lokalne zostały zmienione na domyślne systemowe w związku "
 "ze zmianą konfiguracji. Przepraszamy."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Informacje"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -122,16 +122,16 @@ msgstr ""
 "Nie masz żadnego serwera na twojej liście serwerów.\n"
 "Czy chcesz, żeby aMule pobrał nową listę teraz?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Pobieranie listy serwerów"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "serwer sieciowy uruchomiony na pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -142,23 +142,23 @@ msgstr ""
 "sieciowy aMule lub skompiluj aMule używając --enable-webserver i uruchom "
 "make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "BŁĄD"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Nie można było powiązać portów z określonym adresem: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Port %u jest niedostępny. Będziesz mieć LowID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -174,11 +174,11 @@ msgstr ""
 "Sprawdź swoją sieć aby mieć pewność, że port jest otwarty dla wejścia i "
 "wyjścia."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Nie udało się utworzyć pliku podpisu online"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Nie udało się utworzyć pliku podpisu online aMule"
 
@@ -233,133 +233,133 @@ msgstr ""
 " Sygnatura online zostanie wyłączona dopóki nie poprawisz tego w "
 "preferencjach."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Zawiadomiono nazwę hostu serwera"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Wstępna alokacja dysku dla pliku '%s' nie powiodła się: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "BŁĄD: nie mogę otworzyć pliku logów"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "UWAGA: plik logów jest pusty. Coś jest nie tak."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Logi zostały zresetowane"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Wiadomość z serwera: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "Pominięto pobranie %s, ponieważ żądany plik nie jest nowszy."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Pobieranie listy węzłów nie powiodło się."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Nie można otworzyć pobranego pliku kontroli wersji"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Uszkodzony plik kontorli wersji"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Używasz przestarzałej wersji aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Twoje wersja eMule to %i.%i.%i, najnowszą wersją jest %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Najnowsza wersja jest zawsze dostępna na http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "UWAGA: Twoja wersja aMule jest przestarzała: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Twoja kopia aMule jest przestarzała."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Nie udało się pobrać pliku kontroli wersji"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Użytkowników: %s | Plików: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Użytkowników: E: %s K: %s | Plików: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Nie wybrano sieci"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "z LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "z HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Połączony z %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Łączenie z %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Rozłączono z eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Włączono Kad."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Zatrzymano Kad."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Połączono z Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Połączono z Kad (za firewallem)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Rozłączono z Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -367,11 +367,11 @@ msgstr ""
 "Nie można użyć sieci Kad, jeśli port UDP jest wyłączony w preferencjach, nie "
 "włączam."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Zablokowano sieć Kad w preferencjach, nie łączę."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -383,7 +383,7 @@ msgstr ""
 "amuled z opcją --ec-config lub ustaw klucz \"AcceptExternalConnections\" na "
 "1 w pliku ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -397,19 +397,19 @@ msgstr ""
 "conf~ z odpowiednią wartością. Wykonaj amuled z flagą --ec-config aby "
 "ustawić hasło. Więcej informacji można znaleźć na http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - począwszy timer"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: rozdzielanie tła - do zobaczenia"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Nie można utworzyć pliku Pid"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "BŁĄD: %s"
@@ -493,9 +493,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Wiadomość"
 
@@ -503,7 +503,7 @@ msgstr "Wiadomość"
 msgid "aMule dialog destroyed"
 msgstr "dialog aMule zniszczony"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Łączenie"
 
@@ -537,7 +537,7 @@ msgstr "Kad: Wyłączony"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Anuluj"
 
@@ -554,7 +554,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Rozłącz z aktualnie połączonymi sieciami"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Podłącz"
 
@@ -595,7 +595,7 @@ msgstr "Potwierdzenie wyjścia"
 msgid "Launch Command: "
 msgstr "Uruchomienie polecenia: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- domyślnie -"
 
@@ -610,80 +610,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "OSTRZEŻENIE: Nie udało się otworzyć pliku skórki '%s' do odczytu"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Sieci"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Okno sieci"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Szukaj"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Okno wyszukiwania"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Pobieranie"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Okno pobierań"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Udostępnione pliki"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Okno udostępnionych plików"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Wiadomości"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Okno wiadomości"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statystyki"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Okno wykresów statystyk"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Preferencje"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Okno preferencji"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Import"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Narzędzie importowania plików części"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Informacje o"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Informacje/Pomoc"
 
@@ -703,7 +703,7 @@ msgstr "Brak sieci"
 msgid "aMule remote control"
 msgstr "Pilot aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -715,108 +715,108 @@ msgstr "Krytyczny Błąd: Nie udało się utworzyć Timera Core"
 msgid "Connect to remote amule"
 msgstr "Podłączony do zdalnego amule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Krytyczny Błąd: Nie udało się utworzyć Timera Poll"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Przechodzę do pętli wydarzenia..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Łączenie..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Nieudane połączenie "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Zdalne GUI EC obsługi zdarzenia"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Zamykanie"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Połączenie nie powiodło się. Nie można połączyć się z %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Połączenie zostało zamknięte - aMule prawdopodobnie zakończone."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Gotowy"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Wszystkie"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Nie można utworzyć katalogu '%s' dla kategorii '%s', używany jest nadal "
 "katalog '%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Nieznany"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Nieudane pobieranie udostępnionych plików od użytkownika '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Szukam kolegi dla połączenia lowid"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Fałszywa wersja eMule %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Fałszywy eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Fałszywy eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (oparty na eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Użytkownik: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Zażądano:  %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -828,7 +828,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Statystyki plików tej sesji: Zaakceptowano %d z %d żądań, %s przesłano\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -843,7 +843,7 @@ msgstr[2] ""
 "Statystyki plików dla wszystkich sesji: Zaakceptowano %d z %d żądań, %s "
 "przesłano\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Zażądano nieznany plik"
 
@@ -995,12 +995,12 @@ msgid "Client Details"
 msgstr "Szczegóły klienta"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1052,32 +1052,32 @@ msgstr "Weryfikacja - OK"
 msgid "Not Available"
 msgstr "Niedostępne"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "Użytkownik %s (%u) zażądał twojej listy udostępnionych plików-> Zaakceptowano"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "Użytkownik %s (%u) zażądał twojej listy udostępnionych plików -> Odmówiono"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "Użytkownik %s (%u) zażądał twojej listy udostępnionych katalogów -> "
 "Zaakceptowano"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "Użytkownik %s (%u) żążądał twojej listy udostępnionych katalogów -> Odmówiono"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1085,7 +1085,7 @@ msgstr ""
 "Użytkownik %s (%u) zażądał twojej listy plików udostępnionych w katalogu %s -"
 "> Zaakceptowano"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1093,32 +1093,32 @@ msgstr ""
 "Użytkownik %s (%u) zażądał twojej listy plików udostępnionych w katalogu %s -"
 "> Odmówiono"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Użytkownik %s (%u) udostępnia katalog %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Użytkownik %s (%u) wysłał niechciane katalogi udostępnione."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Użytkownik %s (%u) wysłał listę plików udostępnionych w katalogu %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Użytkownik %s (%u) zakończył wysyłanie listy udostępnionych plików"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Użytkownik %s (%u) wysłał niechcianą listę udostępnionych plików"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1134,7 +1134,7 @@ msgstr "Nazwa użytkownika"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Nazwa pliku"
 
@@ -1177,33 +1177,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Wy]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Bardzo niski"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Niski"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normalny"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Wysoki"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Bardzo wysoki"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Wydanie"
 
@@ -1220,12 +1220,12 @@ msgid "Queue Full"
 msgstr "Pełna kolejka"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "W kolejce"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Pobieranie"
 
@@ -1285,7 +1285,7 @@ msgstr "Serwer lokalny"
 msgid "Remote Server"
 msgstr "Serwer zdalny"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1311,7 +1311,7 @@ msgid "Search Result"
 msgstr "Wynik wyszukiwania"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Zakończono"
 
@@ -1352,11 +1352,11 @@ msgid "Part"
 msgstr "Część"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Rozmiar"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Przesłano"
 
@@ -1369,17 +1369,17 @@ msgid "Progress"
 msgstr "Postęp"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Źródła"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Priorytet"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Status"
@@ -1404,7 +1404,7 @@ msgstr "Jesteś pewien, że chcesz usunąć wybrany plik?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Jesteś pewien, że chcesz usunąć wybrane pliki?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1414,7 +1414,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automatyczny"
 
@@ -1466,11 +1466,11 @@ msgstr "Pokaż wszystkie komentarze"
 msgid "Copy magnet URI to clipboard"
 msgstr "Skopiuj magnet URI do schowka"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Kopiuj &link eD2k do schowka"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Kopiuj informację zwrotną do schowka"
 
@@ -1486,24 +1486,24 @@ msgstr "Przydziel do kategorii"
 msgid "&Open the file"
 msgstr "&Otwórz plik"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Wprowadź nową nazwę dla tego pliku:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Zmień nazwę"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Pobieranie (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1511,11 +1511,11 @@ msgstr ""
 "Aby zapobiec pojawianiu się tego komunikatu przy każdym podglądzie,\n"
 "ustaw swój odtwarzacz wideo w preferencjach (domyślny jest mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Podgląd pliku"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "BŁĄD: Nie udało się uruchomić zewnętrznego odtwarzacza! Komenda: `%s'"
@@ -1622,29 +1622,29 @@ msgstr "Zewnętrzne połączenia wyłączone w związku z brakiem hasła!"
 msgid "External connections disabled in config file"
 msgstr "Zewnętrzne połączenia wyłączone w pliku konfiguracyjnym"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nowe zewnętrzne połączenie zaakceptowane"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "BŁĄD: nie można zaakceptować nowego połączenia zewnętrznego"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Zewnętrzne połączenia odrzucone, ze względu na brak hasła w preferencjach!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Łączę z klientem: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Nieznana wersja"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1652,7 +1652,7 @@ msgstr ""
 "Niepoprawny ID wersji EC, może występować niezgodność binarna. Użyj rdzenia "
 "i zdalnego z tej samej wersji."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1660,174 +1660,174 @@ msgstr ""
 "Nie można połączyć się z wersją finałową z dowolnej wersji SVN! "
 "*westchnięcie* prawdopodobnie zapobiegnięto awarii"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Zła wersja protokołu."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Brak znacznika wersji protokołu."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 "Uwierzytelnianie nie powiodło się: nieprawidłowy skrót podany jako hasło EC."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Uwierzytelnianie nie powiodło się: nieprawidłowe hasło."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Uwierzytelnianie nie powiodło się: brak hasła."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Nieprawidłowe żądanie, najpierw musisz się uwierzytelnić."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Dostęp udzielony."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Wyślij wiadomość błędu \"%s\" do klienta."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Próba nieautoryzowanego dostępu z %s. Połączenie zakończone."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Zdalna komenda pliku części nieudana: Skrót dla pliku nieznaleziony: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Skrót dla pliku nieznaleziony: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OOPS! Błąd przetwarzania OpCode!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Nie dodano serwera"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "serwer nieznaleziony: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "trzeba zdefiniować serwer do usunięcia"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k jest wyłączony w preferencjach."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Wyszukiwanie w trakcie. Odświeżenie rezultatów za chwilę!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Szukanie przez WWW ze zdalnych interfejsów nie ma sensu."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Brak punktów dla wykresu."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Twój klient nie jest skonfigurowany do tego poziomu szczegółów."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "External Connection: żądanie zamknięcia"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Już w trakcie zamykania."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ExternalConn: dodaję link '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Nieprawidłowy lub znajdujący się już na liście link."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Nie znaleziono pliku."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nieprawidłowa nazwa pliku."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Nie udało się zmienić nazwy pliku."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad jest wyłączony w preferencjach."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Już podłączony do eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Łączę do eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Już podłączony do Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Łączę z Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Wszystkie sieci są wyłączone."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Rozłącz z eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Rozłączono z Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "External Connection: otrzymano nieprawidłowy opcode: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Nieprawidłowy opcode (zła wersja protokołu?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Nieznane rozszerzenie '%s' dla komendy '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Nieznana komenda '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1835,7 +1835,7 @@ msgstr ""
 "\n"
 "Ta komenda nie może posiadać argumentu.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1843,7 +1843,7 @@ msgstr ""
 "\n"
 "Ta komenda musi posiadać argument.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1851,7 +1851,7 @@ msgstr ""
 "\n"
 "Ta komenda jest niekompletna, użyj jednego z rozszerzeń podanych niżej.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1859,11 +1859,11 @@ msgstr ""
 "\n"
 "Dostępne rozszerzenia:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Dostępne komendy:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1875,17 +1875,17 @@ msgstr ""
 "Wpisz '%s <komenda>', aby uzyskać szczegółowe informacje na temat "
 "<komenda>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Wychodzi z programu."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Pokaż pomoc."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1893,7 +1893,7 @@ msgstr ""
 "Aby uzyskać pomoc dotyczącą komendy, wpisz 'help <komenda>'.\n"
 "Aby uzyskać pełną listę komend, wpisz 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1904,48 +1904,48 @@ msgstr ""
 "Użyj '%s' aby otrzymać listę komend\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Błąd składni!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Błąd przetwarzania komendy - to nie powinno się zdarzyć! Proszę zgłosić "
 "błąd\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Ta komenda nie powinna posiadać żadnego parametru."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Ta komenda musi posiadać parametr."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Nieprawidłowy argument."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "To jest niekompletna komenda."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Wpisz '%s' , aby uzyskać więcej pomocy.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "To jest %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "To jest %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1953,7 +1953,7 @@ msgstr ""
 "\n"
 "Tworzenie klienta...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1962,7 +1962,7 @@ msgstr ""
 "\n"
 "OK, wychodzę %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1976,47 +1976,47 @@ msgstr ""
 "\n"
 "Wychodzę...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Pokazuj ten tekst pomocy."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host gdzie jest uruchomiony aMule. (domyślny: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Port zewnętrznych połączeń aMule. (domyślny: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Hasło połączeń zewnętrznych."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Czyta konfiguracje z pliku."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Nie wysyłaj żadnego wyjścia na stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Bądź gadatliwy - pokazuj także wiadomości diagnostyczne."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Ustawia locale programu (język)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Zapisuje opcje listy komend do pliku konfiguracyjnego."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Tworzy plik konfiguracyjny oparty na pliku konfiguracyjnym aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Drukuj wersję programu."
 
@@ -2029,8 +2029,8 @@ msgstr "Szczegóły pliku"
 msgid "%.1f%% done"
 msgstr "%.2f%% skończone"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2049,7 +2049,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "KRYTYCZNE - brak klienta przy StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Znajomi"
 
@@ -2177,21 +2177,21 @@ msgstr "Adres URL do pobrania nie może być pusty"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "Adres URL %s zwrócił: %i - Błąd (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Krytyczny błąd podczas zapisywania pobranego pliku"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "Pobrano %d bajtów"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Oczekiwane %d bajtów, ale pobrane zostało %d bajtów"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2199,11 +2199,11 @@ msgstr ""
 "Nieprawidłowy adres URL do pobrania HTTP lub przekierowania HTTP (nie "
 "zapomniałeś 'http://' ?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Nie można połączyć się z serwerem pobrania HTTP"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Nieprawidłowa odpowiedź serwera pobrania HTTP"
 
@@ -2235,7 +2235,7 @@ msgstr "Pomyślnie zaktualizowany %s"
 msgid "Error updating GeoIP.dat"
 msgstr "Błąd aktualizacji GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Nie powiodło się pobranie %s z %s"
@@ -2282,7 +2282,7 @@ msgstr[2] "%u niepoprawnych linii zostało odrzuconych."
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Nie można załadować danych kraju dla '%s'."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "Filtr IP jest gotowy"
 
@@ -2299,54 +2299,54 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Węzły (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Nieprawidłowe ip do rozruchu"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Nieprawidłowy port do rozruchu"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Proszę wypełnij wszystkie wymagane pola"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Czy jesteś pewien, że chcesz pobrać nowy plik nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Kontynuowanie spowoduje usunięcie obecnych węzłów i restart połączenia "
 "Kademlii."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Kontynuować?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: wyszukiwana fraza jest za krótka"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Słowa kluczowe dla wyszukiwania: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: Szukane słowo kluczowe jest już na liście wyszukiwania: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
@@ -2354,12 +2354,12 @@ msgstr[0] "Wczytaj %u kontakt Kad"
 msgstr[1] "Wczytaj %u kontakty Kad"
 msgstr[2] "Wczytaj %u kontaktów Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr "Nie znaleziono kontaktów, proszę rozruszyć, lub pobrać plik nodes.dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
@@ -2367,7 +2367,7 @@ msgstr[0] "Tylko %d dostępny kontakt KAD, nodes.dat nie zapisane"
 msgstr[1] "Tylko %d dostępne kontakty KAD, nodes.dat nie zapisane"
 msgstr[2] "Tylko %d dostępnych kontaktów KAD, nodes.dat nie zapisane"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
@@ -2375,32 +2375,32 @@ msgstr[0] "Zapisano %d kontakt Kad"
 msgstr[1] "Zapisano %d kontakty Kad"
 msgstr[2] "Zapisano %d kontaktów Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nazwa pliku"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Rozmiar pliku"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Ratio wymiany"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Wysłano"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Zażądano"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Zaakceptowano"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Pełne źródła"
 
@@ -2428,71 +2428,76 @@ msgstr "Nieznana wersja"
 msgid "Unable to get error description for error %d"
 msgstr "Nie można utworzyć docelowego pliku %s do pobrania!"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Tworzenie skrótu"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Zakańczanie"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Ukończono"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Wstrzymano"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Błędne"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Czeka"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Musisz określić hasło."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Nieprawidłowe hasło, nie skrót MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Błąd połączenia"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Połączenie EC nieudane. Pusta odpowiedź."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "External Connection: Zła odpowiedź serwera, brak nawiązania. Zakończono "
 "połączenie."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Sukces! Nawiązano połączenie z aMule"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Sukces! Nawiązano połączenie."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "External Connection: Brak dostępu z powodu: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "External Connection: Brak nawiązania"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Rozpoczęte pobranie wątku HTTP"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: Ok."
@@ -2501,16 +2506,16 @@ msgstr "ListenSocket: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "BŁĄD: nie można nasłuchiwać na porcie TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "BŁĄD: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "OSTRZEŻENIE: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Zamknij"
 
@@ -2518,8 +2523,8 @@ msgstr "Zamknij"
 msgid "Cut"
 msgstr "Wytnij"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopiuj"
 
@@ -2528,7 +2533,7 @@ msgid "Paste"
 msgstr "Wklej"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Wyczyść"
 
@@ -2538,7 +2543,7 @@ msgstr "Zaznacz wszystko"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2615,7 +2620,7 @@ msgid "ServerIP: "
 msgstr "IP serwera: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Nie połączony"
 
@@ -2650,7 +2655,7 @@ msgstr "Podpis online: Włączony"
 msgid "Online Signature: Disabled"
 msgstr "Podpis online: Wyłączony"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Uptime: %s"
@@ -2691,7 +2696,7 @@ msgstr "Ukryj aMule"
 msgid "Show aMule"
 msgstr "Pokaż aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Wyjdź"
 
@@ -2778,7 +2783,7 @@ msgstr "Szukaj"
 msgid "Name:"
 msgstr "Nazwa:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Typ"
 
@@ -2806,38 +2811,38 @@ msgstr "Filtrowanie"
 msgid "File Type"
 msgstr "Typ Pliku"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Dowolny"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Archiwa"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Obrazy CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Obrazki"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programy"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Teksty"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Filmy"
 
@@ -2858,11 +2863,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2890,7 +2895,7 @@ msgstr "Odwróć wyniki"
 msgid "Hide Known Files"
 msgstr "Ukryj znane pliki"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Start"
 
@@ -2947,7 +2952,7 @@ msgstr "Pełna nazwa :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "Brak"
 
@@ -2971,7 +2976,7 @@ msgstr "Status pliku części:"
 msgid "Last seen complete :"
 msgstr "Ostatnio widziano całość :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transfer"
 
@@ -3059,27 +3064,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Jakość pliku"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Nieoceniony"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Nieprawidłowy / Uszkodzony / Fałszywy"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Marny"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "W miarę"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Dobry"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Znakomity"
 
@@ -3126,7 +3131,7 @@ msgid "Userhash :"
 msgstr "Skrót użytkownika :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Dodaj"
 
@@ -3360,9 +3365,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Przeglądaj"
 
@@ -3451,7 +3456,7 @@ msgstr "Maksymalne połączenia jednoczesne:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3571,7 +3576,7 @@ msgstr "Wpisz tu minimalną ilość miejsca na dysku."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Zapisz 10 źródeł dla rzadkich plików (< 20 źródeł)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Wysyłanie"
 
@@ -3815,7 +3820,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Włącz forwarding portu UPnP na porcie EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Hasło"
 
@@ -3898,8 +3903,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Wybierz kolor dla tej kategorii (aktualnie wybrany) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Resetuj"
 
@@ -4295,88 +4300,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Włącz gadatliwe logowanie debugowe."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Otwórz plik"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Kategorie wiadomości:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Czekam..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Dodaj importy"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Przywróć wybrane"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Usuń wybrane"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Typy zdarzeń"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Statystyki i klienty w kolejce dla wybranego plik(u-ów) : Sesja / Cały czas"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Aktywne wysyłania"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 #, fuzzy
 msgid "Percent of total files"
 msgstr "procent wszystkich plików"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Wszystkie udostępnione pliki"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Wybierz filtr przeglądania"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Aktywne wysyłania"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Pokaż klientów"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Przeładuj:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Przeładuj twoje udostępnione pliki"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Wyślij"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Wysyła wybraną wiadomość."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Zamknij tę sesję czata."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Podłącz do dowolnego serwera i/lub Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Udostępnione pliki"
 
@@ -4385,137 +4395,137 @@ msgstr "Udostępnione pliki"
 msgid "Disabled [%s]"
 msgstr "Wyłączone [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "bajt"
 msgstr[1] "bajty"
 msgstr[2] "bajtów"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "bajt/sek"
 msgstr[1] "bajty/sek"
 msgstr[2] "bajtów/sek"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sek"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "godzin"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Dni"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "wszystkie"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "wszystkie inne"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Niekompletne"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Zatrzymany"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Film"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Archiwum"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Tekst"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktywny"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Używanie katalogu konfiguracyjnego: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Oczekiwanie na koniec wątku przemiany pliku części ..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importowanie %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Wczytywanie katalogu temp"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Odbieranie podstawowych informacji z info pobieranego pliku"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Tworzenie pliku docelowego"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Ładowanie danych ze starego pobieranego pliku (%u z %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Zapisywanie bloku w nowym pojedynczym pobieranym pliku (%u z %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Odbieranie informacji o źródłach pobieranego pliku"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Dodawanie pobierania i zapisywanie nowego pliku części"
 
@@ -4531,12 +4541,12 @@ msgstr "Stan"
 msgid "Filehash"
 msgstr "Skrót pliku"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Dysk: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4544,13 +4554,13 @@ msgstr ""
 "Proszę wybraćkatalog w celu poszukiwania tymczasowych pobierań! (Podkatalogi "
 "zostaną uwzględnione)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Czy chcesz, aby źródła pomyślnie zaimportowanych pobierań zostały usunięte?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Usunąć źródła?"
 
@@ -4667,7 +4677,7 @@ msgstr "Plik części %s (%s) ma nieważny plik zarodków"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Błąd podczas odczytu pliku źródeł plików części  (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4685,39 +4695,39 @@ msgstr[2] ""
 "Znaleziono uszkodzoną część (%d) w %d plikach części %s - FileResultHash |%"
 "s| FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Znaleziono kompletnych części (%i) w %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Skończono ponowne tworzenie skrótu %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Nieoczekiwany błąd podczas zakańczania %s. Plik wstrzymany"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Skończono pobieranie: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Usuwanie pliku: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "OSTRZEŻENIE: Nie można utworzyć skrótu pobranej części - zestaw skrótów jest "
 "niekompletny dla '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4726,233 +4736,233 @@ msgstr ""
 "BŁĄD: Nie można utworzyć skrótu pobranej części - zestaw skrótów "
 "niekompletny (%s). Nie powinno do tego dojść"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "UWAGA: Niewystarczająca ilość wolnego miejsca! Wstrzymywanie pliku: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Pobrana część %i jest uszkodzona w pliku: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Odzyskano uszkodzoną część %i dla %s -> Zapisanych bajtów: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Alokuję"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Niewystarczająca ilość przestrzeni dyskowej"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Pobrano"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "BŁĄD: Nie udało się otworzyć pliku części '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Domyślny systemowy"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albański"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabski"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturyjski"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baskijski"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bułgarski"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Kataloński"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Chiński (Uproszczony)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Chiński (Tradycyjny)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Chorwacki"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Czeski"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Duński"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holenderski"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Angielski (U.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estoński"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Fiński"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francuski"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galicyjski"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Niemiecki"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Grecki"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebrajski"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Węgierski"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Włoski"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Włoski (Szwajcarski)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japoński"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Koreański"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Litewski"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norweski (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polski"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugalski"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugalski (Brazylijski)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Rosyjski"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Słoweński"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Hiszpański"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Szwedzki"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turecki"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukraiński"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Zmień język"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Niedostępny"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "nie ma dostępnych opcji"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Znaleziono nieprawidłową kategorie, pomijam"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "Port TCP nie może być większy niż 65532, gdyż gniazdo UDP serwera będzie TCP"
 "+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Zostanie użyty domyślny port (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Usuwam nieistniejące udostępnione katalogi: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Połączenie"
 
@@ -4960,7 +4970,7 @@ msgstr "Połączenie"
 msgid "Directories"
 msgstr "Katalogi"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Serwery"
 
@@ -5014,7 +5024,7 @@ msgstr ""
 "    %PARTFILE - pełna ścieżka do pliku\n"
 "    %PARTNAME - tylko nazwa pliku"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5028,30 +5038,30 @@ msgstr ""
 "\n"
 "aMule będzie działał prawidłowo bez zmiany tych ustawień."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Błąd połączenia Cfg do widżetu z identyfikatorem %d i kluczem %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 "Błąd przesyłania danych połączenia z Cfg do widżetu z identyfikatorem %d i "
 "kluczem %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Typ serwera proxy do którego się łączysz"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 "Błąd przesyłania danych połączenia z widżetu do Cfg z identyfikatorem %d i "
 "kluczem %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5059,30 +5069,35 @@ msgstr ""
 "aMule musi zostać zrestartowany przed wprowadzeniem tych zmian:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- Zmieniono port TCP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- Zmieniono port UDP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Zewnętrzne połączenie zamknięte."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Nowe zewnętrzne połączenie zaakceptowane"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Zewnętrzne połączenie zamknięte."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Maskowanie protokołu"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5090,7 +5105,7 @@ msgstr ""
 "Twoja lista auto-aktualizacji serwerów jest pusta.\n"
 "'Autoaktualizacja listy serwerów przy starcie' zostanie wyłączona."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5099,19 +5114,19 @@ msgstr ""
 "Połączenia zewnętrzne nie mogą być włączone dopóki nie zostanie podane "
 "poprawne hasło."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Zmieniono język.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Zmieniono folder tymczasowy.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- sieć ED2K włączona.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5120,7 +5135,7 @@ msgstr ""
 "Nie będzie możliwe połączenie, dopóki nie włączysz przynajmniej jednej z "
 "nich."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5128,7 +5143,7 @@ msgstr ""
 "Kad nie uruchomi się, jeśli twój port UDP jest wyłączony.\n"
 "Włącz port UDP lub wyłącz Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5138,7 +5153,7 @@ msgstr ""
 "Musisz zrestartować teraz aMule.\n"
 "Jeśli nie zrestartujesz go teraz, nie narzekaj, jeśli stanie się coś złego.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5148,41 +5163,41 @@ msgstr ""
 "Proszę wpisać co najmniej jeden URL wskazujący poprawny plik server.met.\n"
 " Kliknij na przycisku \"Lista\", aby wpisać URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Pliki tymczasowe"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Pliki przychodzące"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Sygnatury Online"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Wybierz folder na %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Szukaj odtwarzacza filmów"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Wybierz przeglądarkę"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Program%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Edytuj listę serwerów"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5190,7 +5205,7 @@ msgstr ""
 "Dodaj jeden URL w każdej linii.\n"
 "Tylko jeden URL w każdej linii."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
@@ -5198,7 +5213,7 @@ msgstr[0] "Opóźnienie odświeżania: %d sekunda"
 msgstr[1] "Opóźnienie odświeżania: %d sekundy"
 msgstr[2] "Opóźnienie odświeżania: %d sekund"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
@@ -5206,12 +5221,12 @@ msgstr[0] "Czas dla przeciętnego wykresu: %d minuta"
 msgstr[1] "Czas dla przeciętnego wykresu: %d minuty"
 msgstr[2] "Czas dla przeciętnego wykresu: %d minut"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Skala wykresu połączeń: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
@@ -5219,7 +5234,7 @@ msgstr[0] "Rozmiar bufora pliku: %d bajt"
 msgstr[1] "Rozmiar bufora pliku: %d bajty"
 msgstr[2] "Rozmiar bufora pliku: %d bajtów"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
@@ -5227,7 +5242,7 @@ msgstr[0] "Rozmiar kolejki wysyłania: %d klient"
 msgstr[1] "Rozmiar kolejki wysyłania: %d klientów"
 msgstr[2] "Rozmiar kolejki wysyłania: %d klientów"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
@@ -5235,36 +5250,36 @@ msgstr[0] "Odświeżanie połączeń do serwera co: %d minutę"
 msgstr[1] "Odświeżanie połączeń do serwera co: %d minuty"
 msgstr[2] "Odświeżanie połączeń do serwera co: %d minut"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Odświeżanie połączeń do serwera co: Wyłączone"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "wyłączone"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Wykonaj komendę przy wydarzeniu `%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Włącz wykonanie komendy w rdzeniu"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Komenda rdzenia:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Włącz wykonanie komendy w GUI"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Komenda GUI:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Następujące zmienne zostaną zastąpione:"
 
@@ -5292,7 +5307,7 @@ msgstr "Nie można wykonać wyszukiwania eD2K, jeśli eD2K nie jest połączony"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Nieoczekiwany błąd podczas próby wyszukiwania Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID pliku"
 
@@ -5405,7 +5420,7 @@ msgstr "BŁĄD: nieprawidłowe gniazdo przy sprawdzaniu timeouta"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Próba połączenia z %s (%s:%i) przedawniła się."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Otrzymano późny wynik wyszukiwania DNS, odrzucanie."
 
@@ -5435,7 +5450,7 @@ msgstr ""
 "Uszkodzony plik server.met, znaleziono nieprawidłowy versiontag: 0x%x, "
 "rozmiar %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
@@ -5443,7 +5458,7 @@ msgstr[0] "%i serwer znaleziono w server.met"
 msgstr[1] "%i serwery znaleziono w server.met"
 msgstr[2] "%i serwery znaleziono w server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
@@ -5451,62 +5466,62 @@ msgstr[0] "%d serwer dodany"
 msgstr[1] "%d serwery dodane"
 msgstr[2] "%d serwerów dodanych"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Błąd IO podczas odczytu pliku %s: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Serwer nie dodany: [%s:%d] nie określa prawidłowego portu."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Serwer nie dodany: Ten IP [%s:%d] jest filtrowany lub niepoprawny."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Serwer nie dodany: Serwer z takim IP:Portem [%s:%d] znaleziony na liście."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Serwer dodany: Serwer na [%s:%d] używający nazwy '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 "Jesteś połączony do serwera który chcesz usunąć. Proszę rozłącz się najpierw."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Nie udało się otworzyć '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Nie udało się zapisać server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Nieprawidłowy URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Zakończono pobieranie listy serwerów z %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5514,27 +5529,27 @@ msgstr ""
 "Brak wpisu listy adresów serwerów w 'addresses.dat'. Wklej prawidłową listę "
 "adresów do tego pliku, aby automatycznie zaktualizować listę twoich serwerów"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Rozpocznij pobieranie listy serwerów z %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "UWAGA: określono nieprawidłowo adres URL dla autoaktualizacji serwerów: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Niepoprawny url do auto-pobierania serwer.met w adresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Nie udało się pobrać listy serwerów z %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5571,7 +5586,7 @@ msgid "Static"
 msgstr "Stałe"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Wersja"
 
@@ -5597,8 +5612,8 @@ msgstr "Na pewno chcesz usunąć serwer statyczny %s"
 msgid "Servers (%i)"
 msgstr "Serwery (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Serwer"
 
@@ -5654,40 +5669,40 @@ msgstr "Jesteś pewien, że chcesz usunąć wybrany serwer?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Jesteś pewien, że chcesz usunąć wybrane serwery?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "BŁĄD: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "OSTRZEŻENIE: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Twoje nowe id to %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "OSTRZEŻENIE: Otrzymałeś Low-ID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tNajprawdopodobniej jest to spowodowane tym, że jesteś za firewallem lub "
 "routerem."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPo więcej informacji udaj się na http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Otrzymane info nieznanego serwera! - za krótkie"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
@@ -5695,44 +5710,44 @@ msgstr[0] "Otrzymano %d nowy serwer"
 msgstr[1] "Otrzymano %d nowe serwerów"
 msgstr[2] "Otrzymano %d nowych serwerów"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Zapisywanie listy serwerów zakończone."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Serwer odrzucił ostatnią komendę"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Otrzymano podrobiony pakiet z serwera: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Nieobsługiwany błąd w trakcie przetwarzania pakietu z serwera: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Nie mogę utworzyć wątku rozwiązywania dns dla połączenia do %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "IP serwera %s (%s) jest filtrowane. Nie łącze."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "używa maskowania protokołu."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Łączę z  %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Nie mogę rozwiązać dns dla serwera %s: Nie mogę połączyć!"
@@ -5915,84 +5930,89 @@ msgstr "Nazwa pliku lokalnego"
 msgid "Shares File List"
 msgstr "Udostępnione pliki"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Żądania"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Zaakceptowane żądania"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Przesłane dane"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Ratio wymiany"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Otrzymane części"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Pełne źródła"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Ścieżka katalogu"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Dodaj komentarz/ocenę"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Edytuj komentarz/ocenę"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Zmień nazwę"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Dodaj pliki kolekcji do listy pobierania"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopiuj magnet &URI do schowka"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Kopiuj link eD2k do schowka (Ź&ródło)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Kopiuj link eD2k do schowka (Źródło) (&Z opcjami Crypt)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Kopiuj link eD2k do schowka (Nazwa &hosta)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "Kopiuj link eD2k do schowka (Nazwa hosta) (Z opcjami &Crypt)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Kopiuj link eD2k do schowka (Informacje &AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopiuj link eD2k do schowka (Informacje &AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Potrzebujesz HighID, aby stworzyć poprawny link źródłowy"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Udostępnione pliki (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Plik części]"
 
@@ -6001,235 +6021,235 @@ msgstr "[Plik części]"
 msgid "Remote File Name"
 msgstr "Nazwa pliku"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Wysłane dane (Sesja (Razem)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Łączny narzut  (Pakiety): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Narzut żądań pliku (Pakiety): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Narzut wymiany źródeł (Pakiety): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Narzut serwera (Pakiety): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Narzut Kad (Pakiety): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Narzut Crypt (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Aktywne wysyłanie: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Oczekujące wysyłanie: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Całkowita ilość udanych sesji wysyłania: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Całkowita ilość nieudanych sesji wysyłania: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Średni czas wysyłania: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Pobrane dane (Sesja (Razem)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Znaleziono źródła: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Aktywne pobieranie (części): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Stosunek UL:DL sesji (Razem): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Średnie tempo pobierania (sesja): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Średnie tempo wysyłania (sesja): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Maksymalne tempo pobierania (sesja): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Maksymalne tempo wysyłania (sesja): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Ponowne łączenia: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Czas od pierwszego transferu: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Podłączony do serwera od: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktywne połączenia (szacunkowo): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Osiągnięto maks. limit połączeń: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Średnio połączeń (szacunkowo): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Szczytowe połączenia (szacunkowo): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Klienci"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Nieznane: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtrowane: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Zbanowane: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Razem: %i Znanych: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Działające serwery:  %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Niedziałające serwery: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "W sumie: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Usunięte serwery: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Przefiltrowane serwery: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Użytkowników na działających serwerach: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Plików na działających serwerach:  %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "W sumie użytkowników: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "W sumie plików: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Zajętość serwera: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Liczba udostępnianych plików: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Łączny rozmiar udostępnianych plików: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Średni rozmiar pliku: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "System operacyjny"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Nie otrzymano"
 
@@ -6287,7 +6307,7 @@ msgstr "Niepoprawny numer\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Nieprawidłowy skrót (długość powinna wynosić dokładnie 32 znaki)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Żądanie nie powiodło się z powodu nieznanego błędu."
 
@@ -6341,13 +6361,13 @@ msgstr "Połączony z %s %s %s"
 msgid "Now connecting"
 msgstr "Łącze"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "za firewallem"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6784,22 +6804,22 @@ msgstr ""
 "Komenda ta jest wycofywana i może zostać usunięta w przyszłości.\n"
 "Użyj zamiast niej '%s'.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Tekstowy klient aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Konwertuję stare zestawy skrótów AICH w '%s' do 64b w '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "UWAGA: Nazwa pliku '%s' jest nieprawidłowa i została zmieniona na '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "UWAGA: Plik '%s' już istnieje, zmieniono nazwę na '%s'."
@@ -6871,7 +6891,7 @@ msgstr "Nie powiodło się wykonanie komendy `%s' przy zdarzeniu `%s'."
 msgid "Download completed"
 msgstr "Pobieranie zakończone"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Pełna ścieżka do pliku."
 
@@ -6891,66 +6911,66 @@ msgstr "Rozmiar pliku w bajtach."
 msgid "Cumulative download activity time."
 msgstr "Łączny czas aktywności w pobieraniu."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Rozpoczęto nową sesję czatu"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Nadawca wiadomości."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Brak miejsca"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partycja dysku."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Błąd podczas ukończenia"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Przetwarzanie pliku numer %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Pytałeś o skróty części (Używane tylko dla plików > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Nie istniejący plik !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, kreator linków eD2k aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Witamy!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Parametry wejściowe"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Plik do skracania"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Dodaj opcjonalny URL dla tego pliku"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Wprowadź tutaj plik, którego link eD2k chcesz obliczyć"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6958,15 +6978,15 @@ msgstr ""
 "Wprowadź tutaj adres URL, który chcesz dodać do linku eD2k: Dodaj / na "
 "końcu, aby pozwolić aLinkCreator dodać nazwę obecnego pliku"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Usuń"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Utwórz link ze skrótami części"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6974,81 +6994,81 @@ msgstr ""
 "Pomóż rozpowszechniać nowe i rzadkie pliki szybciej, kosztem zwiększenia "
 "rozmiaru linku"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Skrót typu MD4 pliku"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Skrót eD2k pliku"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "Link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Zapisz"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Skopiuj do schowka"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Otwórz"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Otwórz plik, by obliczyć jego link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Kopiuj obliczony link ED2k do schowka"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Zapisz jako"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Zapisz obliczony link ED2k do pliku"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Informacje o aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Zaznacz plik, którego link eD2k chcesz obliczyć"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Nie można otworzyć schowka"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "W tej chwili nie ma nic do skopiowania !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Wybierz plik do twojego obliczonego linku eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Nie mogę otworzyć "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Proszę wpisać nazwę pliku"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "W tej chwili nie ma nic do zapisania !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7068,159 +7088,163 @@ msgstr ""
 "\n"
 "Dystrybucja na zasadach GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Tworzę skrót..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator pracuje dla ciebie"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Obliczenie Hashu MD4..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Obliczenie Hashów eD2k..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Anulowano !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Gotowe w %.2f ach"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Masz już dodany ten URL !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Proszę wpisać adres URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Nie mogę otworzyć %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dni %i godzin %i minut %i "
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, statystyki aMule online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Maksymalna szybkość DL od czasu uruchomienia wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 "Absolutne maksimum szybkości DL podczas poprzedniego uruchomienia wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "System"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Zatrzymaj automatyczne odświeżanie"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Zapisz obrazek statystyk online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Wydrukuj obrazek statystyk online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Ustawienia preferencji"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Informacje o wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Rozpocznij automatyczne odświeżanie"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Automatyczne odświeżanie zatrzymane"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "automatyczne odświeżanie rozpoczęte"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Zapisz obrazek statystyk"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Statystyki aMule online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7228,11 +7252,11 @@ msgstr ""
 "Wystąpił problem podczas drukowania.\n"
 "Może nie masz prawidłowo ustawionej drukarki ?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Drukuję"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7250,323 +7274,323 @@ msgstr ""
 "\n"
 "Dystrybucja na zasadach GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Och och, aMule nie jest uruchomiony..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule jest uruchomiony"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule jest uruchomiony, ale nie połączony"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule łączy się..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Och och, status aMule jest nieznany..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " jest uruchomiony od "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " jest zatrzymany !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " jest nie połączony!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " łączy się..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " robi coś dziwnego, sprawdź to !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " jest połączony z "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "wyłączony"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " jest włączony "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " z "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Razem pobranych: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Wysłanych: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Pobranych w sesji: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Pobranych: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Wysłanych: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Udostępnione: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " plik(ów), Klientów w kolejce: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Czas: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " na "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Średnie obciążenie systemu (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Uptime systemu: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Katalog zawierający plik amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Podaj katalog z twoim plikiem amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Czas pomiędzy odświeżeniami w sekundach"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Generuj obrazek statystyk przy każdym odświeżeniu"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Wpisz katalog, w którym chcesz generować obrazki statystyk"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Wysyłaj cyklicznie twój obrazek statystyk na serwer FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "Url FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Ścieżka FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Wpisz URL twojego serwera FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Wpisz katalog do składowania twoich obrazków statystyk na serwerze FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Użytkownik"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Wpisz nazwę użytkownika. aby zalogować się do twojego serwera FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Wpisz hasło użytkownika. aby zalogować się do twojego serwera FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Czas pomiędzy odświeżeniami FTP w minutach"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Sprawdź"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Katalog zawierający twój plik sygnatury"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Katalog gdzie będzie wygenerowany statyczny obrazek"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Ładuje szablon <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Port HTTP serwera sieciowego"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Użyj forwardowania portu UPnP na porcie serwera sieciowego"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Port UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Używaj kompresji gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Hasło pełnego dostępu do serwera sieciowego"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Hasło gościa do serwera sieciowego"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Pozwól na dostęp gości"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Zabroń dostępu gościom"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Wczytaj/zapisz ustawienia serwera sieciowego z/do zdalnego aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Ścieżka do pliku konfiguracyjnego aMule. NIE UŻYWAJ BEZPOŚREDNIO!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Zablokuj interpreter PHP (wycofywany)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Przekompiluj strony PHP przy każdym żądaniu"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Serwer WWW aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "zaakceptowano połączenie klienta sieciowego\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "BŁĄD: nie można zaakceptować połączenia klienta internetowego\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Żądanie nie powiodło się z powodu błędu: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Nie znaleziono pliku indeksu: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sesja wygasła - żądanie loginu\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sesja ok, zalogowano\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sesja ok, nie zalogowano\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Nie otwarto sesji - zażądam loginu\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Utworzono sesję - żądam loginu\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Przetwarzam żądanie (oryginalne): "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Nie podano hasła, logowania nie będą akceptowane."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Sprawdzam hasło\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Nieprawidłowy skrót hasła\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Hasło ok\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Złe hasło\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Nie wprowadziłeś hasła. Puste hasło nie jest dozwolone.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Zażądano wylogowania\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Przetwarzam żądanie (przekierowane): "
 
@@ -7761,9 +7785,6 @@ msgstr "Przetwarzam żądanie (przekierowane): "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Razem użytkowników: %s | Razem plików: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "Rozpoczęte pobranie wątku HTTP"
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr "Nie otrzymany rozmiar pomiaru, pobieranie do zamknięcia połączenia"
 
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 662a165..fe15081 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -12,8 +12,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pt_BR\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
-"PO-Revision-Date: 2008-06-13 17:15-0300\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
+"PO-Revision-Date: 2011-12-13 23:14-0300\n"
 "Last-Translator: felipe augusto <flipeicl at gmail.com>\n"
 "Language-Team: Português (Brasileiro) <pt at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -42,11 +42,10 @@ msgid "The specified userhash is not valid!"
 msgstr "A Hash do usuário especificado é inválida"
 
 #: src/amuleAppCommon.cpp:128
-#, fuzzy
 msgid "Failed to open ED2KLinks file."
-msgstr "Falha ao abrir %s (%s)"
+msgstr "Falha ao abrir arquivo de Ligações ED2K."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -54,58 +53,54 @@ msgstr ""
 "CUIDADO: Você não pode adicionar você mesmo como uma fonte para uma ligação "
 "eD2k quando tem um lowid."
 
-#: src/amule.cpp:239
-#, fuzzy
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
-msgstr ""
-"\n"
-"Ok, abandonando %s...\n"
+msgstr "Agora, deixando a aplicação principal..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
-msgstr ""
+msgstr "Terminando instância amuleweb com o pid '%ld'..."
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
-msgstr ""
+msgstr "Matando a instância amuleweb com o pid '%ld'..."
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Falha"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
-msgstr ""
+msgstr "aMule OnExit: Finalizando o núcleo."
 
-#: src/amule.cpp:335
-#, fuzzy
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
-msgstr "Download concluído"
+msgstr "Encerramento do aMule completo."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
-msgstr ""
+msgstr "Resultados da depuração da memória para a saída do aMule:"
 
-#: src/amule.cpp:435
-#, fuzzy
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
-msgstr "Confirmação de saída"
+msgstr ""
+"\n"
+"Configuração EC"
 
-#: src/amule.cpp:438
-#, fuzzy
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
-msgstr "Novas conexões externas aceitas"
+msgstr "Senha definida e conexões externas habilitadas."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "CUIDADO"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -113,13 +108,13 @@ msgstr ""
 "Seu locale foi alterado para o padrão do Sistema devido a mudança na "
 "configuração. Desculpe."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -127,16 +122,16 @@ msgstr ""
 "Você não tem nenhum servidor na lista de servidor.\n"
 "Você quer que o aMule baixe uma nova lista agora?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Lista de servidor baixada"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "web server rodando no pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -146,23 +141,23 @@ msgstr ""
 "não pode ser rodado. Por favor instale o pacote contendo o aMule web server, "
 "ou compile o aMule usando --enable-webserver e rode make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ERRO"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Não foi possível conectar às portas desse endereço: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Porta %u não disponível. Você ficará com LOWID (id baixa)\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -177,11 +172,11 @@ msgstr ""
 "\n"
 "Verifique sua rede para ver se essa porta está aberta para entrada e saída."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Falha ao criar o arquivo OnlineSig"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Falha ao criar o arquivo OnlineSig do aMule"
 
@@ -192,7 +187,7 @@ msgid ""
 "to set it anyway)"
 msgstr ""
 "Parece que o idioma selecionado não está instalado no seu computador. (Nota: "
-"eu irei definí-lo mesmo assim)."
+"eu irei defini-lo mesmo assim)."
 
 #: src/amule.cpp:1040
 #, c-format
@@ -234,135 +229,134 @@ msgstr ""
 "A pasta especificada para os arquivos da Online Signature é INVÁLIDA!\n"
 "OnlineSignature ficará DESATIVADA até você atualizar as preferências."
 
-#: src/amule.cpp:1120
-#, fuzzy
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
-msgstr "Nome do Servidor:"
+msgstr "Nome do servidor notificado"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Préalocação de espaço em disco para arquivo '%s' falhou: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ERRO: não foi possível abrir arquivo de log"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "AVISO: o arquivo de log está vazio. Algo está errado."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Arquivo de log resetado"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "MensagemDoServidor: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
-msgstr ""
+msgstr "Pulando o download de %s, pois o arquivo requerido não é o mais novo."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Falha ao obter a lista de nodes."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Falha ao abrir arquivo de versão baixado"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Arquivo de versão corrompido"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Você está utilizando uma versão anterior do aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Sua versão do aMule é %i.%i.%i e a última versão é %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "A mais recente versão pode ser obtida em http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 "CUIDADO: Sua versão do aMuled esta ultrapassada: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Sua versão do aMule está em dia :)"
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Falha ao baixar arquivo de controle de versão"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Usuários:%s | Arquivos: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Usuários: E: %s K: %s | Arquivos: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Nenhuma rede selecionada"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "com LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "com HighID (Id alta)"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Conectado a %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Conectando a %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Disconectado de eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad iniciado."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad parado."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Conectado a rede Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Conectado a rede Kad (sob firewall)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Desconectado da rede Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -370,12 +364,11 @@ msgstr ""
 "A rede Kad não pode ser usada se a porta UDP está desabilitada em "
 "preferências, não iniciará."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "A rede Kad está desabilitada em preferências, não iniciará."
 
-#: src/amuled.cpp:560
-#, fuzzy
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -383,11 +376,11 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 "ERRO: O daemon aMule não pode ser usado quando conexões externas estão "
-"desabilitadas. Para habilitar conexões externas, use um dos dois normal no "
-"aMule, inicie o amuled com a opção --ec-config ou mude o comando"
+"desabilitadas. Para habilitar Conexões Externas, use também um aMule normal, "
+"inicie o amuled com a opção --ec-config ou mude o comando"
 "\"AcceptExternalConnections\" para 1 no arquivo ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -395,20 +388,25 @@ msgid ""
 "appropriate value. Execute amuled with the flag --ec-config to set the "
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
+"ERRO: Uma senha válida é requirida para conexões externas, e o daemon aMule "
+"não pode ser usado sem conexões externas. Pra rodar o daemon aMule, você "
+"deve definir a campo \"ECPassword\" no arquio ~/.aMule/amule.conf com o "
+"valor apropriado. Execute o amuled com a opção --ec-config para definir a "
+"senha. Mais informações podem ser encontradas em http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
-msgstr ""
+msgstr "amuled: OnInit - iniciando temporizador"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
-msgstr ""
+msgstr "amuled: forking to background - até mais"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
-msgstr ""
+msgstr "Incapaz Criar Arquivo Pid"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ERRO: %s"
@@ -444,34 +442,40 @@ msgid ""
 "'All-Platform' p2p client based on eMule \n"
 "\n"
 msgstr ""
+"Cliente p2p 'multi-plataforma' baseado no eMule \n"
+"\n"
 
 #: src/amuleDlg.cpp:502
 msgid "Website: http://www.amule.org \n"
-msgstr ""
+msgstr "Página: http://www.amule.org \n"
 
 #: src/amuleDlg.cpp:503
 msgid "Forum: http://forum.amule.org \n"
-msgstr ""
+msgstr "Fórum: http://forum.amule.org \n"
 
 #: src/amuleDlg.cpp:504
 msgid ""
 "FAQ: http://wiki.amule.org \n"
 "\n"
 msgstr ""
+"FAQ: http://wiki.amule.org \n"
+"\n"
 
 #: src/amuleDlg.cpp:505
 msgid "Contact: admin at amule.org (administrative issues) \n"
-msgstr ""
+msgstr "Contato: admin at amule.org (assuntos administrativos) \n"
 
 #: src/amuleDlg.cpp:506
 msgid ""
 "Copyright (c) 2003-2011 aMule Team \n"
 "\n"
 msgstr ""
+"Direitos Reservados (c) 2003-2011 Time aMule \n"
+"\n"
 
 #: src/amuleDlg.cpp:507
 msgid "Part of aMule is based on \n"
-msgstr ""
+msgstr "Parte do aMule é baseado no \n"
 
 #: src/amuleDlg.cpp:508
 msgid "Kademlia: Peer-to-peer routing based on the XOR metric.\n"
@@ -480,22 +484,24 @@ msgstr "Kademlia: roteamento peer-to-peer baseado em métrica XOR.\n"
 #: src/amuleDlg.cpp:509
 msgid " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgstr ""
+" Direitos autorais reservados (c) 2002-2011 Petar Maymounkov ( petar at post."
+"harvard.edu )\n"
 
 #: src/amuleDlg.cpp:510
 msgid "http://kademlia.scs.cs.nyu.edu\n"
-msgstr ""
+msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Mensagem"
 
 #: src/amuleDlg.cpp:550
 msgid "aMule dialog destroyed"
-msgstr ""
+msgstr "destruído caixa de diálogo do aMule"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Conectando"
 
@@ -529,7 +535,7 @@ msgstr "Kad: Desligado"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Cancelar"
 
@@ -546,7 +552,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Desconectar das redes atualmente conectadas"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Conectar"
 
@@ -575,9 +581,9 @@ msgid "aMule (%s | Disconnected)"
 msgstr "aMule (%s | Desconectado)"
 
 #: src/amuleDlg.cpp:913
-#, fuzzy, c-format
+#, c-format
 msgid "Do you really want to exit %s?"
-msgstr "Você realmente quer sair do aMule?"
+msgstr "Você realmente quer sair %s?"
 
 #: src/amuleDlg.cpp:914
 msgid "Exit confirmation"
@@ -585,11 +591,11 @@ msgstr "Confirmação de saída"
 
 #: src/amuleDlg.cpp:1173
 msgid "Launch Command: "
-msgstr ""
+msgstr "Lançar Comando: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
-msgstr ""
+msgstr "- padrão -"
 
 #: src/amuleDlg.cpp:1232
 #, c-format
@@ -602,81 +608,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "CUIDADO: Incapaz de abrir o arquivo de pele '%s' para leitura"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Redes"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Janela de redes"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Pesquisas"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Janela de Pesquisas"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Downloads"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
-#, fuzzy
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
-msgstr "Baixando"
+msgstr "Janela de Dwonloads"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Arquivos compartilhados"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Janela de compartilhados"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Mensagens"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Janela de Mensagens"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Estatísticas"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Janela de Estatísticas"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Preferências"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Janela de Preferências"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importar"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Ferramenta de importação de arquivos .part"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Sobre"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Sobre/Ajuda"
 
@@ -694,124 +699,122 @@ msgstr "Sem redes"
 
 #: src/amule-gui.cpp:210
 msgid "aMule remote control"
-msgstr ""
+msgstr "aMule remote control"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
 #: src/amule-gui.cpp:294
-#, fuzzy
 msgid "Fatal Error: Failed to create Core Timer"
-msgstr "ERRO FATAL: Falha ao criar 'Timer'"
+msgstr "Erro Fatal: Falha ao criar Core Timer"
 
 #: src/amule-remote-gui.cpp:71
 msgid "Connect to remote amule"
 msgstr "Conectar a aMule remoto"
 
-#: src/amule-remote-gui.cpp:253
-#, fuzzy
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
-msgstr "ERRO FATAL: Falha ao criar 'Timer'"
+msgstr "Erro Fatal: Falha ao criar Poll Timer"
 
-#: src/amule-remote-gui.cpp:268
-#, fuzzy
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
-msgstr "Tentando recuperar info do arquivo..."
+msgstr "Repetição de evento..."
 
-#: src/amule-remote-gui.cpp:294
-#, fuzzy
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
-msgstr "Conectando"
+msgstr "Conectando..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Conexão falhou "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
-msgstr ""
+msgstr "Manipulador de evento GUI EC remoto"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
-msgstr ""
+msgstr "Desligando"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
-msgstr ""
+msgstr "Falha na conexão. Incapaz de conectar em %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
-msgstr ""
+msgstr "Conexão fechada - aMule foi provavelmente terminado."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
-msgstr ""
+msgstr "Pronto"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Tudo"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
+"Incapaz criar o diretório '%s' para a categoria '%s', mantendo diretório '%"
+"s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Desconhecido"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Falha ao receber lista de compartilhamentos do usuário '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
-msgstr ""
+msgstr "Procurando amigo para conexão lowid"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (versão de eMule FALSA %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (eMule Falso)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (eMule Falso)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (baseado no eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Nickname: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Solicitado: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -820,7 +823,7 @@ msgstr[0] "Estatísticas dessa sessão: Aceito %d de %d pedido, %s transferido\n
 msgstr[1] ""
 "Estatísticas dessa sessão: Aceitos %d de %d pedidos, %s transferidos\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -830,7 +833,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Estatísticas de todas as sessões: Aceitos %d de %d pedidos, %s transferidos\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Solicitado um arquivo desconhecido"
 
@@ -845,35 +848,37 @@ msgid "New message from '%s' (IP:%s)"
 msgstr "Nova mensagem de '%s' (IP:%s)"
 
 #: src/BaseClient.cpp:2899
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "User %s (%u) requested sharedfiles-list for not existing directory '%s' -> "
 "Ignored"
-msgstr "Usuário %s (%u) solicitou sua lista de shares na pasta %s -> Negado"
+msgstr ""
+"Usuário %s (%u) solicitou sua lista de compartilhados para pasta não "
+"existente '%s' -> Negado"
 
 #: src/CanceledFileList.cpp:54 src/KnownFileList.cpp:85
-#, fuzzy, c-format
+#, c-format
 msgid "WARNING: %s cannot be opened."
-msgstr "CUIDADO: known.met não pode ser aberto."
+msgstr "CUIDADO: %s não pode ser aberto."
 
 #: src/CanceledFileList.cpp:61
-#, fuzzy
 msgid "WARNING: Canceled file list corrupted, contains invalid header."
-msgstr "CUIDADO: Lista known corrompida, contém cabeçalho inválido."
+msgstr ""
+"CUIDADO: Cancela lista de arquivos corrompida, contém cabeçalho inválido."
 
 #: src/CanceledFileList.cpp:81 src/KnownFileList.cpp:116
-#, fuzzy, c-format
+#, c-format
 msgid "IO error while reading %s file: %s"
-msgstr "Erro de I/O ao ler arquivo known.met: %s"
+msgstr "Erro de I/O ao ler arquivo %s: %s"
 
 #: src/CanceledFileList.cpp:104 src/KnownFileList.cpp:164
-#, fuzzy, c-format
+#, c-format
 msgid "Error while saving %s file: %s"
-msgstr "Erro ao salvar arquivo known.met: %s"
+msgstr "Erro ao salvar arquivo %s: %s"
 
 #: src/CaptchaDialog.cpp:44
 msgid "Enter Captcha"
-msgstr ""
+msgstr "Insira o Captcha"
 
 #: src/CatDialog.cpp:60 src/DownloadListCtrl.cpp:693 src/muuli_wdr.cpp:244
 #: src/SearchListCtrl.cpp:627 src/TransferWnd.cpp:335
@@ -924,16 +929,20 @@ msgid ""
 "*** You have passed the captcha check and the user has received your "
 "message. ***"
 msgstr ""
+"*** Você tem que inserir a checagem captcha e o usuário terá recebido sua "
+"mensagem. ***"
 
 #: src/ChatSelector.cpp:336
 msgid ""
 "*** Your response to the captcha was wrong and your message has been "
 "ignored. You can request a new captcha by sending a new message. ***"
 msgstr ""
+"*** Sua resposta para o captcha esta errada e sua mensagem foi ignorada. "
+"Você pode requerir um novo captcha enviando uma nova mensagem. ***"
 
 #: src/ChatWnd.cpp:99
 msgid "Chat"
-msgstr ""
+msgstr "Bate-papo"
 
 #: src/ChatWnd.cpp:101 src/MuleNotebook.cpp:168
 msgid "Close tab"
@@ -974,12 +983,12 @@ msgid "Client Details"
 msgstr "Detalhes do Cliente"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1031,66 +1040,70 @@ msgstr "Verificado - OK"
 msgid "Not Available"
 msgstr "Não Disponível"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Usuário %s (%u) pediu sua lista de shares -> Aceito"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Usuário %s (%u) pediu sua lista de shares -> Negado"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 "O usuário %s (%u) solicitou sua lista de pastas compartilhadas -> Aceito"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "O usuário %s (%u) solicitou sua lista de pastas compartilhadas -> Negado"
 
-#: src/ClientTCPSocket.cpp:928
-#, fuzzy, c-format
+#: src/ClientTCPSocket.cpp:916
+#, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
-msgstr "Usuário %s (%u) solicitou sua lista de shares na pasta %s -> Aceito"
+msgstr ""
+"Usuário %s (%u) solicitou sua lista de compartilhados para pasta '%s' -> "
+"aceito"
 
-#: src/ClientTCPSocket.cpp:933
-#, fuzzy, c-format
+#: src/ClientTCPSocket.cpp:921
+#, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
-msgstr "Usuário %s (%u) solicitou sua lista de shares na pasta %s -> Negado"
+msgstr ""
+"Usuário %s (%u) solicitou sua lista de compartilhados para pasta '%s' -> "
+"negado"
 
-#: src/ClientTCPSocket.cpp:952
-#, fuzzy, c-format
+#: src/ClientTCPSocket.cpp:940
+#, c-format
 msgid "User %s (%u) shares directory '%s'"
-msgstr "Usuário %s (%u) compartilha diretório %s"
+msgstr "Usuário %s (%u) compartilha diretório '%s'"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Usuário %s (%u) enviou pastas não solicitadas."
 
-#: src/ClientTCPSocket.cpp:982
-#, fuzzy, c-format
+#: src/ClientTCPSocket.cpp:970
+#, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
-msgstr "Usuário %s (%u) enviou lista de compartilhamentos da pasta %s"
+msgstr "Usuário %s (%u) enviou lista de compartilhamentos para pasta '%s'"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Usuário %s (%u) terminou de enviar seus compartilhamentos"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Usuário %s (%u) enviou compartilhamentos não solicitados"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr "Usuário %s (%u) negou o acesso a lista de arquivos compartilhados"
@@ -1105,7 +1118,7 @@ msgstr "Nome do usuário"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Nome do arquivo"
 
@@ -1133,6 +1146,8 @@ msgstr[1] "%u comentários"
 msgid ""
 "Banned client %s for sending %s corrupt data of %s total for the file '%s'"
 msgstr ""
+"Banido o cliente %s por enviar %s de dado corrompido de um total de %s para "
+"o arquio '%s'."
 
 #: src/DataToText.cpp:37
 msgid "Auto [Lo]"
@@ -1146,33 +1161,33 @@ msgstr "Auto [Normal]"
 msgid "Auto [Hi]"
 msgstr "Auto [Alto]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Muito baixo"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Baixo"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Alto"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Muito Alto"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Lançamento"
 
@@ -1189,12 +1204,12 @@ msgid "Queue Full"
 msgstr "Fila de espera cheia"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Na fila de espera"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Baixando"
 
@@ -1254,7 +1269,7 @@ msgstr "Servidor Local"
 msgid "Remote Server"
 msgstr "Servidor Remoto"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1277,10 +1292,10 @@ msgstr "Fontes de arquivo"
 
 #: src/DataToText.cpp:135
 msgid "Search Result"
-msgstr ""
+msgstr "Resultado da Busca"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Completado"
 
@@ -1318,14 +1333,14 @@ msgstr "Arquivo temp desconhecido ou danificado"
 
 #: src/DownloadListCtrl.cpp:158
 msgid "Part"
-msgstr ""
+msgstr "Parte"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Tamanho"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Transferido"
 
@@ -1338,17 +1353,17 @@ msgid "Progress"
 msgstr "Progresso"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Fontes"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioridade"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Status"
@@ -1373,7 +1388,7 @@ msgstr "Deseja remover os arquivo selecionado?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Deseja remover os arquivos selecionados?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1383,7 +1398,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1435,11 +1450,11 @@ msgstr "Exibir todos os comentários"
 msgid "Copy magnet URI to clipboard"
 msgstr "Copiar URL Magnet para Área de Transferência"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Copiar &link eD2k para área de tranferência"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Copiar retorno para a Área de Transferência"
 
@@ -1455,24 +1470,24 @@ msgstr "Adicionar na Categoria"
 msgid "&Open the file"
 msgstr "Abrir &o arquivo"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Informe o novo nome para o arquivo:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Renomear"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Downloads (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1480,11 +1495,11 @@ msgstr ""
 "Para previnir que este aviso apareça em toda pré-visualização,\n"
 "indique seu tocador de vídeo preferido em preferências (mplayer é o padrão)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Pré-visualização"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "ERRO: Falha ao executar o player de mídia externo! Comando: `%s'"
@@ -1492,21 +1507,21 @@ msgstr "ERRO: Falha ao executar o player de mídia externo! Comando: `%s'"
 #: src/DownloadQueue.cpp:103
 #, c-format
 msgid "Saving PartFile %u of %u"
-msgstr ""
+msgstr "Salvando PartFile %u de %u"
 
 #: src/DownloadQueue.cpp:106
 msgid "All PartFiles Saved."
-msgstr ""
+msgstr "Todas PartFiles Salvas."
 
 #: src/DownloadQueue.cpp:113
-#, fuzzy, c-format
+#, c-format
 msgid "Loading temp files from %s."
-msgstr "Carregando arquivo server.met: %s"
+msgstr "Carregando arquivos temp de %s."
 
 #: src/DownloadQueue.cpp:132
-#, fuzzy, c-format
+#, c-format
 msgid "Loading PartFile %u of %u"
-msgstr "Carregando dados do download antigo (%u de %u)"
+msgstr "Carregando PartFile %u de %u"
 
 #: src/DownloadQueue.cpp:154
 msgid ""
@@ -1518,7 +1533,7 @@ msgstr ""
 
 #: src/DownloadQueue.cpp:163
 msgid "All PartFiles Loaded."
-msgstr ""
+msgstr "Todas PartFiles Carregadas."
 
 #: src/DownloadQueue.cpp:166
 msgid "No part files found"
@@ -1579,9 +1594,8 @@ msgid "Invalid eD2k link! ERROR: %s"
 msgstr "Ligação eD2k inválida! ERRO: %s"
 
 #: src/ExternalConn.cpp:260
-#, fuzzy
 msgid "Client sent packet after authentication failed."
-msgstr "Falha na autenticação."
+msgstr "Pacote enviado por cliente após falha na autenticação."
 
 #: src/ExternalConn.cpp:278
 msgid "External connection closed."
@@ -1595,30 +1609,30 @@ msgstr "Conexões externas desativadas por não ter sido definida uma senha!"
 msgid "External connections disabled in config file"
 msgstr "Conexões externas desativadas no arquivo de configuração"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Novas conexões externas aceitas"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ERRO: Não pôde aceitar uma nova conexão externa"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Conexão externa recusada por não ter sido definida uma senha nas "
 "preferências!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Cliente conectando: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Versão desconhecida"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1626,8 +1640,7 @@ msgstr ""
 "Id de versão do EC incorreta, deve ser incompatibilidade binária. Use o core "
 "e o remote da mesma versão"
 
-#: src/ExternalConn.cpp:447
-#, fuzzy
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1635,175 +1648,172 @@ msgstr ""
 "Você não pode conectar a uma versão oficial a partir de um cliente SVN! "
 "*droga* Possível travamento evitado"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Versão do protocolo inválida."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Falta tag de versão do protocolo."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
-msgstr ""
+msgstr "Autenticação falhou: hash inválido especificado como senha EC."
 
-#: src/ExternalConn.cpp:504
-#, fuzzy
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
-msgstr "Falha na autenticação."
+msgstr "Falha na autenticação: senha errada."
 
-#: src/ExternalConn.cpp:506
-#, fuzzy
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
-msgstr "Falha na autenticação."
+msgstr "Falha na autenticação: senha desconhecida."
 
-#: src/ExternalConn.cpp:516
-#, fuzzy
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
-msgstr "Pedido negado, você precisa autenticar primeiro."
+msgstr "Requisição inválida, por favor autentique primeiro."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Acesso liberado."
 
-#: src/ExternalConn.cpp:529
-#, fuzzy, c-format
+#: src/ExternalConn.cpp:534
+#, c-format
 msgid "Sent error message \"%s\" to client."
-msgstr "Filtrar mensagens de clientes desconhecidos"
+msgstr "Enviar mensagem de erro \"%s\" para cliente."
 
-#: src/ExternalConn.cpp:534
-#, fuzzy, c-format
+#: src/ExternalConn.cpp:537
+#, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
-msgstr "Tentaviva de acesso não autorizado. Conexão encerrada."
+msgstr "Tentativa de acesso de %s não autorizado. Conexão encerrada."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Comando de PartFile remoto falhou: Filehash não encontrada: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Hash do arquivo não encontrada: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OOPS! Processando erro OpCode!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Servidor não adicionado"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "servidor não encontrado: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "precisa definir o servidor a ser removido"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k foi desabilitado nas preferências."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Pesquisa em andamento, aguarde..."
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Pesquisa web pela interface remota não faz sentido."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Sem dados para gráfico."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Seu cliente não está configurado para esse nível de detalhes."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Conexão Externa: requerido desligar"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Já estou desligando."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ExternalConn: adicionar link '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Link inválido ou já está na lista."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Arquivo não encontrado."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nome de arquivo inválido."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Não foi possível renomear o arquivo."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad está desativado nas preferências"
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Já conectado em eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Conectando em eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Já conectado a rede Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Conectando a rede Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Todas as redes estão DESATIVADAS."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Disconectado de eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Desconectado da rede Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Conexão Externa:opcode recebido inválido: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "opcode inválido (versão errada do protocolo?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Extensão '%s' desconhecida para o comando '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Comando desconhecido '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1811,7 +1821,7 @@ msgstr ""
 "\n"
 "Esse comando não precisa de argumentos.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1819,7 +1829,7 @@ msgstr ""
 "\n"
 "Esse comando precisa de um argumento.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1827,7 +1837,7 @@ msgstr ""
 "\n"
 "Esse comando está incompleto, você precisa de uma das extensões abaixo.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1835,11 +1845,11 @@ msgstr ""
 "\n"
 "Extensões disponíveis:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Comandos disponíveis:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1850,17 +1860,17 @@ msgstr ""
 "Todos os comandos são case-insensitive (MAIÚSCULAS ou minúsculas).\n"
 "Digite '%s <comando>' para obter ajuda sobre o <comando>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Sair do programa."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Exibe a ajuda."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1868,7 +1878,7 @@ msgstr ""
 "Para obter ajuda sobre um comando, digite 'help <comando>'.\n"
 "Para obter a lista completa de comandos, digite 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1879,48 +1889,48 @@ msgstr ""
 "Use '%s' para lista de comandos\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Erro na sintaxe!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Erro processando comando - isso jamais deveria acontecer! Reporte o bug, por "
 "favor\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Este comando não precisa de parâmetros."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Este comando precisa de um parâmetro."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argumento inválido."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Este comando está incompleto."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Digite '%s' para maiores informações.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Este é %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Este é %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1928,7 +1938,7 @@ msgstr ""
 "\n"
 "Criando cliente..\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1937,7 +1947,7 @@ msgstr ""
 "\n"
 "Ok, abandonando %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1951,47 +1961,47 @@ msgstr ""
 "\n"
 "Finalizando...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Exibir esse texto de ajuda."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host onde o aMule está rodando. (padrão: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Porta em que o aMule está esperando Conexões Externas (padrão: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Senha para Conexão Externa."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Ler configuração de arquivo."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Não exiba mensagens no stdout (silencioso)"
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Verbose - exiba até as mensagens de debug."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Defina o locale (idioma)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Gravar opções de linha de comando"
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Criar arquivo de configuração baseado no do aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Exibir versão do programa."
 
@@ -2000,12 +2010,12 @@ msgid "File Details"
 msgstr "Detalhes do Arquivo"
 
 #: src/FileDetailDialog.cpp:113
-#, fuzzy, c-format
+#, c-format
 msgid "%.1f%% done"
-msgstr "%.2f%% concluído"
+msgstr "%.1f%% concluído"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2022,9 +2032,9 @@ msgstr ""
 
 #: src/FriendList.cpp:248
 msgid "CRITICAL - no client on StartChatSession"
-msgstr ""
+msgstr "CRÍTICO - nenhum cliente em StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Amigos"
 
@@ -2097,31 +2107,28 @@ msgid "A4AF"
 msgstr "A4AF"
 
 #: src/GenericClientListCtrl.cpp:995
-#, fuzzy, c-format
+#, c-format
 msgid "On Queue: %u (%i)"
-msgstr "QR: %u (%i)"
+msgstr "Em Fila: %u (%i)"
 
 #: src/GenericClientListCtrl.cpp:1005 src/GenericClientListCtrl.cpp:1034
 msgid "Asked for another file"
 msgstr "Pedindo por outro arquivo(A4AF)"
 
 #: src/GenericClientListCtrl.cpp:1024
-#, fuzzy
 msgid "Waiting for upload slot"
-msgstr "Uploads em espera: %s"
+msgstr "Esperando por slot de upload"
 
 #: src/GenericClientListCtrl.cpp:1026
-#, fuzzy, c-format
+#, c-format
 msgid "On Queue: %u"
-msgstr "Na fila de espera"
+msgstr "Na fila: %u"
 
 #: src/GenericClientListCtrl.cpp:1029
-#, fuzzy
 msgid "Uploading"
-msgstr "Upload"
+msgstr "Enviando"
 
 #: src/GenericClientListCtrl.cpp:1031
-#, fuzzy
 msgid "None"
 msgstr "Nenhum"
 
@@ -2139,93 +2146,93 @@ msgstr "Baixando..."
 
 #: src/HTTPDownload.cpp:109
 msgid "HTTP download cancelled"
-msgstr ""
+msgstr "Download HTTP cancelado"
 
 #: src/HTTPDownload.cpp:205
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to create destination file %s for download!"
-msgstr "CUIDADO: Incapaz de abrir o arquivo de pele '%s' para leitura"
+msgstr "Incapaz criar arquivo de destino %s para download!"
 
 #: src/HTTPDownload.cpp:210
 msgid "The URL to download can't be empty"
-msgstr ""
+msgstr "A URL para baixar não pode estar vazia"
 
 #: src/HTTPDownload.cpp:233
 #, c-format
 msgid "The URL %s returned: %i - Error (%i)!"
-msgstr ""
+msgstr "A URL %s retornou: %i - Erro (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
-msgstr ""
+msgstr "Erro crítico enquanto salvava arquivo de baixado"
 
-#: src/HTTPDownload.cpp:275
-#, fuzzy, c-format
+#: src/HTTPDownload.cpp:277
+#, c-format
 msgid "Downloaded %d bytes"
-msgstr "Baixado"
+msgstr "Baixados %d bytes"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
-msgstr ""
+msgstr "Esperado %d bytes, mas baixados %d bytes"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
+"URL inválida para download HTTP ou redirecionamento HTTP (você esqueceu "
+"'http://' ?)"
 
-#: src/HTTPDownload.cpp:379
-#, fuzzy
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
-msgstr "Reconectar ao servidor"
+msgstr "Incapaz conectar no servidor de download HTTP"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
-msgstr ""
+msgstr "Reposta de servidor de download HTTP inválida"
 
 #: src/IP2Country.cpp:100
 #, c-format
 msgid "Download new GeoIP.dat from %s"
-msgstr ""
+msgstr "Baixando novo GeoIP.dat de %s"
 
 #: src/IP2Country.cpp:128
 msgid "Download of GeoIP.dat file failed, aborting update."
-msgstr ""
+msgstr "Download de arquivo GeoIP.dat falhou, abortando atualização."
 
 #: src/IP2Country.cpp:134 src/IPFilter.cpp:500
 #, c-format
 msgid "Failed to remove %s file, aborting update."
-msgstr ""
+msgstr "Falha ao remover arquivo %s, abortando atualização."
 
 #: src/IP2Country.cpp:140
 #, c-format
 msgid "Failed to rename %s file, aborting update."
-msgstr ""
+msgstr "Falha ao renomear arquivos %s, abortando atualização"
 
 #: src/IP2Country.cpp:146 src/IPFilter.cpp:506
 #, c-format
 msgid "Successfully updated %s"
-msgstr ""
+msgstr "Atualização concluída %s"
 
 #: src/IP2Country.cpp:148
 msgid "Error updating GeoIP.dat"
-msgstr ""
+msgstr "Erro ao atualizar GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
-#, fuzzy, c-format
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
+#, c-format
 msgid "Failed to download %s from %s"
-msgstr "Falha ao obter a lista de servidores de %s"
+msgstr "Falha ao baixar %s de %s"
 
 #: src/IP2Country.cpp:172
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to load country data for '%s'."
-msgstr "Falha ao obter a lista de servidores de %s"
+msgstr "Falha ao obter a dados de país para '%s'."
 
 #: src/IPFilter.cpp:113
-#, fuzzy
 msgid "Loading IP filters 'ipfilter.dat' and 'ipfilter_static.dat'."
-msgstr "Carregando  Filtros-IP 'ipfilter.dat' e 'ipfilter_static.dat'."
+msgstr "Carregando  Filtro IP 'ipfilter.dat' e 'ipfilter_static.dat'."
 
 #: src/IPFilter.cpp:299
 #, c-format
@@ -2254,11 +2261,11 @@ msgstr[1] "%u linhas malformadas foram ignoradas."
 #: src/IPFilter.cpp:503
 #, c-format
 msgid "Failed to rename new %s file, aborting update."
-msgstr ""
+msgstr "Falha ao renomear novo arquivo %s, abortando atualização."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
-msgstr ""
+msgstr "Filtro IP está pronto"
 
 #: src/KadDlg.cpp:86
 msgid ""
@@ -2273,213 +2280,222 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nodes (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "IP Inválido para inicialização"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Porta inválida para inicialização"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Preencha todos os campos necessários"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Deseja baixar uma nova versão do arquivo nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Fazendo isso, seus nodes atuais serão removidos e a conexão Kademlia será "
 "reiniciada."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Continuar?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: chave de pesquisa muito curta"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
-msgstr ""
+msgstr "Termo para busca: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
-msgstr ""
+msgstr "Kademlia: Termo para busca já está na lista de busca:"
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
+"Falha ao ler o arquivo nodes.dat - muito velho. Essa versão (0) não é mais "
+"suportada."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Lendo %u contato Kad"
 msgstr[1] "Lendo %u contatos Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
+"Nenhum contato encontrado, por favor reinicie, ou baixe um arquivo nodes.dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Somente %d de contato Kad disponível, nodes.dat não escrito"
+msgstr[1] "Somente %d de contatos Kad disponíveis, nodes.dat não escrito"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Gravado %d contato Kad"
 msgstr[1] "Gravados %d contatos Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nome do Arquivo"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Tamanho do arquivo"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Taxa de compartilhamento"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Enviado"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Requisitado"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Aceito"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Fontes completas"
 
 #: src/KnownFileList.cpp:92
 msgid "WARNING: Known file list corrupted, contains invalid header."
-msgstr ""
+msgstr "ATENÇÃO: Arquivo de lista known corrompido, contém cabeçalho inválido."
 
 #: src/KnownFileList.cpp:107
 msgid "Failed to load entry in known file list, file may be corrupt"
 msgstr ""
+"Falha ao carregar entrada em lista de arquivo known, arquivo pode estar "
+"corrompido"
 
 #: src/KnownFileList.cpp:114
 msgid "Invalid entry in known file list, file may be corrupt: "
 msgstr ""
+"Entrada inválida na lista de arquivo known, arquivo pode estar corrompido:"
 
 #: src/libs/common/Format.cpp:307
-#, fuzzy, c-format
+#, c-format
 msgid "Unknown error %d"
-msgstr "Versão desconhecida"
+msgstr "Erro desconhecido %d"
 
 #: src/libs/common/Format.cpp:312 src/libs/common/Format.cpp:321
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to get error description for error %d"
-msgstr "CUIDADO: Incapaz de abrir o arquivo de pele '%s' para leitura"
+msgstr "Incapaz obter descrição do erro para o erro %d"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Calculando hash"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Finalizando"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Completo"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pausa"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Com Erro"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Esperando"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Você deve informar uma senha não-vazia."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Senha inválida, não é um hash MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Falha ao conectar"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Conexão EC falhou. Resposta vazia."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
-#, fuzzy
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
-msgstr "Conexão Externa: Má resposta do servidor. Conexão fechada."
+msgstr "Conexão Externa: Má resposta, handshake falhou. Conexão fechada."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Sucesso! Conexão estabelecida ao aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Sucesso! Conexão estabelecida."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Conexão Externa: Acesso negado porque:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
-#, fuzzy
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
-msgstr "Conexão Externa: Acesso negado"
+msgstr "Conexão Externa: Handshake falhou."
+
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Atualização automática iniciada"
 
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
-msgstr ""
+msgstr "ListenSocket: Ok."
 
 #: src/ListenSocket.cpp:67
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ERRO: Não pôde ouvir a porta TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ERRO:"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "CUIDADO:"
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Fechar"
 
@@ -2487,8 +2503,8 @@ msgstr "Fechar"
 msgid "Cut"
 msgstr "Recortar"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Copiar"
 
@@ -2497,7 +2513,7 @@ msgid "Paste"
 msgstr "Colar"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Limpar"
 
@@ -2507,7 +2523,7 @@ msgstr "Selecionar Tudo"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2584,7 +2600,7 @@ msgid "ServerIP: "
 msgstr "IP do Servidor: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Não conectado"
 
@@ -2619,7 +2635,7 @@ msgstr "Online Signature: Ativado"
 msgid "Online Signature: Disabled"
 msgstr "Online Signature: Desativado"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Uptime: %s"
@@ -2660,7 +2676,7 @@ msgstr "Ocultar aMule"
 msgid "Show aMule"
 msgstr "Mostrar aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Sair"
 
@@ -2746,7 +2762,7 @@ msgstr "Pesquisar"
 msgid "Name:"
 msgstr "Nome:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tipo"
 
@@ -2774,38 +2790,38 @@ msgstr "Filtrando"
 msgid "File Type"
 msgstr "Tipo de Arquivo"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Todos"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arquivos"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Áudio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Imagem-CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Figuras"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programas"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Textos"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Vídeos"
 
@@ -2826,11 +2842,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2858,7 +2874,7 @@ msgstr "Inverter resultado"
 msgid "Hide Known Files"
 msgstr "Ocultar arquivos conhecidos"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Iniciar"
 
@@ -2891,9 +2907,8 @@ msgid "Clears completed downloads"
 msgstr "Limpar downloads completados"
 
 #: src/muuli_wdr.cpp:466
-#, fuzzy
 msgid "File sources:"
-msgstr "Fontes completas"
+msgstr "Fontes de arquivos: "
 
 #: src/muuli_wdr.cpp:520 src/muuli_wdr.cpp:1216 src/PrefsUnifiedDlg.cpp:176
 msgid "General"
@@ -2916,7 +2931,7 @@ msgstr "Nome Completo:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2940,7 +2955,7 @@ msgstr "Status parcial :"
 msgid "Last seen complete :"
 msgstr "Última vez completo:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transferência"
 
@@ -3021,32 +3036,34 @@ msgid ""
 "For a film you can say its length, its story, language ...\\n\\nand if it's "
 "a fake, you can tell that to other users of aMule."
 msgstr ""
+"Para um filme você pode dizer seu tamanho, sua história, idioma ...\\n\\ne "
+"se ele é falso, você pode dizer isso a outros usuários do aMule."
 
 #: src/muuli_wdr.cpp:841
 msgid "File Quality"
 msgstr "Qualidade do arquivo"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Não avaliado"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Inválido / Corrompido / Falso"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Ruim"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Regular"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Bom"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Excelente"
 
@@ -3092,7 +3109,7 @@ msgid "Userhash :"
 msgstr "Userhash :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Adicionar"
 
@@ -3221,9 +3238,8 @@ msgid "Secure ident:"
 msgstr "Secure ident:"
 
 #: src/muuli_wdr.cpp:1410
-#, fuzzy
 msgid "Queue rank:"
-msgstr "Na fila de espera"
+msgstr "Ranking de espera: "
 
 #: src/muuli_wdr.cpp:1419
 msgid "Queue score:"
@@ -3235,7 +3251,7 @@ msgstr "Nick (identificação)"
 
 #: src/muuli_wdr.cpp:1451
 msgid "http://www.aMule.org - the multi-platform Mule"
-msgstr ""
+msgstr "http://www.aMule.org - A Mula multi-plataforma"
 
 #: src/muuli_wdr.cpp:1452
 msgid "This is the name that other users will see when connecting to you."
@@ -3243,7 +3259,7 @@ msgstr "Esse é o nome que os usuários verão quando se conectarem à você."
 
 #: src/muuli_wdr.cpp:1460
 msgid "Language: "
-msgstr ""
+msgstr "Idioma: "
 
 #: src/muuli_wdr.cpp:1461 src/muuli_wdr.cpp:1498 src/muuli_wdr.cpp:1502
 #: src/muuli_wdr.cpp:1506
@@ -3276,11 +3292,11 @@ msgstr "Perguntar ao sair"
 
 #: src/muuli_wdr.cpp:1481
 msgid "Makes aMule prompt before exiting."
-msgstr ""
+msgstr "Fazer o aMule prompt antes de sair."
 
 #: src/muuli_wdr.cpp:1484
 msgid "Hide application window when close button is pressed"
-msgstr ""
+msgstr "Fechar aplicação quando o botão fechar for pressionado"
 
 #: src/muuli_wdr.cpp:1487
 msgid "Enable Tray Icon"
@@ -3304,11 +3320,11 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1497
 msgid "Tooltip delay time: "
-msgstr ""
+msgstr "Tempo de atraso da janela de dica: "
 
 #: src/muuli_wdr.cpp:1505
 msgid "seconds"
-msgstr ""
+msgstr "segundos"
 
 #: src/muuli_wdr.cpp:1511
 msgid "Browser Selection"
@@ -3319,12 +3335,14 @@ msgid ""
 "Enter your browser name here. Leave this field empty to use the system "
 "default browser."
 msgstr ""
+"Insira o nome do seu navegador aqui. Deixe vazio para usar o navegador "
+"padrão do sistema."
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Procurar"
 
@@ -3343,7 +3361,7 @@ msgstr "Player de Video"
 
 #: src/muuli_wdr.cpp:1564
 msgid "Bandwidth limits"
-msgstr ""
+msgstr "Limites de banda"
 
 #: src/muuli_wdr.cpp:1579
 msgid "Upload"
@@ -3355,11 +3373,11 @@ msgstr "Alocação de Slots"
 
 #: src/muuli_wdr.cpp:1601
 msgid "Ports"
-msgstr ""
+msgstr "Portas"
 
 #: src/muuli_wdr.cpp:1607
 msgid "Standard TCP Port "
-msgstr ""
+msgstr "Porta TCP Padrão"
 
 #: src/muuli_wdr.cpp:1611
 msgid "This is the standard eD2k port and cannot be disabled."
@@ -3367,51 +3385,53 @@ msgstr "Essa é a porta eD2k padrão e não pode ser desabilitada."
 
 #: src/muuli_wdr.cpp:1614
 msgid "UDP port for server requests (TCP+3):"
-msgstr ""
+msgstr "Porta UDP para requisições do servidor (TCP+3)"
 
 #: src/muuli_wdr.cpp:1617
 msgid "4665"
-msgstr ""
+msgstr "4665"
 
 #: src/muuli_wdr.cpp:1620
 msgid "Extended UDP port (Kad / global search) "
-msgstr ""
+msgstr "Porta UDP extendida (Kad / pesquisa global)"
 
 #: src/muuli_wdr.cpp:1624
 msgid "This UDP port is used for extended eD2k requests and Kad network"
-msgstr ""
+msgstr "Essa porta UDP é usada para requisições eD2k estendidas e rede Kad"
 
 #: src/muuli_wdr.cpp:1627
 msgid "Enable UPnP for router port forwarding"
-msgstr ""
+msgstr "Habilitar UPnP para redirecionamento de porta do roteador"
 
 #: src/muuli_wdr.cpp:1632
 msgid "UPnP TCP Port (Optional):"
-msgstr ""
+msgstr "Porta TCP UPnP (Opcional): "
 
 #: src/muuli_wdr.cpp:1645
 msgid "Bind local address to IP (empty for any):"
-msgstr ""
+msgstr "Casar endereço local ao IP (vazio para qualquer um): "
 
 #: src/muuli_wdr.cpp:1649
 msgid ""
 "Advanced users only: If you have multiple network interfaces, enter the "
 "address of the interface to which aMule should be bound."
 msgstr ""
+"Somente usuários avançados: Se você tem múltiplas interfaces de rede, insira "
+"o endereço da interface com a qual o aMule deverá conectar-se."
 
 #: src/muuli_wdr.cpp:1657
 msgid "Max sources per downloading file:"
-msgstr ""
+msgstr "Máximo de fontes para arquivos baixando: "
 
 #: src/muuli_wdr.cpp:1663
 msgid "Max simultaneous connections:"
-msgstr ""
+msgstr "Máximo de conexões simultâneas: "
 
 #: src/muuli_wdr.cpp:1676
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3469,15 +3489,15 @@ msgstr "Definir servidores adicionados manualmente com prioridade Alta"
 
 #: src/muuli_wdr.cpp:1776
 msgid "Intelligent Corruption Handling (I.C.H.)"
-msgstr ""
+msgstr "Manuseamento Inteligente de Corrupção (I.C.H.)"
 
 #: src/muuli_wdr.cpp:1779
 msgid "Enable"
-msgstr ""
+msgstr "Habilitado"
 
 #: src/muuli_wdr.cpp:1783
 msgid "Advanced I.C.H. trusts every hash (not recommended)"
-msgstr ""
+msgstr "I.C.H. avançado confia em todo hash (não recomendado)"
 
 #: src/muuli_wdr.cpp:1791
 msgid "Add files to download in pause mode"
@@ -3493,7 +3513,7 @@ msgstr "Tentar baixar o primeiro e o último pedaço do arquivo primeiro"
 
 #: src/muuli_wdr.cpp:1801
 msgid "Start next paused file when a file completes"
-msgstr ""
+msgstr "Começar o próximo arquivo pausado quando o arquivo completar"
 
 #: src/muuli_wdr.cpp:1805
 msgid "From the same category"
@@ -3501,7 +3521,7 @@ msgstr "Da mesma categoria"
 
 #: src/muuli_wdr.cpp:1808
 msgid "In alphabetic order"
-msgstr ""
+msgstr "Em ordem alfabética"
 
 #: src/muuli_wdr.cpp:1811
 msgid "Preallocate disk space for new files"
@@ -3517,7 +3537,7 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1818
 msgid "Stop downloads when free disk space reaches "
-msgstr ""
+msgstr "Parar download quando espaço livre em disco acabar"
 
 #: src/muuli_wdr.cpp:1819
 msgid "Select this if you want aMule to check your disk space"
@@ -3531,7 +3551,7 @@ msgstr "Digite aqui o espaço min. de disco desejado"
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Salvar 10 fontes em arquivos raros (< 20 fontes)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Uploads"
 
@@ -3541,15 +3561,15 @@ msgstr "Adicionar novos compartilhamentos com prioridade automática"
 
 #: src/muuli_wdr.cpp:1859
 msgid "Destination folder for downloads"
-msgstr ""
+msgstr "Pasta de destino para baixados"
 
 #: src/muuli_wdr.cpp:1870
 msgid "Folder for temporary download files"
-msgstr ""
+msgstr "Pasta para arquivos temporários baixados"
 
 #: src/muuli_wdr.cpp:1881
 msgid "Shared folders"
-msgstr ""
+msgstr "Pastas compartilhadas"
 
 #: src/muuli_wdr.cpp:1884
 msgid "(Right click on folder icon for recursive share)"
@@ -3577,15 +3597,15 @@ msgstr "Escala dos gráficos das conexões: 100 "
 
 #: src/muuli_wdr.cpp:1935
 msgid "Download graph scale:"
-msgstr ""
+msgstr "Escala gráfica de download:"
 
 #: src/muuli_wdr.cpp:1944
 msgid "Upload graph scale:"
-msgstr ""
+msgstr "Escala gráfica de upload: "
 
 #: src/muuli_wdr.cpp:1958
 msgid "Colours: "
-msgstr ""
+msgstr "Cores: "
 
 #: src/muuli_wdr.cpp:1963
 msgid "Background"
@@ -3645,7 +3665,7 @@ msgstr "Selecione"
 
 #: src/muuli_wdr.cpp:1989
 msgid "Tree"
-msgstr ""
+msgstr "Árvore"
 
 #: src/muuli_wdr.cpp:2000
 msgid "Number of Client Versions shown (0=unlimited)"
@@ -3673,24 +3693,23 @@ msgstr "Atualizar conexão com servidor: desativado"
 
 #: src/muuli_wdr.cpp:2066
 msgid "Disable computer's timed standby mode"
-msgstr ""
+msgstr "Desabilitar modo timed standby do computador"
 
 #: src/muuli_wdr.cpp:2087
 msgid "Skin to use: "
-msgstr ""
+msgstr "Pele a usar: "
 
 #: src/muuli_wdr.cpp:2099
 msgid "Show \"Fast eD2k Links Handler\" in every window."
-msgstr ""
+msgstr "Mostrar \"Manipulador Veloz de Ligações eD2k\" em cada janela."
 
 #: src/muuli_wdr.cpp:2103
 msgid "Show extended info on categories tabs"
 msgstr "Mostrar info. extras nas abas de categoria"
 
 #: src/muuli_wdr.cpp:2107
-#, fuzzy
 msgid "Show application version on title"
-msgstr "Exibir taxa de transferência no título"
+msgstr "Exibir versão do aplicativo no título"
 
 #: src/muuli_wdr.cpp:2110
 msgid "Show transfer rates on title"
@@ -3698,15 +3717,15 @@ msgstr "Exibir taxa de transferência no título"
 
 #: src/muuli_wdr.cpp:2113
 msgid "Before application name"
-msgstr ""
+msgstr "Antes do nome da aplicação"
 
 #: src/muuli_wdr.cpp:2116
 msgid "After application name"
-msgstr ""
+msgstr "Depois do nome da aplicação"
 
 #: src/muuli_wdr.cpp:2120
 msgid "Show overhead bandwidth"
-msgstr ""
+msgstr "Mostrar banda sobressalente"
 
 #: src/muuli_wdr.cpp:2124
 msgid "Vertical toolbar orientation"
@@ -3714,19 +3733,19 @@ msgstr "Orientação Vertical da Barra de Ferramentas"
 
 #: src/muuli_wdr.cpp:2127
 msgid "Show country flags for clients"
-msgstr ""
+msgstr "Mostrar bandeiras nacionais para clientes"
 
 #: src/muuli_wdr.cpp:2130
 msgid "Download Queue Files"
-msgstr ""
+msgstr "Fila de arquivos baixando"
 
 #: src/muuli_wdr.cpp:2133
 msgid "Show progress percentage"
-msgstr ""
+msgstr "Mostrar porcentagem do progresso"
 
 #: src/muuli_wdr.cpp:2140
 msgid "Show progress bar"
-msgstr ""
+msgstr "Mostrar barra de progresso"
 
 #: src/muuli_wdr.cpp:2144
 msgid "Flat"
@@ -3738,7 +3757,7 @@ msgstr "Arredondada"
 
 #: src/muuli_wdr.cpp:2155
 msgid "Auto-sort files (high CPU)"
-msgstr ""
+msgstr "Auto-escolha de arquivo (sobrecarrega CPU)"
 
 #: src/muuli_wdr.cpp:2157
 msgid "aMule will sort the columns in your download list automatically"
@@ -3755,7 +3774,7 @@ msgstr "Aceitar conexões externas"
 
 #: src/muuli_wdr.cpp:2186
 msgid "IP of the listening interface:"
-msgstr ""
+msgstr "IP da interface ouvindo"
 
 #: src/muuli_wdr.cpp:2190
 msgid ""
@@ -3767,14 +3786,14 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:2198 src/muuli_wdr.cpp:2259
 msgid "TCP port:"
-msgstr ""
+msgstr "Porta TCP: "
 
 #: src/muuli_wdr.cpp:2206
 msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Habilitar redirecionamento de porta UPnP para porta EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Senha"
 
@@ -3784,7 +3803,7 @@ msgstr "Parâmetros do web server"
 
 #: src/muuli_wdr.cpp:2224
 msgid "Run webserver on startup"
-msgstr ""
+msgstr "Rodar webserver na iniciação"
 
 #: src/muuli_wdr.cpp:2230
 msgid "Web template"
@@ -3804,11 +3823,11 @@ msgstr "Password para acesso limitado"
 
 #: src/muuli_wdr.cpp:2267
 msgid "Enable UPnP port forwarding of the web server port"
-msgstr ""
+msgstr "Habilitar redirecionamento de porta UPnP da porta do servidor web"
 
 #: src/muuli_wdr.cpp:2272
 msgid "Web server UPnP TCP port (Optional)"
-msgstr ""
+msgstr "Porta TCP UPnP do servidor web (Opcional)"
 
 #: src/muuli_wdr.cpp:2282
 msgid "Page Refresh Time (in secs)"
@@ -3848,17 +3867,16 @@ msgid "Change priority for new assigned files :"
 msgstr "Alterar prioridade para novos arquivos:"
 
 #: src/muuli_wdr.cpp:2392
-#, fuzzy
 msgid "Don't change"
-msgstr "Não Alterar"
+msgstr "Não alterar"
 
 #: src/muuli_wdr.cpp:2406
 msgid "Select color for this Category (currently selected) :"
 msgstr "Selecione a cor para esta Categoria (selecionada): "
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Limpar"
 
@@ -3959,11 +3977,8 @@ msgid "Port:"
 msgstr "Porta:"
 
 #: src/muuli_wdr.cpp:2763
-#, fuzzy
 msgid "Bootstrap from known clients"
-msgstr ""
-"Inicializando com \n"
-"clientes conhecidos"
+msgstr "Inicializando de clientes conhecidos"
 
 #: src/muuli_wdr.cpp:2768
 msgid "Disconnect Kad"
@@ -4031,7 +4046,7 @@ msgstr "Nenhum"
 
 #: src/muuli_wdr.cpp:2836
 msgid "Who can see my shared files:"
-msgstr ""
+msgstr "Quem pode ver meus arquivos compartilhados: "
 
 #: src/muuli_wdr.cpp:2837
 msgid "Select who can request to view a list of your shared files."
@@ -4136,7 +4151,7 @@ msgstr "Alterar frequência (em segundos) da atualização da Assinatura."
 
 #: src/muuli_wdr.cpp:2945
 msgid "Save online signature file in: "
-msgstr ""
+msgstr "Salvar arquivos de assinatura online em: "
 
 #: src/muuli_wdr.cpp:2952
 msgid ""
@@ -4171,7 +4186,7 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:2993
 msgid "Show received messages in the log"
-msgstr ""
+msgstr "Mostrar mensagens recebidas no log"
 
 #: src/muuli_wdr.cpp:2998
 msgid "Comments"
@@ -4195,7 +4210,7 @@ msgstr "Ativa/Desativa autenticação por usuário/senha"
 
 #: src/muuli_wdr.cpp:3036
 msgid "Username: "
-msgstr ""
+msgstr "Nome do usuário: "
 
 #: src/muuli_wdr.cpp:3040
 msgid "The username to use to connect to the proxy"
@@ -4258,88 +4273,89 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Ativar log de debug detalhado"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "Abrir &o arquivo"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Categorias de Mensagens:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Aguardando..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Adicionar importadas"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Tentar novamente selecionada"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Remover selecionada"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
-msgstr ""
+msgstr "Tipos de Eventos"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
+"Estatísticas e filas de clientes para arquivo(s) selecionado(s) : Sessão / "
+"Sempre"
 
-#: src/muuli_wdr.cpp:3348
-#, fuzzy
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
-msgstr "Uploads ativos:"
+msgstr "Uploads Ativos"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
-msgstr ""
+msgstr "Porcentagem de total de arquivos"
 
-#: src/muuli_wdr.cpp:3415
-#, fuzzy
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
-msgstr "Esconder arquivos compartilhados"
+msgstr "Todos os arquivos"
 
-#: src/muuli_wdr.cpp:3416
-#, fuzzy
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
-msgstr "Selecione o filtro de exibição"
+msgstr "Arquivos selecionados"
 
-#: src/muuli_wdr.cpp:3417
-#, fuzzy
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
-msgstr "Uploads ativos"
+msgstr "Somente uploads ativos"
 
-#: src/muuli_wdr.cpp:3419
-#, fuzzy
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
-msgstr "Exibir Clientes"
+msgstr "Exibir Clientes para"
 
-#: src/muuli_wdr.cpp:3422
-#, fuzzy
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
-msgstr "Recarregar lista"
+msgstr "Recarregar:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Atualizar lista de compartilhados"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Enviar"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Enviar a mensagem especificada"
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Encerrar sessão de Chat"
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Conectar a qualquer servidor e/ou Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Arquivos Compartilhados"
 
@@ -4348,135 +4364,135 @@ msgstr "Arquivos Compartilhados"
 msgid "Disabled [%s]"
 msgstr "Desativado [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/s"
 msgstr[1] "bytes/s"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "s"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "horas"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "dias"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "todos"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "todos os outros"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incompleto"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Parado"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Vídeo"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arquivo"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Texto"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Ativos"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
-msgstr ""
+msgstr "Usando diretório de configuração: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
-msgstr ""
+msgstr "Esperando pela linha de conversão do partfile para morrer..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importando %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Lendo pasta temp"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Recebendo informações básicas do arquivo info de download"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Criando arquivo de destino"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Carregando dados do download antigo (%u de %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Salvando bloco de dados em novo arquivo de download (%u de %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Recebendo informações sobre fontes do arquivo a baixar"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Adicionando download e salvando novo arquivo .part"
 
@@ -4492,12 +4508,12 @@ msgstr "Estado"
 msgid "Filehash"
 msgstr "Hash do arquivo"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disco: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4505,19 +4521,18 @@ msgstr ""
 "Escolha uma pasta para procurar por downloads temporários! (subdiretórios "
 "serão incluídos)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Deseja excluir os temporários dos que foram importados com sucesso?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Remover temporários?"
 
 #: src/PartFile.cpp:298
-#, fuzzy
 msgid "ERROR: Failed to create partfile"
-msgstr "ERRO: falha na criação do arquivo .part)"
+msgstr "ERRO: falha na criação de partfile"
 
 #: src/PartFile.cpp:336
 #, c-format
@@ -4537,12 +4552,13 @@ msgstr "ERRO: arquivo part.met é de tamanho 0: %s ==> %s"
 #: src/PartFile.cpp:360
 #, c-format
 msgid "ERROR: Invalid part.met file version: %s ==> %s"
-msgstr ""
+msgstr "ERRO: Versão do arquivo part.met inválida: %s ==> %s"
 
 #: src/PartFile.cpp:595
-#, fuzzy, c-format
+#, c-format
 msgid "Error: %s (%s) is corrupt (bad tags: %s), unable to load file."
-msgstr "Erro: %s (%s) está corrompido, impossível carregar arquivo."
+msgstr ""
+"Erro: %s (%s) está corrompido (bad tags: %s), impossível carregar arquivo."
 
 #: src/PartFile.cpp:606
 #, c-format
@@ -4583,9 +4599,8 @@ msgid "ERROR while saving partfile: %s (%s ==> %s)"
 msgstr "Erro ao salvar arquivo .part: %s (%s ==> %s)"
 
 #: src/PartFile.cpp:904
-#, fuzzy
 msgid "IO failure while saving partfile: "
-msgstr "Erro ao salvar arquivo .part: %s (%s ==> %s)"
+msgstr "Erro de IO enquanto salvava partfile: "
 
 #: src/PartFile.cpp:917
 #, c-format
@@ -4624,7 +4639,7 @@ msgstr "Arquivo .part %s (%s) tem fontes expiradas."
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Erro lendo arquivo .seeds do arquivo (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4639,38 +4654,38 @@ msgstr[1] ""
 "Encontradas partes corrompidas (%d) em %d arquivo .part %s - Resultado |%s| "
 "Hash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Achado parte completa (%i) em %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Terminado o rehash %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Erro inesperado quando completado %s. Arquivo parado"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Download concluído: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Apagando arquivo: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "CUIDADO: Incapaz de fazer hash em part baixado - hashset incompleto para '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4679,234 +4694,233 @@ msgstr ""
 "ERRO: Incapaz de fazer hash de part baixado - hashset incompleto (%s). Isto "
 "nunca deveria acontecer"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
+"EOF enquanto fazia hash de parte %u baixada  com tamanho %u (max %u) de "
+"parte '%s' com tamanho %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 "AVISO: Não há espaço em disco suficiente! Colocando arquivo %s em pausa"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Parte baixada %i do arquivo %s está corrompida"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Recuperada parte corrompida %i para %s -> Bytes salvos: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Alocando"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Espaço em disco insuficiente"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Baixado"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ERRO: Falha ao abrir partfile '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Padrão do sistema"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanês"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Árabe"
 
-#: src/Preferences.cpp:633
-#, fuzzy
+#: src/Preferences.cpp:634
 msgid "Asturian"
-msgstr "Estônia"
+msgstr "Asturiano"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Basco"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Búlgaro"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalão"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Chinês (Simplificado)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Chinês (Tradicional)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Croácia"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Tcheco"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Dinamarquês"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holandês"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Inglês (UK)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estônia"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandês"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francês"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galego"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Alemão"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Grego"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebreu"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Hungria"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiano"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiano (Suíço)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonês"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Coreano"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituânia"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Noruega (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polonês"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Português (Portugal)"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Português (Brasil)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russo"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Esloveno"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Espanhol"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Suécia"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turquia"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
-msgstr ""
+msgstr "Ucraniano"
 
-#: src/Preferences.cpp:728
-#, fuzzy
+#: src/Preferences.cpp:730
 msgid "Change Language"
-msgstr "Idioma"
+msgstr "Mudar Idioma"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
-msgstr ""
+msgstr "Não há traduções instaladas no aMule"
 
-#: src/Preferences.cpp:771
-#, fuzzy
+#: src/Preferences.cpp:773
 msgid "No languages available"
-msgstr "Não disponível"
+msgstr "Nenhum idioma disponível"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
-msgstr ""
+msgstr "nenhuma opção disponível"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
-msgstr ""
+msgstr "Categoria inválida encontrada, pulando"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr "Porta TCP não pode ser maior do que 65532, pois a UDP escuta em TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Porta padrão será utilizada (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
-msgstr ""
+msgstr "Descartando diretório compartilhado não existente: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Conexão"
 
@@ -4914,7 +4928,7 @@ msgstr "Conexão"
 msgid "Directories"
 msgstr "Diretórios"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servidores"
 
@@ -4928,7 +4942,7 @@ msgstr "Segurança"
 
 #: src/PrefsUnifiedDlg.cpp:182
 msgid "Interface"
-msgstr ""
+msgstr "Interface"
 
 #: src/PrefsUnifiedDlg.cpp:184
 msgid "Proxy"
@@ -4936,7 +4950,7 @@ msgstr "Proxy"
 
 #: src/PrefsUnifiedDlg.cpp:185
 msgid "Filters"
-msgstr ""
+msgstr "Filtros"
 
 #: src/PrefsUnifiedDlg.cpp:186
 msgid "Remote Controls"
@@ -4948,7 +4962,7 @@ msgstr "Assinatura Online"
 
 #: src/PrefsUnifiedDlg.cpp:188
 msgid "Advanced"
-msgstr ""
+msgstr "Avançado"
 
 #: src/PrefsUnifiedDlg.cpp:189
 msgid "Events"
@@ -4964,8 +4978,11 @@ msgid ""
 "    %PARTFILE - full path to the file\n"
 "    %PARTNAME - file name only"
 msgstr ""
+"As seguinte variáveis serão substituídas:\n"
+"    %PARTFILE - caminhos completo para o arquivo\n"
+"    %PARTNAME - somente nome do arquivo"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4981,26 +4998,26 @@ msgstr ""
 "O aMule funciona corretamente sem qualquer tipo de\n"
 "alteração nessas opções."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
-msgstr ""
+msgstr "Falha ao conectar Cfg para Widget com o ID %d e senha %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
-msgstr ""
+msgstr "Falha ao transferir dado do Cfg para Widget com o ID %d e senha %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Tipo de proxy ao qual você está conectado"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
-msgstr ""
+msgstr "Falha ao transferir dado do Widget para Cfg com o ID %d e senha %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5008,36 +5025,40 @@ msgstr ""
 "O aMule deve ser reiniciado para habilitar estas mudanças:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "-Porta TCP alterada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "-Porta UDP alterada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
-#, fuzzy
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
-msgstr "Conexão externa encerrada."
+msgstr "- Porta de conexão externa modificada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
-#, fuzzy
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
-msgstr "Novas conexões externas aceitas"
+msgstr "- Aceitação da conexão externa modificada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
-#, fuzzy
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
-msgstr "Conexão externa encerrada."
+msgstr "- Interface de conexão externa modificada.\n"
+
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Obscurecimento de Protocolo"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
+"Sua lista de Auto-atualização de servidor está vazia.\n"
+"'Auto-atualização de servidor na iniciação' será desativada."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5045,20 +5066,19 @@ msgstr ""
 "Você ativou as conexões externas (EC) mas não definiu uma senha.\n"
 "Conexões Externas só podem ser feitas se for especificada uma senha válida."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "-Idioma alterado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "-Diretório temporário alterado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
-#, fuzzy
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
-msgstr "Todas as redes estão DESATIVADAS."
+msgstr "- Rede ED2K conectada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5066,7 +5086,7 @@ msgstr ""
 "Ambas rede eD2k e Kad estão desativadas.\n"
 "Você não será capaz de conectar senão habilitar pelo menos um deles."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5074,7 +5094,7 @@ msgstr ""
 "Kad não iniciará se sua porta UDP estiver desabilitada.\n"
 "Habilite a porta UDP ou desative a rede Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5084,7 +5104,7 @@ msgstr ""
 "Você DEVE reiniciar o aMule agora.\n"
 "Se você não reiniciá-lo agora, não reclame se algo de ruim acontecer.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5094,41 +5114,41 @@ msgstr ""
 "Coloque pelo menos uma linha que aponte para um server.met válido.\n"
 "Clique no botão \"Lista\" para abrir a caixa para digitar uma URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Arquivos Temporários"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Arquivos Recebidos"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Assinatura Online"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Escolha uma pasta para %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Defina seu Player de Vídeo preferido"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Selecione o Browser"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Executável%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Editar lista de servidores"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5136,77 +5156,76 @@ msgstr ""
 "Adicione aqui URL's para baixar arquivo 'server.met'\n"
 "Somente uma URL por Linha."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Delay na atualização: %d segundo"
 msgstr[1] "Delay na atualização: %d segundos"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Tempo do gráfico de média: %d minuto"
 msgstr[1] "Tempo do gráfico de média: %d minutos"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Escala do gráfico de conexões: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Tamanho do Buffer de Arquivo: %d byte"
 msgstr[1] "Tamanho do Buffer de Arquivo: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Tamanho de Espera de Upload: %d cliente"
 msgstr[1] "Tamanho de Espera de Upload: %d clientes"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Atualizar conexão com servidor: %d minuto"
 msgstr[1] "Atualizar conexão com servidor: %d minutos"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Intervalo para atualizar conexão no servidor: Desativado"
 
-#: src/PrefsUnifiedDlg.cpp:1199
-#, fuzzy
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "desativado"
 
-#: src/PrefsUnifiedDlg.cpp:1222
-#, fuzzy, c-format
+#: src/PrefsUnifiedDlg.cpp:1227
+#, c-format
 msgid "Execute command on '%s' event"
-msgstr "Executar comando em evento `%s'"
+msgstr "Executar comando em evento '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Habilitar execução de comando no núcleo"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Comando do Núcleo:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Habilitar execução de comando na GUI"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Comando da GUI:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "As seguinte váriaveis serão substituidas:"
 
@@ -5234,7 +5253,7 @@ msgstr "Procura eD2k não pode ser concluída se o eD2k não está conectado"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Erro inesperado quando tentava fazer a busca do Kad:"
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID do arquivo"
 
@@ -5247,9 +5266,9 @@ msgid "Download in category"
 msgstr "Baixar na categoria"
 
 #: src/SearchListCtrl.cpp:639
-#, fuzzy, c-format
+#, c-format
 msgid "Get %s for this file"
-msgstr "URL para esse arquivo (opcional)"
+msgstr "Obtendo %s para este arquivo"
 
 #: src/SearchListCtrl.cpp:643
 msgid "Search related files (eD2k, local server)"
@@ -5264,13 +5283,12 @@ msgid "Copy eD2k link to clipboard"
 msgstr "Copiar ligação eD2k para área de tranferência"
 
 #: src/SearchListCtrl.cpp:1014
-#, fuzzy
 msgid "Canceled"
-msgstr "Cancelar"
+msgstr "Cancelado"
 
 #: src/SearchListCtrl.cpp:1017
 msgid "New"
-msgstr ""
+msgstr "Novo"
 
 #: src/ServerConnect.cpp:74
 msgid ""
@@ -5347,9 +5365,9 @@ msgstr "ERRO: Socket inválido no tempo de checagem"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Expirado tempo de espera para conectar a %s (%s:%i)."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
-msgstr ""
+msgstr "Recebido último resultado da consulta DNS, descartando."
 
 #: src/ServerList.cpp:88
 #, c-format
@@ -5376,51 +5394,50 @@ msgstr ""
 "Arquivo server.met corrompido, encontrada tag de versão inválida: 0x%x, "
 "tamanho %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "Encontrado %i servidor no server.met"
 msgstr[1] "Encontrados %i servidores no server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "Adicionado %d servidor"
 msgstr[1] "Adicionados %d servidores"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
-msgstr ""
+msgstr "Erro: o arquo 'server.met' está corrompido: "
 
-#: src/ServerList.cpp:182
-#, fuzzy
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
-msgstr "Erro de I/O ao ler arquivo known.met: %s"
+msgstr "Erro de I/O ao ler arquivo 'server.met':"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Servidor não adicionado: [%s:%d] não possui uma porta válida."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Servidor não adicionado: o IP de [%s:%d] está filtrado ou é inválido."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Servidor não adicionado: Servidor com esse IP:Porta [%s:%d] já na lista."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Servidor adicionado: Servidor em [%s:%d] usando o nome '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5428,25 +5445,25 @@ msgstr ""
 "Você está conectado a um servidor que está tentando apagar. Desconecte "
 "primeiro."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Falha ao abrir '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Falha ao salvar server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "URL inválida"
 
-#: src/ServerList.cpp:854
-#, fuzzy, c-format
+#: src/ServerList.cpp:855
+#, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Download da lista de servidores de %s concluída"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5455,27 +5472,27 @@ msgstr ""
 "Por favor cole uma lista de endereços válida de servidores dentro deste "
 "arquivo em ordem para auto-atualizar sua lista de servidores."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Iniciando download da lista de servidores de %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "CUIDADO: URL especificada inválida para auto-atualização dos servidores: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "Nenhuma URL com server.met da lista addresses.dat é válida"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Falha ao obter a lista de servidores de %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5512,7 +5529,7 @@ msgid "Static"
 msgstr "Fixo"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versão"
 
@@ -5538,8 +5555,8 @@ msgstr "Deseja remover o servidor estático %s"
 msgid "Servers (%i)"
 msgstr "Servidores (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Servidor"
 
@@ -5595,83 +5612,83 @@ msgstr "Deseja remover o servidor selecionado?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Deseja remover o servidores selecionados?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ERRO %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "CUIDADO: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Novo ID do cliente é %u."
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "AVISO: você recebeu uma ID baixa (LowID)!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tGeralmente isso acontece quando você está atrás de um firewall/router."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPara maiores informações, vá até http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Info desconhecida recebida do servidor - muito curta"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Recebido %d servidor novo"
 msgstr[1] "Recebidos %d servidores novos"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Salvamento da lista de servidores concluído."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "O servidor rejeitou o último comando"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Pacote falso recebido do servidor: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Ocorreu um erro imprevisto ao processar os pacotes do servidor: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Não foi possível ativar resolução DNS para conectar a %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "IP do servidor %s (%s) está filtrado. Não conectando."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "usando obscurecimento de protocolo."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Conectando para %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Não foi possível resolver o DNS para %s: Impossível conectar!"
@@ -5697,9 +5714,8 @@ msgid "Kademlia Status:"
 msgstr "Status Kademlia:"
 
 #: src/ServerWnd.cpp:206
-#, fuzzy
 msgid "Running in LAN mode"
-msgstr "Executando em %s"
+msgstr "Rodando em modo LAN"
 
 #: src/ServerWnd.cpp:206
 msgid "Running"
@@ -5716,17 +5732,16 @@ msgstr "Estado da Conexão:"
 #: src/ServerWnd.cpp:214
 #, c-format
 msgid "Firewalled - open TCP port %d in your router or firewall"
-msgstr ""
+msgstr "Atrás de Firewall - abra a porta TCP %d em seu roteador ou firewal"
 
 #: src/ServerWnd.cpp:216
-#, fuzzy
 msgid "UDP Connection State:"
-msgstr "Estado da Conexão:"
+msgstr "Estado da Conexão UDP:"
 
 #: src/ServerWnd.cpp:219
 #, c-format
 msgid "Firewalled - open UDP port %d in your router or firewall"
-msgstr ""
+msgstr "Atrás de Firewall - abra a porta UDP %d em seu roteador ou firewall"
 
 #: src/ServerWnd.cpp:223
 msgid "Firewalled state: "
@@ -5734,43 +5749,40 @@ msgstr "Estado do Firewall:"
 
 #: src/ServerWnd.cpp:229
 msgid "No buddy required - TCP port open"
-msgstr ""
+msgstr "Nenhum amigo requirido - porta TCP aberta"
 
 #: src/ServerWnd.cpp:231
 msgid "No buddy required - UDP port open"
-msgstr ""
+msgstr "Nenhum amigo requirido - porta UDP aberta"
 
 #: src/ServerWnd.cpp:233
 msgid "No buddy"
 msgstr "Sem amigos"
 
 #: src/ServerWnd.cpp:237
-#, fuzzy
 msgid "Connecting to buddy"
-msgstr "Conectado ao amigo"
+msgstr "Conectando ao amigo"
 
 #: src/ServerWnd.cpp:240
-#, fuzzy, c-format
+#, c-format
 msgid "Connected to buddy at %s"
-msgstr "Conectado ao amigo"
+msgstr "Conectado ao amigo em %s"
 
 #: src/ServerWnd.cpp:250
-#, fuzzy
 msgid "Indexed sources:"
-msgstr "Fontes encontradas:"
+msgstr "Fontes indexadas::"
 
 #: src/ServerWnd.cpp:252
 msgid "Indexed keywords:"
-msgstr ""
+msgstr "Palavras chaves indexadas: "
 
 #: src/ServerWnd.cpp:254
-#, fuzzy
 msgid "Indexed notes:"
-msgstr "Arquivo index não encontrado:"
+msgstr "Notas indexadas:"
 
 #: src/ServerWnd.cpp:256
 msgid "Indexed load:"
-msgstr ""
+msgstr "Index carregado:"
 
 #: src/ServerWnd.cpp:259
 msgid "Average Users:"
@@ -5787,7 +5799,7 @@ msgstr "Parado"
 #: src/SharedFileList.cpp:332
 #, c-format
 msgid "Adding file %s to shares"
-msgstr ""
+msgstr "Adicionando arquivo %s ao compartilhamento"
 
 #: src/SharedFileList.cpp:371
 #, c-format
@@ -5809,37 +5821,32 @@ msgid "ERROR: Attempted to share %s"
 msgstr "ERRO: Tentando compartilhar %s"
 
 #: src/SharedFileList.cpp:410
-#, fuzzy, c-format
+#, c-format
 msgid "Shared directory not found, skipping: %s"
-msgstr "servidor não encontrado: %s"
+msgstr "Diretório compartilhado não encontrado, pulando: %s"
 
 #: src/SharedFileList.cpp:480
 #, c-format
 msgid "No shareable files found in directory: %s"
-msgstr ""
+msgstr "Arquivos compartilháveis não encontrado no diretório: %s"
 
 #: src/SharedFilePeersListCtrl.cpp:28 src/SourceListCtrl.cpp:28
-#, fuzzy
 msgid "User Name"
-msgstr "Usuário"
+msgstr "Nome de Usuário"
 
 #: src/SharedFilePeersListCtrl.cpp:30
-#, fuzzy
 msgid "Download Speed"
-msgstr "Download (Velocidade)"
+msgstr "Velocidade de Download"
 
 #: src/SharedFilePeersListCtrl.cpp:32
-#, fuzzy
 msgid "Upload Speed"
-msgstr "Upload (velocidade)"
+msgstr "Velocidade de Upload"
 
 #: src/SharedFilePeersListCtrl.cpp:33 src/SourceListCtrl.cpp:32
-#, fuzzy
 msgid "Available Parts"
-msgstr "Disponíveis: "
+msgstr "Partes Disponíveis:"
 
 #: src/SharedFilePeersListCtrl.cpp:35
-#, fuzzy
 msgid "Upload Status"
 msgstr "Status de Upload"
 
@@ -5849,337 +5856,339 @@ msgstr "Status de Download"
 
 #: src/SharedFilePeersListCtrl.cpp:37 src/SourceListCtrl.cpp:35
 msgid "Origin"
-msgstr ""
+msgstr "Origem"
 
 #: src/SharedFilePeersListCtrl.cpp:38 src/SourceListCtrl.cpp:36
-#, fuzzy
 msgid "Local File Name"
-msgstr "Nome do arquivo"
+msgstr "Nome do arquivo Local"
 
 #: src/SharedFilePeersListCtrl.cpp:39 src/SourceListCtrl.cpp:38
-#, fuzzy
 msgid "Shares File List"
-msgstr "Arquivos Compartilhados"
+msgstr "Lista de Arquivos Compartilhados"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Pedidos"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Pedidos aceitos"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Dados transferidos"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Taxa Compartilhada"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Partes já baixadas"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Fontes Completas"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Caminho completo"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Adicionar Comentário/Avaliação"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Editar Comentário/Avaliação"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Renomear"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Adicionar arquivo na coleção para lista de transgênica"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Copiar &URL Magnet para Área de Transferência"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Copiar &link eD2k para área de tranferência (&Fonte)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 "Copiar &link eD2k para área de tranferência (Fonte) (&Com opções de "
 "criptografia)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Copiar &link eD2k para área de tranferência (&Nome da máquina)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Copiar &link eD2k para área de tranferência (Nome da máquina) (Com &Opções "
 "de criptografia)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Copiar &link eD2k para área de tranferência (&Info AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Copiar &link eD2k para área de tranferência (&Info AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Você precisa ter HighID para criar uma fonte ED2K válida"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Arquivos Compartilhados (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[PartFile]"
 
 #: src/SourceListCtrl.cpp:37
-#, fuzzy
 msgid "Remote File Name"
-msgstr "Nome do arquivo"
+msgstr "Nome do arquivo remoto"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Dados enviados (Sessão (Total)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Overhead Total (pacotes): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Solicitações de Arquivo (pacotes): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Troca de fontes (Pacotes): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Overhead de servidor (Pacotes): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Overhead Kad (pacotes): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Criptografia elevada (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Uploads ativos: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Uploads em espera: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Total de sessões de UP com sucesso: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Total de sessões de UP que falharam: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Tempo médio de upload: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Dados baixados (Sessão (Total)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Fontes encontradas: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Downloads ativos (pedaços): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Média de UL:DL da Sessão (Total): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Taxa média de download (Sessão): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Taxa média de envio (Sessão): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Taxa máxima de download (Sessão): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Taxa máxima de envio (Sessão): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Reconectados: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tempo desde a primeira transferência: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Conectado ao servidor desde: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Conexões ativas (estimada): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Máximo de conexões que atingiram tempo limite: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Média de conexões (estimativa): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Pico de conexões (estimada): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Clientes"
 
-#: src/Statistics.cpp:786
-#, fuzzy, c-format
+#: src/Statistics.cpp:791
+#, c-format
 msgid "Unknown: %s"
-msgstr "Tamanho desconhecido"
+msgstr "Desconhecido: %s"
 
-#: src/Statistics.cpp:792
-#, fuzzy, c-format
+#: src/Statistics.cpp:797
+#, c-format
 msgid "Filtered: %s"
-msgstr "Filtrado"
+msgstr "Filtrado: %s"
 
-#: src/Statistics.cpp:793
-#, fuzzy, c-format
+#: src/Statistics.cpp:798
+#, c-format
 msgid "Banned: %s"
-msgstr "Banido"
+msgstr "Banido: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Total: %i Conhecidos: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Servidores ativos: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Servidores que falharam: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Total: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Servidores eliminados: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Servidores Filtrados: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Usuários em servidores ativos: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Arquivos nos servidores ativos: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Total de usuários: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Total de arquivos: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Ocupação do Servidor: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Número de arquivos compartilhados: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Tamanho total de compartilhados: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Média de tamanho de arquivo: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistema Operacional"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Não recebido"
 
@@ -6197,9 +6206,9 @@ msgid "Never"
 msgstr "Nunca"
 
 #: src/TerminationProcess.cpp:47
-#, fuzzy, c-format
+#, c-format
 msgid "Command '%s' with pid '%d' has finished with status code '%d'."
-msgstr "Comando `%s' com pid `%d' foi finalizado com o status `%d'."
+msgstr "Comando '%s' com pid '%d' foi finalizado com o código de status '%d'."
 
 #: src/TextClient.cpp:134
 msgid "Execute <str> and exit."
@@ -6237,7 +6246,7 @@ msgstr "Não é um número válido\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Não é uma hash válida (precisa ter exatamente 32 caracteres)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Solicitação falhou com erro desconhecido."
 
@@ -6291,13 +6300,13 @@ msgstr "Conectado a %s %s %s"
 msgid "Now connecting"
 msgstr "Conectando"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "sob firewall"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "Ok"
 
@@ -6345,11 +6354,11 @@ msgstr "Número de resultados da busca: %i\n"
 #: src/TextClient.cpp:830
 #, c-format
 msgid "Search progress: %u %% \n"
-msgstr ""
+msgstr "Progresso da busca: %u %% \n"
 
 #: src/TextClient.cpp:832
 msgid "Search progress not available"
-msgstr ""
+msgstr "Progresso da busca não disponível"
 
 #: src/TextClient.cpp:837
 #, c-format
@@ -6401,33 +6410,28 @@ msgstr ""
 "núcleo rodando.\n"
 
 #: src/TextClient.cpp:859
-#, fuzzy
 msgid "Reload the given object."
 msgstr "Recarregar objeto selecionado."
 
 #: src/TextClient.cpp:860
-#, fuzzy
 msgid "Reload shared files list."
-msgstr "Recarregar a lista de compartilhamentos."
+msgstr "Recarregar a lista de arquivos compartilhamentos."
 
 #: src/TextClient.cpp:862
-#, fuzzy
 msgid "Reload IP filtering table."
-msgstr "Recarregar a tabela IPFilter do arquivo."
+msgstr "Recarregar a tabela IPFilter."
 
 #: src/TextClient.cpp:863
-#, fuzzy
 msgid "Reload current IP filtering table."
-msgstr "Definir no nível do IP Filter."
+msgstr "Carregar a atual tabela de IP filtering."
 
 #: src/TextClient.cpp:864
-#, fuzzy
 msgid "Update IP filtering table from URL."
-msgstr "Recarregar a tabela IPFilter do arquivo."
+msgstr "Atualizar a tabela de IP filtering de URL."
 
 #: src/TextClient.cpp:865
 msgid "If URL is omitted the URL from the preferences is used."
-msgstr ""
+msgstr "Se a URL é omitida a URL das preferências é usado."
 
 #: src/TextClient.cpp:867
 msgid "Connect to the network."
@@ -6473,9 +6477,8 @@ msgid "Disconnect from Kad only."
 msgstr "Desconectar apenas da rede Kad."
 
 #: src/TextClient.cpp:877
-#, fuzzy
 msgid "Add an eD2k or magnet link to core."
-msgstr "Adicionar uma ligação eD2k ou magnética no núcleo."
+msgstr "Adicionar uma ligação eD2k ou magnet ao núcleo."
 
 #: src/TextClient.cpp:878
 msgid ""
@@ -6504,9 +6507,8 @@ msgid "Set a preference value."
 msgstr "Defina as preferências."
 
 #: src/TextClient.cpp:883
-#, fuzzy
 msgid "Set IP filtering preferences."
-msgstr "Preferências do IPFilter."
+msgstr "Definir preferências de IP filtering."
 
 #: src/TextClient.cpp:884
 msgid "Turn IP filtering on for both clients and servers."
@@ -6573,38 +6575,32 @@ msgid "Get and display a preference value."
 msgstr "Obter e mostrar o valor da opção selecionada."
 
 #: src/TextClient.cpp:905
-#, fuzzy
 msgid "Get IP filtering preferences."
-msgstr "Obter preferências do IPFilter."
+msgstr "Obter preferências de IP filtering."
 
 #: src/TextClient.cpp:906
-#, fuzzy
 msgid "Get IP filtering state for both clients and servers."
-msgstr "Obter estado do IPFilter para ambos clientes e servidores."
+msgstr "Obter estado de IP filtering para ambos clientes e servidores."
 
 #: src/TextClient.cpp:907
-#, fuzzy
 msgid "Get IP filtering state for clients only."
-msgstr "Obter estado do IPFilter somente para clientes."
+msgstr "Obter estado do IP filtering somente para clientes."
 
 #: src/TextClient.cpp:908
-#, fuzzy
 msgid "Get IP filtering state for servers only."
-msgstr "Obter estado do IPFilter somente para servidores."
+msgstr "Obter estado do IP filtering somente para servidores."
 
 #: src/TextClient.cpp:909
-#, fuzzy
 msgid "Get IP filtering level."
-msgstr "Definir no nível do IP Filter."
+msgstr "Definir no nível de IP filtering."
 
 #: src/TextClient.cpp:911
 msgid "Get bandwidth limits."
 msgstr "Obter limites de Up/Down"
 
 #: src/TextClient.cpp:913
-#, fuzzy
 msgid "Execute a search."
-msgstr "Executa uma pesquisa no kad"
+msgstr "Faça uma pesquisa."
 
 #: src/TextClient.cpp:914
 msgid ""
@@ -6621,37 +6617,30 @@ msgstr ""
 "Exemplo: 'search kad file' será pesquisado na rede kad o \"arquivo\".\n"
 
 #: src/TextClient.cpp:915
-#, fuzzy
 msgid "Execute a global search."
-msgstr "Executa uma pesquisa global."
+msgstr "Faça uma pesquisa global."
 
 #: src/TextClient.cpp:916
-#, fuzzy
 msgid "Execute a local search"
-msgstr "Executa uma pesquisa local"
+msgstr "Faça uma pesquisa local"
 
 #: src/TextClient.cpp:917
-#, fuzzy
 msgid "Execute a kad search"
-msgstr "Executa uma pesquisa no kad"
+msgstr "Faça uma pesquisa no kad"
 
 #: src/TextClient.cpp:919
-#, fuzzy
 msgid "Show the results of the last search."
 msgstr "Mostra resultados da última pesquisa."
 
 #: src/TextClient.cpp:920
-#, fuzzy
 msgid "Return the results of the previous search.\n"
 msgstr "Retorna os resultados da pesquisa anterior.\n"
 
 #: src/TextClient.cpp:922
-#, fuzzy
 msgid "Show the progress of a search."
 msgstr "Exibe progresso de uma pesquisa."
 
 #: src/TextClient.cpp:923
-#, fuzzy
 msgid "Show the progress of a search.\n"
 msgstr "Exibe o progresso de uma pesquisa.\n"
 
@@ -6710,10 +6699,10 @@ msgid "Show queues/lists."
 msgstr "Exibir as listas de Up/Down"
 
 #: src/TextClient.cpp:950
-#, fuzzy
 msgid "Show upload/download queue, server list or shared files list.\n"
 msgstr ""
-"Exibe listas de Down/Up, lista de servidores ou lista de compartilhados.\n"
+"Exibe listas de upload/download, lista de servidores ou lista de "
+"compartilhados.\n"
 
 #: src/TextClient.cpp:951
 msgid "Show upload queue."
@@ -6749,21 +6738,21 @@ msgstr ""
 "Esse comando foi depreciado e será removido no futuro.\n"
 "Ao invés desse, use '%s'.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Cliente em modo texto do aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Convertendo hashsets AICH antigos de '%s' para 64b em '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "AVISO: O nome de arquivo '%s' é inválido e foi renomeado para '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "AVISO: O arquivo '%s' já existe, novo arquivo renomeado para '%s'."
@@ -6778,12 +6767,11 @@ msgstr "Confirmação requerida"
 
 #: src/TransferWnd.cpp:238
 msgid "Only 99 categories are supported."
-msgstr ""
+msgstr "Somente 99 categorias são suportadas"
 
 #: src/TransferWnd.cpp:238
-#, fuzzy
 msgid "Too many categories!"
-msgstr "Excesso de conexões"
+msgstr "Excesso de conexões!"
 
 #: src/TransferWnd.cpp:341
 msgid "All others"
@@ -6834,7 +6822,7 @@ msgstr "Falha ao executar comando `%s' no evento `%s'."
 msgid "Download completed"
 msgstr "Download concluído"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Caminho completo do arquivo."
 
@@ -6854,66 +6842,66 @@ msgstr "Tamanho do arquivo em bytes."
 msgid "Cumulative download activity time."
 msgstr "Tempo acumulado de download ativo."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Nova sessão de chat iniciada"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Remetente da mensagem."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Sem espaço"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partição do disco"
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Erro ao concluir"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Processando arquivo número %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Você pediu por hash de partes (só é usado para arquivos > 9,5MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Arquivo não existe !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, o criador de ligações do aMule eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Bem-vindo!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Parâmetros de Entrada"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Arquivo a gerar hash"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "URL para esse arquivo (opcional)"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Escreva aqui o arquivo que você quer computar a ligação eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6921,15 +6909,15 @@ msgstr ""
 "Escreva aqui a URL que você quer adicionar na ligação eD2k: Adicione / no "
 "fim para deixar o aLinkCreator anexar o atual nome do arquivo"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Remover"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Criar link com hash de partes"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6937,81 +6925,81 @@ msgstr ""
 "Ajuda a espalhar arquivos novos e raros mais rápido, mas aumenta o tamanho "
 "do link"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Hash MD4 do arquivo"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Hash de arquivo eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "Ligação eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Salvar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Copiar para a Área de Transferência"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
-msgstr ""
+msgstr "Abrir"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Abra o arquivo para computar esta ligação eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Copiar ligação eD2k computada para a área de transferência"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
-msgstr ""
+msgstr "Salvar como"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Salvar ligação eD2k computada no arquivo"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Sobre o aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Selecione o arquivo que você quer computar a ligação eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
-msgstr ""
+msgstr "Não pode abrir o clipboard"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Nada a ser copiado!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Selecione o arquivo para sua ligação eD2k computada"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Impossível abrir "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Por favor, informe um nome não-vazio"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Nada a ser salvo!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7031,158 +7019,162 @@ msgstr ""
 "\n"
 "Distribuído sobre GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Criando Hash..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
-msgstr ""
+msgstr "aLinkCreator está trabalhando por você"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
-msgstr ""
+msgstr "Computando Hash MD4..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
-msgstr ""
+msgstr "Computando Hashes eD2k..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Cancelado !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Pronto em %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Você já adicionou essa URL!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Informe uma URL não-vazia"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Impossível abrir %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dias %i horas %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, Estatísticas Online do aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Taxa máxima de DL enquanto roda o wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Taxa máxima absoluta de DL enquanto rodava o wxCas (anterior)"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Parar atualização automática"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Salvar imagem de estatística Online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Imprimir imagem de estatística Online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Preferências"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Sobre wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Iniciar atualização automática"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Atualização automática parada"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Atualização automática iniciada"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Salvar imagem estatísticas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Estatísticas Online do aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7190,11 +7182,11 @@ msgstr ""
 "Encontrei um problema na hora de imprimir.\n"
 "A sua impressora está configurada corretamente?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Imprimindo"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7212,323 +7204,323 @@ msgstr ""
 "\n"
 "Distribuído sob licença GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule não está rodando..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule está rodando"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule está rodando, mas desconectado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule está conectando..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, o status do aMule é desconhecido..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " está rodando há "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr "esta parado !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " não esta conectado !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " está conectando..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " está fazendo algo de estranho, verifique!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " conectado em "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "desligado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " está ativo "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " com "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Download Total: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Download da Sessão: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Compartilhando: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " arquivos, Clientes na fila: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Tempo: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " em "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Média de carga do Sistema (1-5-15 min): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Uptime do Sistema: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Pasta contendo arquivo amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Informe aqui a pasta onde está o arquivo amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Taxa de atualização (em segundos)"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Gerar imagem de estatística a cada atualização"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Informe aqui a pasta onde gravar a imagem de estatística gerada"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Fazer upload periódico da imagem para servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "URL do FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Caminho no FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Informe a URL do seu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Informe a pasta onde colocar a sua imagem estatística no servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Usuário"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Informe o nome do usuário de login, para o servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Informe a senha para o usuário do servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Intervalo entre atualizações do servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Validar"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Pasta contendo seu arquivo de assinatura"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Pasta para colocar imagem estatística gerada"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Carregar modelo <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Porta HTTP do web server"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Usar redirecionamento de porta UPnP na porta do cliente web"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Porta UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Utilizar compressão gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Senha de total acesso para servidor web"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Senha de visitante para servidor web"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Permitir acesso restrito"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Negar acesso restrito"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Carregar/salvar configurações do servidor web de/para aMule remoto"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Caminho para arquivo amule.conf - NÃO USE DIRETAMENTE!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Desativar interpretador PHP (depreciado)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Recompilar páginas PHP a cada solicitação"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Servidor Web do aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "conexão de cliente web aceita\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
-msgstr ""
+msgstr "ERRO: não pode aceitar conexões de clientes web\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Solicitação falhou com o seguinte erro: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Arquivo index não encontrado:"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sessão expirada - solicitando login\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sessão Ok, logado\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sessão Ok, ainda não logado\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Nenhuma sessão aberta - solicitando login\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sessão criada - solicitando login\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Processando pedido [original]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
-msgstr ""
+msgstr "Nenhuma senha especificada, login não será permitido."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Verificando senha\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Hash de senha inválido\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Senha Ok\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Senha inválida\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Você não digitou nenhuma senha. Senha em branco não é permitido.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Solicitado logout\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Processando solicitação [redirecionado]: "
 
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 9f969c2..98c2a1d 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule 2.2.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-06-18 14:15+0000\n"
 "Last-Translator: Luís Picciochi Oliveira <Pitxyoki at Gmail.com>\n"
 "Language-Team: Portuguese <traduz at debianpt.org>\n"
@@ -43,7 +43,7 @@ msgstr "A chave de utilizador especificada não é válida!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Falha ao abrir ficheiro de ligações eD2k."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -51,37 +51,37 @@ msgstr ""
 "AVISO: Não se pode adicionar a si próprio como fonte para um link eD2k "
 "enquanto tiver lowid."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "A fechar a aplicação..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "A terminar instância do amuleweb com o pid '%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "A matar instância do amuleweb com o pid '%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Falhas"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: A terminar núcleo."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "aMule terminado."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Resultados da depuração de memória para a saída do aMule:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -89,16 +89,16 @@ msgstr ""
 "\n"
 "Configuração das LE"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Palavra-passe definida e permitidas as ligações externas."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "AVISO"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -106,13 +106,13 @@ msgstr ""
 "O seu idioma foi alterado para a predefinição do sistema devido a uma "
 "mudança de configuração. Desculpe."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Informação"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -120,16 +120,16 @@ msgstr ""
 "Não tem nenhum servidor na lista de servidores.\n"
 "Quer que o aMule faça o download de uma lista nova agora?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "A fazer download da lista de servidores"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "servidor web a executar no pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -139,23 +139,23 @@ msgstr ""
 "ser lançado. Por favor, instale o pacote que contém o servidor web ou "
 "compile o aMule com --enable-webserver e execute make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ERRO"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Não foi possível associar os portos ao endereço especificado: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "O porto %u não está disponível. Ficará com LOWID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -171,11 +171,11 @@ msgstr ""
 "Verifique a sua rede para se certificar de que o porto está aberto para "
 "leitura e escrita."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Erro ao criar o ficheiro da Assinatura Online"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Erro a criar o ficheiro da Assinatura Online do aMule"
 
@@ -226,136 +226,136 @@ msgstr ""
 " A Assinatura Online será DESACTIVADA até que resolva a situação nas "
 "preferências."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Servidor notificado"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Reserva de espaço em disco para o ficheiro '%s' falhou: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ERRO: não é possível abrir o ficheiro de relatório"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "AVISO: o ficheiro de relatório está vazio. Algo está mal."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "O relatório foi limpo"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Mensagem do servidor: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 "O download de %s não foi feito porque o ficheiro requisitado não é mais "
 "recente."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Falha ao transferir a lista de nós."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Falha ao abrir o ficheiro de verificação de versão transferido"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Ficheiro de verificação de versão corrompido"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Está a usar uma versão antiga do aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "A sua versão do aMule é %i.%i.%i e a última versão é %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "A última versão pode ser sempre encontrada em http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 "AVISO: A sua versão do aMuled está desactualizada: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "A sua cópia do aMule está actualizada."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Falha ao transferir o ficheiro de verificação de versão"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Utilizadores: %s | Ficheiros: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Utilizadores: E: %s K: %s | Ficheiros: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Não foram seleccionadas redes"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "com LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "com HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Ligado a %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "A ligar a %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Desligado da eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad iniciada."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad parada."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Ligado à Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Ligado à Kad (atrás de firewall)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Desligado da Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -363,11 +363,11 @@ msgstr ""
 "A rede Kad não pode ser usada se o porto UDP estiver desactivado nas "
 "preferências, inicialização não efectuada."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Rede Kad desligada nas preferências, a ligação não será efectuada."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -379,7 +379,7 @@ msgstr ""
 "inicie o amuled com a opção --ec-config ou mude a chave "
 "\"AcceptExternalConnections\" para 1 no ficheiro ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -394,19 +394,19 @@ msgstr ""
 "config para definir a palavra-passe. Para mais informações consulte http://"
 "wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - a iniciar temporizador"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: a fazer fork para segundo plano - adeus"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Não foi Possível Criar o Ficheiro de Pid"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ERRO: %s"
@@ -489,9 +489,9 @@ msgstr " Copyright (C) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Mensagem"
 
@@ -499,7 +499,7 @@ msgstr "Mensagem"
 msgid "aMule dialog destroyed"
 msgstr "Caixa de diálogo do aMule destruída"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "A Ligar"
 
@@ -533,7 +533,7 @@ msgstr "Kad: Desligado"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Cancelar"
 
@@ -550,7 +550,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Desligar das redes presentemente ligadas"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Ligar"
 
@@ -591,7 +591,7 @@ msgstr "Confirmação de saída"
 msgid "Launch Command: "
 msgstr "Executar Comando: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- predefinição -"
 
@@ -606,80 +606,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "AVISO: Não é possível abrir ficheiro de tema '%s' para leitura"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Redes"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Janela de Redes"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Pesquisas"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Janela de Pesquisas"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Downloads"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Janela de Downloads"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Ficheiros partilhados"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Janela de Ficheiros Partilhados"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Mensagens"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Janela de Mensagens"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Estatísticas"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Janela de Estatísticas"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Preferências"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Janela de Preferências"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importar"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "A ferramenta de importação de ficheiro de partes"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Acerca"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Acerca/Ajuda"
 
@@ -699,7 +699,7 @@ msgstr "Sem rede"
 msgid "aMule remote control"
 msgstr "Controlo remoto do aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -711,108 +711,108 @@ msgstr "Erro Fatal: Falha ao criar o Temporizador Central"
 msgid "Connect to remote amule"
 msgstr "Ligar ao amule remoto"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Erro Fatal: Falha ao criar o 'Poll Timer'"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "A ir para o ciclo de eventos..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "A Ligar..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "A ligação falhou "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Gestor de eventos da interface gráfica remota"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "A fechar"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "A ligação falhou. Não é possível ligar a %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Ligação fechada - provavelmente o aMule foi terminado."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Pronto"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Todos"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Não é possível criar o directório '%s' para a categoria '%s', a manter "
 "directório '%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Desconhecido"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Erro ao receber ficheiros partilhados do utilizador '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "A procurar parceiro para ligação com lowid"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Versão do eMule falsa %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (eMule falso)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (eMule falso)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (baseado no eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Alcunha: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Pedido: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -822,7 +822,7 @@ msgstr[0] ""
 msgstr[1] ""
 "Estatísticas para esta sessão: Aceites %d de %d pedidos, %s transferidos\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -833,7 +833,7 @@ msgstr[1] ""
 "Estatísticas para todas as sessões: Aceites %d de %d pedidos, %s "
 "transferidos\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Pedido um ficheiro desconhecido"
 
@@ -983,12 +983,12 @@ msgid "Client Details"
 msgstr "Detalhes do Cliente"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1040,29 +1040,29 @@ msgstr "Verificado - OK"
 msgid "Not Available"
 msgstr "Indisponível"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 "O utilizador %s (%u) pediu a sua lista de ficheiros partilhados -> Aceite"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "O utilizador %s (%u) pediu a sua lista de ficheiros partilhados -> Negado"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "O utilizador %s (%u) pediu a sua lista de pastas partilhadas -> Aceite"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "O utilizador %s (%u) pediu a sua lista de pastas partilhadas -> Negado"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1070,7 +1070,7 @@ msgstr ""
 "O utilizador %s (%u) pediu a sua lista de ficheiros partilhados para a pasta "
 "'%s' -> aceite"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1078,36 +1078,36 @@ msgstr ""
 "O utilizador %s (%u) pediu a sua lista de ficheiros partilhados para a pasta "
 "'%s' -> negado"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "O utilizador %s (%u) partilha a pasta '%s'"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "O utilizador %s (%u) enviou pastas partilhadas não requisitadas."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "O utilizador %s (%u) enviou a lista de ficheiros partilhados para a pasta '%"
 "s'"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 "O utilizador %s (%u) terminou o envio da lista de ficheiros partilhados"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 "O utilizador %s (%u) enviou lista de ficheiros partilhados não desejada"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1123,7 +1123,7 @@ msgstr "Nome de Utilizador"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Nome do Ficheiro"
 
@@ -1166,33 +1166,33 @@ msgstr "Automática [Normal]"
 msgid "Auto [Hi]"
 msgstr "Automática [Alta]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Muito baixa"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Baixa"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Alta"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Muito Alta"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Lançamento"
 
@@ -1209,12 +1209,12 @@ msgid "Queue Full"
 msgstr "Fila de Espera Cheia"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Em Fila de Espera"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "A Receber"
 
@@ -1274,7 +1274,7 @@ msgstr "Servidor Local"
 msgid "Remote Server"
 msgstr "Servidor Remoto"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1300,7 +1300,7 @@ msgid "Search Result"
 msgstr "Resultados de Pesquisas"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Concluído"
 
@@ -1341,11 +1341,11 @@ msgid "Part"
 msgstr "Parte"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Tamanho"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Transferido"
 
@@ -1358,17 +1358,17 @@ msgid "Progress"
 msgstr "Progresso"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Fontes"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioridade"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Estado"
@@ -1393,7 +1393,7 @@ msgstr "Tem a certeza que deseja eliminar o ficheiro seleccionado?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Tem a certeza que deseja eliminar os ficheiros seleccionados?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1403,7 +1403,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automática"
 
@@ -1455,11 +1455,11 @@ msgstr "Mostrar todos os comentários"
 msgid "Copy magnet URI to clipboard"
 msgstr "Copiar URI magnet para a área de transferência"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Copiar &ligação eD2k para a área de transferência"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Copiar comentários para a área de transferência"
 
@@ -1475,24 +1475,24 @@ msgstr "Atribuir à categoria"
 msgid "&Open the file"
 msgstr "&Abrir o ficheiro"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Insira o novo nome para este ficheiro:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Renomear ficheiro"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Downloads (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1500,11 +1500,11 @@ msgstr ""
 "Para evitar que este aviso apareça em cada pré-visualização,\n"
 "defina o seu leitor de vídeo nas preferências (por omissão é o mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Pré-visualização do ficheiro"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "ERRO: Erro na execução do leitor multimédia externo! Comando: '%s'"
@@ -1614,30 +1614,30 @@ msgstr "Ligações externas desactivadas devido a palavra-passe vazia!"
 msgid "External connections disabled in config file"
 msgstr "Ligações externas desactivadas no ficheiro de configuração"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nova ligação externa aceite"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ERRO: não foi possível aceitar uma nova ligação externa"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Ligação externa recusada devido a palavra-passe não preenchida nas "
 "preferências!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "A ligar cliente: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Versão desconhecida"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1645,7 +1645,7 @@ msgstr ""
 "Versão de LE incorrecta, pode haver incompatibilidade binária. Utilize "
 "núcleo e remoto da mesma versão."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1653,174 +1653,174 @@ msgstr ""
 "Não pode ligar-se a uma versão oficial a partir de uma versão de "
 "desenvolvimento arbitrária! *suspiro*... Prevenido potencial erro futuro"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Versão de protocolo inválida."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Elemento de versão de protocolo em falta."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 "Falha de autenticação: chave inválida indicada como palavra-passe para LE"
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "A autenticação falhou: palavra-passe errada."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "A autenticação falhou: palavra-passe em falta."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Pedido inválido, deve autenticar-se primeiro."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Acesso concedido."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Enviada mensagem de erro \"%s\" ao cliente."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Acesso não-autorizado de %s. Ligação fechada."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Falha no comando de ficheiro de partes remoto: Chave não encontrada: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Chave não encontrada: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "UPS! Erro de processamento de código de operação!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Servidor não adicionado"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "servidor não encontrado: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "é necessário definir o servidor a remover"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2K desactivada nas preferências."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "A pesquisar. Resultados dentro de momentos!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Pesquisa na web a partir da interface remota não faz sentido."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Sem pontos para gráfico."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "O cliente não está configurado para este nível de detalhe."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Ligação Externa: finalização pedida"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Já a desligar."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "LigaçãoExterna: a adicionar o link '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Ligação inválida ou já na lista."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Ficheiro não encontrado."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Nome de ficheiro inválido."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Não é possível renomear o ficheiro."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "A Kad está desactivada nas preferências."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Já ligado à eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "A ligar à eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Já ligado à Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "A ligar à Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Todas as redes estão desactivadas."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Desligado da eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Desligado da Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Ligação Externa: recebido código de operação inválido: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Código de operação inválido (versão de protocolo errada?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Extensão '%s' desconhecida para o comando '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Comando '%s' desconhecido.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1828,7 +1828,7 @@ msgstr ""
 "\n"
 "Este comando não pode ter um argumento.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1836,7 +1836,7 @@ msgstr ""
 "\n"
 "Este comando deve ter um argumento.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1844,7 +1844,7 @@ msgstr ""
 "\n"
 "Este comando está incompleto, deve usar uma das extensões abaixo.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1852,11 +1852,11 @@ msgstr ""
 "\n"
 "Extensões disponíveis:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Comandos disponíveis:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1867,17 +1867,17 @@ msgstr ""
 "Todos os comandos não consideram a capitalização das letras.\n"
 "Escreva '%s <comando>' para obter mais detalhes sobre <comando>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Sai do programa."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Mostrar ajuda."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1885,7 +1885,7 @@ msgstr ""
 "Para obter ajuda num comando, escreva 'help <comando>'.\n"
 "Para obter a lista completa de comandos escreva 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1896,48 +1896,48 @@ msgstr ""
 "Use '%s' para a lista de comandos\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Erro de sintaxe!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Erro ao processar o comando - nunca deveria acontecer! Por favor, comunique "
 "o erro\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Este comando não deveria ter quaisquer parâmetros."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Este comando deve ter um parâmetro."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argumento inválido."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Este comando está incompleto."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Escreva '%s' para obter mais ajuda.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Isto é %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Isto é %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1945,7 +1945,7 @@ msgstr ""
 "\n"
 "A criar o cliente...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1954,7 +1954,7 @@ msgstr ""
 "\n"
 "OK, a sair %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1968,49 +1968,49 @@ msgstr ""
 "\n"
 "A sair...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Mostra esta ajuda."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Máquina onde o aMule está a ser executado. (predefinida: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Porto do aMule para Ligação Externa. (predefinido: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Palavra-passe de Ligação Externa."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Ler a configuração a partir do ficheiro."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Não mostrar qualquer mensagem para a saída padrão."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Detalhado - mostrar também mensagens de depuração."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Define a localização do programa (idioma)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 "Escrever as opções da linha de comandos para o ficheiro de configuração."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 "Cria ficheiro de configuração baseado no ficheiro de configuração do aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Mostrar a versão do programa."
 
@@ -2023,8 +2023,8 @@ msgstr "Detalhes do ficheiro"
 msgid "%.1f%% done"
 msgstr "%.2f%% terminado"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2043,7 +2043,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "CRÍTICO - sem cliente no StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Amigos"
 
@@ -2171,21 +2171,21 @@ msgstr "O URL para download não pode estar vazio"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "O URL %s devolveu: %i - Erro (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Erro crítico durante a escrita do ficheiro recebido"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "%d bytes transferidos"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Esperavam-se %d bytes, mas foram transferidos %d"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2193,11 +2193,11 @@ msgstr ""
 "URL inválido para download HTTP ou redirecção HTTP (esqueceu-se do "
 "'http://' ?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Impossível ligar ao servidor HTTP"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Resposta inválida do servidor HTTP"
 
@@ -2229,7 +2229,7 @@ msgstr "%s actualizado com sucesso"
 msgid "Error updating GeoIP.dat"
 msgstr "Erro ao actualizar o GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Falhou a transferência do %s de %s"
@@ -2276,7 +2276,7 @@ msgstr[1] "%u linhas defeituosas foram ignoradas."
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Falhou ao mudar o nome ao novo ficheiro %s, a cancelar actualização."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "O filtro de IPs está pronto"
 
@@ -2293,46 +2293,46 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nós (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Endereço IP inválido para arranque"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Porto inválido para arranque"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Por favor, preencha todos os campos pedidos"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Tem a certeza que deseja transferir um novo ficheiro nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Ao fazê-lo, irá remover os seus nós actuais e reiniciar a ligação à Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Continuar?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: palavra-chave de pesquisa demasiado curta"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Palavra-chave para pesquisa: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: A palavra-chave de pesquisa já está na lista de pesquisa: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2340,61 +2340,61 @@ msgstr ""
 "Falha ao ler o ficheiro nodes.dat - demasiado antigo. Esta versão (0) já não "
 "é suportada."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Lido %u contacto Kad"
 msgstr[1] "Lidos %u contactos Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Não foram encontrados contactos. Por favor inicialize ou transfira um "
 "ficheiro nodes.dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Apenas %d contacto Kad disponível, nodes.dat não escrito"
 msgstr[1] "Apenas %d contactos Kad disponíveis, nodes.dat não escrito"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "Escrito %d contacto Kad"
 msgstr[1] "Escritos %d contactos Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Nome de ficheiro"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Tamanho do Ficheiro"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Razão de partilha"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Enviado"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Pedido"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Aceite"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Fontes completas"
 
@@ -2425,70 +2425,75 @@ msgstr "Erro desconhecido %d"
 msgid "Unable to get error description for error %d"
 msgstr "Impossível obter descrição para o erro %d"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "A gerar chave"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "A completar"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Completo"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Em Pausa"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Erróneo"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Em Espera"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Deve especificar uma palavra-passe não vazia."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Palavra-passe inválida, não é uma chave MD5!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Falha de ligação"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Ligação LE falhou. Resposta vazia."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Ligação Externa: Má resposta, negociação inicial falhou. Ligação fechada."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Sucesso! Ligação estabelecida com o aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Sucesso! Ligação estabelecida."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Ligação Externa: Acesso negado porque: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Ligação Externa: Negociação inicial falhou."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Actualização automática iniciada"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: Ok."
@@ -2497,16 +2502,16 @@ msgstr "ListenSocket: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ERRO: Não é possível escutar o porto TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ERRO: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "AVISO: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Fechar"
 
@@ -2514,8 +2519,8 @@ msgstr "Fechar"
 msgid "Cut"
 msgstr "Cortar"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Copiar"
 
@@ -2524,7 +2529,7 @@ msgid "Paste"
 msgstr "Colar"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Limpar"
 
@@ -2534,7 +2539,7 @@ msgstr "Seleccionar tudo"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2611,7 +2616,7 @@ msgid "ServerIP: "
 msgstr "IP do servidor: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Não Ligado"
 
@@ -2646,7 +2651,7 @@ msgstr "Assinatura Online: Activada"
 msgid "Online Signature: Disabled"
 msgstr "Assinatura Online: Desactivada"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Tempo de funcionamento: %s"
@@ -2687,7 +2692,7 @@ msgstr "Esconder"
 msgid "Show aMule"
 msgstr "Mostrar"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Sair"
 
@@ -2774,7 +2779,7 @@ msgstr "Pesquisar"
 msgid "Name:"
 msgstr "Nome:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tipo"
 
@@ -2802,38 +2807,38 @@ msgstr "Filtragem"
 msgid "File Type"
 msgstr "Tipo de Ficheiro"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Qualquer"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arquivos"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Áudio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Imagens de CDs"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Fotografias"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programas"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Textos"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Vídeos"
 
@@ -2854,11 +2859,11 @@ msgid "KB"
 msgstr "kB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2886,7 +2891,7 @@ msgstr "Inverter Resultados"
 msgid "Hide Known Files"
 msgstr "Esconder Ficheiros Conhecidos"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Iniciar"
 
@@ -2943,7 +2948,7 @@ msgstr "Nome completo :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/D"
 
@@ -2967,7 +2972,7 @@ msgstr "Estado do ficheiro de partes :"
 msgid "Last seen complete :"
 msgstr "Última vez visto completo :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transferência"
 
@@ -3055,27 +3060,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Qualidade do Ficheiro"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Não avaliado"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Inválido / Corrompido / Falso"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Mau"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Razoável"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Bom"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Excelente"
 
@@ -3122,7 +3127,7 @@ msgid "Userhash :"
 msgstr "Chave de utilizador :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Adicionar"
 
@@ -3353,9 +3358,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Procurar"
 
@@ -3444,7 +3449,7 @@ msgstr "Máximo de ligações simultâneas:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3564,7 +3569,7 @@ msgstr "Insira o espaço mínimo no disco desejado."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Guardar 10 fontes para ficheiros raros (< 20 fontes)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Uploads"
 
@@ -3809,7 +3814,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Activar UPnP para configuração do encaminhamento no porto das LE"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Palavra-passe"
 
@@ -3891,8 +3896,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Seleccionar a cor para a categoria seleccionada :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Limpar"
 
@@ -4295,84 +4300,89 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Activar Relatório detalhado para Depuração."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Abrir o ficheiro"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Categorias de Mensagens:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "A aguardar..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Adicionar importações"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Reassumir seleccionados"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Remover seleccionados"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Tipos de eventos"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Estatísticas e clientes em espera para o(s) ficheiro(s) seleccionado(s) : "
 "Sessão / Desde sempre"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Uploads Activos"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Percentagem dos ficheiros totais"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Todos os ficheiros"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Ficheiros seleccionados"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Apenas os uploads activos"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Mostrar Clientes para"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Recarregar:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Recarregar os seus ficheiros partilhados"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Enviar"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Envia a mensagem especificada."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Fechar esta conversa."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Ligar a qualquer servidor e/ou Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Ficheiros Partilhados"
 
@@ -4381,135 +4391,135 @@ msgstr "Ficheiros Partilhados"
 msgid "Disabled [%s]"
 msgstr "Desactivado [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/seg"
 msgstr[1] "bytes/seg"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "segundos"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "minutos"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "horas"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Dias"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "todos"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "todos os outros"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Incompleto"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Parado"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Vídeo"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arquivo"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Texto"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Activo"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "A utilizar pasta de configuração: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "À espera que o programa de conversão do ficheiro de partes termine..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "A importar %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "A ler pasta de temporários"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "A obter informação básica do ficheiro de informação de download"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "A criar ficheiro de destino"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "A carregar dados a partir do ficheiro de download antigo (%u de %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "A gravar bloco de dados no novo ficheiro único (%u de %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "A obter informação de ficheiro de fontes"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "A adicionar download e a gravar novo ficheiro de partes"
 
@@ -4525,12 +4535,12 @@ msgstr "Estado"
 msgid "Filehash"
 msgstr "Chave de ficheiro"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disco: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4538,14 +4548,14 @@ msgstr ""
 "Por favor escolha uma pasta para localizar downloads incompletos! (subpastas "
 "serão incluídas)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Deseja que os ficheiros de origem dos downloads importados com sucesso sejam "
 "removidos?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Remover fontes?"
 
@@ -4662,7 +4672,7 @@ msgstr "O ficheiro de partes %s (%s) tem um ficheiro de sementes indefinido"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Erro ao ler o ficheiro de sementes de ficheiro de partes (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4677,39 +4687,39 @@ msgstr[1] ""
 "Encontrada parte corrompida (%d) no ficheiro de %d partes %s - "
 "FileResultHash |%s| FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Encontrada parte completa (%i) em %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Terminado a regeneração da chave de %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Erro inesperado ao completar %s. ficheiro em pausa"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Transferência concluída: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "A eliminar o ficheiro: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "AVISO: Não é possível calcular a chave de uma parte recebida - conjunto de "
 "chaves incompleto para '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4718,7 +4728,7 @@ msgstr ""
 "ERRO: Impossível calcular a chave de uma parte recebida - conjunto de chaves "
 "incompleto (%s). Isto nunca deveria acontecer"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4727,226 +4737,226 @@ msgstr ""
 "EOF ao gerar a chave da parte transferida %u de comprimento %u (máximo %u) "
 "do ficheiro de partes '%s' com comprimento %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "AVISO: Espaço livre em disco insuficiente! A pausar o ficheiro: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Parte recebida %i está corrompida no ficheiro: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Recuperada parte corrompida %i para %s -> bytes guardados: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "A atribuir"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Espaço em disco insuficiente"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Transferido"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ERRO: Falhou ao abrir ficheiro de partes '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Predefinição do sistema"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albanês"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Árabe"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturiano"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Basco"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Búlgaro"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Catalão"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Chinês (Simplificado)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Chinês (Tradicional)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Croata"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Checo"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Dinamarquês"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holandês"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Inglês"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estoniano"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandês"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francês"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galego"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Alemão"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Grego"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebreu"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Húngaro"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiano"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiano (Suíço)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonês"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Coreano"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituano"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norueguês (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polaco"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Português"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Português (Brasil)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Russo"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Esloveno"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Espanhol"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Sueco"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turco"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ucraniano"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Alterar Idioma"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Indisponível"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "sem opções disponíveis"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Categoria inválida encontrada, a ignorar"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "O porto TCP não pode ser superior a 65532 porque o socket UDP do servidor "
 "tem de ser TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "O porto predefinido será usado (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "A ignorar pasta partilhada inexistente: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Ligação"
 
@@ -4954,7 +4964,7 @@ msgstr "Ligação"
 msgid "Directories"
 msgstr "Directórios"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servidores"
 
@@ -5008,7 +5018,7 @@ msgstr ""
 "    %PARTFILE - caminho completo do ficheiro\n"
 "    %PARTNAME - apenas o nome do ficheiro"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5024,26 +5034,26 @@ msgstr ""
 "O aMule correrá perfeitamente sem ajustar qualquer\n"
 "uma destas opções."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Falhou ao ligar Cfg ao widget com o ID %d e chave %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "Falhou ao transferir dados do Cfg para o Widget com o ID %d e chave %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "O tipo de proxy ao qual está a ligar-se"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "Falhou ao transferir dados do Widget para o Cfg com o ID %d e chave %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5051,27 +5061,32 @@ msgstr ""
 "O aMule tem de ser reiniciado para activar estas alterações:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- Porto TCP alterado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- Porto UDP alterado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Porta para ligações externas alterada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Alterada a aceitação de ligações externas.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Alterada interface para ligações externas.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Ofuscação do Protocolo"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5079,7 +5094,7 @@ msgstr ""
 "A sua lista de actualização automática de servidores está vazia.\n"
 "A 'actualização automática no arranque' será desactivada."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5088,19 +5103,19 @@ msgstr ""
 "As ligações externas não podem ser activadas a menos que seja especificada "
 "uma palavra-passe válida."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- O idioma foi alterado.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- A pasta Temp foi alterada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- Rede ED2K activada.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5108,7 +5123,7 @@ msgstr ""
 "As redes eD2K e Kad estão desactivados.\n"
 "Não vai conseguir uma ligação até activar pelo menos uma deles."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5116,7 +5131,7 @@ msgstr ""
 "A Kad não vai funcionar se o porto UDP estiver desactivado.\n"
 "Active o porto UDP ou desactive a Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5126,7 +5141,7 @@ msgstr ""
 "DEVE reiniciar o aMule agora.\n"
 "Se não o fizer, não se queixe se algo grave acontecer.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5137,41 +5152,41 @@ msgstr ""
 "server.met válido.\n"
 "Clique no botão \"Lista\" para inserir uma localização."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Ficheiros temporários"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Ficheiros recebidos"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Assinaturas Online"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Seleccione uma pasta para %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Procurar leitor de vídeo"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Seleccionar navegador"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Executável%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Editar a lista de servidores"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5179,76 +5194,76 @@ msgstr ""
 "Adicione localizações para obter ficheiros server.met\n"
 "Apenas uma localização por linha."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Intervalo de actualização: %d segundo"
 msgstr[1] "Intervalo de actualização: %d segundos"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Tempo para o gráfico de média: %d minuto"
 msgstr[1] "Tempo para o gráfico de média: %d minutos"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Escala do Gráfico de Ligações: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Tamanho de memória temporária de ficheiros: %d byte"
 msgstr[1] "Tamanho de memória temporária de ficheiros: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Tamanho da fila de espera de upload: %d cliente"
 msgstr[1] "Tamanho da fila de espera de upload: %d clientes"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Intervalo de actualização de ligação ao servidor: %d minuto"
 msgstr[1] "Intervalo de actualização de ligação ao servidor: %d minutos"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Intervalo de actualização de ligação ao servidor: Desactivado"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "desactivado"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Executar o comando quando ocorrer o evento '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Activar execução de comandos no núcleo"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Comando de núcleo:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Activar execução de comando na interface gráfica"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Comando da interface gráfica:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "As seguintes variáveis serão substituídas:"
 
@@ -5278,7 +5293,7 @@ msgstr "Não é possível pesquisar na eD2k se não estiver ligado à rede eD2k"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Erro inesperado enquanto tentava pesquisar na Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID do Ficheiro"
 
@@ -5389,7 +5404,7 @@ msgstr "ERRO: Socket inválido durante a verificação"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "A tentativa de ligação a %s (%s:%i) expirou."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Recebido resultado tardio para pedido DNS, a descartar."
 
@@ -5419,51 +5434,51 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Ficheiro server.met corrompido, versão inválida encontrada: 0x%x, tamanho %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "Foi encontrado %i servidor no server.met"
 msgstr[1] "Foram encontrados %i servidores no server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d servidor adicionado"
 msgstr[1] "%d servidores adicionados"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Erro: o ficheiro 'server.met' está corrompido: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "Erro de entrada/saída ao ler o ficheiro 'known.met': "
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Servidor não adicionado: [%s:%d] não especifica um porto válido."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Servidor não adicionado: O IP de [%s:%d] está filtrado ou é inválido."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Servidor não adicionado: Servidor com IP:Porto correspondente [%s:%d] "
 "encontrado na lista."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Servidor adicionado: Servidor em [%s:%d] a usar o nome '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5471,25 +5486,25 @@ msgstr ""
 "Está ligado ao servidor que está a tentar remover. Por favor, desligue-se "
 "primeiro."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Erro ao abrir '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Falha ao gravar server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "URL inválido"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Terminou a transferência da lista de servidores de %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5498,30 +5513,30 @@ msgstr ""
 "indique um endereço correcto neste ficheiro para a auto-actualização da "
 "lista de servidores"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Iniciar transferência de lista de servidores de %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "AVISO: URL especificado inválido para a actualização automática de "
 "servidores: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "Não há nenhuma localização válida para download automático do server.met em "
 "addresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Erro ao obter a lista de servidores a partir de %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5557,7 +5572,7 @@ msgid "Static"
 msgstr "Estático"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versão"
 
@@ -5583,8 +5598,8 @@ msgstr "Tem a certeza que deseja eliminar o servidor estático %s"
 msgid "Servers (%i)"
 msgstr "Servidores (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Servidor"
 
@@ -5640,85 +5655,85 @@ msgstr "Tem a certeza que deseja eliminar o servidor seleccionado?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Tem a certeza que deseja eliminar os servidores seleccionados?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ERRO: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "AVISO: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "O novo identificador de cliente é %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "AVISO: Recebeu LowID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tMuito provavelmente, isto deve-se ao facto de estar por detrás de uma "
 "firewall ou router."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPara mais informação, por favor consulte http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Recebida informação do servidor desconhecida! - demasiado curta"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Recebido %d novo servidor"
 msgstr[1] "Recebidos %d novos servidores"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Gravação da lista de servidores completa."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "O servidor rejeitou o último comando"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Pacote mal formado recebido do servidor: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Erro não tratado ao processar pacote do servidor: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 "Não é possível criar o processo leve de resolução de nomes para ligar a %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "O endereço IP do servidor %s (%s) está filtrado. Não irá ligar."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "a utilizar ofuscação do protocolo."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "A ligar a %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Não é possível resolver o nome do servidor %s: Incapaz de ligar!"
@@ -5896,87 +5911,92 @@ msgstr "Nome do Ficheiro Local"
 msgid "Shares File List"
 msgstr "Partilha a Lista de Ficheiros"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Pedidos"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Pedidos Aceites"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Dados Transferidos"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Grau de Partilha"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Partes Obtidas"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Fontes Completas"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Caminho da Pasta"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Adicionar Comentário/Avaliação"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Editar Comentário/Avaliação"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Renomear"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Adicionar ficheiros na colecção à lista de transferências"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Copiar &URI magnet para a área de transferência"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Copiar ligação eD2k para a área de transferência (&Fonte)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 "Copiar ligação eD2k para a área de transferência (Fonte) (Com opções C&rypt)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Copiar ligação eD2k para a área de transferência (&Hostname)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Copiar ligação eD2k para a área de transferência (Hostname) (Com opções "
 "Cr&ypt)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Copiar ligação eD2k para a área de transferência (informação &AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Copiar ligação eD2k para a área de transferência (informação &AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Necessita de HighID para criar uma ligação de fonte válida"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Ficheiros Partilhados (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[FicheiroPart]"
 
@@ -5984,235 +6004,235 @@ msgstr "[FicheiroPart]"
 msgid "Remote File Name"
 msgstr "Nome do Ficheiro Remoto"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Dados Enviados (Sessão (Total)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Sobrecarga Total (Pacotes): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Sobrecarga de Pedidos de Ficheiro (Pacotes): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Sobrecarga de Trocas de Fontes (Pacotes): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Sobrecarga do Servidor (Pacotes): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Sobrecarga na Kad (Pacotes): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Sobrecarga criptográfica (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Uploads Activos: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Uploads Em Espera: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Total de sessões de upload com sucesso: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Total de sessões de upload falhadas: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Tempo médio de envio: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Dados recebidos (Sessão (Total)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Fontes Encontradas: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Downloads activos (blocos): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Razão UL:DL da sessão (Total): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Taxa média de download (Sessão): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Taxa média de upload (Sessão): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Taxa máxima de download (Sessão): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Taxa máxima de upload (Sessão): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Religações: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Tempo Desde a Primeira Transferência: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Ligado Ao Servidor Desde: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Ligações Activas (estimativa): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Limite Máximo de Ligações Alcançado: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Média de Ligações (estimativa): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Pico de Ligações (estimativa): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Clientes"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Desconhecido: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtrados: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Banidos: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Total: %i Conhecidos: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Servidores Activos: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Servidores Falhados: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Total: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Servidores Removidos: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Servidores Filtrados: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Utilizadores em Servidores Activos: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Ficheiros em Servidores Activos: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Total de Utilizadores: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Total de Ficheiros: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Ocupação dos Servidores: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Número de Ficheiros Partilhados: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Tamanho total dos Ficheiros Partilhados: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Tamanho médio dos ficheiros: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistema Operativo"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Não recebido"
 
@@ -6272,7 +6292,7 @@ msgstr "Número inválido\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Não é uma chave válida (o comprimento deveria ser de 32 caracteres)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "O pedido falhou com um erro desconhecido."
 
@@ -6326,13 +6346,13 @@ msgstr "Ligado a %s %s %s"
 msgid "Now connecting"
 msgstr "A ligar"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "atrás de uma firewall"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6763,21 +6783,21 @@ msgstr ""
 "Este é um comando obsoleto, e poderá ser retirado no futuro.\n"
 "Passe a usar '%s'.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Cliente de texto do aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Conversão de grupos de chaves AICH antigas em '%s' para 64b em '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "AVISO: O nome do ficheiro '%s' é invalido e foi mudado para '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6851,7 +6871,7 @@ msgstr "A execução do comando `%s' no evento `%s' falhou."
 msgid "Download completed"
 msgstr "Download concluído"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "O caminho completo para o ficheiro."
 
@@ -6871,66 +6891,66 @@ msgstr "O tamanho do ficheiro em bytes."
 msgid "Cumulative download activity time."
 msgstr "Tempo cumulativo de download."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Nova sessão de conversa iniciada"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Remetente de mensagem."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Falta de espaço"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Partição de disco."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Erro ao completar"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "A processar o ficheiro número %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Requisitou chaves parciais (Usado apenas para ficheiros > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Ficheiro inexistente!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, o criador de ligações eD2k do aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Bem-vindo!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Parâmetros de entrada"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Ficheiro para gerar chave"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Adicionar URLs Opcionais para este ficheiro"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Indique aqui o ficheiro para o qual deseja obter o link eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6938,15 +6958,15 @@ msgstr ""
 "Indique aqui o URL onde pretende adicionar a ligação eD2k: Adicione / ao fim "
 "para permitir que o aLinkCreator acrescente o nome de ficheiro actual"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Remover"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Criar a ligação com chaves de partes"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6954,81 +6974,81 @@ msgstr ""
 "Ajudar a espalhar ficheiros novos e raros mais rapidamente, com o custo de "
 "um maior tamanho da ligação"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Chave MD4 do ficheiro"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Chave eD2k do ficheiro"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "Ligação eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Gravar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Copiar para a área de transferência"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Abrir"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Abrir um ficheiro para calcular a sua ligação eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Copiar ligação eD2k calculada para a área de transferência"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Gravar como"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Gravar a ligação eD2k calculada para um ficheiro"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Acerca do aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Seleccione o ficheiro para o qual pretende criar a ligação eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Não é possível abrir a área de transferência"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Nada a copiar por agora!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Seleccione o ficheiro para guardar a sua ligação eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Não é possível abrir "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Por favor, insira um nome de ficheiro"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Nada a gravar por agora!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7048,159 +7068,163 @@ msgstr ""
 "\n"
 "Distribuído sob a licença GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "A gerar chaves..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "O aLinkCreator está a trabalhar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "A calcular chave MD4..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "A calcular chave eD2k..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Cancelado !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Concluído em %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Já adicionou este URL!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Por favor, insira um URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Não é possível abrir %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dia(s) %i hora(s) %i minuto(s) %i segundo(s)"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02um %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02um %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02um %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f kB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, Estatísticas Online do aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Taxa máxima de download desde que o wxCas está em execução"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 "Taxa absoluta de download máxima durante as execuções anteriores do wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistema"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Parar Actualização Automática"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Gravar imagem das Estatísticas Online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Imprimir a imagem de Estatísticas Online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Definição de preferências"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Acerca do wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Iniciar a Actualização Automática"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Actualização Automática parada"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Actualização automática iniciada"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Gravar a Imagem de Estatísticas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Estatísticas Online do aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7208,11 +7232,11 @@ msgstr ""
 "Ocorreu um erro ao imprimir.\n"
 "Talvez a sua impressora actual não esteja bem configurada."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "A imprimir"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7230,327 +7254,327 @@ msgstr ""
 "\n"
 "Distribuído sob a licença GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, o aMule não esta em execução..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "O aMule está em execução"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "O aMule está a funcionar mas está desligado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "O aMule está a ligar..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, o estado do aMule é desconhecido..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " está em execução há "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " está parado !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " não está ligado !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " está a ligar..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " está a fazer algo estranho, verifique!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " está ligado a "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "parado"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " está em "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr "com "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Download Total: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Download na Sessão: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Download: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Upload: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr "kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "A partilhar: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " ficheiro(s). Clientes na fila de espera: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Hora: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " no "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Média de carga do sistema (1-5-15 minutos): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Tempo de funcionamento do sistema: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Pasta que contém o ficheiro amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Insira a pasta onde se encontra o seu ficheiro amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Intervalo de actualização em segundos"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Gerar uma imagem das estatísticas a cada evento de actualização"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Insira aqui a pasta onde deseja gerar a imagem das estatísticas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr ""
 "Transferir periodicamente a imagem das estatísticas para o servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "URL do FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Caminho do FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Insira aqui o URL do seu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Insira aqui a pasta do servidor FTP onde deseja colocar a sua imagem das "
 "estatísticas"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Utilizador"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Insira aqui o nome de utilizador para entrar no seu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Insira aqui a palavra-passe para entrar no seu servidor FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Intervalo de actualização do FTP em minutos"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Validar"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Pasta que contém o seu ficheiro de assinatura"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Pasta onde se gera a imagem das estatísticas"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Carrega o modelo <exp>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Porto HTTP do servidor web"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Utilizar UPnP para configurar encaminhamento no porto do servidor web"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Porto UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Usar compressão gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Palavra-passe de acesso total para o servidor web"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Palavra-passe de convidado para o servidor web"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Permitir acesso de convidado"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Negar acesso de convidado"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Carregar/guardar as preferências do servidor web de/para aMule remoto"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Caminho do ficheiro de configuração do aMule. NÃO USE DIRECTAMENTE!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Desactivar o interpretador PHP (obsoleto)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Recompilar as páginas PHP em cada pedido"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Servidor Web do aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "Ligação de cliente web aceite\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "ERRO: não é possível aceitar ligação de cliente web\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "O pedido falhou com o seguinte erro: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Ficheiro de índice não encontrado: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "A sessão expirou - a pedir entrada no sistema\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sessão ok, dentro do sistema\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sessão ok, fora do sistema\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Sessão não aberta - ir-se-á pedir entrada no sistema\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sessão criada - a pedir entrada no sistema\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "A processar pedido [original]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Não foi indicada uma palavra-passe, a entrada não será permitida"
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "A verificar a palavra-passe\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Chave da palavra-passe inválida\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Palavra-passe correcta\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Palavra-passe incorrecta\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 "Não forneceu uma palavra-passe. Palavras-passe vazias não são permitidas.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Saída do sistema pedida\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "A processar pedido [redireccionado]: "
 
diff --git a/po/ru.po b/po/ru.po
index de462cc..18829c6 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: amule_2007-08-29\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-06-19 18:31+0100\n"
 "Last-Translator: Radist Morse <radist.morse at gmail.com>\n"
 "Language-Team: Russian <kde-russian at lists.kde.ru>\n"
@@ -48,7 +48,7 @@ msgstr "Указанный хеш пользователя недопустим.
 msgid "Failed to open ED2KLinks file."
 msgstr "Не удалось открыть файл ED2KLinks."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -56,37 +56,37 @@ msgstr ""
 "ПРЕДУПРЕЖДЕНИЕ: Вы не можете добавить себя в качестве источника для eD2k "
 "ссылки если у вас lowid."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Выходим из основного приложения..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Завершаем процесс amuleweb с pid `%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Убиваем процесс amuleweb с pid `%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Неудачно"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Прекращаем работу ядра."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "выключение aMule завершено."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Результаты дебага памяти при выходе из aMule:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -94,16 +94,16 @@ msgstr ""
 "\n"
 "EC конфигурация"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Пароль задан и внешние соединения разрешены."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "ПРЕДУПРЕЖДЕНИЕ"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -111,13 +111,13 @@ msgstr ""
 "В связи со сменой версии, значение вашей локали было изменено на значение по "
 "умолчанию. Извините."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Сведения"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -125,16 +125,16 @@ msgstr ""
 "Ваш список серверов пуст.\n"
 "Скачать новый список?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Загрузить список серверов"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "веб-сервер работает с pid %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -144,23 +144,23 @@ msgstr ""
 "может быть запущен. Установите пакет содержащий веб-сервер aMule или "
 "скомпилируйте его с опцией --enable-webserver и запустите make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ОШИБКА"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Невозможно связать порты с указанными адресами: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Порт %u не доступен. У вас будет LowID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -175,11 +175,11 @@ msgstr ""
 "\n"
 "Проверьте вашу сетевую конфигурацию, убедитесь что необходимый порт открыт."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Не удалось создать aMule OnlineSig файл"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Не удалось создать aMule OnlineSig файл"
 
@@ -236,138 +236,138 @@ msgstr ""
 "Указан неверный каталог для файлов Online-подписей!\n"
 "Online-подписи будут отключены пока вы не исправите это в настройках."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Имя сервера подтверждено"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Выделение место под файл '%s' не удалось: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "Ошибка: невозможно открыть файл журнала"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "ПРЕДУПРЕЖДЕНИЕ: файл журнала пуст. Что-то здесь не так :-("
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Журнал был очищен"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Сообщение сервера: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "Пропущена загрузка %s, так как запрашиваемый файл не новее."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Ошибка при загрузке списка узлов."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Ошибка при загрузке файла контроля версии"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Поврежден файл контроля версии"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Вы используете устаревшую версию aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 "Версия вашего aMule - %i.%i.%i, тогда как актуальная версия - %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Актуальная версия aMule всегда доступна тут:  http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "ВНИМАНИЕ: Версия вашего aMule устарела: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Ваша копия aMule актуальна."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Ошибка при загрузке файла контроля версии"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Польз.: %s | Файлов: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Польз.: E: %s K: %s | Файлов: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Нет выделенной сети"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Соединен с %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Подключение к %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Отсоединен от eD2k"
 
 # Kad как сеть, или служба - поэтому в женском роде
 # да, согласен
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad запущена."
 
 # Kad как сеть, или служба - поэтому в женском роде
 # согласен
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad остановлена."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Подключен к Kad (норм.)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Подключен к Kad (за брандмауэром)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Отключился от Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -375,11 +375,11 @@ msgstr ""
 "Сеть Kad не может быть использована если порт UDP выключен в настройках. "
 "Отменяю запуск."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Сеть Kad выключена в настройках. Отменяю соединение."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -391,7 +391,7 @@ msgstr ""
 "запустите amuled с параметром --ec-config, или установите ключ "
 "\"AcceptExternalConnections\" равным 1 в файле ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -405,19 +405,19 @@ msgstr ""
 "с флагом --ec-config чтобы создать пароль. Более подробную информацию вы "
 "найдете на http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - запускаем таймер"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: уходим в фоновый режим - до встречи"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Не удалось создать pid-файл"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "Ошибка: %s"
@@ -501,9 +501,9 @@ msgstr "Copyright (c) 2002-2011 Петр Маймунков ( petar at post.harvard
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Сообщение"
 
@@ -511,7 +511,7 @@ msgstr "Сообщение"
 msgid "aMule dialog destroyed"
 msgstr "диалоговое окно aMule уничтожено"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Идет подключение"
 
@@ -545,7 +545,7 @@ msgstr " Kad: Выключено"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Отменить"
 
@@ -562,7 +562,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Отключиться от работающих сетей"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Подключиться"
 
@@ -603,7 +603,7 @@ msgstr "Подтверждение выхода"
 msgid "Launch Command: "
 msgstr "Команда запуска:"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- по умолчанию -"
 
@@ -618,80 +618,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "ПРЕДУПРЕЖДЕНИЕ: невозможно открыть для чтения файл скина '%s'"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Сети"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Окно сетей"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Поиск"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Окно поиска"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Загрузки"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Окно загрузки"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Публикуемые файлы"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Окно публикуемых файлов"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Сообщения"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Сообщения"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Статистика"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Статистика"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Настройки"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Окно настроек клиента"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Импорт"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Инструмент импортирования частично загруженных файлов (part files)"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "О программе"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "О программе/Помощь"
 
@@ -711,7 +711,7 @@ msgstr "Нет сети"
 msgid "aMule remote control"
 msgstr "удаленное управление aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -723,108 +723,108 @@ msgstr "Фатальная Ошибка: не удалось создать та
 msgid "Connect to remote amule"
 msgstr "Подключиться к удаленному aMule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Фатальная Ошибка: не удалось создать Poll-таймер"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Переходим в событийный цикл..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Подключаемся..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Попытка подключиться не удалась "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Обработчик событий EC удаленного GUI"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Выключаемся"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Неудачное соединение. Невозможно соединиться с %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Соединение прервано. Возможно, aMule остановлен."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Готов"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Все"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 "Не удается создать директорию '%s' для категории '%s', оставляем директорию "
 "'%s'."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Неизвестно"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Не удалось получить список доступных файлов от '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Ищем друга для lowid-соединения"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Поддельная версия eMule %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (имитация eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (имитация eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (на основе eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Псевдоним: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Запрошено: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -836,7 +836,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Статистика для текущего сеанса: принято %d из %d запросов, %s передано\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -848,7 +848,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Статистика для всех сеансов: принято %d из %d запросов, %s передано\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Запрошен неизвестный файл"
 
@@ -1000,12 +1000,12 @@ msgid "Client Details"
 msgstr "Сведения о клиенте"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1057,27 +1057,27 @@ msgstr "Проверено - OK"
 msgid "Not Available"
 msgstr "Не доступно"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Пользователь %s (%u) запросил список публикуемых файлов -> Принято"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Пользователь %s (%u) запросил список публикуемых файлов -> Отказано"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Пользователь %s (%u) запросил список публикуемых папок -> Принято"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Пользователь %s (%u) запросил список публикуемых папок -> Отказано"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1085,7 +1085,7 @@ msgstr ""
 "Пользователь %s (%u) запросил список публикуемых файлов из каталога '%s' -> "
 "Принято"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1093,34 +1093,34 @@ msgstr ""
 "Пользователь %s (%u) запросил список публикуемых файлов из каталога '%s' -> "
 "Отказано"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Пользователь %s (%u) сделал доступным каталог '%s'"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Пользователь %s (%u) отправил незапрошенный список публикуемых папок."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "Пользователь %s (%u) отправил список публикуемых каталогов из каталога '%s'"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Пользователь %s (%u) закончил передачу списка публикуемых файлов."
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 "Пользователь %s (%u) отправил список публикуемых файлов, который не нужен."
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1136,7 +1136,7 @@ msgstr "Имя пользователя"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Имя файла"
 
@@ -1179,33 +1179,33 @@ msgstr "Авто [Норм]"
 msgid "Auto [Hi]"
 msgstr "Авто [Выс]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Очень низкий"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Низкий"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Нормальный"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Высокий"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Очень высокий"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Релиз"
 
@@ -1222,12 +1222,12 @@ msgid "Queue Full"
 msgstr "Очередь заполнена"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "В очереди"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Загружается"
 
@@ -1287,7 +1287,7 @@ msgstr "Локальный сервер"
 msgid "Remote Server"
 msgstr "Удаленный сервер"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1313,7 +1313,7 @@ msgid "Search Result"
 msgstr "Результаты поиска"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Завершено"
 
@@ -1355,11 +1355,11 @@ msgid "Part"
 msgstr "Часть"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Размер"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Передано"
 
@@ -1372,17 +1372,17 @@ msgid "Progress"
 msgstr "Выполнено"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Источники"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Приоритет"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Состояние"
@@ -1407,7 +1407,7 @@ msgstr "Удалить выбранный файл?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Удалить выбранные файлы?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1417,7 +1417,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Авто"
 
@@ -1469,11 +1469,11 @@ msgstr "Показать все комментарии"
 msgid "Copy magnet URI to clipboard"
 msgstr "Скопировать magnet URL в буфер обмена"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Копировать eD2k &ссылку в буфер"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Скопировать доп. информацию в буфер обмена"
 
@@ -1489,24 +1489,24 @@ msgstr "Присвоить категорию"
 msgid "&Open the file"
 msgstr "&Открыть файл"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Введите новое имя файла:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Переименовать файл"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Загрузки (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1515,11 +1515,11 @@ msgstr ""
 "при каждом предпросмотре, установите предпочитаемый\n"
 "видео проигрыватель в настройках (по умолчанию mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Предварительный просмотр"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "ОШИБКА: невозможно запустить видео-проигрыватель. Команда: `%s'"
@@ -1630,28 +1630,28 @@ msgstr "Внешние соединения выключены из-за отс
 msgid "External connections disabled in config file"
 msgstr "Внешние соединения выключены в конфигурационном файле"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Принято новое внешнее соединение"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ОШИБКА: невозможно принять новое внешнее соединение"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Отказано во внешнем соединении из-за пустого пароля"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Соединение с клиентом: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Неизвестная версия"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1659,7 +1659,7 @@ msgstr ""
 "Неверный идентификатор версии ВС. Возможна бинарная несовместимость. "
 "Используйте ядро и компонент удаленного доступа одинаковой версии."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1667,173 +1667,173 @@ msgstr ""
 "Вы не можете подсоединиться к релизной версии с произвольной SVN версии! "
 "Возможный сбой предотвращен"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Недопустимая версия протокола."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Тег версии протокола отсутствует."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr "Ошибка авторизации: в качестве EC-пароля указан неправильный хэш."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Ошибка идентификации: неверный пароль."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Ошибка идентификации: пароль не задан."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Неверный запрос, сначала пройдите идентификацию."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Доступ получен."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Клиенту отправлено сообщение об ошибке \"%s\"."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Попытка неавторизированного доступа с %s. Соединение разорвано."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Удаленная команда PartFile не удалась: хеш файла не найден: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Хеш файла не найден: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "Ошибка при выполнении OpCode."
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Сервер не добавлен"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "сервер не найден: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "необходимо выделить сервер для удаления"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "Сеть eD2k отключена в настройках"
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Поиск запущен. Ждите результатов."
 
 # Explained by Jacobo221.
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "При удаленном использовании aMule WWW поиск бесполезен."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "В графике нет точек."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Ваш клиент не настроен на этот уровень детализации."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Внешнее соединение: запрошено выключение"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Уже завершаю работу."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "ExternalConn: добавляю ссылку '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Ссылка неверна или уже в списке."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Файл не найден."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Неверное имя файла."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Невозможно переименовать файл."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad выключена в настройках."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Уже подсоединен к сети eD2k."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Подсоединение к сети eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Уже подключен к Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Подключаюсь к Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Все сети выключены."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Отсоединен от сети eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Отключен от Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Внешнее соединение: получен неверный код операции: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Неверный opcode (Возможно, не та версия протокола)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Неизвестное расширение '%s' для команды '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Неизвестная команда '%s.'\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1841,7 +1841,7 @@ msgstr ""
 "\n"
 "У этой команды не может быть аргументов.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1849,7 +1849,7 @@ msgstr ""
 "\n"
 "У этой команды должен быть аргумент.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1857,7 +1857,7 @@ msgstr ""
 "\n"
 "Команда не завершена. Необходимо использовать одно из следующих расширений.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1865,11 +1865,11 @@ msgstr ""
 "\n"
 "Доступные расширения:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Доступные команды:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1880,17 +1880,17 @@ msgstr ""
 "Все команды чувствительны к регистру.\n"
 "Наберите '%s <имя команды>' чтобы получить справку по этой команде.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Завершить работу с приложением."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Показать справку."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1898,7 +1898,7 @@ msgstr ""
 "Чтобы получить справку по команде, наберите  'help <имя команды>'.\n"
 "Чтобы получить полный список команд, наберите 'help'.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1909,48 +1909,48 @@ msgstr ""
 "Введите '%s' для получения списка команд\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Синтаксическая ошибка!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Ошибка при обработке команды - это не должно было произойти! Пожалуйста, "
 "сообщите нам об этой ошибке\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "У этой команды не должно быть параметров."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "У этой команды должен быть параметр."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Неверный аргумент."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Команда введена не полность."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Наберите '%s' для подробной справки.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Это %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Это %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1958,7 +1958,7 @@ msgstr ""
 "\n"
 "Создается клиент...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1967,7 +1967,7 @@ msgstr ""
 "\n"
 "Ok, выход из %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1981,47 +1981,47 @@ msgstr ""
 "\n"
 "Завершение работы...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Показать эту справку."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Узел, на котором работает aMule (по умолчанию: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Порт aMule для внешних подключений (по умолчанию: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Пароль для внешнего соединения."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Прочесть настройки из файла."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Не выводить ничего в поток стандартного вывода."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Детально - выводить отладочную информацию."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Установить локаль программы (язык)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Записать параметры командной строки в конфигурационный файл."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Создает конфигурационный файл на основе оного из aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Вывести версию программы."
 
@@ -2034,8 +2034,8 @@ msgstr "Детали файла"
 msgid "%.1f%% done"
 msgstr "%.2f%% готово"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/сек"
@@ -2052,7 +2052,7 @@ msgstr "Не удалось открыть список друзей 'emfriends.
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "КРИТИЧНО - нет клиентов на StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Друзья"
 
@@ -2180,21 +2180,21 @@ msgstr "URL загрузки не может быть пустым"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "Обработка URL %s: %i - Ошибка (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Критическая ошибка при записи загруженного файла"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "Загружено %d байт"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Вместо %d байт было загружено %d байт"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2202,11 +2202,11 @@ msgstr ""
 "Неверный URL для HTTP-загрузки или HTTP-редиректа (возможно, забыт "
 "'http://'?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Невозможно соединиться с HTTP сервером загрузок"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Неверный ответ от сервера HTTP-загрузки"
 
@@ -2238,7 +2238,7 @@ msgstr "Обновление %s успешно."
 msgid "Error updating GeoIP.dat"
 msgstr "Ошибка обновления GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Не удалось загрузить %s с %s"
@@ -2283,7 +2283,7 @@ msgstr[2] "%u испорченных строк было пропущено."
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Переименование нового файла %s неудачно, прекращаем обновление."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP-фильтр готов"
 
@@ -2301,45 +2301,45 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Узлы (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Неверный IP для инициализации"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Неверный порт для инициализации"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Пожалуйста, заполните все необходимые поля"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Вы уверены что хотите загрузить новый файл nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr "Это удалит используемые в данный момент узлы и перезапустит Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Продолжить?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kad: слово запроса лишком коротко"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Ключевое слово поиска: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: ключевое слово поиска уже в списке поиска:"
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2347,8 +2347,8 @@ msgstr ""
 "Ошибка чтения nodes.dat - формат файла устарел. Эта версия (0) больше не "
 "поддерживается."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
@@ -2356,14 +2356,14 @@ msgstr[0] "Считан %u контакт Kad"
 msgstr[1] "Считано %u контакта Kad"
 msgstr[2] "Считано %u контактов Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Не найдено контактов. Произведите инициализацию, или загрузите файл nodes."
 "dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
@@ -2371,7 +2371,7 @@ msgstr[0] "Доступен только %d контакт Kad, файл nodes.d
 msgstr[1] "Доступно только %d контакта Kad, файл nodes.dat не записан"
 msgstr[2] "Доступно только %d контактов Kad, файл nodes.dat не записан"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
@@ -2379,33 +2379,33 @@ msgstr[0] "Записан %d Kad контакт"
 msgstr[1] "Записано %d Kad контакта"
 msgstr[2] "Записано %d Kad контактов"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Имя файла"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Размер файла"
 
 # по крайней мере торренты называют его так
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Рейтинг"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Загружено"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Запрошено"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Разрешено"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Полных источников"
 
@@ -2434,71 +2434,76 @@ msgstr "Неизвестная ошибка %d"
 msgid "Unable to get error description for error %d"
 msgstr "Невозможно получить описание ошибки %d"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Хешируется"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Завершается"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Завершен"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Приостановлен"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Ошибочный"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Ожидает"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Необходимо указать пароль."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Неверный пароль. Не MD5-хеш!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Подключение не удалось"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "EC соединение не удалось. Пустой ответ."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Внешнее соединение: Некорректный ответ, авторизация неудачна. Соединение "
 "закрыто."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Успешное подключение к aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Соединение установлено."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Внешнее Соединение: В доступе отказано по причине:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Внешнее Соединение: авторизация неудачна."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Автоматическое обновление начато"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: Ok."
@@ -2507,16 +2512,16 @@ msgstr "ListenSocket: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ОШИБКА: невозможно открыть TCP порт."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ОШИБКА:"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "ПРЕДУПРЕЖДЕНИЕ:"
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Закрыть"
 
@@ -2524,8 +2529,8 @@ msgstr "Закрыть"
 msgid "Cut"
 msgstr "Вырезать"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Копировать"
 
@@ -2534,7 +2539,7 @@ msgid "Paste"
 msgstr "Вставить"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Очистить"
 
@@ -2544,7 +2549,7 @@ msgstr "Выделить все"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "кБ/сек"
@@ -2621,7 +2626,7 @@ msgid "ServerIP: "
 msgstr "IP-адрес сервера: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Не подключен"
 
@@ -2656,7 +2661,7 @@ msgstr "Онлайн-подпись: Включена"
 msgid "Online Signature: Disabled"
 msgstr "Онлайн-подпись: Выключена"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Время работы: %s"
@@ -2697,7 +2702,7 @@ msgstr "Свернуть aMule"
 msgid "Show aMule"
 msgstr "Показать aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Выйти"
 
@@ -2784,7 +2789,7 @@ msgstr "Поиск"
 msgid "Name:"
 msgstr "Имя:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Тип"
 
@@ -2812,38 +2817,38 @@ msgstr "Фильтрация"
 msgid "File Type"
 msgstr "Тип файла"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Любой"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Архив"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Аудио"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-образ"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Изображение"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Программа"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Текст"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Видео"
 
@@ -2864,11 +2869,11 @@ msgid "KB"
 msgstr "КБ"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "МБ"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "ГБ"
 
@@ -2896,7 +2901,7 @@ msgstr "Инвертировать"
 msgid "Hide Known Files"
 msgstr "Скрывать известные файлы"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Начать"
 
@@ -2953,7 +2958,7 @@ msgstr "Полное имя :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2977,7 +2982,7 @@ msgstr "Статус:"
 msgid "Last seen complete :"
 msgstr "Последний раз полный файл был доступен :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Передача"
 
@@ -3066,28 +3071,28 @@ msgstr ""
 msgid "File Quality"
 msgstr "Качество файла"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Без оценки"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Ошибочный / Поврежденный / Фальшивка"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Плохой"
 
 # было "очень хороший" непонятно почему. это название среднего рейтинга (обе полоски белые)
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Нормальный"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Хороший"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Великолепный"
 
@@ -3132,7 +3137,7 @@ msgid "Userhash :"
 msgstr "Хеш пользователя :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Добавить"
 
@@ -3361,9 +3366,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Открыть"
 
@@ -3453,7 +3458,7 @@ msgstr "Максимум одновременных соединений:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3574,7 +3579,7 @@ msgstr "Введите здесь минимальное количество с
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Оставлять 10 источников для редких файлов (<20 источников)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Отдача"
 
@@ -3819,7 +3824,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Включить UPnP для порта ВС"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Пароль"
 
@@ -3901,8 +3906,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Выбрать цвет для этой категории:"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Сбросить"
 
@@ -4300,84 +4305,89 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Записывать в журнал подробные сообщения отладчика."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Открыть файл"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Категории сообщений:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Ожидание..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Добавить файлы"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Перезапустить выбранное"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Удалить выбранное"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Типы Событий"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Статистика и очередь клиентов для выбранных файлов: За сессию / За все время"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Активные загрузки"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Процент от всех файлов"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Все файлы"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Выбранные файлы"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Только активные передачи"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Показать клиентов для"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Обновить:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Обновить список публикуемых файлов"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Отправить"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Отправить данное сообщение."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Закрыть данный чат."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Соединиться с произвольным сервером и/или Kad"
 
 # подпись в главном окне. длинная просто не влезет.
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Файлы"
 
@@ -4386,138 +4396,138 @@ msgstr "Файлы"
 msgid "Disabled [%s]"
 msgstr "Отключено [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "Б"
 msgstr[1] "байт"
 msgstr[2] "байт"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "КБ"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "ТБ"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "К"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "М"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "Г"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "Т"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "Б/с"
 msgstr[1] "байт/сек"
 msgstr[2] "байт/сек"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "МБ/с"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "с"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "м"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "ч"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "д"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "все"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "все остальные"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Незавершенные"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Остановлен"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Видео"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Архив"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Текст"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Активные"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Используем директорию конфигурации: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Ожидание завершения нити конвертации файла..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Импортируется %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Чтение из временного каталога"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Извлекаю основную информацию из информационного файла загрузки"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Создаю целевой файл"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Загружаю данные из старого файла загрузки (%u из %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Сохраняю данные в новый монолитный файл загрузки (%u из %u)"
 
 # не уверен что верно
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Получаем информацию по источникам"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Добавляю загрузку и сохраняю новый частично закачанный файл"
 
@@ -4533,25 +4543,25 @@ msgstr "Состояние"
 msgid "Filehash"
 msgstr "Хеш файла"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Диск: %s)"
 
 # Полностью лучше не переводить - это титул небольшого диалога.
 # Если перевести полностью - будет маленький, но широоооокий диалог :)
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr "Укажите каталог для поиска незавершенных загрузок."
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Вы хотите, чтобы исходные файлы импортированных закачек были удалены?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Удалить исходные файлы?"
 
@@ -4668,7 +4678,7 @@ msgstr "Файл %s (%s) не имеет сохраненных источник
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Ошибка при чтении источников частично загруженного файла (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4686,39 +4696,39 @@ msgstr[2] ""
 "Найдена испорченная часть (%d) в %d частях файла %s - FileResultHash |%s| "
 "FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Найдена завершенная часть (%i) в %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Завершено повторное хеширование %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Неожиданная ошибка во время завершения %s. Файл приостановлен."
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Загрузка завершена: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Удаление файла: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "ПРЕДУПРЕЖДЕНИЕ: Не удается схэшировать загруженную часть - хэш-набор неполон "
 "для '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4727,7 +4737,7 @@ msgstr ""
 "ОШИБКА: Не удается схэшировать загруженную часть - хэш-набор неполон (%s). "
 "Это никогда не должно происходить"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4736,226 +4746,226 @@ msgstr ""
 "EOF при хешировании загруженной части %u с длиной %u (макс %u) файла '%s' с "
 "длиной %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 "ПРЕДУПРЕЖДЕНИЕ: не достаточно свободного места на диске. Файл приостановлен: "
 "%s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Загруженная часть %i повреждена: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Восстановлена поврежденная часть %i для %s -> Выигрыш: %s Б"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Выделяется место"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Недостаточно места на диске"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Загружено"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ОШИБКА: не удалось открыть частично закаченный '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Системный"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Албанский"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Арабский"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Астурианский"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Баскский"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Болгарский"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Каталонский"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Китайский (упрощенный)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Китайский (традиционный)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Хорватский"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Чешский"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Датский"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Голландский"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Английский (Великобритания)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Эстонский"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Финский"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Французский"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Гальский"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Немецкий"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Греческий"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Израильский"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Венгерский"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Итальянский"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Итальянский (Швеция)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Японский"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Корейский"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Литовский"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Норвежский (Нюнорск)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Польский"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Португальский"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Португальский (Бразилия)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Русский"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Словакский"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Испанский"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Шведский"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Турецкий"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Украинский"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Изменить язык"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Недоступен"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "нет доступных опций"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Обнаружена неверная категория, пропускаем"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr "TCP порт не может быть выше 65532, так как UDP сокет - TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Используется порт по умолчанию (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Убираем несуществующую опубликованную директорию: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Соединение"
 
@@ -4963,7 +4973,7 @@ msgstr "Соединение"
 msgid "Directories"
 msgstr "Каталоги"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Сервера"
 
@@ -5017,7 +5027,7 @@ msgstr ""
 "   %PARTFILE - полный путь к файлу\n"
 "   %PARTNAME - только имя файла"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5033,26 +5043,26 @@ msgstr ""
 "aMule будет превосходно работать и БЕЗ ИЗМЕНЕНИЯ вами\n"
 "этих настроек."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Не удалось подключить Cfg к widget с ID %d и ключом %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "Не удалось передать данные из Cfg к Widget с ID %d и ключом %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Тип прокси-сервера, который вы используете"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "Не удалось передать данные из Widget к Cfg с ID %d и ключом %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5060,27 +5070,32 @@ msgstr ""
 "Необходимо перезапустить aMule чтобы следующие изменения вступили в силу:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- изменен порт TCP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- изменен порт UDP.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Порт для внешних соединений изменен.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Принятие внешних соединений изменено.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Интерфейс внешних соединений изменен.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Вуалирование протокола"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5088,7 +5103,7 @@ msgstr ""
 "Список авто обновления пуст.\n"
 "Автоматическое обновление списка серверов отключено."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5096,19 +5111,19 @@ msgstr ""
 "Вы включили внешние соединения, но не указали пароль.\n"
 "Внешние соединения нельзя включить до тех пор, пока не указан пароль."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Изменен язык.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Изменен временный каталог.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- сеть eD2k включена. \n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5116,7 +5131,7 @@ msgstr ""
 "Сети eD2k и Kad обе отключены.\n"
 "Вы не сможете подсоединиться пока не подключите хотя бы одну из них."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5124,7 +5139,7 @@ msgstr ""
 "Kad не будет запущена, если UDP-порт выключен.\n"
 "Включите UDP-порт или выключите Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5134,7 +5149,7 @@ msgstr ""
 "Вам НЕОБХОДИМО перезапустить aMule немедленно.\n"
 "Иначе не жалуйтесь, если произойдет какая-нибудь неприятность.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5145,41 +5160,41 @@ msgstr ""
 "'server.met'.\n"
 "Щелкните на кнопке \"Список\" чтобы ввести URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Временные файлы"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Входящие файлы"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Online-подписи"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Выберите каталог для %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Выбрать видео-проигрыватель"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Выберите броузер"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Команда запуска%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Редактировать список серверов"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5187,7 +5202,7 @@ msgstr ""
 "Впишите сюда адреса для получения файлов 'server.met'.\n"
 "Только один URL в одной строчке."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
@@ -5195,7 +5210,7 @@ msgstr[0] "Интервал обновления: %d с"
 msgstr[1] "Интервал обновления: %d сек"
 msgstr[2] "Интервал обновления: %d сек"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
@@ -5203,12 +5218,12 @@ msgstr[0] "Отрезок времени, охватывающийся граф
 msgstr[1] "Отрезок времени, охватывающийся графиком: %d минут"
 msgstr[2] "Отрезок времени, охватывающийся графиком: %d минут"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Масштаб графика соединений: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
@@ -5216,7 +5231,7 @@ msgstr[0] "Файловый буфер: %d Б"
 msgstr[1] "Размер буфера: %d байт"
 msgstr[2] "Размер буфера: %d байт"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
@@ -5224,7 +5239,7 @@ msgstr[0] "Размер очереди отдачи: %d"
 msgstr[1] "Размер очереди отдачи: %d клиентов"
 msgstr[2] "Размер очереди отдачи: %d клиентов"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
@@ -5232,37 +5247,37 @@ msgstr[0] "Частота связи с сервером: %d м"
 msgstr[1] "Интервал обновления соединения с сервером: %d минут"
 msgstr[2] "Интервал обновления соединения с сервером: %d минут"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Обновление соединения с сервером: Отключено"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "выключена"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Выполнить команду при событии '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Включить выполнение команд в ядре"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Команда ядра:"
 
 # никто ни в жизни не поймет переведенную аббревиатуру
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Включить выполнение команд в GUI"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Команда GUI:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Следующие переменные будут заменены:"
 
@@ -5292,7 +5307,7 @@ msgstr "Поиск по сети eD2k  не может быть произвед
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Ошибка при поиске через Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "FileID"
 
@@ -5407,7 +5422,7 @@ msgstr "ОШИБКА: сокет был закрыт по таймауту"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Время ожидания соединения с %s (%s:%i) вышло."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Получен старый результат поиска DNS, опускаем."
 
@@ -5436,7 +5451,7 @@ msgstr "Не удалось открыть файл 'server.met'!"
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr "Файл server.met поврежден. Неверная метка версии: 0x%x, размер %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
@@ -5444,7 +5459,7 @@ msgstr[0] "В файле 'server.met' найден %i сервер"
 msgstr[1] "В файле 'server.met' найдено %i сервера"
 msgstr[2] "В файле 'server.met' найдено %i серверов"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
@@ -5452,62 +5467,62 @@ msgstr[0] "%d сервер добавлен"
 msgstr[1] "%d сервера добавлено"
 msgstr[2] "%d серверов добавлено"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Ошибка: файл 'server.met' поврежден:"
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "Ошибка ввода/вывода при чтении файла known.met: "
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Сервер не был добавлен: [%s:%d] не указывает на подходящий порт."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Сервер не был указан: IP адрес [%s:%d] был отфильтрован или неверен."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Сервер не был добавлен: сервер с совпадающим IP:порт [%s:%d] был найден в "
 "списке."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Сервер добавлен: сервер [%s:%d] использует имя '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 "Вы соединены с сервером, который вы пытаетесь удалить. Отключитесь от него."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Невозможно открыть %s"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Не удалось сохранить файл 'server.met'."
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Неверный URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Завершена загрузка списка серверов с %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5515,28 +5530,28 @@ msgstr ""
 "Не найдено адресов списков серверов в 'addresses.dat'. Пожалуйста, введите "
 "правильные адреса чтобы авто-обновление работало."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Начинаю загружать список серверов с %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr "ПРЕДУПРЕЖДЕНИЕ: неверный URL для авто-обновления серверов: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "Отсутствует допустимый 'server.met' файл по адресу для автоматического "
 "обновления серверов"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Не удалось получить список серверов из %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5572,7 +5587,7 @@ msgid "Static"
 msgstr "Статический"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Версия"
 
@@ -5598,8 +5613,8 @@ msgstr "Вы уверены, что хотите удалить сервер %s
 msgid "Servers (%i)"
 msgstr "Серверов (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Сервер"
 
@@ -5655,40 +5670,40 @@ msgstr "Удалить выбранный сервер?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Удалить выбранные серверы?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ОШИБКА: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "ПРЕДУПРЕЖДЕНИЕ: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Новый ID клиента %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "ПРЕДУПРЕЖДЕНИЕ: вы получили Low-ID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tСкорее всего это из-за того, что вы находитесь за брандмауэром или "
 "маршрутизатором."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tДля подробностей, обратитесь к http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Получена неизвестная информация о сервере. - слишком коротко"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
@@ -5696,44 +5711,44 @@ msgstr[0] "Получен %d новый сервер"
 msgstr[1] "Получено %d новых сервера"
 msgstr[2] "Получено %d новых серверов"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Сохранение списка серверов завершено."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Сервер отклонил последнюю команду"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Подложный пакет получен от сервера: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Неизвестная ошибка при обработке пакета от сервера: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Невозможно создать поток разрешения DNS для соединения с %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "IP адрес сервера %s (%s) запрещен фильтром.  Соединение отменено."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "использую вуалирование протокола."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Установка соединения с %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Не удалось разрешить DNS для сервера %s: Невозможно подключиться."
@@ -5921,84 +5936,89 @@ msgstr "Локальное имя файла"
 msgid "Shares File List"
 msgstr "Файлы"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Запросов"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Принятых запросов"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Передано данных"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Коэффициент передачи"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Полученные части"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Полных источников"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Каталог"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Добавить комментарий/рейтинг"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Редактировать комментарий/рейтинг"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Переименовать"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Добавить файлы коллекции в список для закачки"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Скопировать magnet URL в буфер &обмена"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Копировать eD2k ссылку в буфер (&Источник)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Копировать eD2k ссылку в буфер (Источник) (&С шифрованием)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Копировать eD2k ссылку в буфер (Имя &хоста)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "Копировать eD2k ссылку в буфер (Имя хоста) (С &шифрованием)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Копировать eD2k ссылку в &буфер (информация AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Копировать eD2k ссылку в &буфер (информация AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Для создания ссылки на источник требуется HighID"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Публикуемые файлы (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[частично]"
 
@@ -6006,236 +6026,236 @@ msgstr "[частично]"
 msgid "Remote File Name"
 msgstr "Удаленное имя файла"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Передано за сеанс (всего): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Служебный трафик (пакеты): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Трафик запросов (пакеты): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Трафик обмена источниками (пакеты): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Трафик с сервером (пакеты): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Служебный трафик Kad (пакеты): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Потери шифрования (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Активные отдачи: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Ожидающие отдачи: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Всего успешных сессий отдачи: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Всего неудачных сессий отдачи: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Среднее время отдачи: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Принято за сеанс (всего): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Найдено источников: %s"
 
 # chunk, конечно, никакой не пакет.... но фиг знает
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Активных загрузок (фрагменты файлов): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Соотношение UL:DL (всего): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Средняя скорость закачки (Сессия): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Средняя скорость отдачи (Сессия): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Максимальная скорость закачки (Сессия): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Максимальная скорость отдачи (Сессия): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Пересоединений: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Прошло после первой передачи: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "Время подключения к серверу: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Активных соединений (примерно): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Достигнуто макс. число соединений: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Соединений в среднем (прибл.): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Максимальное число соединений (примерно): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Клиенты"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Неизвестны: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Отфильтрованы: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Заблокированы: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Всего: %i Известно: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Работающих серверов: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Сбойных серверов: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Всего: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Удаленных серверов: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Отфильтрованных серверов: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Пользователей на работающих серверах: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Файлов на работающих серверах: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Всего пользователей: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Всего файлов: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Загруженность сервера: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Число публикуемых файлов: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Общий размер публикуемых файлов: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Средний размер файлов: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Операционная система"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Не получено"
 
@@ -6293,7 +6313,7 @@ msgstr "Недопустимый номер\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Недопустимый хеш (длина должна быть равна 32 символам)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Запрос не удался - неизвестная ошибка."
 
@@ -6348,13 +6368,13 @@ msgstr "Подключен к %s %s %s"
 msgid "Now connecting"
 msgstr "Идет подключение"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "за брандмауэром"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6786,21 +6806,21 @@ msgstr ""
 "Устаревшая команда, и возможно в будущем будет удалена.\n"
 "Используйте вместо нее '%s'.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Текстовый клиент aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Конвертирую старые AICH хеши из '%s' в 64b в '%s'"
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "ПРЕДУПРЕЖДЕНИЕ: Имя файла '%s' - неверно и было изменено на '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "ПРЕДУПРЕЖДЕНИЕ: Файл '%s' уже существует. Новый файл назван '%s'."
@@ -6870,7 +6890,7 @@ msgstr "Не удалось выполнить команду `%s' при соб
 msgid "Download completed"
 msgstr "Загрузка завершена"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Полный путь к файлу"
 
@@ -6890,66 +6910,66 @@ msgstr "Размер файла в байтах"
 msgid "Cumulative download activity time."
 msgstr "Общее время загрузки"
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Начата новая беседа"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Отправитель"
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Недостаточно места"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Раздел диска"
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Ошибка при завершении"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Обрабатывается файл под номером %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Вы запросили частичные хеши (используется только для файлов > 9.5 MБ)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Файл не существует !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, программа для создания eD2k ссылок для aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Добро пожаловать!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Параметры ввода"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Файл для хеширования"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Добавьте возможные URL для этого файла"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Введите здесь файл для которого вы хотите получить eD2k ссылку"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6957,15 +6977,15 @@ msgstr ""
 "Введите здесь URL который вы хотите добавить к eD2k ссылке: добавьте / в "
 "конце если хотите чтобы aLinkCreator присоеденил текущее имя файла"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Удалить"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Создать ссылку с хешами частей"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6973,81 +6993,81 @@ msgstr ""
 "Помогите распространить новые и редкие файлы быстрее, за счет увеличения "
 "размера ссылки"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Хеш MD4"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k хэш-файл"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k ссылка"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Сохранить"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Скопировать в буфер обмена"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Открыть"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Открыть файл и получить его eD2k ссылку"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Копировать полученную eD2k ссылку в буфер"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Сохранить как"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Сохранить полученную eD2k ссылку в файл"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "О программе aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Выберите файл для которого вы хотите получить eD2k ссылку"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Невозможно открыть буфер"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Сейчас нечего копировать!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Выберите файл в который сохранить полученную eD2k ссылку"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Невозможно открыть "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Пожалуйста, введите не пустое имя файла"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Сейчас нечего сохранять!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7067,158 +7087,162 @@ msgstr ""
 "\n"
 "Лицензия - GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Идет хеширование..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator работает для вас"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Считаем MD4 хэш..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Считаем eD2k хэши..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Отменено."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Выполнено за %.2f сек"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Этот URL уже добавлен !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Введите URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Не удалось открыть %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i дней %i часов %i минут %i секунд"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uд %02uч %02uмин %02uс"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uч %02uмин %02uс"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02uмин %02uс"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02uс"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, модуль статистики aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Максимальная скорость загрузки за время работы wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Абсолютная максимальная скорость загрузки за время работы wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Система"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Остановить автоматическое обновление"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Сохранить картинку со статистикой"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Распечатать картинку со статистикой"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Настройки"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "О модуле wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Начать авто обновление"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Автоматическое обновление остановлено"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Автоматическое обновление начато"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Сохранить картинку со статистикой"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Онлайн-статистика"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7226,11 +7250,11 @@ msgstr ""
 "Проблема с печатью.\n"
 "Возможно принтер неправильно установлен."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Печать"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7248,327 +7272,327 @@ msgstr ""
 "\n"
 "Лицензия - GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Ох-ох... aMule то не запущен..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule запущен"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule запущен, но не подключен"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule подключается..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Ох-ох... статус aMule неизвестен..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " работает "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " остановлен!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " не подключен!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " подключается..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " делает что-то непонятное, проверьте!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " подключен к "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "отключен"
 
 #  stands for $User is on $server
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " на "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " с "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Всего принято: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Передано: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Принято за сеанс: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Прием: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/сек, Передача: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr "kB/сек"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Передача другим: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr "файлов, клиентов в очереди: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Время:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " на "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Системная загрузка (за 1-5-15 мин): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Время работы системы: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Каталог, содержащий файл amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Введите здесь путь к вашему файлу amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Интервал обновления в секундах"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Генерировать картинку со статистикой после каждого события обновления"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 "Укажите здесь каталог, в который вы хотите сохранять картинку со статистикой"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Периодическая загрузка картинки со статистикой на FTP сервер"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP Url"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP путь"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Введите здесь адрес вашего FTP сервера"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Введите здесь путь для сохранения картинки со статистикой на FTP сервере"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Пользователь"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Введите здесь имя пользователя для вашего FTP сервера"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Введите здесь пароль для вашего FTP сервера"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Интервал обновления через FTP в минутах"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Проверить"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Каталог, в котором хранится файл-подпись"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Каталог, в котором будет сохранятся картинка со статистикой"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Загрузить шаблон <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "HTTP порт веб-сервера"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Использовать UPnP форвардинг портов для порта веб-сервера"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP-порт"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Использовать gzip-сжатие"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Пароль веб-сервера для полного доступа"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Пароль веб-сервера для ограниченного доступа"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Позволять ограниченный доступ"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Запрещать ограниченный доступ"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Загрузить/сохранить настройки веб-сервера из/в удаленный aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Путь к файлу конфигурации aMule. НЕ ИСПОЛЬЗУЙТЕ ПРЯМОЙ ПУТЬ!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Отключить PHP (не рекомендуется)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Компилировать PHP-страницы при каждом запросе"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Веб-сервер aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "соединение Веб-клиента принято\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "ОШИБКА: невозможно принять соединение web-клиента\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Запрос не удался из-за следующей ошибки: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Индексный файл не найден:"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Сессия просрочена - запрашиваю логин\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Сессия в порядке, авторизован\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Сессия в порядке, не авторизован\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Нет открытых сессий - буду запрашивать логин\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Сессия открыта - запрашиваю логин\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Обрабатываю запрос [исходный]:"
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Не указан пароль, авторизация запрещена."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Проверяю пароль\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Хеш пароля неверен\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Пароль верен\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Неверный пароль\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Вы не ввели пароль. Пустой пароль недопустим.\n"
 
 # в eMule - так и пишут: логин/логаут, но мне не нравится
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Запрошено отсоединение\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Обрабатываю запрос [перенаправленный]:"
 
diff --git a/po/sl.po b/po/sl.po
index 37b4892..361d380 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-04-26 01:08+0200\n"
 "Last-Translator: Jure Repinc <jlp at holodeck1.com>\n"
 "Language-Team: Slovenian <lugos-slo at lugos.si>\n"
@@ -41,7 +41,7 @@ msgstr "Navedena koda uporabnika ni veljavna."
 msgid "Failed to open ED2KLinks file."
 msgstr "Ni bilo mogoče odpreti datoteke ED2KLinks."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -49,37 +49,37 @@ msgstr ""
 "OPOZORILO: če imete nizek ID, sebe ne morete dodati kot vira za povezavo "
 "eD2k."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Sedaj, zapuščanje glavnega programa ..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Končanje izvoda amuleweb s PID »%ld« ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Ubijanje izvoda amuleweb s PID »%ld« ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Neuspeh"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Končevanje jedra."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Zaustavitev aMule zaključena."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Rezultati razhroščevanja pomnilnika za izhod iz aMule:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -87,16 +87,16 @@ msgstr ""
 "\n"
 "Nastavitev zunanje povezave"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Geslo je bilo nastavljeno in zunanje povezave omogočene."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "OPOZORILO"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -104,13 +104,13 @@ msgstr ""
 "Vaše področne nastavitve so bile spremenjene na sistemsko privzete zaradi "
 "spremembe v nastavitvah. Oprostite."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Podatki"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -118,16 +118,16 @@ msgstr ""
 "Na seznamu strežnikov nimate nobenega strežnika.\n"
 "Ali želite, da aMule zdaj pridobi nov seznam?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Prejemanje seznama strežnikov"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "spletni strežnik teče s PID %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -138,23 +138,23 @@ msgstr ""
 "ali pa prevedite aMule z možnostjo »--enable-webserver« in ga znova namestite "
 "z »make install«."
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "NAPAKA"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Vrat ni bilo moč povezati z navedenim naslovom: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Vrata %u niso razpoložljiva. Imeli boste nizek ID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -169,11 +169,11 @@ msgstr ""
 "\n"
 "Preverite omrežje in se prepričajte, da so vrata odprta za izhod in vhod."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Ni bilo mogoče ustvariti datoteke spletnega podpisa"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Ni bilo mogoče ustvariti aMule datoteke spletnega podpisa"
 
@@ -226,134 +226,134 @@ msgstr ""
 "Navedena mapa za datoteke za spletni podpis je NEVELJAVNA.\n"
 "Spletni podpis bo ONEMOGOČEN, dokler težave ne odpravite v nastavitvah."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Gostitelj strežnika obveščen"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Vnaprejšnja dodelitev prostora na disku za datoteko »%s« ni uspela: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "NAPAKA: ni mogoče odpreti dnevniške datoteke"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "OPOZORILO: dnevniška datoteka je prazna. Nekaj je narobe."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Dnevnik je bil ponastavljen"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Sporočilo strežnika: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "Prejemanje %s je bilo preskočeno, ker zahtevana datoteka ni novejša."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Ni bilo mogoče prenesti seznama vozlišč."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Ni bilo mogoče odpreti prejete datoteke za preverjanje različice"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Datoteka za preverjanje različice je pokvarjena"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Uporabljate zastarelo različico aMule."
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 "Različica vaše aMule je %i.%i.%i, najnovejša različica pa je %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Najnovejšo različico lahko vedno najdete na http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "OPOZORILO: vaša različica aMule je zastarela: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Uporabljate najnovejšo različico aMule."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Ni bilo mogoče prenesti datoteke za preverjanje različice"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Uporabniki: %s | Datoteke: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Uporabniki: E: %s K: %s | Datoteke: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Izbranega ni nobenega omrežja"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "z nizkim ID-jem"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "z visokim ID-jem"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Povezan z %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Povezovanje z %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Povezava z eD2k prekinjena"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad zagnan."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad ustavljen."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Povezan s Kad (v redu)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Povezan s Kad (za požarnim zidom)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Povezava s Kad prekinjena"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -361,11 +361,11 @@ msgstr ""
 "Omrežja Kad ni mogoče uporabljati, če so vrata UDP onemogočena v "
 "nastavitvah. Kad ni zagnan."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Omrežje Kad je onemogočeno v nastavitvah. Ni povezave."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -377,7 +377,7 @@ msgstr ""
 "zaženite amuled z možnostjo --ec-config ali pa nastavite vrednost ključa"
 "\"AcceptExternalConnections\"  na 1 v datoteki ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -391,19 +391,19 @@ msgstr ""
 "vrednost. Za nastavitev gesla zaženite amuled z možnostjo --ec-config. Več "
 "informacij lahko najdete na http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - zaganjanje časomerilnika"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: cepljenje v ozadje – se vidimo"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Ni moč ustvariti datoteke PID"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "NAPAKA: %s"
@@ -488,9 +488,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Sporočilo"
 
@@ -498,7 +498,7 @@ msgstr "Sporočilo"
 msgid "aMule dialog destroyed"
 msgstr "Pogovorno okno aMule je bilo uničeno"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Povezovanje"
 
@@ -532,7 +532,7 @@ msgstr "Kad: izklopljen"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Prekliči"
 
@@ -549,7 +549,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Prekini povezavo s trenutno povezanimi omrežji"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Poveži se"
 
@@ -590,7 +590,7 @@ msgstr "Potrditev izhoda"
 msgid "Launch Command: "
 msgstr "Zaženi ukaz: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "– privzeto –"
 
@@ -605,80 +605,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "OPOZORILO: datoteke s preobleko »%s« ni moč odpreti za branje"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Omrežja"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Okno z omrežji"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Iskanja"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Okno z iskanji"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Prejemanja"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "Okno s prejemanji"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Deljene datoteke"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Okno z deljenimi datotekami"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Sporočila"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Okno s sporočili"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistika"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Okno s statističnimi grafi"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Nastavitve"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Okno z nastavitvami"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Uvoz"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Orodje za uvažanje delnih datotek"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "O programu"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "O programu/pomoč"
 
@@ -698,7 +698,7 @@ msgstr "Brez omrežja"
 msgid "aMule remote control"
 msgstr "Oddaljeni nadzor aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -710,106 +710,106 @@ msgstr "Usodna napaka: ni bilo mogoče ustvariti osrednjega časomerilnika"
 msgid "Connect to remote amule"
 msgstr "Poveži se z oddaljenim aMule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Usodna napaka: ni bilo mogoče ustvariti časomerilnika za povpraševanje"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Prehod v dogodkovno zanko ..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Povezovanje ..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Povezovanje ni uspelo "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Rokovalnik z dogodki zunanje povezave oddaljenega vmesnika"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Zaustavljanje"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Povezava ni uspela. Ni se moč povezati z %s: %d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Povezava prekinjena – aMule se je najverjetneje končal."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Pripravljen"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Vse"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr "Ni moč ustvariti mape »%s« za kategorijo »%s«, obdržana bo mapa »%s«."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Neznano"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Ni bilo mogoče dobiti deljenih datotek od uporabnika »%s«"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Iskanje kolega za povezavo z nizkim ID-jem"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (lažna različica eMule %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (lažni eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (lažni eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (temelji na eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Vzdevek: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Zahtevano: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -823,7 +823,7 @@ msgstr[2] ""
 msgstr[3] ""
 "Statistika datotek v tej seji: Sprejetih %d od %d zahtev, %s prenesenih\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -837,7 +837,7 @@ msgstr[2] ""
 msgstr[3] ""
 "Statistika datotek vseh sej: Sprejetih %d od %d zahtev, %s prenesenih\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Zahtevana neznana datoteka"
 
@@ -992,12 +992,12 @@ msgid "Client Details"
 msgstr "Podrobnosti o odjemalcu"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "Nizek ID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "Visok ID"
 
@@ -1049,66 +1049,66 @@ msgstr "Preverjeno – v redu"
 msgid "Not Available"
 msgstr "Ni na voljo"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Uporabnik %s (%u) je zahteval vaš seznam deljenih datotek → sprejeto"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Uporabnik %s (%u) je zahteval vaš seznam deljenih datotek → zavrnjeno"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Uporabnik %s (%u) je zahteval vaš seznam deljenih map → sprejeto"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Uporabnik %s (%u) je zahteval vaš seznam deljenih map → zavrnjeno"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr ""
 "Uporabnik %s (%u) je zahteval seznam deljenih datotek za mapo »%s« → sprejeto"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr ""
 "Uporabnik %s (%u) je zahteval seznam deljenih datotek za mapo »%s« → zavrnjeno"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Uporabnik %s (%u) deli mapo »%s«"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Uporabnik %s (%u) je poslal nezahtevane deljene mape."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Uporabnik %s (%u) je poslal seznam deljenih datotek za mapo »%s«"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Uporabnik %s (%u) je končal s prenosom seznama deljenih datotek"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Uporabnik %s (%u) je poslal nezaželen seznam deljenih datotek"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr "Uporabnik %s (%u) je zavrnil dostop do seznama deljenih datotek/map"
@@ -1123,7 +1123,7 @@ msgstr "Uporabniško ime"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Ime datoteke"
 
@@ -1168,33 +1168,33 @@ msgstr "Samod. [No]"
 msgid "Auto [Hi]"
 msgstr "Samod. [Vi]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Zelo nizka"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Nizka"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normalna"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Visoka"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Zelo visoka"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Najvišja"
 
@@ -1211,12 +1211,12 @@ msgid "Queue Full"
 msgstr "Vrsta polna"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "V vrsti"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Prejemanje"
 
@@ -1276,7 +1276,7 @@ msgstr "Krajevni strežnik"
 msgid "Remote Server"
 msgstr "Oddaljni strežnik"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1302,7 +1302,7 @@ msgid "Search Result"
 msgstr "Rezultat iskanja"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Zaključeno"
 
@@ -1343,11 +1343,11 @@ msgid "Part"
 msgstr "Del"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Velikost"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Preneseno"
 
@@ -1360,17 +1360,17 @@ msgid "Progress"
 msgstr "Napredek"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Viri"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prednost"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Stanje"
@@ -1395,7 +1395,7 @@ msgstr "Ali res želite izbrisati izbrano datoteko?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Ali res želite izbrisati izbrane datoteke?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1405,7 +1405,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Samod."
 
@@ -1457,11 +1457,11 @@ msgstr "Prikaži vse komentarje"
 msgid "Copy magnet URI to clipboard"
 msgstr "Skopiraj magnet URI na odložišče"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Skopiraj &povezavo eD2k na odložišče"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Skopiraj odziv na odložišče"
 
@@ -1477,24 +1477,24 @@ msgstr "Dodeli kategoriji"
 msgid "&Open the file"
 msgstr "&Odpri datoteko"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Vnesite novo ime za to datoteko:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Preimenuj datoteko"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%d.%m.%y %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Prejemanja (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1502,11 +1502,11 @@ msgstr ""
 "Da preprečite to opozorilo ob vsakem ogledu,\n"
 "nastavite svoj priljubljen predvajalnik video posnetkov (privzet je mplayer)"
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Ogled datoteke"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "NAPAKA: Ni bilo mogoče zagnati zunanjega predvajalnika. Ukaz: »%s«"
@@ -1615,28 +1615,28 @@ msgstr "Zunanje povezave onemogočene zaradi praznega gesla."
 msgid "External connections disabled in config file"
 msgstr "Zunanje povezave onemogočene v nastavitveni datoteki"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Nova zunanja povezava sprejeta"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "NAPAKA: nove zunanje povezave ni bilo moč sprejeti"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Zunanja povezava zavrnjena zaradi praznega gesla v nastavitvah."
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Povezovanje z odjemalcem: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Neznana različica"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1644,7 +1644,7 @@ msgstr ""
 "Napačen ID različice za zunanje povezave; lahko pride do binarne "
 "nezdružljivosti. Uporabite jedro in oddaljen odjemalec iz istega posnetka."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1652,176 +1652,176 @@ msgstr ""
 "Ne morete se povezati s stabilno različico iz poljubne razvojne različice. "
 "Preprečeno morebitno sesutje."
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Neveljavna različica protokola."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Manjka oznaka različice protokola."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 "Overjanje ni uspelo: kot geslo za zunanje povezave je bila podana napačna "
 "koda."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Overjanje ni uspelo: napačno geslo."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Overjanje ni uspelo: manjkajoče geslo."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Neveljavna zahteva, najprej se morate overiti."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Dostop dovoljen."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Odjemalcu je bilo poslano sporočilo o napaki »%s«."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Nepooblaščen poskus dostopa od %s. Povezava prekinjena."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 "Ukaz za oddaljeno delno datoteko ni uspel: Ni bilo mogoče najti kode "
 "datoteke: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Kode datoteke ni mogoče najti: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "UPS. Napaka pri obdelavi OpCode."
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Strežnik ni bil dodan"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "strežnika ni mogoče najti: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "morate navesti strežnik za odstranitev"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k je onemogočen v nastavitvah."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Iskanje poteka. Ponovno poglejte za rezultati čez nekaj trenutkov."
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Spletno iskanje iz oddaljenega vmesnika nima smisla."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Ni točk za graf."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Vaš odjemalec ni nastavljen za to stopnjo podrobnosti."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Zunanja povezava: zahtevana zaustavitev"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Ustavljanje že poteka."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Zunanja povezava: dodajanje povezave »%s«."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Neveljavna povezava oz. je že na seznamu."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Datoteke ni mogoče najti."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Neveljavno ime datoteke."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Ni mogoče preimenovati datoteke."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad je onemogočen v nastavitvah."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Povezava z eD2k že obstaja."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "Povezovanje z eD2k ..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Povezava s Kad že obstaja."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Povezovanje s Kad ..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Vsa omrežja so onemogočena."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Povezava z eD2k prekinjena."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Povezava s Kad prekinjena."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Zunanja povezava: prejeta je bila neveljavna operacijska koda: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Neveljavna operacijska koda (napačna različica protokola?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Neznana razširitev »%s« za ukaz »%s«.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Neznan ukaz »%s«.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1829,7 +1829,7 @@ msgstr ""
 "\n"
 "Ta ukaz nima argumentov.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1837,7 +1837,7 @@ msgstr ""
 "\n"
 "Ta ukaz mora imeti argument.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1845,7 +1845,7 @@ msgstr ""
 "\n"
 "Ta ukaz je nepopoln, uporabiti morate eno od spodnjih razširitev.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1853,11 +1853,11 @@ msgstr ""
 "\n"
 "Razpoložljive razširitve:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Razpoložljivi ukazi:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1868,17 +1868,17 @@ msgstr ""
 "Ukazi niso občutljivi na velikost črk.\n"
 "Napišite »%s <ukaz>« za podrobne informacije o <ukaz>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Konča program."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Prikaži pomoč."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1886,7 +1886,7 @@ msgstr ""
 "Za pomoč pri ukazu napišite »help <ukaz>«.\n"
 "Za celoten seznam ukazov napišite »help«.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1897,48 +1897,48 @@ msgstr ""
 "Uporabite »%s« za seznam ukazov\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Napaka v skladnji."
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Napaka pri obdelavi ukaza – se ne bi smelo zgoditi. Prosimo, poročajte o "
 "hrošču.\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Ta ukaz ne sme imeti parametrov."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Ta ukaz mora imeti parameter."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Neveljaven argument."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Ukaz ni popoln."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Napišite »%s« za dodatno pomoč.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "To je %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "To je %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1946,7 +1946,7 @@ msgstr ""
 "\n"
 "Ustvarjanje odjemalca ...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1955,7 +1955,7 @@ msgstr ""
 "\n"
 "V redu, končevanje %s ...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1969,48 +1969,48 @@ msgstr ""
 "\n"
 "Končevanje ...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Prikaži to besedilo pomoči."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Gostitelj kjer teče aMule. (privzeto: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Vrata aMule za zunanje povezave. (privzeto: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Geslo za zunanje povezave."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Preberi nastavitve iz datoteke."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Ne izpisuj izhodnih podatkov na standardni izhod."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Zgovorno – prikaži tudi razhroščevalna sporočila."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Nastavi področne nastavitve (jezik) programa."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Zapiši možnosti ukazne vrstice v nastavitveno datoteko."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 "Ustvari nastavitveno datoteko, ki temelji na nastavitveni datoteki aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Izpiši različico programa."
 
@@ -2021,10 +2021,10 @@ msgstr "Podrobnosti datoteke"
 #: src/FileDetailDialog.cpp:113
 #, fuzzy, c-format
 msgid "%.1f%% done"
-msgstr "%.2f% % zaključeno"
+msgstr "%.2f%% zaključeno"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2044,7 +2044,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "KRITIČNO – ni odjemalca za StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Prijatelji"
 
@@ -2172,21 +2172,21 @@ msgstr "URL za prejemanje ne sme biti prazen"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "URL %s je vrnil: %i – Napaka (%i)."
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "Kritična napaka pri zapisovanju prejete datoteke"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "Prejetih %d bajtov"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "Pričakovanih je bilo %d bajtov, prejetih pa %d bajtov"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2194,11 +2194,11 @@ msgstr ""
 "Neveljaven URL za prejemanje HTTP ali pa preusmeritev HTTP (ali ste pozabili "
 "»http://«?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "Ni se moč povezati s strežnikom za prejemanje HTTP"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "Neveljaven odziv strežnika za prejemanje HTTP"
 
@@ -2230,7 +2230,7 @@ msgstr "%s je bila uspešno posodobljena"
 msgid "Error updating GeoIP.dat"
 msgstr "Napaka pri posodabljanju GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "Prejemanje %s od %s ni uspelo"
@@ -2279,7 +2279,7 @@ msgstr[3] "%u nepravilne vrstice so bile izpuščene."
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Preimenovanje nove datoteke %s ni uspelo, posodobitev preklicana."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "Filter IP je pripravljen"
 
@@ -2296,46 +2296,46 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Vozlišča (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Neveljaven IP za začetno nalaganje"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Neveljavna vrata za začetno nalaganje"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Prosimo, izpolnite vsa zahtevana polja"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Ali res želite prenesti novo datoteko nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "S tem boste odstranili trenutna vozlišča in ponovno zagnali povezavo Kad."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Ali želite nadaljevati?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: iskalni niz je prekratek"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Ključna beseda za iskanje: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: iskalna ključna beseda je že na iskalnem seznamu: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2343,8 +2343,8 @@ msgstr ""
 "Branje datoteke nodes.dat ni uspelo – prestara je. Ta različica (0) ni več "
 "podprta."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
@@ -2353,14 +2353,14 @@ msgstr[1] "Prebran %u stik Kad"
 msgstr[2] "Prebrana %u stika Kad"
 msgstr[3] "Prebrani %u stiki Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Najdenega ni bilo nobenega stika. Opravite začetno nalaganje ali pa "
 "pridobite datoteko nodes.dat."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
@@ -2369,7 +2369,7 @@ msgstr[1] "Na voljo je samo %d stik Kad, nodes.dat ni bila zapisana"
 msgstr[2] "Na voljo sta samo %d stika Kad, nodes.dat ni bila zapisana"
 msgstr[3] "Na voljo so samo %d stiki Kad, nodes.dat ni bila zapisana"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
@@ -2378,32 +2378,32 @@ msgstr[1] "Zapisan %d stik Kad"
 msgstr[2] "Zapisana %d stika Kad"
 msgstr[3] "Zapisani %d stiki Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Ime datoteke"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Velikost datoteke"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Delilno razmerje"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Poslano"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Zahtevano"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Sprejeto"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Popolnih virov"
 
@@ -2433,70 +2433,75 @@ msgstr "Neznana napaka %d"
 msgid "Unable to get error description for error %d"
 msgstr "Ni moč dobiti opisa napake za napako %d"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Ustvarjanje kode"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Zaključevanje"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Zaključeno"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Prekinjeno"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Vsebuje napake"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Na čakanju"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Navesti morate neprazno geslo."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Neveljavno geslo, ni izvleček MD5."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Napaka med povezovanjem"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "Zunanja povezava ni uspela. Prazen odgovor."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 "Zunanja povezava: slab odgovor, rokovanje ni uspelo. Povezava prekinjena."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Uspeh! Vzpostavljena povezava z aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Uspeh! Povezava vzpostavljena."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Zunanja povezava: dostop je bil zavrnjen. Razlog: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Zunanja povezava: rokovanje ni uspelo."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Zagon sinhronizacijske niti."
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "Vtičnica za poslušanje: v redu."
@@ -2505,16 +2510,16 @@ msgstr "Vtičnica za poslušanje: v redu."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "NAPAKA: ni moč poslušati na vratih TCP."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "NAPAKA: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "OPOZORILO: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Zapri"
 
@@ -2522,8 +2527,8 @@ msgstr "Zapri"
 msgid "Cut"
 msgstr "Izreži"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Skopiraj"
 
@@ -2532,7 +2537,7 @@ msgid "Paste"
 msgstr "Prilepi"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Počisti"
 
@@ -2542,7 +2547,7 @@ msgstr "Izberi vse"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2619,7 +2624,7 @@ msgid "ServerIP: "
 msgstr "IP strežnika: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Ni povezave"
 
@@ -2654,7 +2659,7 @@ msgstr "Spletni podpis: omogočen"
 msgid "Online Signature: Disabled"
 msgstr "Spletni podpis: onemogočen"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Neprekinjeno delovanje: %s"
@@ -2695,7 +2700,7 @@ msgstr "Skrij aMule"
 msgid "Show aMule"
 msgstr "Prikaži aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Končaj"
 
@@ -2781,7 +2786,7 @@ msgstr "Iskanje"
 msgid "Name:"
 msgstr "Ime:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Vrsta"
 
@@ -2809,38 +2814,38 @@ msgstr "Filtriranje"
 msgid "File Type"
 msgstr "Vrsta datoteke"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Vse"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arhivi"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Zvok"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Slike CD-jev"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Slike"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programi"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Besedila"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Video"
 
@@ -2861,11 +2866,11 @@ msgid "KB"
 msgstr "KiB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MiB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GiB"
 
@@ -2893,7 +2898,7 @@ msgstr "Obrni rezultat"
 msgid "Hide Known Files"
 msgstr "Skrij znane datoteke"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Začni"
 
@@ -2950,7 +2955,7 @@ msgstr "Polno Ime:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "Ni na voljo"
 
@@ -2974,7 +2979,7 @@ msgstr "Stanje delne datoteke:"
 msgid "Last seen complete :"
 msgstr "Nazadnje videno celotno:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Prenos"
 
@@ -3062,27 +3067,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Kakovost datoteke"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Ni ocenjena"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Neveljavna/poškodovana/lažna"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Slaba"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Povprečna"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Dobra"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Odlična"
 
@@ -3129,7 +3134,7 @@ msgid "Userhash :"
 msgstr "Koda uporabnika:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Dodaj"
 
@@ -3362,9 +3367,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Brskanje"
 
@@ -3452,7 +3457,7 @@ msgstr "Največ istočasnih povezav:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "eD2k"
 
@@ -3572,7 +3577,7 @@ msgstr "Sem vnesite min. želen prostor na disku."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Shrani 10 virov pri redkih datotekah (< 20 virov)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Pošiljanja"
 
@@ -3816,7 +3821,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Vklopi posredovanje vrat UPnP za vrata zunanjih povezav"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Geslo"
 
@@ -3898,8 +3903,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Izberite barvo za to kategorijo (trenutno izbrano):"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Ponastavi"
 
@@ -4300,82 +4305,87 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Omogoči zgovorno beleženje za razhroščevanje."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Odpri datoteko"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Kategorije sporočil:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Čakanje ..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Dodaj uvoze"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Ponovno poskusi izbrane"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Odstrani izbrane"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Vrste dogodkov"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr "Statistika in odjemalci v vrsti za izbrane datoteke: seja / ves čas"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Aktivna pošiljanja"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Odstotek vseh datotek"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Vse datoteke"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Izbrane datoteke"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Samo aktivna pošiljanja"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Prikaži odjemalce za"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Znova naloži"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Ponovno naloži deljene datoteke"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Pošlji"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Pošlje navedeno sporočilo."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Zapri to pogovorno sejo."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Poveži se s poljubnim strežnikom in/ali s Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Deljene datoteke"
 
@@ -4384,7 +4394,7 @@ msgstr "Deljene datoteke"
 msgid "Disabled [%s]"
 msgstr "Onemogočeno [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "bajtov"
@@ -4392,31 +4402,31 @@ msgstr[1] "bajt"
 msgstr[2] "bajta"
 msgstr[3] "bajti"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "bajtov/sek."
@@ -4424,100 +4434,100 @@ msgstr[1] "bajt/sek."
 msgstr[2] "bajta/sek."
 msgstr[3] "bajti/sek."
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MiB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sek."
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "min."
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "ur"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "dni"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "vse"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "vse ostalo"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Nezaključeno"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Ustavljeno"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arhiv"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Besedilo"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktivno"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Uporaba mape z nastavitvami: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Čakanje na zamrtje niti za pretvarjanje delnih datotek ..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Uvažanje %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Branje začasne mape"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Pridobivanje osnovnih podatkov iz datoteke o prejemanjuh"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Ustvarjanje ciljne datoteke"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Nalaganje podatkov iz stare datoteke prejemanja (%u od %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 "Shranjevanje podatkovnega bloka v novo enojno datoteko prejemanja (%u od %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Prenašanje podatkov o izvorni datoteki prejemanja"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Dodajanje prejemanja in shranjevanje nove delne datoteke"
 
@@ -4533,12 +4543,12 @@ msgstr "Stanje"
 msgid "Filehash"
 msgstr "Koda datoteke"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (disk: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4546,12 +4556,12 @@ msgstr ""
 "Prosimo, izberite mapo za iskanje začasnih prejemanj (vključene bodo tudi "
 "podmape)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Ali želite izbrisati izvorne datoteke uspešno uvoženih prejemanj?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Ali želite odstraniti vire?"
 
@@ -4668,7 +4678,7 @@ msgstr "Delna datoteka %s (%s) ima prazno datoteko s semeni"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Napaka pri branju datoteke s semeni delne datoteke (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4689,38 +4699,38 @@ msgstr[3] ""
 "Najden pokvarjen del (%d) v %d delnih datotekah %s - - FileResultHash |%s| "
 "FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Najden zaključen del (%i) v %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Zaključeno ponovno ustvarjanje kode za %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Nepričakovana napaka med zaključevanjem %s. Datoteka prekinjena."
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Zaključen prenos: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Brisanje datoteke: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "OPOZORILO: ni moč ustvariti kode za prejet del – nabor kod za »%s« ni popoln"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4729,7 +4739,7 @@ msgstr ""
 "NAPAKA: ni moč ustvariti kode za prejet del – nabor kod ni popoln (%s). To "
 "se nikoli ne bi smelo zgoditi."
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4738,224 +4748,224 @@ msgstr ""
 "Konec datoteke med ustvarjanjem kode prejetega dela %u z dolžino %u (maks. %"
 "u) delne datoteke »%s« z dolžino %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "OPOZORILO: na disku ni dovolj prostora. Datoteka prekinjena: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Prejet del %i v datoteki je pokvarjen: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "IRP: rešen pokvarjen del %i za %s → Rešenih bajtov: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Dodeljevanje"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Premalo prostora na disku"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Prejeto"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "NAPAKA: delne datoteke »%s« ni bilo moč odpreti"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Sistemsko privzet"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Albansko"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabsko"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturijsko"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baskovsko"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bolgarsko"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalonsko"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Kitajsko (poenostavljeno)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Kitajsko (tradicionalno)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Hrvaško"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Češko"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Dansko"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Nizozemsko"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Angleško (Z.K.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonsko"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finsko"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Francosko"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galicijsko"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Nemško"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Grško"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Hebrejsko"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Madžarsko"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italijansko"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italijansko (Švica)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonsko"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Korejsko"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Litvansko"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norveško (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Poljsko"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugalsko"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugalsko (brazilsko)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Rusko"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Slovensko"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Špansko"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Švedsko"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turško"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukrajinsko"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Spremeni jezik"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Ni na voljo"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "na voljo ni nobene možnosti"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Najdena neveljavna kategorija, preskočena"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr "Vrata TCP ne smejo biti večja od 65532, ker so vrata UDP TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Uporabljena bodo privzeta vrata (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Opuščanje neobstoječe deljene mape: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Povezava"
 
@@ -4963,7 +4973,7 @@ msgstr "Povezava"
 msgid "Directories"
 msgstr "Mape"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Strežniki"
 
@@ -5017,7 +5027,7 @@ msgstr ""
 "    %PARTFILE – polna pot do datoteke\n"
 "    %PARTNAME – samo ime datoteke"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5033,30 +5043,30 @@ msgstr ""
 "aMule bo deloval dobro tudi brez\n"
 "spreminjanja teh nastavitev."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Nastavitve ni bilo moč povezati z gradnikom z ID-jem %d in ključem %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 "Podatkov iz nastavitev ni bilo moč prenesti v gradnik z ID-jem %d in ključem "
 "%s."
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Vrsta posrednika s katerim se hočete povezati"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 "Podatkov iz gradnika ni bilo moč prenesti v nastavitve z ID-jem %d in "
 "ključem %s."
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5064,27 +5074,32 @@ msgstr ""
 "Potreben je ponoven zagon aMule za uveljavitev teh sprememb:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "• Vrata TCP so spremenjena.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "• Vrata UDP so spremenjena.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "• Vrata za zunanje povezave so spremenjena.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "• Sprejemljivost zunanjih povezav je spremenjena.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "• Vmesnik za zunanje povezave je spremenjen.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Maskiranje protokola"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5092,7 +5107,7 @@ msgstr ""
 "Seznam za samodejno posodobitev strežnikov je prazen.\n"
 "Možnost »Ob zagonu samodejno posodobi seznam strežnikov« bo onemogočena."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5101,19 +5116,19 @@ msgstr ""
 "Zunanje povezave ne morejo biti omogočene, dokler ne navedete veljavnega "
 "gesla."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "• Jezik je spremenjen.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "• Mapa za začasne datoteke spremenjena.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "• Omrežje eD2k je omogočeno.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5121,7 +5136,7 @@ msgstr ""
 "Omrežji eD2k in Kad sta onemogočeni.\n"
 "Ne boste se mogli povezati, dokler ne omogočite vsaj enega izmed njih."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5129,7 +5144,7 @@ msgstr ""
 "Kad se ne bo zagnal, če so vrata UDP onemogočena.\n"
 "Omogočite vrata UDP ali pa onemogočite Kad."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5139,7 +5154,7 @@ msgstr ""
 "aMule morate NUJNO ponovno zagnati.\n"
 "Če tega ne storite zdaj, se ne pritožujte, če se zgodi kaj slabega.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5149,41 +5164,41 @@ msgstr ""
 "Vnesite vsaj en URL do veljavne datoteke server.met.\n"
 "Kliknite na gumb »Seznam«, zraven potrditvenega polja, za vnos URL-ja."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Začasne datoteke"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Prejete datoteke"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Spletni podpisi"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Izberite mapo za %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Prebrskajte za video predvajalnik"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Izberite brskalnik"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Izvedljiva datoteka %s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Uredi seznam strežnikov"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5191,7 +5206,7 @@ msgstr ""
 "Sem dodajte URL-je do datotek server.met.\n"
 "Po en URL v vsako vrstico."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
@@ -5200,7 +5215,7 @@ msgstr[1] "Osveži vsakih: %d sekundo"
 msgstr[2] "Osveži vsakih: %d sekundi"
 msgstr[3] "Osveži vsakih: %d sekunde"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
@@ -5209,12 +5224,12 @@ msgstr[1] "Čas za graf trenutnega povprečja: %i minuta"
 msgstr[2] "Čas za graf trenutnega povprečja: %i minuti"
 msgstr[3] "Čas za graf trenutnega povprečja: %i minute"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Merilo za graf povezav: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
@@ -5223,7 +5238,7 @@ msgstr[1] "Datotečni medpomnilnik: %d bajt"
 msgstr[2] "Datotečni medpomnilnik: %d bajta"
 msgstr[3] "Datotečni medpomnilnik: %d bajti"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
@@ -5232,7 +5247,7 @@ msgstr[1] "Velikost vrste za pošiljanje: %d odjemalec"
 msgstr[2] "Velikost vrste za pošiljanje: %d odjemalca"
 msgstr[3] "Velikost vrste za pošiljanje: %d odjemalci"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
@@ -5241,36 +5256,36 @@ msgstr[1] "Čas med osvežitvama povezave na strežnik: %d minuta"
 msgstr[2] "Čas med osvežitvama povezave na strežnik: %d minuti"
 msgstr[3] "Čas med osvežitvama povezave na strežnik: %d minute"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Čas med osvežitvama povezave na strežnik: onemogočeno"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "onemogočeno"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "Izvrši ukaz ob dogodku »%s«"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Omogoči izvrševanje ukazov na jedru"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Ukaz jedra:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Omogoči izvrševanje ukazov v vmesniku"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Ukaz vmesnika:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Sledeče spremenljivke bodo nadomeščene:"
 
@@ -5300,7 +5315,7 @@ msgstr "Iskanje preko eD2k ni mogoče, če eD2k ni povezan"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Nepričakovana napaka med iskanjem Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID datoteke"
 
@@ -5420,7 +5435,7 @@ msgstr "NAPAKA: po poteku časa je bila vtičnica neveljavna"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Čas za poskus povezovanja z %s (%s:%i) je potekel."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Prejel zapoznjen rezultat poizvedbe DNS, preziram"
 
@@ -5449,7 +5464,7 @@ msgstr ""
 "Datoteka server.met je pokvarjena, napačna oznaka različice: 0x%x, velikost %"
 "i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
@@ -5458,7 +5473,7 @@ msgstr[1] "%i najden strežnik v server.met"
 msgstr[2] "%i najdena strežnika v server.met"
 msgstr[3] "%i najdeni strežniki v server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
@@ -5467,36 +5482,36 @@ msgstr[1] "%d strežnik dodan"
 msgstr[2] "%d strežnika dodana"
 msgstr[3] "%d strežniki dodani"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Napaka: datoteka »server.met« je pokvarjena: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "Vhodno/izhodna napaka med branjem »server.met«: "
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Strežnik ni bil dodan: [%s:%d] nima navedenih veljavnih vrat."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Strežnik ni bil dodan: [%s:%d] IP je filtriran ali neveljaven."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Strežnik ni bil dodan: Strežnik z IP:vrata [%s:%d] že obstaja na seznamu."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Strežnik dodan: Strežnik na [%s:%d], z imenom »%s«."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5504,25 +5519,25 @@ msgstr ""
 "Povezani ste s strežnikom, ki ga poskušate izbrisati. Prosimo, najprej "
 "prekinite povezavo."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Ni bilo mogoče odpreti »%s«"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Ni bilo mogoče shraniti server.met."
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Neveljaven URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Prejemanje seznama strežnikov od %s zaključeno"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5531,29 +5546,29 @@ msgstr ""
 "posodobitev seznama strežnikov morate v to datoteko vnesti veljaven naslov "
 "seznama strežnikov."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Začni s prejemanjem seznama strežnikov od %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "OPOZORILO: za samodejno posodabljanje strežnikov je bil naveden neveljaven "
 "URL: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "V addresses.dat ni veljavnega server.met URL-ja za samodejno posodabljanje."
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Ni bilo mogoče prenesti seznama strežnikov od %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5589,7 +5604,7 @@ msgid "Static"
 msgstr "Statičen"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Različica"
 
@@ -5615,8 +5630,8 @@ msgstr "Ali res želite izbrisati statičen strežnik %s?"
 msgid "Servers (%i)"
 msgstr "Strežniki (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Strežnik"
 
@@ -5672,38 +5687,38 @@ msgstr "Ali res želite izbrisati izbrani strežnik?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Ali res želite izbrisati izbrane strežnike?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "NAPAKA: %s (%s) – %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "OPOZORILO: %s (%s) – %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Nov odjemalčev ID je %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "OPOZORILO: prejeli ste nizek ID."
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tPo vsej verjetnosti ste za požarnim zidom ali usmerjevalnikom."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tZa več informacij se obrnite na http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Prejeti neznani podatki o strežniku – prekratko"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
@@ -5712,44 +5727,44 @@ msgstr[1] "Prejet %d nov strežnik"
 msgstr[2] "Prejeta %d nova strežnika"
 msgstr[3] "Prejeti %d novi strežniki"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Shranjevanje seznama strežnikov zaključeno."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Strežnik je zavrnil zadnji ukaz"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Nepravi paket prejet od strežnika: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Neobravnavana napaka med obdelavo paketa od strežnika: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Ni mogoče ustvariti niti za razrešitev DNS pri povezavi z %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Strežnikov IP %s (%s) je filtriran.  Ni povezave."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "z maskiranim protokolom."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Povezovanje z %s (%s – %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Ni mogoče razrešiti DNS za strežnik: %s: Povezava ni mogoča."
@@ -5937,85 +5952,90 @@ msgstr "Krajevno ime datoteke"
 msgid "Shares File List"
 msgstr "Deljene datoteke"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Zahteve"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Sprejete zahteve"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Prenesenih podatkov"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Delilno razmerje"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Dobljeni deli"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Popolni viri"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Pot mape"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Dodaj komentar/oceno"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Uredi komentar/oceno"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Preimenuj"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Dodaj datoteke iz zbirke na seznam prenosov"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Skopiraj magnet &URI na odložišče"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Skopiraj povezavo eD2k na odložišče (&vir)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Skopiraj povezavo eD2k na odložišče (vir) (&s šifrirnimi možnostmi)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Skopiraj povezavo eD2k na odložišče (&gostitelj)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "Skopiraj povezavo eD2k na odložišče (gostitelj) (s &šifrirnimi možnostmi)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Skopiraj povezavo eD2k na odložišče (&podatki NIRP)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Skopiraj povezavo eD2k na odložišče (&podatki NIRP)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Potrebujete visok ID, da ustvarite povezavo z virom"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Deljene datoteke (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Delna datoteka]"
 
@@ -6023,235 +6043,235 @@ msgstr "[Delna datoteka]"
 msgid "Remote File Name"
 msgstr "Oddaljeno ime datoteke"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Poslani podatki (seja (skupno)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Skupni presežek (paketov): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Presežek zahtev datotek (paketov): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Presežek izmenjav virov (paketov): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Presežek strežnikov (paketov): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Presežek Kad (paketov): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Presežek šifriranja (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Aktivna pošiljanja: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Čakajoča pošiljanja: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Skupno št. uspelih sej pošiljanj: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Skupno št. neuspelih sej pošiljanj: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Povprečen čas pošiljanja: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Prejeti podatki (seja (skupno)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Najdeni viri: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Aktivna prejemanja (deli): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Razmerje poslano/prejeto te seje (skupno): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Povprečna hitrost prejemanja (seja): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Povprečna hitrost pošiljanja (seja): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Največja hitrost prejemanja (seja): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Največja hitrost pošiljanja (seja): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Ponovne povezave: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Čas od prvega prenosa: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "S strežnikom povezan od: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktivnih povezav (ocena): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Dosežnih največ možnih povezav: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Povprečno povezav (ocena): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Največ povezav (ocena): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Odjemalci"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Neznani: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Filtrirani: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Izločeni: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Skupno: %i Znani: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Delujoči strežniki: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Nedelujoči strežniki: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Skupno: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Izbrisani strežniki: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Filtrirani strežniki: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Uporabniki na delujočih strežnikih: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Datoteke na delujočih strežnikih: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Skupno uporabnikov: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Skupno datotek: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
-msgstr "Zasedenost strežnikov: %.2f% %"
+msgstr "Zasedenost strežnikov: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Število deljenih datotek: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Skupna velikost deljenih datotek: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Povprečna velikost datoteke: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Operacijski sistem"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Ni prejeto"
 
@@ -6309,7 +6329,7 @@ msgstr "Ni veljavno število\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Ni veljavna koda (dolžina mora biti točno 32 znakov)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Zahteva spodletela z neznano napako."
 
@@ -6363,13 +6383,13 @@ msgstr "Povezan z %s %s %s"
 msgid "Now connecting"
 msgstr "Povezovanje"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "za požarnim zidom"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "v redu"
 
@@ -6796,21 +6816,21 @@ msgstr ""
 "Ta ukaz je opuščen in bo morda v prihodnosti odstranjen.\n"
 "Namesto njega uporabite »%s«.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule besedilni odjemalec"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Pretvarjanje starih kod NIRP v »%s« v 64b v »%s«."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "OPOZORILO: ime datoteke »%s« ni veljavno in je bilo spremenjeno v »%s«."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6885,7 +6905,7 @@ msgstr "Ni bilo mogoče izvesti ukaza »%s« za dogodek »%s«."
 msgid "Download completed"
 msgstr "Prejemanje zaključeno"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Polna pot datoteke."
 
@@ -6905,66 +6925,66 @@ msgstr "Velikost datoteke v bajtih."
 msgid "Cumulative download activity time."
 msgstr "Skupni čas aktivnega prejemanja."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Začeta je bila nova seja klepeta."
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Pošiljatelj sporočila."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Zmanjkalo je prostora"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Razdelek diska."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Napaka pri zaključevanju"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Obdelovanje datoteke številka %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Zahtevali ste kode delov (na voljo samo za datoteke > 9,5 MiB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s → Datoteka ne obstaja.\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, ustvarjalnik povezav eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Dobrodošli!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Vhodni parametri"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Ustvari kodo za datoteko"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Dodaj URL-je za to datoteko (neobvezno)"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Sem vnesite datoteko, za katero želite ustvariti povezavo eD2k."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6972,15 +6992,15 @@ msgstr ""
 "Sem vnesite URL, ki ga želite dodati povezavi eD2k. Na konec dodajte »/«, da "
 "aLinkCreator doda trenutno ime datoteke."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Odstrani"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Ustvari povezavo s kodami delov"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6988,81 +7008,81 @@ msgstr ""
 "Pomaga pri hitrejšem razširjanju novih in redkih datotek, za ceno večje "
 "dolžine povezave"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Koda MD4 datoteke"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "Koda datoteke eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "Povezava eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Shrani"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Skopiraj na odložišče"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Odpri"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Odpre datoteko za ustvaritev povezave eD2k zanjo"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Skopira ustvarjeno povezavo eD2k na odložišče"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Shrani kot"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Shrani ustvarjeno povezavo eD2k v datoteko"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "O aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Izberite datoteko za ustvaritev povezave eD2k zanjo"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Odložišča ni moč odpreti"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Zaenkrat ni ničesar za skopirati."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Izberite datoteko za ustvaritev povezave eD2k"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Ni mogoče odpreti "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Prosimo, vnesite neprazno ime datoteke"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Zaenkrat ni ničesar za shraniti."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7082,158 +7102,162 @@ msgstr ""
 "\n"
 "Razširja se pod pogoji licence GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Ustvarjanje kode ..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator dela za vas"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Izračunavanje kode MD4 ..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Izračunavanje kode eD2k ..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Preklicano."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Zaključeno v %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Ta URL ste že dodali."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Prosimo, vnesite neprazen URL"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Ni mogoče odpreti %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dni %i ur %i min. %i sek."
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KiB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MiB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GiB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TiB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, spletna statistika aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Najhitrejše prejemanje odkar teče wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Absolutno najhitrejše prejemanje med vsemi prejšnjimi sejami wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistem"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Ustavi samodejno osveževanje"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Shrani sliko spletne statistike"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Natisni sliko spletne statistike"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Nastavitve"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "O wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Zaženi samodejno osveževanje"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Samodejno osveževanje ustavljeno"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Samodejno osveževanje začeto"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Shrani statistično sliko"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Spletna statistika aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7241,11 +7265,11 @@ msgstr ""
 "Pri tiskanju se je pojavila težava.\n"
 "Morda privzeti tiskalnik ni pravilno nastavljen?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Tiskanje"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7263,324 +7287,324 @@ msgstr ""
 "\n"
 "Na voljo pod licenco GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "aMule ne teče."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule teče."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule teče, vendar ni povezave."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule se povezuje ..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Stanje aMule je neznano."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " teče že "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " je ustavljen."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " ni povezan."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " se povezuje..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " dela nekaj nenavadnega, preverite."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " je povezan z "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "ugasnjen"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " je povezan "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " z "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Skupno prejetega: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", poslanega: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "To sejo prejetega: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Prejemanje: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Pošiljanje: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Deljenih: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " datotek, Odjemalcev v vrsti: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Čas: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " na "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Povprečna obremenitev sistema (1-5-15 min.):"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Neprekinjeno delovanje: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Mapa, ki vsebuje datoteko amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Sem vnesite mapo, ki vsebuje datoteko amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Interval med osvežitvami v sekundah"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Ustvari statistično sliko ob vsaki osvežitvi"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Sem vnesite mapo, v katero želite ustvariti statistično sliko"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Periodično prenesi statistično sliko na strežnik FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "URL FTP-ja"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Pot na FTP-ju"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Sem vnesite URL vašega strežnika FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Sem vnesite mapo na strežniku FTP, v katero se naj shrani statistična slika"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Uporabnik"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Sem vnesite uporabniško ime za prijavo na vaš strežnik FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Sem vnesite geslo za prijavo na vaš strežnik FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Interval med osvežitvami prenosov na FTP v minutah"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Preveri veljavnost"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Mapa, ki vsebuje vašo datoteko s podpisom"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Mapa, v katerem je ustvarjena statistična slika"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Naloži predlogo <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Vrata HTTP spletnega strežnika"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Uporabi posredovanje vrat UPnP za vrata spletnega strežnika"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Vrata UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Uporabi stiskanje gzip"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Geslo za polni dostop do spletnega strežnika"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Geslo za goste na spletnem strežniku"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Dovoli dostop gostom"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Zavrni dostop gostom"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Naloži/shrani nastavitve spletnega strežnika od/na oddaljeni aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Pot do nastavitvene datoteke. NE UPORABITE NEPOSREDNO."
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Onemogoči tolmača PHP-ja (opuščeno)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Ponovno prevedi strani PHP ob vsaki zahtevi"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Spletni strežnik aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "povezava spletnega odjemalca sprejeta\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "NAPAKA: ni moč sprejeti povezave spletnega odjemalca\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Zahteve ni bilo mogoče izvesti zaradi napake: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Indeksne datoteke ni mogoče najti: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Seja potekla – zahtevek za prijavo\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Seja v redu, prijavljen\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Seja v redu, ni prijave\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Ni odprte seje – zahtevek za prijavo\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Seja ustvarjena – zahtevek za prijavo\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Obdelovanje zahteve [izvorno]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Geslo ni nastavljeno, prijava ne bo dovoljena."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Preverjanje gesla\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Koda gesla ni veljavna\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Geslo v redu\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Napačno geslo\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Niste navedli gesla. Prazno geslo ni dovoljeno.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Zahtevana odjava\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Obdelovanje zahteve [preusmerjeno]: "
 
@@ -7741,10 +7765,6 @@ msgstr "Obdelovanje zahteve [preusmerjeno]: "
 #~ msgstr "Skupno uporabnikov: %s | Skupno datotek: %s"
 
 #, fuzzy
-#~ msgid "HTTP download thread started"
-#~ msgstr "Zagon sinhronizacijske niti."
-
-#, fuzzy
 #~ msgid "Download size: %i"
 #~ msgstr "Prenosi dol (%i)"
 
diff --git a/po/sq.po b/po/sq.po
index 6a2a5ce..1116f1e 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sq\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-04-20 20:41+0200\n"
 "Last-Translator: Fation  <dj_barthezz at linuxmail.org lushnja_corps at hotmail."
 "com>\n"
@@ -42,64 +42,64 @@ msgstr "Userhash-i i specifikuar nuk eshte i vlefshem!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Deshtoi ne hapjen %s (%s)"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 #, fuzzy
 msgid "Now, exiting main app..."
 msgstr ""
 "\n"
 "Ne rregull, duke dalur %s...\n"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "E Deshtuar"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 #, fuzzy
 msgid "aMule shutdown completed."
 msgstr "Shkarkimi Perfundoi"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Konfirmimi i daljes"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "U pranua nje lidhje e jashtme e re"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "KUJDES"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -107,13 +107,13 @@ msgstr ""
 "Vendndodhja juaj eshte ndryshuar tek System Default i pershtatur per nje "
 "nderrim konfigurimi. Me vjen keq."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Informacion"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -121,39 +121,39 @@ msgstr ""
 "Ju nuk keni asnje server ne listen e serverave tuaj.\n"
 "Deshironi qe aMule te shkarkoje nje liste te re tani?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Shkarkim per listen e serverave"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Nuk mund te lidh portat tek adresa e dhene: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Porta %u nuk eshte me vlere. Ju do te keni ID te ulet\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -169,11 +169,11 @@ msgstr ""
 "KOntrolloni rrjetin tuaj per tu siguruar qe porta eshte hapur per hyrje dhe "
 "dalje."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Deshtoi te krijoje failin per Firmen Online"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Deshtoi te krijoje failin per Firmen Online te aMule-s"
 
@@ -228,136 +228,136 @@ msgstr ""
 "Kartela e faileve per Firmen Online qe ju specifikuat eshte e PAVLERE!\n"
 " Firma Online do te C'AKTIVIZOHET deri sa ju ta rregulloni tek Preferencat."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 #, fuzzy
 msgid "Server hostname notified"
 msgstr "Emri i Serverit:"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "GABIM: nuk mund te hapet logfile"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "KUJDES: faili i log-ve eshte bosh. Dicka nuk shkon."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Faili i Log eshte risetuar"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Mesazhe nga Serveri: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Deshtoi ne shkarkimin e listave nod."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Deshtoi te hapi failin per kontrollin e versionit qe sapo shkarkuat"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Fili per kontrollin e versionit eshte i demtuar"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Ju po perdorni nje version te vjeter te aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 "Versioni juaj i amUle eshte %i.%i-%i dhe versioni i fundit eshte %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Versioni i fundit mund te gjendet gjithmone tek http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr ""
 "KUJDES: Versioni juaj i aMule-s eshte i vjeteruar: %i.%i-%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Kopja juaj e aMule eshte azhornuar."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Deshtoi ne shkarkimin e failit per kontrollin e versionit"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "me ID te ulet"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "me ID te larte"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "I lidhur tek %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Duke u lidhur tek %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad filloi."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad u ndalua."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "I lidhur ne Kad (Ne rregull)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "I lidhur ne Kad (Me firewall)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "I shkeputur nga Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -365,11 +365,11 @@ msgstr ""
 "Rrjeti Kad nuk mund te perdoret nqs porta UDP eshte c'aktivizuar tek "
 "Preferencat, nuk po filloj."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Rrjeti Kad eshte c'aktivizuar tek Preferencat,nuk eshte duke u lidhur."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 #, fuzzy
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
@@ -382,7 +382,7 @@ msgstr ""
 "aMule normale, filloje aMule me kete opsion --ec-config ose vendosni celesin"
 "\"AcceptExternalConnections\" tek 1 ne failin ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -391,19 +391,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "GABIM: %s"
@@ -482,9 +482,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Mesazh"
 
@@ -492,7 +492,7 @@ msgstr "Mesazh"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Duke u lòidhur"
 
@@ -526,7 +526,7 @@ msgstr "Kad: Fikur"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Fshij"
 
@@ -543,7 +543,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Shkeputu nga rrjetet e lidhura"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Lidhu"
 
@@ -584,7 +584,7 @@ msgstr "Konfirmimi i daljes"
 msgid "Launch Command: "
 msgstr ""
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -599,81 +599,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Rrjetet"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Dritaret e rrjeteve"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Kerkimet"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Dritaret e kerkimeve"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Shkarkime"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Duke shkarkuar"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Dritarja e faileve te ndara"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Mesazhe"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Dritarja e mesazheve"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistikat"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Dritarja e grafikut te statistikave"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Preferencat"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Dritarja e rregullimeve te preferencave"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importimi"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Veglat per importimin e pjeseve te faileve"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Rreth"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Rreth/Ndihme"
 
@@ -693,7 +693,7 @@ msgstr "Nuk ka rrjet"
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -706,109 +706,109 @@ msgstr "Gabim Fatal: Deshtoi te krijoje Timerin"
 msgid "Connect to remote amule"
 msgstr "Lidhu me Remote te amule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 #, fuzzy
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Gabim Fatal: Deshtoi te krijoje Timerin"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 #, fuzzy
 msgid "Going to event loop..."
 msgstr "Tentative per rekuperimin e informacionit te failit..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Duke u lòidhur"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Lidhja deshtoi "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Te gjithe"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "E panjohur"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Deshtoi te rimarri failet e ndara nga perdoruesi '%s'"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (eMule e falsifikuar versioni %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr "(eMule e falsifikuar)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (eMule e falsifikuar)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (e bazuar ne eMule v0 %u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Emri: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Kerkuar: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -820,7 +820,7 @@ msgstr[1] ""
 "Statistikat e failit per kete sesion: U pranuan %d nga %d kerkesat, %s te "
 "transferuara\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -832,7 +832,7 @@ msgstr[1] ""
 "Statistikat e faileve per te gjitha sesionet: U pranua %d nga %d kerkesat, %"
 "s te transferuara\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Po kerkoni nje faili te panjohur"
 
@@ -981,12 +981,12 @@ msgid "Client Details"
 msgstr "Detajet e klientit"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "ID i ulet"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "ID i larte"
 
@@ -1038,29 +1038,29 @@ msgstr "E verifikuar - Ne rregull"
 msgid "Not Available"
 msgstr "Nuk eshte aktive"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Perdoruesi %s (%u) kerkoi listen e faileve tuaja te ndara -> U lejua"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 "Perdoruesi %s (%u) kerkoi listen e faileve tuaja te ndara -> Nuk u lejua"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Perdoruesi %s (%u) kerkoi listen e kartelave tuaja te ndara -> U lejua"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 "Perdoruesi %s (%u) kerkoi listen e kartelave tuaja te ndara -> Nuk u lejua"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1068,7 +1068,7 @@ msgstr ""
 "Perdoruesi %s (%u) kerkoi listen e faileve tuaja te ndara per kartelen %s -> "
 "u lejua"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1076,34 +1076,34 @@ msgstr ""
 "Perdoruesi %s (%u) kerkoi listen e faileve tuaja te ndara per kartelen %s -> "
 "nuk u lejua"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Perdoruesi %s (%u) ndan kartelen %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 "Perdoruesi %s (%u) dergoi nje liste te kartelave te ndara qe nuk u kerkua."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "Perdoruesi %s (%u) derrgoi listen e faileve te ndara per direktorine %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Perdoruesi %s (%u) mbaroi dergimin e listes se faileve te ndara"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Perdoruesi %s (%u) dergoi listen e faileve te ndara te padeshiruara"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1119,7 +1119,7 @@ msgstr "Emri i perdorimit"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Emri i failit"
 
@@ -1160,33 +1160,33 @@ msgstr "Automatike [Normale]"
 msgid "Auto [Hi]"
 msgstr "Automatike [Larte]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Shume ngadale"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Ngadale"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normale"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "E larte"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Shume e larte"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Leshim"
 
@@ -1203,12 +1203,12 @@ msgid "Queue Full"
 msgstr "Radha ne pritje eshte plote"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Ne radhe"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Duke shkarkuar"
 
@@ -1268,7 +1268,7 @@ msgstr "Server Lokal"
 msgid "Remote Server"
 msgstr "Server i larget"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1294,7 +1294,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Te kompletuara"
 
@@ -1335,11 +1335,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Madhesia"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Te transferuara"
 
@@ -1352,17 +1352,17 @@ msgid "Progress"
 msgstr "Avancimi"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Burime"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Perparesia"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Gjendja"
@@ -1387,7 +1387,7 @@ msgstr "Jeni te sigurte qe deshironi te fshini failin e zgjedhur?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Jeni te sigurte qe deshironi te fshini failet e zgjedhura?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1395,7 +1395,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Automatike"
 
@@ -1447,11 +1447,11 @@ msgstr "Trego te gjithe komentet"
 msgid "Copy magnet URI to clipboard"
 msgstr "Kopjo magnetin URI ne shenimet"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Kopjo feedback ne shenimet"
 
@@ -1467,34 +1467,34 @@ msgstr "Vendos tek kategoria"
 msgid "&Open the file"
 msgstr "&Hap failin"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Futni nje emer te ti per kete fail:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Riemertim i failit"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Shkarkimet (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Parashikimi i failit"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "GABIM: Deshtoi te luaj media-player te jashtem! Komanda: `%s'"
@@ -1599,29 +1599,29 @@ msgstr "LIdhjet e jashtme u c'aktivizuan sepse fjalekalimi ishte bosh|"
 msgid "External connections disabled in config file"
 msgstr "Lidhjet e jashtme u c'aktivizuan ne failin e konfigurimeve"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "U pranua nje lidhje e jashtme e re"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Lidhja e jashtme nuk u pranua sepse fjalekalimi tek preferencat ishte bosh!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Duke lidhur klientin: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Version i panjohur"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1629,7 +1629,7 @@ msgstr ""
 "ID-ja i versionit EC jo korrekt,duhet te kete mospershtatje binaresh. Perdor "
 "Core dhe Remote nga i njejti Snapshot."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1638,175 +1638,175 @@ msgstr ""
 "NUk mund te lidheni me nje version SVN tek nje version i perfunduar ne "
 "menyre arbitrare| *sigh* crash i mundshem u evitua"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Version protokoli jo i rregullt."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Munfon tag-u i versionit te protokolit."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "Autentifikimi deshtoi."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "Autentifikimi deshtoi."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "Kerkese jo e rregullt, fillimisht duhet te identifikoheni."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Hyrja lejohet."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Filtron mesazhet nga klienta t èanjohur"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Tentative per hyrje e paautorizuar. Lidhja u mbyll."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Komanda e Remote per pjeset e faileve deshtoi: Nuk u gjet FileHash: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Nuk u gjet FileHash: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OOPS! Gabim ne procesimin e OpCode|"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Serveri nuk u shtua"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "Serveri nuk u gjend: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "nevojitet percaktimi i serverit qe do te levizet"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Kerkimi vazhdon. Rezultate ne ardhje!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Kerkimi WebSearch nga Remote eshte i kote."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "NUk ka pika per grafike."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Klienti juaj nuk eshte i konfiguruar per kete nivel detaji."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Jam duke dalur."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Lidhje e jashtme: Duke shtuar linkun '%s'."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Link i pavlere ose qe eshte ne liste."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Faili nuk u gjete."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Emri i failit i pavlere."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "E pamundur te riemeroje failin."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad-i eshte c'aktivizuar tek Preferencat."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Jam i lidhur ne Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Duke u lidhur me Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Te gjithe rrjetet jane c'aktivizuar."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "I shkeputur nga Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "OpCode e pavlere (version protokoli i gabuar?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Shtim i panjohur '%s' per komanden '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "KOmande e panjohur '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1814,7 +1814,7 @@ msgstr ""
 "\n"
 "Kjo komande nuk mund te kete nje argument.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1822,7 +1822,7 @@ msgstr ""
 "\n"
 "Kjo komande duhet te kete nje argument.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1831,7 +1831,7 @@ msgstr ""
 "Kjo komande nuk eshte komplete, ju duhet te perdorni nje nga shtimet me "
 "poshte.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1839,11 +1839,11 @@ msgstr ""
 "\n"
 "Shtime ne dispozicion:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Komanda ne dispozicion:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1854,17 +1854,17 @@ msgstr ""
 "Te gjitha komandat mund te shkruhen me shkronja te medha ose te vogla.\n"
 "Shtyp '%s <command>' per te marre informacion te detajuar ne <command>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Del nga aplikimi."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Trego ndihme."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1872,7 +1872,7 @@ msgstr ""
 "Per te marre ndihme per nje komande shtyp help <command> .\n"
 "Per te marre listen e plote te komandave shtyp help .\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1883,48 +1883,48 @@ msgstr ""
 "Perdor '%s' per listen e komandave\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Gabim Sintakse!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Gabim ne punimin e komandes - nuk duhet qe te ndodhi me! Raportoni Bug-un ju "
 "lutem\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Kjo komande nuk duhet te kete parametra."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Kjo komande duhet te kete nje parameter."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Argument i pavlere."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Kjo eshte nje komande jo komplete."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Shtyp '%s' per te marre me shume ndihme.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Ky eshte %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Ky eshte %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1932,7 +1932,7 @@ msgstr ""
 "\n"
 "Duke krijuar klientin...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1941,7 +1941,7 @@ msgstr ""
 "\n"
 "Ne rregull, duke dalur %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1954,49 +1954,49 @@ msgstr ""
 "ose ne nje linje-komande, ose futni nje kur kerkohet.\n"
 "Duke dalur.\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Trego kete tekstin ndihmues."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Host ne te cilin aMule vepron. (default: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Porta e aMule per Lidhjet e Jashtme. (default: 4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Fjalekalimi per Lidhjet e Jashtme."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Lexo rregullimin nga faili."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Mos printo asnje output tek stdout"
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Behu fjaleshume - trego dhe mesazhet e Debug-ut."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Vendos Locale-n e programit (gjuha)"
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 "Shkruaj opsionet e lenjes se komandave tek faili i konfigurimeve"
 "(rregullimeve)"
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Krijo nje fail per konfigurimin te bazuar ne ate te aMule-s."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Printo versioni ne programit."
 
@@ -2009,8 +2009,8 @@ msgstr "Detajet e failit"
 msgid "%.1f%% done"
 msgstr "%.2f%% te mbaruara"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2027,7 +2027,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Shkoket"
 
@@ -2158,32 +2158,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Duke shkarkuar %s"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Rilidhu ne Server"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2215,7 +2215,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Deshtoi te shkarkoje listen e serverave nga %s"
@@ -2263,7 +2263,7 @@ msgstr[1] "%u linjat e deformuara u skarcuan."
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2280,105 +2280,105 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nyjet (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "IP i pavlefshem per bootstrap"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Porte e pavlefshme per bootstrap"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Ju lutem plotesoni te gjitha fushat e kerkuara"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Jeni te sigurte qe deshironi te shkarkoni nje fail te ri nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Duke bere keshtu te gjitha nyjet aktuale do te hiqen dhe do te rifillohet "
 "lidhja ne Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Te vazhdoj?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: fjala qe u kerkua eshte shume e shkurter"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "Po lexoj %u kontakt Kad"
 msgstr[1] "Po lexoj %u kontakte Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "U shkruajt %d kontakt Kadi"
 msgstr[1] "U shkruajten %d kontakte Kadi"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Emri i failit"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2404,71 +2404,76 @@ msgstr "Version i panjohur"
 msgid "Unable to get error description for error %d"
 msgstr "Kujdes: E pamundur te lexohet skin nga faili '%s'"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Hashing"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Duke perfunduar"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "E kompletuar"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Ne pritje"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "E gabuar"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Duke pritur"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Ju duhet te specifikoni nje fjalekalim jo bosh "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Fjalekalim i gabuar, nuk eshte nje hash MD5 "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Lidhja deshtoi"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Lidje e jashtme: Pergjigje e keqe nga serveri. Lidhja u mbyll."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Sukses! Lidhja u vendos ne aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Sukses! Lidhja u vendos."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Fjalekalimi per Lidhjet e Jashtme."
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Rifreskimi Automatik filloi"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2477,16 +2482,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Mbylle"
 
@@ -2494,8 +2499,8 @@ msgstr "Mbylle"
 msgid "Cut"
 msgstr "Ndaj"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopjo"
 
@@ -2504,7 +2509,7 @@ msgid "Paste"
 msgstr "Ngjit"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Pastro"
 
@@ -2514,7 +2519,7 @@ msgstr "Zgjidhi te gjitha"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2591,7 +2596,7 @@ msgid "ServerIP: "
 msgstr "IP-ja e Serverit: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "I palidhur"
 
@@ -2626,7 +2631,7 @@ msgstr "Firma Online: E aktivizuar"
 msgid "Online Signature: Disabled"
 msgstr "Firma Online: E c'aktivizuar"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Uptime: %s"
@@ -2667,7 +2672,7 @@ msgstr "Fshih aMule"
 msgid "Show aMule"
 msgstr "Trego aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Dlje"
 
@@ -2752,7 +2757,7 @@ msgstr "Kerko"
 msgid "Name:"
 msgstr "Emri:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tipi"
 
@@ -2780,38 +2785,38 @@ msgstr "Filtrim"
 msgid "File Type"
 msgstr "Lloji i failit"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Kushdo"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arkive"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Audio"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Imazhet-CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Figurat"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programe"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Tekste"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Video"
 
@@ -2832,11 +2837,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2864,7 +2869,7 @@ msgstr "Nderro pozicionin e rezultateve"
 msgid "Hide Known Files"
 msgstr "Fshi failet e njohura"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Fillo"
 
@@ -2922,7 +2927,7 @@ msgstr "Emri i plote :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2946,7 +2951,7 @@ msgstr "Gjendja e pjeseve te failit :"
 msgid "Last seen complete :"
 msgstr "Hera e fundit qe u pa i perfunduar :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Transferimi"
 
@@ -3032,27 +3037,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Cilesia e failit"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "E pavotuar"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Pa vlere / E prishur / Falso"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "I varfer"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Mjaftueshem"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Mire"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "E perkryer"
 
@@ -3097,7 +3102,7 @@ msgid "Userhash :"
 msgstr "Userhash :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Shto"
 
@@ -3331,9 +3336,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Shfleto"
 
@@ -3419,7 +3424,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3537,7 +3542,7 @@ msgstr "Futni ketu hapesiren minimale qe deshironi per diskun."
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Shpeto 10 burime per failet e rralla (< 20 burime)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Ngarkimi"
 
@@ -3782,7 +3787,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Aktivizo port forwarding UPnP tek porta EC"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Fjalekalim"
 
@@ -3865,8 +3870,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Zgjidh ngjyren per kete kategori (e zgjedhur aktualisht) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Rivendos"
 
@@ -4269,88 +4274,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Aktivizon logging-un e detajuar te mesazheve te debug-ut."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Hap failin"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Kategorite e Mesazheve:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Ne pritje..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Shton importimet"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Provoji perseri te perzgjedhurit"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Zhvendos te perzgjedhurat"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Ngarkime Aktive :"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Fshih failet e ndara"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Zgjidh filtrin e shikimit"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Ngarkime Aktive"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Trego klientet"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Lista e Ringarkimeve"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Ringarko failet e ndara"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Dergo"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Dergo mesazhin e specifikuar."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Mbylle kete sesion chati."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Lidhu me ndonje server dhe/ose Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "File te ndara"
 
@@ -4359,136 +4369,136 @@ msgstr "File te ndara"
 msgid "Disabled [%s]"
 msgstr "Jo aktive [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "bytes"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/sec"
 msgstr[1] "bytes/sec"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sekonda"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "minuta"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "ore"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Dite"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "te gjithe"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "te gjithe te tjeret"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "E pakompletuar"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "E ndalur"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arkivi"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Tekst"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktive"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Duke importuar %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Duke lexuar kartelen temp"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Rekuperim informacioni themelor nga informacioni i failit ne shkarkim"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Duke krijuar destinacionin e failit"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Duke ngarkuar te dhena nga nje fail i shkarkuar i vjeter (%u te %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 "Shpetimi i blloqeve te dhenave ne nje fail shkarkimi te vetem (%u te %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Rekuperim informacioni mbi burimet e failit ne shkarkim"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Shtim shkarkimi dhe duke shpetuar partfile-n e re"
 
@@ -4504,12 +4514,12 @@ msgstr "Gjendja"
 msgid "Filehash"
 msgstr "Filehash"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disku: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4517,14 +4527,14 @@ msgstr ""
 "Ju lutem zgjdhni nje kartele per te kerkuar per shkarkimet e perkohshme! "
 "(bejne pjese edhe nenkartelat)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "Deshironi qe burimet e faileve te importuara ne menyre te suksesshme te "
 "fshihen?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Te heq burimet?"
 
@@ -4641,7 +4651,7 @@ msgstr "Partfile %s (%s) ka nje fail seeds boshe"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Gabim ne leximin e failit seeds tek partfile-t (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4656,274 +4666,274 @@ msgstr[1] ""
 "U gjend pjese e prishur (%d) ne %d pjeset e failit %s - Rezultati Hash i "
 "Failit !%s| Hash i Failit |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "U gjend pjese e kompletuar (%i) ne %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Hashing i ri i kompletuar %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Shkarkim i perfunduar: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Duke fshire failin: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 "KUJDES: Nuk ka hapesire te mjaftueshme ne disk! Duke vene ne pushim failet: %"
 "s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Pjesa e shkarkuar %i eshte e prishur ne failin: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH: Rekuperohet pjesa e demtuar %i per %s -> Bytes te kursyera: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "E vendosur nga sistemi"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Shqip"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabe"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Estoneze"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baske"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bullgare"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katallanase"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Kineze (E thjeshtesuar)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "KIneze (Tradicionale)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Kroate"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Ceke"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Daneze"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Holandeze"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Anglisht (G.B.)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estoneze"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finlandeze"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Frengjisht"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galiciane"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Gjermanisht"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Greqisht"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Cifut"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Hungarisht"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italiane"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italiane (Zvic)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonisht"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Koreane"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Lituane"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norvegjeze (Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polake"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugeze"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugeze (Braziliane)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Ruse"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Sllovene"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spanjolle"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Suedeze"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Turqisht"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Gjuha"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Nuk eshte ne dispozicion"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "Porta TCP nuk mund te jene me te medha se 65532  sepse socket i UDP eshte "
 "fiksuar ne TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Do te perdoret porta e vendosur (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Lidhje"
 
@@ -4931,7 +4941,7 @@ msgstr "Lidhje"
 msgid "Directories"
 msgstr "Direktorite"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servera"
 
@@ -4982,7 +4992,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4998,26 +5008,26 @@ msgstr ""
 "aMule do te punoje ne rregull pa modifikuarr asnje nga\n"
 "keto rregullime"
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Lloji i Proksit(Proxy) qe ju po lidheni"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5025,36 +5035,41 @@ msgstr ""
 "aMule duhet qe te ristartohet qe keto ndryshime te aplikohen:\n"
 " \n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "Porta TCP eshte ndryshuar.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "Porta UDP eshte ndryshuar.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Lidhja e jashtme u mbyll."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "U pranua nje lidhje e jashtme e re"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Lidhja e jashtme u mbyll."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protokolli i Turbullimit"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5062,26 +5077,26 @@ msgstr ""
 "Ju keni lejuar lidhjet e jashtme por nuk keni specifikuar nje fjalekalim.\n"
 "Lidhjet e jashtme nuk mund te lejohen derisa te specifikohet nje fjalekalim."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Gjuha ndryshoi.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "Kartela Temp ndryshoi.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "Te gjithe rrjetet jane c'aktivizuar."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5089,7 +5104,7 @@ msgstr ""
 "Kad nuk mund te filloje nqs porta juaj UDP eshte c'aktivizuar.\n"
 "Aktivizoni porten UDP ose c'aktivizoni Kad-in."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5099,7 +5114,7 @@ msgstr ""
 "Ju duhet te ristartoni aMule-n tani.\n"
 "Nqs nuk e ristartoni tani mos u anko nqs te ndodh dicka e keqe.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5109,41 +5124,41 @@ msgstr ""
 "Ju lutem mbushni te pakten nje URL te vlefshme ne failin e server.met.\n"
 "Klikoni ne butonin \"List\" per te futur nje URL."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Failet e perkohshme"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Failet e shkarkuara"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Firma online"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Zgjidhni nje kartele per %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Shfletoni per nje videoplayer"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Perzgjidhni shfletuesin"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Te ekzekutueshme%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5151,77 +5166,77 @@ msgstr ""
 "Futni ketu URL-te per te shkarkuar failet server.met.\n"
 "Vetem nga nje URL per c'do linje."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Intervali i azhornimit: %d sekonde"
 msgstr[1] "Intervali i azhornimit: %d sekonda"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Koha per mesataren grafike: %d minute"
 msgstr[1] "Koha per mesataren grafike: %d minuta"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Shkalla grafike e lidhjeve: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Madhesia buffer e failit: %d byte"
 msgstr[1] "Madesia Buffer e failit: %d bytes"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Madhesia e radhes se ngarkimit: %d klienti"
 msgstr[1] "Madhesia e radhes se ngarkimit: %d klientet"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Intervali i rifreskimit te lidhjeve te serverit: %d minute"
 msgstr[1] "Intervali i rifreskimit te lidhjeve te serverit: %d minuta"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Intervali i rifreskimit te lidhjeve te serverit: I c'aktivizuar"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "c'aktivizo"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Ekzekuto komanden ne kete ngjarje `%s' "
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Lejo ekzekutimin e komandes ne core"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "KOmanda Core:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Lejo ekzekutimin e komandes ne GUI"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Komanda GUI:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Variacionet qe vijojne do te rivendosen:"
 
@@ -5251,7 +5266,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Gabim i paparashikuar duke kerkuar Kad: "
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "FailiID"
 
@@ -5365,7 +5380,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Lidhja tek %s (%s:%i) nuk u vendos per time-out."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5396,51 +5411,51 @@ msgstr ""
 "Faili i server.met nuk eshte i vlefshem, u gjet nje TAG i versionit i "
 "pavlere: 0x%x, madhesia %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i u gjet server ne server.met"
 msgstr[1] "%i u gjeten servera ne server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d serveri i shtua"
 msgstr[1] "%d serverat u shtuan"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Gabim IO duke lexuar failin known.met: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Serveri nuk u shtua: [%s:%d] nuk specifikon nje porte te vlefshme."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Serveri nuk u shtua: Ip-ja e [%s:%d] eshte e filtruar ose e pavlere."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 "Serveri nuk u shtua: Servera me Ip qe mungon:Porta [%s:%d] u gjet ne liste."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Serveri u shtua: Server tek é%s.%d* duke perdorur emrin '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5448,51 +5463,51 @@ msgstr ""
 "Ju jeni i lidhur tek serveri qe deshironi te fshini. ju lutem ne fillim "
 "shkeputuni prej tij."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Deshtoi te hapi '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Deshtoi te shpetoje server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "URL e pavlere"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Mbaroi se shkarkuari listen e serverave nga %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Duke filluar shkarkimin e listes se serverave nga %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "Nuk eshte gjetur nje url per auto-shkarkimin e server.met ne adresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Deshtoi te shkarkoje listen e serverave nga %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5529,7 +5544,7 @@ msgid "Static"
 msgstr "E qendrueshme"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Versioni"
 
@@ -5555,8 +5570,8 @@ msgstr "Jeni te sigurte qe doni te fshini kete server te qendrueshem %s"
 msgid "Servers (%i)"
 msgstr "Serverat (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Serveri"
 
@@ -5613,85 +5628,85 @@ msgstr ""
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Jeni te sigurte qe deshironi te fshini serverat e zgjedhur?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Klienti i ri eshte %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "KUJDES: Ju keni marre nje ID te ulet!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tMbase ngaqe ju jeni mbas nje firewalli ose routeri."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tPer me shume informacion ju lutem vizitoni http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "U moren Informacione serveri te panjohura! - shume e shkurter"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "U mor %d server i ri"
 msgstr[1] "U moren %d servera te rinj"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Shpetimi i listes se serverit u perfundua."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Serveri nuk pranoi komanden e fundit"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Paketa Bogus te marra nga serveri: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 "Gabim qe nuk mund te menaxhohet derisa punohet me paketat nga serveri: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 "Nuk eshte e mundur te krijohet nje thread per te zgjidhur DNS per tu lidhur "
 "tek %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "IP-ja e Serverit %s ( %s) eshte e filtruar.  Nuk po lidhet."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "duke perdorur protokollin e turbullimit."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "Duke u lidhur tek %s ( %s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5882,85 +5897,90 @@ msgstr "Emri i failit"
 msgid "Shares File List"
 msgstr "File te ndara"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Kerkesa"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Kerkesa te pranuara"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Te dhena te transferuara"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Raporti i ndarjeve"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Pjese te marra"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Burime te kompletuara"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Direktoria Path"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Shti Komento/Klasifiko"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Redakto Koment/Klasifiko"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Riemerto"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Shto failet ne koleksionin e listes per transferim"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Kopjo magnetin &URI ne shenime "
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopjo linkun ED2k ne shenime (&AICH informacion)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr ""
 "Ju keni nevoje per nje ID te larte per te krijuar nje sourcelink te vlefshem"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Faile te ndara (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[File ne shkarkim]"
 
@@ -5969,235 +5989,235 @@ msgstr "[File ne shkarkim]"
 msgid "Remote File Name"
 msgstr "Emri i failit"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Vlera te ngarkuara (Sesioni (Total)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Overhead-i Total (Paketa): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Overhead-i i faileve te kerkuara (Paketa): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Overhead-i i nderrimit te burimit (Paketa): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Overhead-i i Serverit (Paketa): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Overhead i Kad (Paketa): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Ngarkime Aktive: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Ngarkime ne pritje: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Sesione totale ngarkimi me sukses: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Sesione totale ngarkimi te deshtuara: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Mesatarja kohore e ngarkimeve: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Te dhenat e shkarkimeve (Sesioni(Total)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Burime te gjetura: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Shkarkime Aktive (pjeset): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Raporti NG:SHK i sesionit (Total): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Rilidhjet: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Koha qe nga transferimi i pare: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "I lidhur ne server qe prej: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Lidhje Aktive (vleresimi): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Kufiri maksimal i lidhjeve u arrit: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Mesatarja e lidhjeve (vleresim): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Kulmi i lidhjeve (vleresim): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Kliente"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Madhesi e panjohur"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Te filtruar"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "Te larguar"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Totale: %i Te njohur: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Servera qe punojne: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Servera te deshtuar: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Totale: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Servera te fshire: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Servera te filtruar: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Perdorues ne serverat qe punojne: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Faile ne serverat qe punojne: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Perdorues Total: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Totali i Faileve: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Zenia e Serverit: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Numeri i faileve te ndara: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Totali i madhesise se faileve te ndara: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Sistemi Operativ"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Jo te marra"
 
@@ -6257,7 +6277,7 @@ msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 "Nuk eshte hash i vlefshem (gjatesia duhet te jete ekzaktesisht 32 shkronja)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Kerkesa deshtoi me nje gabim te panjohur. "
 
@@ -6311,13 +6331,13 @@ msgstr "I lidhur tek %s %s %s"
 msgid "Now connecting"
 msgstr "Tani po lidhem"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "firewalled"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6757,22 +6777,22 @@ msgstr ""
 "Kjo eshte nje komande e pavlere dhe mund te largohet ne te ardhmen.\n"
 "Perdor '%s' ne vendin e saj.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Teksti i klientit aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Duke kembyer hashsetet e vjetra AICH ne '%s' 64b ne '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 "KUJDES: Emri i failit '%s' eshte i pavlere dhe eshte riemeruar ne '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "KUJDES: Faili '%s' ekziston,faili i ri i riemertuar ne '%s'."
@@ -6844,7 +6864,7 @@ msgstr "Deshtoi te ekzekutoje komanden `%s' ne `%s' ngjarjet."
 msgid "Download completed"
 msgstr "Shkarkimi Perfundoi"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Path-i i plote per tek faili"
 
@@ -6864,80 +6884,80 @@ msgstr "Madhesia e failit ne bytes."
 msgid "Cumulative download activity time."
 msgstr "KOha permbledhese e shkarkimeve."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Sesion i ri chati filloi"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Derguesi i mesazheve."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Jashte nga hapesira"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Particioni i diskut."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Gabim ne perfundim"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Numeri i failit ne proces %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Ju kerkuat hashin e pjeseve (Vetem per failet e perdorur > 9.5 MB)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Fail qe nuk ekziston !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Miresevini!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Parametrat e hyrjes"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Faili per ekzaminim"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Shtoni URLs opsionale per kete fail"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Hiq"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Krijo lidhje me pjeset-hash"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6945,81 +6965,81 @@ msgstr ""
 "Ndihmo te shperndash sa me shpejte failet e reja dhe te vyera, ne kembim te "
 "nje lidhjeje me te gjate"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "Hash MD4"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Shpeto"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Kopjo ne shenime"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Rreth aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Asgje per te kopjuar tani !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "E pamundur te hapet "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Ju lutem, futni nje emer faili jo boshe"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Asgje per te shpetuar tani !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7031,158 +7051,162 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Hashing..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "i anulluar !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "I perfunduar ne %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Ju e keni futur edhe me pare kete URL !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Ju lutem, futni nje URL jo boshe"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "I paafte per te hapur %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i dita(et) %i ora(et) %i min %i s"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uo %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02umin %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, Statistikat Online te aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Shpejtesia maksimale e DL qe kur eshte aktive wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "Shpejtesia maksimale e DL ne aktivizimet e meparshme"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistem"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Ndalo Rifreskimin Automatik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Shpeto imazhet e statistikave online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Printo imazhet e statistikave online"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Rregullimet e preferencave"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Rreth wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Fillo Rifreskimin Automatik"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Rifreskimi Automatik u ndalua"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Rifreskimi Automatik filloi"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Shpeto imazhet e statistikave"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Statistikat Online te aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7190,11 +7214,11 @@ msgstr ""
 "Kishte nje problem duke printuar.\n"
 " Mos valle printeri juaj nuk eshte instaluar ne menyre korrekte?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Duke printuar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7212,326 +7236,326 @@ msgstr ""
 "\n"
 "Shperndare nga GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule nuk eshte duke punuar..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule eshte duke punuar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule eshte duke punuar,por e shkeputur"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule po lidhet..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh Oh, Statusi i aMule eshte i panjohur..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr "ka punuar per "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " ka ndaluar !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " nuk eshte lidhur !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " po lidhet..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " eshte duke bere dicka te cuditshme, kontrolloje !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " eshte lidhur me "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "Fikur"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr "  Eshte ndezur "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " me "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Shkarkimi Total: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Ngarkimi: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Sesioni i Shkarkimit: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Shkarkim: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Ngarkim: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Te ndara: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " faili(et), Klientet ne pritje: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Koha: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " Ndezur "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Ngarikimi mesatar i sistemit (1-5-15 minuta): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Uptime i Sistemit: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Direktoria permban failin amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Futni ketu direktorine se ku keni vendosur failin e amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Intervali i rifreskimit ne sekonda"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Prodho nje imazh te statistikave ne c'do rifreskim ngjarje"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 "Futni ketu direktorine se ku deshironi te prodhoni nje imazh te statistikave"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Ngarko periodikisht imazhin tuaj te statistikave ne serverin FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "Url e FTP-se"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "Rruga e FTP-se"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Futni ketu URL e serverit tuaj FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Futni ketu direktorine e serverit FTP ne te cilen doni te kopjoni imazhin "
 "tuaj te statistikave"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Perdorues"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Futni ketu emrin e Perdoruesit per te hyre ne serverin FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Futni ketu fjalekalimin e Perdoruesit per te hyre ne serverin FTP"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Intervali i rifreskimit te FTP-se ne minuta"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Konvalido"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Kartela qe mban failoin e firmes"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Kartela ku prodhohet imazhi i statistikave"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Duke ngarkuar modelin <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "Porta UPnP"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Perdor kompresimin gzip "
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Lejo hyrjen e guest-ve"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Ndalo hyrjen e guest-ve"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Rruga per konfigurimin e failit te aMule. MOS E PERDORNI DIREKT!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "C'aktivizo interpretuesin e PHP (nuk aprovohet)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Rimbush faqet PHP ne c'do kerkese"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Web Server i aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Kerkesa deshtoi me kete gabim: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Indeksi i failit nuk u gjet:  "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Sesioni mbaroi - kerkohet hyrja\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Sesioni ne rregull, u futet ne\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Sesioni ne rregul,nuk u futet ne\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Nuk ka sesion te hapur - kerkese per hyrje\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Sesioni u krijua - kerkohet hyrja\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Perpunim i kerkeses [origjinale]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Duke kerkuar fjalekalimin\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Hash-i i fjalekalimit nuk eshte i rregullt\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Fjalekalimi ne rregull\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Fjalekalim i gabuar\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Ju nuk futet asnje fjalekalim: Vendi bosh nuk lejohet.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Dalja e kerkuar\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Perpunimi i kerkeses [e ridrejtuar]: "
 
@@ -8082,9 +8106,6 @@ msgstr "Perpunimi i kerkeses [e ridrejtuar]: "
 #~ msgid "Copy ED2k link to clipboard (Hostname) (With &Crypt options)"
 #~ msgstr "Kopjo linkun ED2k ne shenime (Hostname) (Me opsionet e &Kriptimit)"
 
-#~ msgid "Copy ED2k link to clipboard (&AICH info)"
-#~ msgstr "Kopjo linkun ED2k ne shenime (&AICH informacion)"
-
 #~ msgid "Warning"
 #~ msgstr "Kujdes"
 
diff --git a/po/sv.po b/po/sv.po
index 8b5530e..4b87613 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2007-03-12 22:49+0100\n"
 "Last-Translator: Daniel Nylander <po at danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
@@ -35,64 +35,64 @@ msgstr "Angiven userhash är inte giltig!"
 msgid "Failed to open ED2KLinks file."
 msgstr "Kunde inte öppna skalfil: %s"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr ""
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 #, fuzzy
 msgid "Now, exiting main app..."
 msgstr ""
 "\n"
 "Ok, avslutar %s...\n"
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr ""
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Misslyckades"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr ""
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 #, fuzzy
 msgid "aMule shutdown completed."
 msgstr "aMule är inte ansluten!"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr ""
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 #, fuzzy
 msgid ""
 "\n"
 "EC configuration"
 msgstr "Bekräfta avslutning"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 #, fuzzy
 msgid "Password set and external connections enabled."
 msgstr "Acceptera externa anslutningar"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "VARNING"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -100,13 +100,13 @@ msgstr ""
 "Din lokal har ändrats till systemets standardlokal på grund av en "
 "konfigurationsändring. Ursäkta."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Info"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -114,40 +114,40 @@ msgstr ""
 "Du har inga servrar i serverlistan.\n"
 "Vill du att aMule ska hämta en ny lista nu?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 #, fuzzy
 msgid "Server list download"
 msgstr "Serverlista"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr ""
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
 "aMule using --enable-webserver and run make install"
 msgstr ""
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr ""
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr ""
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Port %u är inte tillgänglig. Du kommer att bli LOWID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -157,11 +157,11 @@ msgid ""
 "Check your network to make sure the port is open for output and input."
 msgstr ""
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Misslyckades med att skapa OnlineSig File"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Misslyckades med att skapa aMule OnlineSig File"
 
@@ -208,144 +208,144 @@ msgid ""
 " OnlineSignature will be DISABLED until you fix it on preferences."
 msgstr ""
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr ""
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr ""
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "FEL: kan inte öppna loggfilen"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "VARNING: loggfilen är tom. Någonting är fel."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Loggen har nollställts"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Servermeddelande: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Misslyckades med att hämta nodlistan."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Misslyckades med att öppna den hämtade versionskontrollfilen"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Skadad versionskontrollfil"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Du använder en utdaterad version av aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr ""
 "Din version av aMule är %i.%i.%i och den senaste versionen är %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Den senaste versionen kan alltid hittas på http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "VARNING: Din version av aMuled är utdaterad: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Din kopia av aMule är uppdaterad."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Misslyckades med att hämta versionskontrollfilen"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr ""
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr ""
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr ""
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "med LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "med HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Ansluten till %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Ansluter till %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr ""
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad startad."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad stoppad."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Ansluten till Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Ansluten till Kad (brandvägg)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Frånkopplad från Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr ""
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr ""
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -353,7 +353,7 @@ msgid ""
 "the file ~/.aMule/amule.conf"
 msgstr ""
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -362,19 +362,19 @@ msgid ""
 "password. More information can be found at http://wiki.amule.org"
 msgstr ""
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr ""
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr ""
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "FEL: %s"
@@ -452,9 +452,9 @@ msgstr ""
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr ""
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Meddelande"
 
@@ -462,7 +462,7 @@ msgstr "Meddelande"
 msgid "aMule dialog destroyed"
 msgstr ""
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Ansluter"
 
@@ -500,7 +500,7 @@ msgstr " Kad: "
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Avbryt"
 
@@ -519,7 +519,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Koppla från nätverket."
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Anslut"
 
@@ -562,7 +562,7 @@ msgstr "Bekräfta avslutning"
 msgid "Launch Command: "
 msgstr "Kommando: %s"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr ""
 
@@ -577,81 +577,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr ""
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Nätverk"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Sökningar"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr ""
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Hämtningar"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Hämtar"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr ""
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Meddelanden"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Statistik"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Inställningar"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr ""
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Importera"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr ""
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Om"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Om/Hjälp"
 
@@ -671,7 +671,7 @@ msgstr ""
 msgid "aMule remote control"
 msgstr ""
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -683,107 +683,107 @@ msgstr ""
 msgid "Connect to remote amule"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 #, fuzzy
 msgid "Connecting..."
 msgstr "Ansluter"
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Anslutningen misslyckades "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr ""
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Alla"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Okänd"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr ""
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr ""
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Fake eMule version %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Fake eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Fake eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (baserad på eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Smeknamn: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr ""
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -791,7 +791,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -799,7 +799,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr ""
 
@@ -941,12 +941,12 @@ msgid "Client Details"
 msgstr "Klientdetaljer"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -998,64 +998,64 @@ msgstr "Verifierad - OK"
 msgid "Not Available"
 msgstr "Inte tillgänglig"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr ""
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr ""
@@ -1070,7 +1070,7 @@ msgstr "Användarnamn"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Filnamn"
 
@@ -1111,33 +1111,33 @@ msgstr "Auto [No]"
 msgid "Auto [Hi]"
 msgstr "Auto [Hö]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Mycket låg"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Låg"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Hög"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Mycket hög"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Utgåva"
 
@@ -1154,12 +1154,12 @@ msgid "Queue Full"
 msgstr ""
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr ""
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Hämtar"
 
@@ -1219,7 +1219,7 @@ msgstr "Lokal server"
 msgid "Remote Server"
 msgstr "Fjärrserver"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1245,7 +1245,7 @@ msgid "Search Result"
 msgstr ""
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Färdig"
 
@@ -1286,11 +1286,11 @@ msgid "Part"
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Storlek"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Överfört"
 
@@ -1303,17 +1303,17 @@ msgid "Progress"
 msgstr "Förlopp"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Källor"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Prioritet"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Status"
@@ -1340,7 +1340,7 @@ msgstr "Är du säker på att du vill ta bort alla servrar?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Är du säker på att du vill ta bort alla servrar?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1348,7 +1348,7 @@ msgid ""
 msgstr ""
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Auto"
 
@@ -1400,11 +1400,11 @@ msgstr "Visa alla kommentarer"
 msgid "Copy magnet URI to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr ""
 
@@ -1420,34 +1420,34 @@ msgstr ""
 msgid "&Open the file"
 msgstr "&Öppna filen"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Ange nytt namn för den här filen:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H.%M.%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Hämtningar (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr ""
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr ""
@@ -1551,233 +1551,233 @@ msgstr ""
 msgid "External connections disabled in config file"
 msgstr ""
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr ""
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr ""
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Okänd version"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
 msgstr ""
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr ""
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr ""
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr ""
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr ""
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr ""
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr ""
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr ""
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr ""
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr ""
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr ""
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr ""
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr ""
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr ""
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr ""
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr ""
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr ""
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr ""
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr ""
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr ""
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr ""
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr ""
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Filen hittades inte."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Ogiltigt filnamn."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Kunde inte byta namn på fil."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr ""
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr ""
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Redan ansluten till Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Ansluter till Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Alla nätverk är inaktiverade."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr ""
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr ""
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr ""
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Tillgängliga kommandon:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1785,23 +1785,23 @@ msgid ""
 "Type '%s <command>' to get detailed info on <command>.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Avslutar programmet."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Visa hjälp."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1812,46 +1812,46 @@ msgstr ""
 "Använd \"%s\" för kommandolista\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Syntaxfel!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr ""
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr ""
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Ogiltigt argument."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr ""
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Skriv \"%s\" för att få mer hjälp.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Det här är %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Det här är %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1859,7 +1859,7 @@ msgstr ""
 "\n"
 "Skapar klient...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1868,7 +1868,7 @@ msgstr ""
 "\n"
 "Ok, avslutar %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1877,47 +1877,47 @@ msgid ""
 "Exiting...\n"
 msgstr ""
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Visa den här hjälptexten."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr ""
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr ""
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Läs in konfiguration från fil."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr ""
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr ""
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Ställer in programlokalen (språk)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Skriv ut programversion."
 
@@ -1930,8 +1930,8 @@ msgstr "Fildetaljer"
 msgid "%.1f%% done"
 msgstr "%.2f%% färdig"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -1948,7 +1948,7 @@ msgstr ""
 msgid "CRITICAL - no client on StartChatSession"
 msgstr ""
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Vänner"
 
@@ -2080,32 +2080,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Hämta: %s"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Återanslut till server"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2137,7 +2137,7 @@ msgstr ""
 msgid "Error updating GeoIP.dat"
 msgstr ""
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Misslyckades med att hämta nodlistan."
@@ -2180,7 +2180,7 @@ msgstr[1] ""
 msgid "Failed to rename new %s file, aborting update."
 msgstr ""
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2195,103 +2195,103 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Noder (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr ""
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr ""
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr ""
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Fortsätt?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr ""
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Filnamn"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr ""
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr ""
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr ""
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr ""
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr ""
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr ""
 
@@ -2317,70 +2317,75 @@ msgstr "Okänd version"
 msgid "Unable to get error description for error %d"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Färdig"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Pausad"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr ""
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Väntar"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Lyckades! Anslutning etablerad till aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Lyckades! Anslutning etablerad."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr ""
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Anslutningen misslyckades "
 
+#: src/LibSocketAsio.cpp:1259
+#, c-format
+msgid "Asio thread %d started"
+msgstr ""
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr ""
@@ -2389,16 +2394,16 @@ msgstr ""
 msgid "ERROR: Could not listen to TCP port."
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr ""
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr ""
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Stäng"
 
@@ -2406,8 +2411,8 @@ msgstr "Stäng"
 msgid "Cut"
 msgstr "Klipp ut"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopiera"
 
@@ -2416,7 +2421,7 @@ msgid "Paste"
 msgstr "Klistra in"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Töm"
 
@@ -2426,7 +2431,7 @@ msgstr "Markera alla"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2503,7 +2508,7 @@ msgid "ServerIP: "
 msgstr "ServerIP: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Inte ansluten"
 
@@ -2538,7 +2543,7 @@ msgstr ""
 msgid "Online Signature: Disabled"
 msgstr ""
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Upptid: %s"
@@ -2579,7 +2584,7 @@ msgstr "Dölj aMule"
 msgid "Show aMule"
 msgstr "Visa aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Avsluta"
 
@@ -2654,7 +2659,7 @@ msgstr "Sök"
 msgid "Name:"
 msgstr "Namn:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Typ"
 
@@ -2683,38 +2688,38 @@ msgstr ""
 msgid "File Type"
 msgstr "Filtyp"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr ""
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Arkiv"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Ljud"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr ""
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Bilder"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Program"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Texter"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Videoklipp"
 
@@ -2735,11 +2740,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2767,7 +2772,7 @@ msgstr "Invertera resultat"
 msgid "Hide Known Files"
 msgstr "Dölj kända filer"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr ""
 
@@ -2827,7 +2832,7 @@ msgstr ""
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "-"
 
@@ -2851,7 +2856,7 @@ msgstr ""
 msgid "Last seen complete :"
 msgstr ""
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Överför"
 
@@ -2937,27 +2942,27 @@ msgstr ""
 msgid "File Quality"
 msgstr ""
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr ""
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr ""
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Dålig"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Bra"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Normal"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Utmärkt"
 
@@ -3002,7 +3007,7 @@ msgid "Userhash :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Lägg till"
 
@@ -3229,9 +3234,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Bläddra"
 
@@ -3317,7 +3322,7 @@ msgstr ""
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3435,7 +3440,7 @@ msgstr ""
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr ""
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Sändningar"
 
@@ -3674,7 +3679,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Lösenord"
 
@@ -3757,8 +3762,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr ""
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Nollställ"
 
@@ -4134,88 +4139,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr ""
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "&Öppna filen"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Väntar..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Aktiva sändningar: %s"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Utdelade filer"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Välj vy"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Aktiva sändningar: %s"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Visa klienter"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Läs om lista"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Skicka"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr ""
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Anslut till någon server och/eller Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Utdelade filer"
 
@@ -4224,137 +4234,137 @@ msgstr "Utdelade filer"
 msgid "Disabled [%s]"
 msgstr "Inaktiverad [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 #, fuzzy
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "byte"
 msgstr[1] "byte"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 #, fuzzy
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "byte/s"
 msgstr[1] "byte/s"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sekunder"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "minuter"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "timmar"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Dagar"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr ""
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr ""
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr ""
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Stoppad"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Video"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Arkiv"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Text"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Aktiv"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr ""
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Importerar %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr ""
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr ""
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr ""
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr ""
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr ""
 
@@ -4370,23 +4380,23 @@ msgstr "Tillstånd"
 msgid "Filehash"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disk: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Ta bort källor?"
 
@@ -4497,7 +4507,7 @@ msgstr ""
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr ""
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4508,270 +4518,270 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr ""
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr ""
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr ""
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Tar bort fil: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
 "never happen"
 msgstr ""
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr ""
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr ""
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr ""
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr ""
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Systemets standard"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr ""
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arabiska"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Estniska"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Basiska"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgariska"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalanska"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Kinesiska (Förenklad)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Kinesiska (Traditionell)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Kroatiska"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr ""
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danska"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Nederländska"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Engelska (Storbritannien)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estniska"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Finska"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Franska"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galiciska"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Tyska"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr ""
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr ""
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Ungerska"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Italienska"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Italienska (Schweiz)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr ""
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Koreanska"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr ""
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr ""
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Polska"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portugisiska"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portugisiska (Brasilien)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Ryska"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Slovenska"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Spanska"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr ""
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr ""
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr ""
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Språk"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Inte tillgänglig"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr ""
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr ""
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr ""
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Anslutning"
 
@@ -4779,7 +4789,7 @@ msgstr "Anslutning"
 msgid "Directories"
 msgstr "Kataloger"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Servrar"
 
@@ -4830,7 +4840,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4840,26 +4850,26 @@ msgid ""
 "these settings."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -4867,192 +4877,197 @@ msgstr ""
 "aMule måste startas om för att aktivera dessa ändringar:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP-port ändrad.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP-port ändrad.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "- UDP-port ändrad.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Anslutningen misslyckades "
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Anslutningen misslyckades "
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "- UDP-port ändrad.\n"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Språk ändrat.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "Alla nätverk är inaktiverade."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
 "If you do not restart now, don't complain if anything bad happens.\n"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
 "Click on the button \"List\" by this checkbox to enter an URL."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Temporära filer"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Inkommande filer"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Välj en mapp för %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Välj webbläsare"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 #, fuzzy
 msgid "disabled"
 msgstr "inaktivera"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 #, fuzzy
 msgid "Core command:"
 msgstr "Tillgängliga kommandon:\n"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr ""
 
@@ -5080,7 +5095,7 @@ msgstr ""
 msgid "Unexpected error while attempting Kad search: "
 msgstr ""
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr ""
 
@@ -5191,7 +5206,7 @@ msgstr ""
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr ""
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr ""
 
@@ -5218,98 +5233,98 @@ msgstr ""
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, fuzzy, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "Inga giltiga servrar att ansluta till hittades i serverlista"
 msgstr[1] "Inga giltiga servrar att ansluta till hittades i serverlista"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, fuzzy, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "Servernamn"
 msgstr[1] "Servernamn"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr ""
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr ""
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr ""
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr ""
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr ""
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr ""
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Misslyckades med att öppna \"%s\""
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr ""
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Ogiltig URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Misslyckades med att hämta nodlistan."
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
 msgstr ""
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr ""
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5344,7 +5359,7 @@ msgid "Static"
 msgstr "Statisk"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Version"
 
@@ -5368,8 +5383,8 @@ msgstr ""
 msgid "Servers (%i)"
 msgstr "Servrar (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Server"
 
@@ -5429,83 +5444,83 @@ msgstr "Är du säker på att du vill ta bort alla servrar?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Är du säker på att du vill ta bort alla servrar?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr ""
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr ""
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr ""
 "\tMest sannolikt att det på grund av du är bakom en brandvägg eller router."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tFör mer information, referera till http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr ""
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, fuzzy, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "Ta bort död server efter"
 msgstr[1] "Ta bort död server efter"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr ""
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr ""
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr ""
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr ""
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr ""
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr ""
@@ -5694,84 +5709,89 @@ msgstr "Filnamn"
 msgid "Shares File List"
 msgstr "Utdelade filer"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Utdelningsratio"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Byt namn"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Kopiera ED2k-länk till urklipp"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr ""
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Utdelade filer (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr ""
 
@@ -5780,235 +5800,235 @@ msgstr ""
 msgid "Remote File Name"
 msgstr "Filnamn"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr ""
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr ""
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Aktiva sändningar: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Väntande sändningar: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr ""
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr ""
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr ""
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr ""
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr ""
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr ""
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr ""
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr ""
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr ""
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr ""
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr ""
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr ""
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr ""
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Klienter"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Okänd storlek"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Filtrered"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "Bannlyst"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr ""
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Fungerande servrar: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr ""
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Totalt: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Borttagna servrar: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Filtrerade servrar: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr ""
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Totalt antal filer: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr ""
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr ""
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr ""
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Operativsystem"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr ""
 
@@ -6064,7 +6084,7 @@ msgstr ""
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr ""
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr ""
 
@@ -6118,13 +6138,13 @@ msgstr "Ansluten till %s %s %s"
 msgid "Now connecting"
 msgstr "Ansluter nu"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "brandvägg"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6519,21 +6539,21 @@ msgid ""
 "Use '%s' instead.\n"
 msgstr ""
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr ""
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr ""
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6604,7 +6624,7 @@ msgstr ""
 msgid "Download completed"
 msgstr ""
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr ""
 
@@ -6624,160 +6644,160 @@ msgstr ""
 msgid "Cumulative download activity time."
 msgstr ""
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr ""
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr ""
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr ""
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr ""
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Välkommen!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Ta bort"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Spara"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Kopiera till urklipp"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Om aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Kunde inte öppna"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6789,169 +6809,173 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Hashar..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 #, fuzzy
 msgid "Cancelled !"
 msgstr "Avbruten!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Klar om %.2f s"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr ""
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Kunde inte öppna %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr ""
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "System"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Om wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -6962,325 +6986,325 @@ msgid ""
 "Distributed under GPL"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Oh Oh, aMule kör inte..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule kör"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule kör men är frånkopplad"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule ansluter..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Oh oh, status för aMule är okänd..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " har kört i "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " är stoppad !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " är inte ansluten!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " ansluter..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " gör någonting konstigt, kontrollera det!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " är ansluten till "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "av"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " är på "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 #, fuzzy
 msgid " with "
 msgstr "] med "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 #, fuzzy
 msgid " kB/s"
 msgstr "kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Användare"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Validera"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr ""
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP-port"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Använd gzip-komprimering"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr ""
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Kontrollerar lösenord\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr ""
 
@@ -7458,9 +7482,6 @@ msgstr ""
 #~ msgid "Guest password for webserver"
 #~ msgstr "Gästlösenord för webbserver"
 
-#~ msgid "Copy ED2k link to clipboard"
-#~ msgstr "Kopiera ED2k-länk till urklipp"
-
 #, fuzzy
 #~ msgid "Copy ED2k links to clipboard"
 #~ msgstr "Kopiera ED2k-länk till urklipp"
diff --git a/po/tr.po b/po/tr.po
index fc90cde..48231d4 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8,15 +8,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
-"PO-Revision-Date: 2011-11-01 23:27+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
+"PO-Revision-Date: 2012-03-23 10:36+0100\n"
 "Last-Translator: \n"
 "Language-Team: Turkish <li at li.org>\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"
+"Plural-Forms: nplurals=1; plural=0\n"
 "X-Poedit-Language: Turkish\n"
 "X-Poedit-Country: TURKEY\n"
 
@@ -40,7 +40,7 @@ msgstr "Belirlenen kullanıcı adreslemesi geçersiz!"
 msgid "Failed to open ED2KLinks file."
 msgstr "ED2KBağlantı dosyası açılamadı."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -48,37 +48,37 @@ msgstr ""
 "UYARI: DüşükID olduğunuz sürece kendinizi bir kaynak olarak eD2k "
 "bağlantılarına ekleyemezsiniz."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Ana uygulamadan çıkılıyor..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Amuleweb oturumu pid `%ld' ile sonlandırılıyor..."
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Amuleweb oturumu pid `%ld' ile öldürülüyor..."
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Başarısız"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule Çıkışında: Çekirdek imha ediliyor."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "aMule kapatılma işlemi tamamlandı."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "aMule çıkışı için hafıza hata raporlama sonuçları:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -86,16 +86,16 @@ msgstr ""
 "\n"
 "EC yapılandırması"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Parola ayarlandı ve dış bağlantılar etkinleştirildi."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "UYARI"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -103,13 +103,13 @@ msgstr ""
 "Bir yapılandırma değişikliği nedeniyle dil ayarınız 'Sistem Varsayılanı'na "
 "çevrildi. Üzgünüm. Vallahi..."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Bilgi"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -117,16 +117,16 @@ msgstr ""
 "Sunucu listesinde mevcut bir sunucu yok.\n"
 "aMule'nin yeni bir liste indirmesini ister misiniz?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Sunucu listesi indirme"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "web sunucusu pid %d üzerinde çalışıyor"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -137,23 +137,23 @@ msgstr ""
 "aMule' yi --enable-webserver komutu ile derleyip make install komutunu "
 "çalıştırın"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "HATA"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Belirtilen şu adrese portlar bağlanamıyor: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Port. %u kullanılamıyor. DÜŞÜKID alacaksınız.\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -169,11 +169,11 @@ msgstr ""
 "Ağ ayarlarınıza göz atarak portun giriş ve çıkışlar için açık olup "
 "olmadığını denetleyiniz."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Çevrim içi İmza dosyası oluşturma başarısız."
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "aMule Çevrim içi İmza dosyası oluşturma başarısız."
 
@@ -224,133 +224,133 @@ msgstr ""
 "Belirlediğiniz Çevrim içi İmza dosyaları dizini GEÇERSİZ!\n"
 " Çevrim içi İmza, ayarlarınızda düzeltene kadar DEVREDIŞI bırakıldı."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Sunucu makine adı uyarıldı"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "%s dosyası için diskte yer ayırma başarısız oldu: %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "HATA: Günlük dosyası açılamıyor."
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "UYARI: Günlük dosyası boş, bir şeyler yanlış."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Günlük kaydı silindi."
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Sunucu İletisi: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "%s indirilmeyecek; çünkü istenen dosya yeni değil."
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Nod listesini indirme başarısız."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "İndirilen sürüm denetleme dosyasını açma başarısız oldu."
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Bozuk sürüm denetleme dosyası"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "aMule'nin eski bir sürümünü kullanıyorsunuz!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "aMule sürümünüz %i.%i.%i ve en güncel sürüm %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "En güncel sürüm her zaman http://www.amule.org adresinde bulunabilir."
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "UYARI: aMuled sürümünüz eski: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "aMule sürümünüz güncel."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Sürüm denetleme dosyasını indirme başarısız oldu."
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Kullanıcılar: %s | Dosyalar: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Kullanıcılar: E: %s K: %s | Dosyalar: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Hiç bir ağ seçilmedi"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "DüşükID ile"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "YüksekID ile"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "Bağlandı: %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "Bağlanıyor: %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "eD2k Bağlantısı kesildi"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kademlia başladı."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kademlia durdu."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "Kademlia ağına bağlanıldı (tamam)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "Kademlia ağına bağlanıldı. (Güvenlik duvarı)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Kademlia bağlantısı kesildi."
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -358,11 +358,11 @@ msgstr ""
 "UDP portu ayarlarda devre dışı bırakılmışsa Kad ağı kullanılamaz. "
 "Başlatılmıyor."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad ağı ayarlarda devre dışı bırakılmış, bağlanılmıyor."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -374,7 +374,7 @@ msgstr ""
 "birlikte amuledi başlatarak ya da ~/.aMule/amule.conf dosyasındaki "
 "\"AcceptExternalConnections\" seçeneğini 1 olarak ayarlayın."
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -389,19 +389,19 @@ msgstr ""
 "ile çalıştırın ve parolanızı ayarlayın. Daha fazla bilgi http://wiki.amule."
 "org adresinde bulunabilir."
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - zamanlayıcı başlatılıyor"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: arka plana çatallanıyor - görüşürüz"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "Pid dosyası oluşturulamıyor"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "HATA: %s"
@@ -484,9 +484,9 @@ msgstr "Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "İleti"
 
@@ -494,7 +494,7 @@ msgstr "İleti"
 msgid "aMule dialog destroyed"
 msgstr "aMule diyaloğu imha edildi"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "Bağlanıyor"
 
@@ -528,7 +528,7 @@ msgstr "Kad: Kapalı"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "İptal"
 
@@ -545,7 +545,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Bağlanılmış olan ağlar ile bağlantıyı Kes"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "Bağlan"
 
@@ -586,7 +586,7 @@ msgstr "Çıkışı onaylayınız"
 msgid "Launch Command: "
 msgstr "Çalıştırma Komutu: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- ön tanımlı -"
 
@@ -601,80 +601,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "UYARI: Kaplama dosyası '%s' okuma için açılamıyor"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Ağlar"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Ağ Penceresi"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Aramalar"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Arama Penceresi"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "İndirmeler"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "İndirme Penceresi"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Paylaşılan dosyalar"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Paylaşılan Dosya Penceresi"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Sohbet"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Sohbet Penceresi"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "İstatistikler"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "İstatistik Grafik Penceresi"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Ayarlar"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Ayar Penceresi"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "İçe Aktar"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Parça dosyası içe aktarım aracı"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Hakkında"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Hakkında/Yardım"
 
@@ -694,7 +694,7 @@ msgstr "Ağ yok"
 msgid "aMule remote control"
 msgstr "aMule Uzak Denetimi"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -706,128 +706,123 @@ msgstr "Önemli Hata: Çekirdek Zamanlayıcı oluşturulamadı"
 msgid "Connect to remote amule"
 msgstr "Uzak aMule'ye bağlan"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Önemli Hata: Havuz Zamanlayıcı oluşturulamadı"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Olay döngüsüne gidiliyor..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "Bağlanıyor..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "Bağlantı başarısız "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Uzak ARAYÜZ EC olay yakalayıcı"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "İniyor"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "Bağlantı Başarısız Oldu. %s:%d bağlanılamıyor\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "Bağlantı kesildi - Muhtemelen aMule sonlandırıldı."
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Hazır"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Tümü"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr "'%s' dizini '%s' sınıfı için oluşturulamadı. '%s' dizini kullanılıyor."
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Bilinmiyor"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "'%s' kullanıcısının paylaşılmış dosyalarını alma başarısız"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "DüşükID bağlantı için bir eş aranıyor"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Sahte eMule sürümü %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr "(Sahte eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (Sahte eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (eMule s.0.%u üzerine kurulu)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Rumuz: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "İstek: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
 "Filestats for this session: Accepted %d of %d requests, %s transferred\n"
 msgstr[0] ""
-"Bu oturum için dosya durumu: Kabul edilen istek %d si %d nin, %s aktarıldı\n"
-msgstr[1] ""
-"Bu oturum için dosya durumu: Kabul edilen istek %d si %d nin, %s aktarıldı\n"
+"Bu oturum için dosya durumu: Kabul edilen istek %d, toplam %d, %s aktarıldı\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
 "Filestats for all sessions: Accepted %d of %d requests, %s transferred\n"
 msgstr[0] ""
-"Tüm oturumlar için dosya durumu: Kabul edilen istek %d si %d nin, %s "
-"aktarıldı\n"
-msgstr[1] ""
-"Tüm oturumlar için dosya durumu: Kabul edilen istek %d si %d nin, %s "
+"Tüm oturumlar için dosya durumu: Kabul edilen istek %d, toplam %d, %s "
 "aktarıldı\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Bilinmeyen dosya istendi"
 
@@ -956,14 +951,12 @@ msgstr "Arkadaşlara Ekle"
 msgid "Creditfile loaded, %u client is known"
 msgid_plural "Creditfile loaded, %u clients are known"
 msgstr[0] "Kredi dosyası yüklendi. %u adet kullanıcı biliniyor"
-msgstr[1] "Kredi dosyası yüklendi. %u adet kullanıcı biliniyor"
 
 #: src/ClientCreditsList.cpp:161
 #, c-format
 msgid " - Credits expired for %u client!"
 msgid_plural " - Credits expired for %u clients!"
 msgstr[0] " - %u adet kullanıcı için krediler bitti!"
-msgstr[1] " - %u adet kullanıcı için krediler bitti!"
 
 #: src/ClientCreditsList.cpp:305
 msgid "No 'cryptkey.dat' file found, creating."
@@ -974,12 +967,12 @@ msgid "Client Details"
 msgstr "Kullanıcı Ayrıntıları"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "DüşükID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "YüksekID"
 
@@ -1031,27 +1024,27 @@ msgstr "İncelendi - Tamam"
 msgid "Not Available"
 msgstr "Uygun değil."
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Kullanıcı %s (%u), paylaşılmış dosya listenizi istedi. -> Kabul edildi"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Kullanıcı %s (%u), paylaşılmış dosya listenizi istedi. -> Reddedildi"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Kullanıcı %s (%u), paylaşılmış dizin listenizi istedi. -> Kabul edildi"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Kullanıcı %s (%u), paylaşılmış dizin listenizi istedi. -> Reddedildi"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1059,7 +1052,7 @@ msgstr ""
 "Kullanıcı %s (%u), '%s' dizini için paylaşılmış dosya listenizi istedi. -> "
 "kabul edildi"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1067,33 +1060,33 @@ msgstr ""
 "Kullanıcı %s (%u), '%s' dizini için paylaşılmış dosya listenizi istedi. -> "
 "reddedildi."
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Kullanıcı %s (%u), %s dizinini paylaşıyor"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Kullanıcı %s (%u) istenmeyen paylaşılmış dosya listesi gönderdi"
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr ""
 "Kullanıcı %s (%u) '%s' dizini için paylaşılmış dosya listesini gönderdi"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Kullanıcı %s (%u) paylaşılmış dosya listesini göndermeyi tamamladı"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Kullanıcı %s (%u) istenmeyen paylaşılmış dosya listesi gönderdi"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr "Kullanıcı %s (%u)nın paylaşılmış dizin/dosyalara erişimi reddedildi."
@@ -1108,7 +1101,7 @@ msgstr "Kullanıcı Adı"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Dosya Adı"
 
@@ -1129,7 +1122,6 @@ msgstr "Yorum yok"
 msgid "%u comment"
 msgid_plural "%u comments"
 msgstr[0] "%u adet yorum"
-msgstr[1] "%u adet yorum"
 
 #: src/CorruptionBlackBox.cpp:227
 #, c-format
@@ -1151,33 +1143,33 @@ msgstr "Oto [Nor]"
 msgid "Auto [Hi]"
 msgstr "Oto (Yük)"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Çok düşük"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Düşük"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Normal"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Yüksek"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Çok Yüksek"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Yayım"
 
@@ -1194,12 +1186,12 @@ msgid "Queue Full"
 msgstr "Sıra dolu"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "Sırada"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Aktarılıyor"
 
@@ -1259,7 +1251,7 @@ msgstr "Sunucu"
 msgid "Remote Server"
 msgstr "Uzak Sunucu"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kademlia"
@@ -1285,7 +1277,7 @@ msgid "Search Result"
 msgstr "Arama Sonucu"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Tamamlandı"
 
@@ -1326,11 +1318,11 @@ msgid "Part"
 msgstr "Parça"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Boyut"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Aktarıldı"
 
@@ -1343,17 +1335,17 @@ msgid "Progress"
 msgstr "İşlem"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Kaynaklar"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Öncelik"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Durum"
@@ -1378,7 +1370,7 @@ msgstr "Seçili dosyayı silmek istediğinizden emin misiniz?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Seçili dosyaları silmek istediğinizden emin misiniz?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1388,7 +1380,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Otomatik"
 
@@ -1440,11 +1432,11 @@ msgstr "Tüm yorumları göster"
 msgid "Copy magnet URI to clipboard"
 msgstr "Magnet bağlantısını panoya kopyala"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "eD2k bağlantısını panoya kopya&la"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Geri beslemeyi panoya kopyala"
 
@@ -1460,24 +1452,24 @@ msgstr "Sınıfa Ekle"
 msgid "&Open the file"
 msgstr "Dosyayı &Aç"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Bu dosya için yeni bir isim girin:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Dosya yeniden adlandır"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "İndirmeler (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1486,11 +1478,11 @@ msgstr ""
 "seçeneklerden tercih ettiğiniz video oynatıcısını ayarlayın. (öntanımlı "
 "mplayer)"
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Dosya ön izlemesi"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "Hata: Ortam oynatıcısını çalıştırma başarısız! Komut :  `%s'"
@@ -1535,7 +1527,6 @@ msgstr "Hiç part dosyası bulunamadı"
 msgid "Found %u part file"
 msgid_plural "Found %u part files"
 msgstr[0] "%u adet parça dosyası bulundu"
-msgstr[1] "%u adet parça dosyası bulundu"
 
 #: src/DownloadQueue.cpp:241 src/DownloadQueue.cpp:1467
 msgid "Filesystem for Temp directory cannot handle large files."
@@ -1597,28 +1588,28 @@ msgstr "Boş şifre sebebiyle dışarıdan bağlantı devre dışı!"
 msgid "External connections disabled in config file"
 msgstr "Yapılandırma dosyasında dışarıdan bağlantılar devre dışı bırakılmış."
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Yeni dışarıdan bağlantı kabul edildi"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "HATA: yeni bir dış bağlantı kabul edilemiyor"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "Ayarlardaki boş şifre sebebiyle dışarıdan bağlantılar reddedildi."
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "Kullanıcıya bağlanılıyor: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Bilinmeyen sürüm"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1626,7 +1617,7 @@ msgstr ""
 "Yanlış EC sürüm ID, bir çift uyumsuzluğu olabilir. Aynı görüntüden çekirdek "
 "ve uzak kullanınız."
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
@@ -1634,174 +1625,174 @@ msgstr ""
 "Bir geliştirme sürümünden dengeli bir sürüme bağlanamazsınız! *muhtemel* bir "
 "çökme önlendi"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Geçersiz protokol sürümü."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Kayıp protokol sürüm eki."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 "Kimlik doğrulama başarısız oldu: EC parolası olarak geçersiz adresleme "
 "girildi."
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "Kimlik doğrulama başarısız oldu: yanlış parola."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "Kimlik doğrulama başarısız oldu: kayıp parola."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "Geçersiz istem, öncelikle doğrulatmanız lazım."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Giriş izni verildi."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "\"%s\"  hata iletisi makineye gönderildi."
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "%s üzerinden yetkilendirilmemiş giriş denemesi. Bağlantı kesildi."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Uzak Parça Dosyası komutu başarısız: Dosya Adreslemesi bulunamadı: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Dosya adreslemesi bulunamadı: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "Aman aman! OpCode işleme hatası!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Sunucu eklenmedi."
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "sunucu bulunamadı: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "çıkarılacak sunucunun tanımlanması gerekli"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "pasifleştirilmiş."
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Arama sürüyor. Bir dakikaya sonuçlanır!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Uzak arayüzden Web araması yapmak anlamsız."
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Grafik için hiç nokta yok."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Yazılımınız bu ayrıntı düzeyi için yapılandırılmamış."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Bağlantı kapat"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Zaten kapatılıyor."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Dışarıdan Bağ.:'%s' bağlantısı ekleniyor."
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Geçersiz bağlantı veya zaten listede mevcut."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Dosya bulunamadı."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Geçersiz dosya adı."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Dosya yeniden adlandırılamıyor."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad ayarlarda devre dışı bırakılmış."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "eD2k ağına zaten bağlandı."
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "eD2k ağına bağlanıyor..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Kad zaten bağlı."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Kad ağına bağlanıyor..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Bütün ağlar devre dışı"
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "eD2k ağından bağlantı kesildi."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Kad ağından bağlantı kesildi."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Dış Bağlantı: geçersiz opcode alındı: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Geçersiz opcode (yanlış protokol sürümü mü?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Bilinmeyen %s uzantısı, %s komutu için.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Bilinmeyen komut '%s' .\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1809,7 +1800,7 @@ msgstr ""
 "\n"
 "Bu komut bir argüman içeremez.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1817,7 +1808,7 @@ msgstr ""
 "\n"
 "Bu komut bir argüman içermelidir.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1825,7 +1816,7 @@ msgstr ""
 "\n"
 "Bu komut eksik.Aşağıdaki uzantılardan birini girmelisiniz.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1833,11 +1824,11 @@ msgstr ""
 "\n"
 "Uygun uzantılar:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Uygun komutlar:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1848,17 +1839,17 @@ msgstr ""
 "Tüm komutlar büyük-küçük harf duyarlıdır.\n"
 "'%s <command>' tuşlayarak <command> hakkında detaylı bilgi alabilirsiniz.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Uygulamadan çıkar."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Yardımı göster."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1866,7 +1857,7 @@ msgstr ""
 "Bir komut hakkında yardım çağırmak için 'help <command>' yazınız.\n"
 "Tüm komutları görmek için 'help' yazınız.\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1877,47 +1868,47 @@ msgstr ""
 "Komut listesi için '%s' kullanınız.\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Söz dizimi hatası!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Komut çalıştırmada hata.- Bu hiç olmamalıydı! Lütfen hatayı bildiriniz.\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Bu komut herhangi bir parametre içermemeli."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Bu komut bir parametre içermeli."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Geçersiz argüman."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Bu eksik bir komut."
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Daha fazla yardım için '%s' yazınız.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Bu bir %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Bu bir %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1925,7 +1916,7 @@ msgstr ""
 "\n"
 "Yazılım oluşturuluyor...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1934,7 +1925,7 @@ msgstr ""
 "\n"
 "Tamam, çıkılıyor %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1948,48 +1939,48 @@ msgstr ""
 "\n"
 "Çıkılıyor...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Bu yardım dosyasını göster."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "aMule'nin çalıştığı makine. (varsayılan: localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Dışarıdan bağlantı için aMule portu. (Varsayılan:4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Dışarıdan bağlantı şifresi."
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Yapılandırmayı dosyadan oku."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "stdout' a herhangi bir çıktı yazdırma."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Geveze ol - hata iletilerini de göster."
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Yazılım yerelini ayarla (dil)"
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Komut satırı seçeneklerini yapılandırma dosyasına yaz."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr ""
 "aMule'nin yapılandırma dosyasını temel alan yapılandırma dosyası oluşturur."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Yazılım sürümünü yazdır."
 
@@ -2002,8 +1993,8 @@ msgstr "Dosya Ayrıntıları"
 msgid "%.1f%% done"
 msgstr "%.1f%% tamamlandı"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -2020,7 +2011,7 @@ msgstr "Arkadaş listesi  'emfriends.met'  dosyasına yazılamıyor!"
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "KRİTİK - SohbetOturumunuBaşlat' ta istemci yok"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Arkadaşlar"
 
@@ -2148,21 +2139,21 @@ msgstr "İndirme bağlantısı boş olamaz."
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "%s bağlantı adresi dönüşü: %i - Hata (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "İndirilen dosyanın yazımında önemli bir hata oluştu"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "%d bayt indirildi."
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "%d bayt bekleniyordu; fakat %d bayt indirildi"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
@@ -2170,11 +2161,11 @@ msgstr ""
 "HTTP aktarım veya HTTP yönlendirme için geçersiz bağlantı adresi ( 'http://' "
 "yazmayı unuttunuz mu?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "HTTP indirme sunucusuna bağlanılamıyor"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "HTTP indirme sunucusundan geçersiz yanıt alındı"
 
@@ -2206,7 +2197,7 @@ msgstr "%s başarıyla güncellendi."
 msgid "Error updating GeoIP.dat"
 msgstr "GeoIP.dat güncellemesinde hata oluştu."
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "%s, %s kaynağından indirilemedi."
@@ -2236,21 +2227,19 @@ msgstr "ipfilter.dat dosyasını '%s' yükleme başarısız. Dosya açılamıyor
 msgid "Loaded %u IP-range from '%s'."
 msgid_plural "Loaded %u IP-ranges from '%s'."
 msgstr[0] "%u adet IP-aralığı '%s' den  yüklendi."
-msgstr[1] "%u adet IP-aralığı '%s' den  yüklendi."
 
 #: src/IPFilter.cpp:331
 #, c-format
 msgid "%u malformed line was discarded."
 msgid_plural "%u malformed lines were discarded."
 msgstr[0] "%u adet bozuk satır göz ardı edildi."
-msgstr[1] "%u adet bozuk satır göz ardı edildi."
 
 #: src/IPFilter.cpp:503
 #, c-format
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Yeni %s dosyası yeniden adlandırılamadı. Güncelleme iptal edildi."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP süzgeci hazır"
 
@@ -2267,47 +2256,47 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Nodlar (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Ön yükleme için geçersiz ip"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Ön yükleme için geçersiz port"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "İstenilen tüm alanları doldurunuz."
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Yeni bir nodes.dat dosyası indirmek istediğinizden emin misiniz?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Bunu yapmanız şu anki nodları silecek ve Kademlia bağlantısını baştan "
 "başlatacaktır."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Devam mı?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: Arama sözcüğü çok kısa"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Arama için anahtar kelime: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: Arama anahtar sözcüğü zaten arama listesinde var. "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
@@ -2315,61 +2304,58 @@ msgstr ""
 "Nodes.dat dosyası okunamadı- dosya çok eski. Bu sürüm (0) artık "
 "desteklenmiyor."
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "%u adet Kademlia bağlantısı okundu"
-msgstr[1] "%u adet Kademlia bağlantısı okundu"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Hiç bağlantı bulunamadı. Lütfen, ön yükleme veya nodes.dat dosyası indirmeyi "
 "deneyin."
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "Sadece %d Kad bağlantısı var. Nodes.dat yazılamadı"
-msgstr[1] "Sadece %d adet Kad bağlantısı var. Nodes.dat yazılamadı"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "%d Kademlia bağlantısı yazıldı"
-msgstr[1] "%d Kademlia bağlantısı yazıldı"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Dosya adı"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Dosya"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Paylaşım oranı"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Gönderilen"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "İstenen"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Kabul edilen"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Tamamlandı"
 
@@ -2396,69 +2382,74 @@ msgstr "Bilinmeyen hata %d"
 msgid "Unable to get error description for error %d"
 msgstr "%d hatası için tanımlama alınamadı!"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Adresleniyor"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Tamamlanıyor"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Tamamlandı"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Duraklatıldı"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Hatalı"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Bekliyor"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Boş olmayan bir şifre girmelisiniz."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Geçersiz şifre, bir MD5 adreslemesi değil!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "Bağlantı başarısız"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "EC bağlantısı başarısız. Boş cevap."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Dış Bağlantı: Kötü yanıt. Bağlantı kapatıldı."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Başarıldı! aMule'ye bağlantı kuruldu. "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Başarıldı! Bağlantı kuruldu."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Dış Bağlantı: Erişim engellendi çünkü: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "Dış Bağlantı: Tanılama engellendi"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "HTTP aktarımı başladı"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "DinlemeSoketi: Tamam."
@@ -2467,16 +2458,16 @@ msgstr "DinlemeSoketi: Tamam."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "HATA: TCP portu dinlenemiyor."
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "HATA: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "UYARI:"
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Kapat"
 
@@ -2484,8 +2475,8 @@ msgstr "Kapat"
 msgid "Cut"
 msgstr "Kes"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Kopyala"
 
@@ -2494,7 +2485,7 @@ msgid "Paste"
 msgstr "Yapıştır"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Temizle"
 
@@ -2504,7 +2495,7 @@ msgstr "Tümünü Seç"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2581,7 +2572,7 @@ msgid "ServerIP: "
 msgstr "SunucuIP:"
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Bağlanmadı"
 
@@ -2616,7 +2607,7 @@ msgstr "Çevrim içi İmza: Etkin"
 msgid "Online Signature: Disabled"
 msgstr "Çevrim içi İmza: Devre dışı"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Çalışma Süresi: %s"
@@ -2657,7 +2648,7 @@ msgstr "aMule'yi Gizle"
 msgid "Show aMule"
 msgstr "aMule'yi Göster"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Çıkış"
 
@@ -2741,7 +2732,7 @@ msgstr "Ara"
 msgid "Name:"
 msgstr "Ad:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Tür"
 
@@ -2769,38 +2760,38 @@ msgstr "Süzgeç"
 msgid "File Type"
 msgstr "Dosya Türü"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Herhangi"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Sıkıştırılmış Dosyalar"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Ses"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD-İmajı"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Resim"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Programlar"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Belgeler"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Videolar"
 
@@ -2821,11 +2812,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2853,7 +2844,7 @@ msgstr "Sonuçları tersine çevir."
 msgid "Hide Known Files"
 msgstr "Bilinen Dosyaları Gizle"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Başlat"
 
@@ -2910,7 +2901,7 @@ msgstr "Tam Ad :"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2934,7 +2925,7 @@ msgstr "Parça Dosya Durumu :"
 msgid "Last seen complete :"
 msgstr "Son Görülen Tamamlama :"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Aktarım"
 
@@ -3022,27 +3013,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Dosya Kalitesi"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Derecelendirilmemiş"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Geçersiz / Bozuk / Sahte"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Zayıf"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Doğru"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "İyi"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Mükemmel"
 
@@ -3088,7 +3079,7 @@ msgid "Userhash :"
 msgstr "Kullanıcı Adreslemesi :"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Ekle"
 
@@ -3319,9 +3310,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Göz at"
 
@@ -3409,7 +3400,7 @@ msgstr "En cazla eş bağlantı sayısı:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3529,7 +3520,7 @@ msgstr "Buraya istenilen en az disk alanını giriniz"
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Nadir bulunan dosyalarda 10 kaynak sakla (<20 kaynak)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Gönderilenler"
 
@@ -3770,7 +3761,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "EC portuna UPnP port yönlendirmesi etkin."
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Şifre"
 
@@ -3852,8 +3843,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Bu sınıf için renk seçiniz. (varsayılan) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Sıfırla"
 
@@ -4250,84 +4241,89 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Fazladan Hata Çıktısı Kaydını Etkinleştir."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "Dosyayı &Aç"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "İleti Sınıfları:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Bekliyor..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "İçe aktarımları ekle"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Seçileni tekrar dene"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Seçileni çıkar"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Olay Türleri"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 "Seçili dosya(lar) için kuyruktaki istemciler ve istatistikler: Oturum / "
 "Bütün zamanlar"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "Etkin Göndermeler"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "Toplam dosyaların yüzdesi"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "Tüm dosyalar"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "Seçilen dosyalar"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "Sadece aktif Göndermeler"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "Kullanıcıları Göster"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "Yeniden yükle"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Paylaşılan dosyalarınızı yeniden yükleyin"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Gönder"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Belirlenen iletiyi gönderir."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Bu sohbet oturumunu kapatır."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "Herhangi bir sunucuya ve/veya Kad'a bağlan."
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Paylaşılan Dosyalar"
 
@@ -4336,135 +4332,133 @@ msgstr "Paylaşılan Dosyalar"
 msgid "Disabled [%s]"
 msgstr "Devre dışı [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "bayt"
-msgstr[1] "bayt"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "bayt/sn"
-msgstr[1] "bayt/sn"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "sn"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "dk"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "saat"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "Gün"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "Tümü"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "Diğerleri"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Tamamlanmamış"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Durduruldu"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Görüntü"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Sıkıştırılmış"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Belge"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Etkin"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "Kullanılan yapılandırma dizini: %s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Parçadosyası dönüşümünün bitmesi bekleniyor..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "İçe Aktarılıyor %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Geçici dosyalar dizini okunuyor."
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Aktarım bilgisi dosyasından temel bilgiler alınıyor."
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Hedef dosya oluşturuluyor."
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Eski aktarım dosyasından veri yükleniyor.  (%u of %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Yeni tek aktarım dosyasına veri bloku kaydediliyor.  (%u of %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Kaynak aktarım dosyası bilgisi alınıyor."
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Aktarım ekleniyor ve yeni parça dosyası kaydediliyor."
 
@@ -4480,12 +4474,12 @@ msgstr "Durum"
 msgid "Filehash"
 msgstr "Dosya adreslemesi"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (Disk: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4493,13 +4487,13 @@ msgstr ""
 "Lütfen geçici aktarım dosyaları için bir dizin seçiniz. (Alt dizinler de "
 "taranacaktır.)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr ""
 "İçe aktarımı başarılı olan kaynak dosyalarının silinmesini ister misiniz?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Kaynakları çıkar?"
 
@@ -4593,7 +4587,6 @@ msgstr "%s için pat.met girdilerini kaydetme başarısız."
 msgid "Saved %i source seed for partfile: %s (%s)"
 msgid_plural "Saved %i source seeds for partfile: %s (%s)"
 msgstr[0] "%i kaynak tohumu parça dosyası için kaydedildi: %s (%s)"
-msgstr[1] "%i kaynak tohumu parça dosyası için kaydedildi: %s (%s)"
 
 #: src/PartFile.cpp:1049
 #, c-format
@@ -4610,7 +4603,7 @@ msgstr "Parça dosyası %s (%s) geçersiz girdi dosyası içeriyor."
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Parça dosyasına ait girdi dosyası  (%s - %s): %s okunamıyor."
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4621,41 +4614,38 @@ msgid_plural ""
 msgstr[0] ""
 "Bozuk parça (%d) %d parça dosyası %s içinde bulundu -Dosya sonuç adreslemesi "
 "|%s| Dosya adreslemesi |%s|"
-msgstr[1] ""
-"Bozuk parça (%d) %d parçadosyası %s içinde bulundu -Dosya sonuç adreslemesi |"
-"%s| Dosya adreslemesi |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Tamamlanmış (%i) parçası %s içinde bulundu."
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "%s dosyasının yeniden adreslenmesi bitti"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "%s tamamlanırken beklenmeyen bir hata oluştu. Dosya duraklatıldı"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Aktarım tamamlandı: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Dosya siliniyor: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr "UYARI: İndirilen parça adreslenemiyor - adresleme seti '%s' için eksik"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4664,7 +4654,7 @@ msgstr ""
 "HATA: Aktarılan parça adreslenemiyor.- adres seti tamamlanmamış (%s). Bu hiç "
 "olmamalıydı"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4673,226 +4663,226 @@ msgstr ""
 "İndirilen %u bölümünün %u uzunluğunda (maksimum %u) parçasının ('%s' parça "
 "dosyasına ait (%u uzunluğunda)), adreslenmesinde EOF: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "UYARI: Yetersiz disk alanı! %s dosyası duraklatılıyor."
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "İndirilen %i parçası %s dosyasındaydı ve bozuk."
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr ""
 "ICH: Bozulan %i parçası %s dosyasındaydı ve kurtarıldı -> Kaydedilen miktar: "
 "%s bayt"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Ayrılıyor"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Yetersiz disk alanı"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "İndirildi"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "HATA: Parça dosyası '%s' açılamıyor"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Sistem öntanımlısı"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Arnavutça"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Arapça"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "Asturyasça"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Baskça"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Bulgarca"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Katalanca"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Çince (Simplified)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Çince (Traditional)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Hırvatça"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Çekçe"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Danca"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Felemenkçe"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "İngilizce (U.K)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Estonca"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Fince"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Fransızca"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Galce"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Almanca"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Yunanca"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "İbranice"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Macarca"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "İtalyanca"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "İtalyanca (İsviçre)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Japonca"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Korece"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Litvanyaca"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Norveççe(Nynorsk)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Lehçe"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Portekizce"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Portekizce (Brezilya)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Rusça"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Slovence"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "İspanyolca"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "İsveççe"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Türkçe"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Ukraynaca"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "Dili Değiştirin "
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr "aMule tercümeleri kurulu değildir"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr "Diller mevcut değil"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "mevcut seçenek yok"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Geçersiz sınıf bulundu, atlanıyor"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "TCP portu numarası, UDP soketi TCP+3 olduğundan 65532' den yüksek olamaz"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Varsayılan port kullanılacak (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Var olmayan paylaşılmış dizin kaldırılıyor: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "Bağlantı"
 
@@ -4900,7 +4890,7 @@ msgstr "Bağlantı"
 msgid "Directories"
 msgstr "Dizinler"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Sunucular"
 
@@ -4954,7 +4944,7 @@ msgstr ""
 "    %PARTFILE - dosyanın tam yolu\n"
 "    %PARTNAME - dosyanın sadece adı"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4970,26 +4960,26 @@ msgstr ""
 "Bu ayarlarla oynanmasa da\n"
 "aMule gayet iyi işleyecektir."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Cfg %d Kimliği ve %s anahtarı ile parçacığa bağlanamadı"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "Cfg' den %d Kimliği ve %s anahtarı ile Parçacığa veri aktarılamadı"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Bağlanacağınız vekil sunucu türü"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "Parçacıktan %d Kimliği ve %s anahtarı ile Cfg' ye veri aktarılamadı"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -4997,27 +4987,32 @@ msgstr ""
 "Değişikliklerin uygulanması için, aMule yeniden başlatılmalı\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP portu değişti.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP Portu değişti.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- Dışarıdan bağlantı portu değişti.\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- Dışarıdan bağlantı kabul edilme işlemi değişti.\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- Dışarıdan bağlantı arayüzü değişti.\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Protokol Gizleme"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5025,7 +5020,7 @@ msgstr ""
 "Otomatik Sunucu güncelleme listeniz boş.\n"
 "'Sunucu listesini başlangıçta otomatikman güncelle' devre dışı bırakılacak."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5034,19 +5029,19 @@ msgstr ""
 "Geçerli bir şifre belirlenmedikçe dışarıdan bağlantılar devre dışı "
 "kalacaktır."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Dil ayarları değişti.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Geçici Dosyalar dizini değişti.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- ED2K ağı etkinleştirildi.\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5054,7 +5049,7 @@ msgstr ""
 "Hem eD2k hem de Kad ağları devre dışı bırakılmış.\n"
 "En az birini etkinleştirmeden bağlanamaycaksınız."
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5062,7 +5057,7 @@ msgstr ""
 "UDP portu devre dışı bırakılmışsa Kad başlamayacaktır.\n"
 "UDP portu açın veya Kademlia'yı devre dışı bırakın."
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5072,7 +5067,7 @@ msgstr ""
 "aMule' yi ŞİMDİ yeniden başlatmalısınız.\n"
 "Şimdi yeniden başlatmazsanız, kötü şeyler olabilir.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5082,41 +5077,41 @@ msgstr ""
 "Lütfen geçerli bir server.met dosyasını gösteren en az bir adres yazınız.\n"
 "Bir adres girmek için bu kutucuğun yanındaki \"Liste\" düğmesine basınız."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Geçici dosya(lar)"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Gelen dosya(lar)"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Çevrimiçi İmzalar"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "%s için bir dizin seçiniz."
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Ortam Çalıcısı için göz at"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Tarayıcı Seçiniz"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Çalıştırılabilir  %s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Sunucu listesini düzenle"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5124,76 +5119,71 @@ msgstr ""
 "Server.met dosyasını indirmek için buraya bağlantı adresi girin.\n"
 "Her satıra sadece bir adres yazılmalıdır."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "Güncelleme gecikmesi: %d saniye"
-msgstr[1] "Güncelleme gecikmesi: %d saniye"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "Ortalama grafiği için süre: %d dakika"
-msgstr[1] "Ortalama grafiği için süre: %d dakika"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Bağlantı Grafik Ölçüsü: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "Dosya Alım Boyutu: %d bayt"
-msgstr[1] "Dosya Alım Boyutu: %d bayt"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "Gönderme Sıra Boyutu: %d kullanıcı"
-msgstr[1] "Gönderme Sıra Boyutu: %d kullanıcı"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "Sunucu bağlantısı yenileme sıklığı: %d dakika"
-msgstr[1] "Sunucu bağlantısı yenileme sıklığı: %d dakika"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Sunucu bağlantısı yenileme döngüsü: Devre dışı"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "devre dışı"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "'%s' olayında komut çalıştır."
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Çekirdekte komut çalıştırmayı aktifleştir."
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Çekirdek komutu:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Arayüzde komut çalıştırmayı etkinleştir."
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Arayüz komutu:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Şu girdiler değiştirilecek:"
 
@@ -5223,7 +5213,7 @@ msgstr "eD2k ağına bağlanılmamışsa eD2k araması yapılamaz"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Kad araması sırasında beklenilmeyen hata oluştu."
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "Dosya Adresi"
 
@@ -5316,7 +5306,6 @@ msgstr "%s (%s:%i) görünüşe göre dolu."
 msgid "Automatic connection to server will retry in %d second"
 msgid_plural "Automatic connection to server will retry in %d seconds"
 msgstr[0] "Sunucuya otomatik bağlanma %d saniye içinde tekrar denenecek"
-msgstr[1] "Sunucuya otomatik bağlanma %d saniye içinde tekrar denenecek"
 
 #: src/ServerConnect.cpp:412
 msgid "Connection lost"
@@ -5336,7 +5325,7 @@ msgstr "HATA: Zaman aşımı denetlemesinde soket geçersiz"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "%s (%s:%i) adresine bağlanma denemesi zaman aşımına uğradı."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "DNS araştırmasında geç sonuç alındı, atlanıyor."
 
@@ -5363,49 +5352,47 @@ msgstr "Server.met açılamadı!"
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr "Server.met dosyası bozuk, geçersiz sürüm eki bulundu: 0x%x, size %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "%i adet sunucu server.met dosyasında bulundu"
-msgstr[1] "%i adet sunucu server.met dosyasında bulundu"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "%d adet sunucu eklendi"
-msgstr[1] "%d adet sunucu eklendi"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "Hata: 'server.met' dosyası bozuk: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "'server.met' dosyası okumada IO hatası:"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Sunucu eklenmedi: [%s:%d] geçerli bir port içermiyor."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Sunucu eklenmedi: [%s:%d] IP'si süzüldü veya geçersiz."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr "Sunucu eklenmedi: Listede IP:Portu [%s:%d] eşleşen bir sunucu bulundu."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Sunucu eklendi: [%s:%d] adresindeki sunucu '%s' adını kullanıyor."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5413,25 +5400,25 @@ msgstr ""
 "Silmeye çalıştığınız sunucuya bağlı durumdasınız. Lütfen, öncelikle "
 "bağlantıyı kesiniz."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "'%s' açma başarısız"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Server.met kaydetme işlemi başarısız!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Geçersiz adres"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "%s adresinden sunucu listesi aktarımı tamamlandı."
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5440,27 +5427,27 @@ msgstr ""
 "sunucu listenizi otomatik güncellemek için bu bu dosyaya sunucu listesi "
 "dosyası yapıştırın"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Sunucu listesini %s adresinden indirmeye başla."
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr "UYARI: sunucuların otomatik güncellenmesi için geçersi URL girildi: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "address.dat üzerinde, geçerli bir server.met güncelleme adresi bulunamadı."
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "%s adresinden sunucu listesi alınamadı."
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5497,7 +5484,7 @@ msgid "Static"
 msgstr "Statik Sunucu"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Sürüm"
 
@@ -5523,8 +5510,8 @@ msgstr "Statik sunucu %s'i silmek istediğinizden emin misiniz?"
 msgid "Servers (%i)"
 msgstr "Sunucular (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Sunucu"
 
@@ -5580,82 +5567,81 @@ msgstr "Seçili sunucuyu silmek istediğinizden emin misiniz?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Seçili sunucuları silmek istediğinizden emin misiniz?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "HATA: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "UYARI: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Yeni kullanıcı kimliğiniz %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "UYARI: Düşük ID aldınız!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tBüyük ihtimalle bir güvenlik duvarı veya router arkasındasınız."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\tDaha fazla bilgi için: http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Bilinmeyen sunucu bilgisi alındı! - çok kısa"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "%d adet yeni sunucu alındı"
-msgstr[1] "%d adet yeni sunucu alındı"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Sunucu listesinin kaydı tamamlandı."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Sunucu son komutu reddetti"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "Sunucudan bozuk paket alındı: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "Sunucudan paket alınırken beklenmeyen hata: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "%s bağlantısı için DNS çözümlemesi yapılamıyor."
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "Sunucu IP. %s (%s) süzüldü.  Bağlanılmıyor."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "protokol gizleme kullanılarak bağlanıyor."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "%s (%s - %s:%i) adresine %s ."
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Sunucu %s için DNS çözümlenemiyor: Bağlanmak imkansız!"
@@ -5773,14 +5759,12 @@ msgstr "%s dosyası paylaşılanlara ekleniyor"
 msgid "Found %i known shared file"
 msgid_plural "Found %i known shared files"
 msgstr[0] "Bilinen %i adet paylaşılmış dosya bulundu"
-msgstr[1] "Bilinen %i adet paylaşılmış dosya bulundu"
 
 #: src/SharedFileList.cpp:377
 #, c-format
 msgid "Found %i known shared file, %i unknown"
 msgid_plural "Found %i known shared files, %i unknown"
 msgstr[0] "Bilinen %i adet paylaşılmış dosya bulundu. Bilinmeyen %i adet"
-msgstr[1] "Bilinen %i adet paylaşılmış dosya bulundu. Bilinmeyen %i adet"
 
 #: src/SharedFileList.cpp:386
 #, c-format
@@ -5833,89 +5817,94 @@ msgstr "Yerel Dosya Adı"
 msgid "Shares File List"
 msgstr "Paylaşılan Dosyalar Listesi"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "İstekler"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Kabul Edilen İstekler"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Aktarılan Veri"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Paylaşım Oranı"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Alınan Parçalar"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Tam Kaynak Sayısı"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Dizin Konumu"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Yorum/Puanlama Ekle"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Yorum/Puanlama Düzenle"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Yeniden Adlandır"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Koleksiyondaki dosyaları aktarım listesine ekle"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Magnet &bağlantısını panoya kopyala"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "eD2k bağlantısını panoya kopyala (&Kaynak)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr ""
 "eD2k bağlantısını panoya kopyala (Kaynak) (&Şifreleme seçenekleriyle "
 "birlikte)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "eD2k bağlantısını panoya kopyala (&Makine Adı)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr ""
 "eD2k bağlantısını panoya kopyala (Makine adı) (&Şifrelem seçenekleriyle "
 "birlikte)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "eD2k bağlantısını panoya kopyala (&AICH bilgisi)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "eD2k bağlantısını panoya kopyala (&AICH bilgisi)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr ""
 "Geçerli bir kaynak bağlantısı oluşturmak için YüksekID almanız gerekiyor"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Paylaşılan Dosyalar (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[Parça Dosyası]"
 
@@ -5923,235 +5912,235 @@ msgstr "[Parça Dosyası]"
 msgid "Remote File Name"
 msgstr "Dosya Adı"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Gönderilen Veri (Oturum (Toplam)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Toplam Ek Yük (Paket): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Dosya İstemi Ek Yükü (Paket): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Kaynak Değişimi Ek Yükü (Paket): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Sunucu Ek Yükü (Paket):%s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kad Ek Yükü (Paketler): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Şifreleme ek yükü (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Aktif Gönderimler: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Bekleyen Gönderimler: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Toplam başarılı gönderme oturumu: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Toplam başarısız gönderme oturumu: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Ortalama gönderme süresi: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Aktarılan Veri (Oturum (Toplam)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Bulunan Kaynaklar: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Aktif İndirmeler (parçalar): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Oturum GÖN:İND Oranı (Toplam): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Ortalama aktarım oranı (Oturum): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Ortalama gönderim oranı (Oturum): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "En fazla aktarım oranı (Oturum): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "En fazla gönderim oranı (Oturum): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Yeniden Bağlanma: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "İlk Aktarımdan Beri Geçen Süre: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "%s beri Sunucuya Bağlı"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Aktif Bağlantılar (yaklaşık): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Ulaşılan En Fazla Bağlantı Sınırı: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Ortalama Bağlantılar (yaklaşık): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Doruk Bağlantılar (yaklaşık): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Kullanıcılar"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "Bilinmiyor: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "Süzülen: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "Engellenen: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Toplam: %i Bilinen: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Çalışan Sunucular: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Başarısız Sunucular: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Toplam: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Silinen Sunucular: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Süzülen Sunucular: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Çalışan Sunuculardaki Kullanıcı Sayısı: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Çalışan Sunuculardaki Dosya Sayısı: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Toplam Kullanıcılar: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Toplam Dosyalar: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Sunucu Bağlantısı: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Paylaşılmış Dosya Sayısı: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Paylaşılan Dosyaların Toplam Boyutu: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Ortalama dosya boyutu: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "İşletim Sistemi"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Alınmadı"
 
@@ -6210,7 +6199,7 @@ msgstr "Geçerli bir sayı değil\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Geçerli bir adresleme değil (uzunluğu tam olarak 32 karakter olmalı)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "İstem bilinmeyen bir hatayla başarısız oldu."
 
@@ -6264,13 +6253,13 @@ msgstr "Bağlandı: %s %s %s"
 msgid "Now connecting"
 msgstr "Şimdi bağlanıyor"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "güvenlik duvarı"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "tamam"
 
@@ -6699,22 +6688,22 @@ msgstr ""
 "Bu geçersiz bir komut, ve gelecekte belki çıkartılabilir.\n"
 "Bunun yerine '%s' kullanın.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule metin aracı"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr ""
 "'%s' içindeki eski AICH adresleme setleri '%s' içindeki 64 b'ye çevriliyor."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "UYARI: '%s' dosya adı geçersiz ve'%s'olarak yeniden adlandırıldı."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "UYARI: '%s' dosyası zaten var ve '%s'olarak yeniden adlandırıldı."
@@ -6787,7 +6776,7 @@ msgstr "%s komutunun %s olayında çalıştırılması başarısız oldu."
 msgid "Download completed"
 msgstr "İndirme tamamlandı"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Dosyanın tam konumu."
 
@@ -6807,66 +6796,66 @@ msgstr "Dosyanın bayt cinsinden boyutu."
 msgid "Cumulative download activity time."
 msgstr "Toplam indirme hareketleri süresi."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Yeni sohbet oturumu başladı"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "İleti göndericisi."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Dolu"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Disk bölümü."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Tamamla sırasına hata"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "İşlenmekte olan dosya sayısı %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "Parça dosyalarını sormuştunuz (Sadece 9.5 MB' tan büyük dosyalar)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Var olmayan dosya !\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, aMule'nin eD2k bağlantı oluşturucusu"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Hoş geldiniz!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Girdi parametreleri"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Adreslenecek Dosya"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Bu dosya için isteğe bağlı adres ekleyin"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "eD2k bağlantısının hesaplanmasını istediğiniz dosyayı buraya girin"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6874,15 +6863,15 @@ msgstr ""
 "eD2k bağlantısına eklenecek URL' yi girin: aLinkCreator' ün geçerli dosya "
 "adını ekleyebilmesi için sonuna / ekleyin"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Çıkar"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Parça adreslemesi içeren bağlantı oluştur."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6890,81 +6879,81 @@ msgstr ""
 "Yeni ve nadir dosyaların yayılmasına yardımcı olun;bunun bedeli ise artan "
 "bağlantı boyutu olacaktır."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 Dosya Adreslemesi"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k Dosya Adreslemesi"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k bağlantısı"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Kaydet"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Panoya kopyala"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Aç"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "eD2k bağlantısını hesaplamak için bir dosya açın"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Hesaplanan eD2k bağlantısını panoya kopyala"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Farklı Kaydet"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Hesaplanan eDk2 bağlantısını dosyaya kaydet"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "aLinkCreator Hakkında"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "eD2k bağlantısının hesaplanacağı dosyayı seçiniz"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Pano açılamıyor"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Şimdilik kopyalanacak bir şey yok !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Seçiniz"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Açılamıyor"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Lütfen boş olmayan bir dosya adı giriniz."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Şimdilik kaydedilecek bir şey yok !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6984,158 +6973,162 @@ msgstr ""
 "\n"
 "GPL altında dağıtılır."
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Adresleniyor."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator sizin için çalışıyor"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "MD4 Adreslemesi hesaplanıyor..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "eD2k Adreslemeleri hesaplanıyor..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "İptal Edildi !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "%.2f s içinde tamamlandı."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Bu adresi zaten eklemiştiniz. !"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Lütfen boş olmayan bir adres giriniz."
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "%s açılamıyor."
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i gün %i saat %i dakika %i saniye"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uD %02uh %02udk. %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uh %02udk. %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02udk. %02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02us"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, aMule Bağlantı İstatistikleri"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "wxCas çalışmaya başladığından beri en fazla aktarım oranı"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "wxCas'ın önceki açılışlarındaki kesin En Fazla İND. oranı"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Sistem"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Otomatik Yenilemeyi Durdur."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Bağlantı İstatistikleri imajını kaydet."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Bağlantı İstatistikleri imajını yazdır."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Ayarlar"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "wxCas Hakkında"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Otomatik Yenilemeyi Başlat"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Otomatik Yenilemeyi Durdu."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Otomatik Yenileme Başladı."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "İstatistik imajını kaydet."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule Bağlantı İstatistikleri"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7143,11 +7136,11 @@ msgstr ""
 "Yazdırmada bir sorun var.\n"
 "Yazıcınız doğru ayarlanmamış olabilir mi?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Yazdırılıyor"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7166,323 +7159,323 @@ msgstr ""
 "\n"
 "GPL altında dağıtımı yapılır."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "Aman Aman, aMule çalışmıyor..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule çalışıyor"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule çalışıyor ama bağlı değil."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule bağlanıyor..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Aman aman, aMule'nin durumu bilinmiyor..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr "çalışıyor"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " durdu !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " bağlı değil !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr "bağlanıyor..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr "garip şeyler yapıyor, denetleyiniz !"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " şuna bağlandı:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr "Kad:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "bağlı değil"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr "bağlı"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr "ile"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Toplam Aktarım: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", Gönderme: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Oturumdaki Aktarım: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Aktarım: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s, Gönderme "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr "kB"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Paylaşılan: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " dosya(lar), Sıradaki kullanıcılar:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Süre: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " bağlı "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Sistem Yükü Ortalaması (1-5-15 dk.): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Sistem çalışma süresi: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Dizin amulesig.dat dosyası içeriyor"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Buraya amulesig.dat dosyasının bulunduğu dizini giriniz"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Saniye bazında yenileme döngüsü"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Her yenileme olayında bir durum imajı oluştur"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Buraya istatistik imajının oluşturulacağı dizini giriniz."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Durum imajını düzenli olarak FTP sunucusuna gönder."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP bağlantısı"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP Yolu"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Buraya FTP Sunucunuz için adresi giriniz."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "Buraya durum imajını koyacağınız FTP Sunucusundaki bir dizini giriniz."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Kullanıcı"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "FTP sunucunuza girebilmek için bir Kullanıcı adı giriniz."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "FTP sunucunuza girebilmek için bir Şifre giriniz."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Dakika bazında FTP günceleme hızı"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Onayla"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Dizin imza dosyanızı içeriyor."
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "İstatistik imajının üretildiği dizin"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Şablonu yükler <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "web sunucusu HTTP portu"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Web sunucu portu üzerine iletmek için UPnP portunu kullanın"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP portu"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Gzip sıkıştırması kullan"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Web sunucusu için tam erişim parolası"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Web sunucusu için konuk parolası"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Konuk girişine izin ver"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Konuk girişini reddet"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Web sunucusu ayarlarını uzak aMule'ye/ aMule'den kaydet/yükle"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule yapılandırma yolu: DOĞRUDAN KULLANMAYINIZ!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "PHP yorumcusunu devreden çıkar. (onaylanmamış)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Her istemde PHP sayfalarını yeniden oluştur"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule Web  Sunucusu"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "web aracı bağlantısı kabul edildi\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "HATA: web aracı bağlantısı kabul edilemiyor\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "İstem şu hatayla başarısız oldu: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Fihristleme dosyası bulunamadı: "
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Oturum sona erdi - giriş gerekiyor\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Oturum tamam, giriş yapıldı.\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Oturum tamam, giriş yapılmadı.\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Hiç oturum açılmadı -  giriş gerekecek\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Oturum oluşturuldu.-  giriş gerekiyor\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "İstem işleniyor [özgün]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "Bir parola belirtilmemiş. Giriş yapılamaz."
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Şifre denetleniyor\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Şifre adreslemesi geçersiz.\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Şifre kabul edildi.\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Şifre kötü.\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Herhangi bir şifre girmediniz. Boş şifre kullanılamaz.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Çıkış istendi.\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "İstem işleniyor [yönlendirilmiş]: "
 
@@ -7674,9 +7667,6 @@ msgstr "İstem işleniyor [yönlendirilmiş]: "
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Toplam Kullanıcılar: %s | Toplam Dosyalar: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "HTTP aktarımı başladı"
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr ""
 #~ "İndirme boyutu alınamadı, bağlantı kesilinceye kadar indirme sürecek."
diff --git a/po/uk.po b/po/uk.po
index 239af72..2e9b7a2 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule SVN\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2008-12-17 11:21+0200\n"
 "Last-Translator: Oleksandr Kovalenko <alx.kovalenko at gmail.com>\n"
 "Language-Team: Ukrainian <translation at linux.org.ua>\n"
@@ -40,7 +40,7 @@ msgstr "Визначений хеш користувача невірний"
 msgid "Failed to open ED2KLinks file."
 msgstr "Не вдалося відкрити файл ED2KLinks."
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
@@ -48,37 +48,37 @@ msgstr ""
 "ЗАСТЕРЕЖЕННЯ: ви не можете додати себе як джерело для eD2k-посилання маючи "
 "LowID."
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "Тепер, виходимо з головної програми..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, fuzzy, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "Вбиваю екземпляр amuleweb з pid `%ld' ... "
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, fuzzy, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "Вбиваю екземпляр amuleweb з pid `%ld' ... "
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "Невдалі"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule OnExit: Завершується core."
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "Завершення роботи aMule закінчене."
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "Наслідки зневадження пам'яті для виходу aMule:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -86,16 +86,16 @@ msgstr ""
 "\n"
 "Налаштування зовнішніх з'єднань"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "Пароль встановлений та дозволені зовнішні з'єднання."
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "ЗАСТЕРЕЖЕННЯ"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
@@ -103,13 +103,13 @@ msgstr ""
 "Ваша локаль змінена на системну за замовчуванням із-за зміни налаштувань. "
 "Вибачте."
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "Інфо"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -117,16 +117,16 @@ msgstr ""
 "Ви не маєте жодного серверу в переліку серверів.\n"
 "Хочете, щоб aMule звантажив зараз новий?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "Звантажити перелік серверів"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "Веб-сервер запущений з %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -136,23 +136,23 @@ msgstr ""
 "бути запущено. Будь ласка, встановіть пакунок, що містить веб-сервер aMule, "
 "зберіть aMule з --enable-webserver та виконайте make install"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "ПОМИЛКА"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "Неможливо прив'язати порт до визначеної адреси: %s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "Порт %u недоступний. Ви будете мати LowID\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -167,11 +167,11 @@ msgstr ""
 "\n"
 "Перевірте вашу мережу, щоб впевнитись, що порт відкритий."
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "Неможливо створити файл онлайн-підпису"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "Неможливо створити файл онлайн-підпису aMule"
 
@@ -224,133 +224,133 @@ msgstr ""
 "Тека для файлів онлайн-підпису НЕВІРНА!\n"
 "Онлайн-підпис буде ВИМКНЕНО поки ви не виправите це в налаштуваннях."
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "Назва сервера повідомлена"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "Не вдалося виділити місце на диску для файлу '%s': %s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "ПОМИЛКА: не можу відкрити файл часопису"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "ЗАСТЕРЕЖЕННЯ: журнал порожній. Щось негаразд."
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "Часопис очищено"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "Повідомлення сервера: %s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr ""
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "Не вдалося звантажити перелік вузлів."
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "Не вдалося відкрити звантажений файл перевірки версії"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "Файл перевірки версії зіпсований"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "Ви використовуєте застарілу версію aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "Ваша версія aMule %i.%i.%i, а остання %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "Остання версія може бути завжди знайдена на http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "ЗАСТЕРЕЖЕННЯ: Ваша версія aMuled застаріла: %i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "Ваша копія aMule оновлена."
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "Неможливо звантажити файл перевірки версії"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "Користувачі: %s | Файли: %s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "Користувачі: %s K: %s | Файли: E: %s K: %s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "Не вибрано жодної мережі"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "з LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "з HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "З'єднано з %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "З'єднується з %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "Від'єднано від eD2k"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad запущена."
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad зупинена."
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "З'єднано з Kad (все гаразд)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "З'єднано з Kad (за фаєрволом)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "Від'єднано від Kad"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
@@ -358,11 +358,11 @@ msgstr ""
 "Мережа Kad не може бути використана якщо UDP-порт вимкнено в налаштуваннях, "
 "не починаю."
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Мережа Kad вимкнена в налаштуваннях, не з'єднуюсь."
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -374,7 +374,7 @@ msgstr ""
 "режим з опцією --ec-config або встановіть \"AcceptExternalConnections\" в 1 "
 "в файлі ~/.aMule/amule.conf"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -388,19 +388,19 @@ msgstr ""
 "файлі ~/.aMule/amule.conf. Виконайте amuled  з параметром --ec-config, щоб "
 "встановити пароль. Більше інформації можете знайти на http://wiki.amule.org"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled: OnInit - запускається timer"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: переходимо у фоновий режим - до зустрічі"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr ""
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "ПОМИЛКА: %s"
@@ -484,9 +484,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "Повідомлення"
 
@@ -494,7 +494,7 @@ msgstr "Повідомлення"
 msgid "aMule dialog destroyed"
 msgstr "Діалог aMule знищений"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "З'єднується"
 
@@ -528,7 +528,7 @@ msgstr "Kad: вимкнена"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "Скасувати"
 
@@ -545,7 +545,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "Від'єднатися від з'єднаних мереж"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "З'єднатися"
 
@@ -586,7 +586,7 @@ msgstr "Підтвердження виходу"
 msgid "Launch Command: "
 msgstr "Команда для запуску: "
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- за замовчуванням -"
 
@@ -601,81 +601,81 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "ЗАСТЕРЕЖЕННЯ: Неможливо відкрити файл шкіри '%s' для читання"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "Мережі"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "Вікно мереж"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "Пошук"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "Вікно пошуку"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "Звантаження"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 #, fuzzy
 msgid "Downloads Window"
 msgstr "Звантажується"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "Спільні файли"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "Вікно спільних файлів"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "Повідомлення"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "Вікно повідомлень"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "Статистика"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "Вікно статистики"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "Налаштування"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "Вікно налаштувань"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "Зовн. внесення"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "Засіб зовнішнього внесення частково звантажених файлів"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "Про програму"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "Про/Допомога"
 
@@ -695,7 +695,7 @@ msgstr "Немає мережі"
 msgid "aMule remote control"
 msgstr "Віддалене керування aMule"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -707,106 +707,106 @@ msgstr "Жахлива помилка: не вдалося створити Core
 msgid "Connect to remote amule"
 msgstr "З'єднатися з віддаленим aMule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "Жахлива помилка: не вдалося створити Poll Timer"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "Переходимо до циклу обробки подій..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "З'єднання..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "З'єднання невдале "
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "Віддалений обробник подій зовнішніх з'єднань графічного інтерфейсу"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "Вимикається"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "З'єдання невдале. Неможливо з'єднатися з %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "Готовий"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "Всі"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr ""
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "Невідомо"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "Неможливо отримати спільні файли користувача %s"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "Шукається друг для lowid-з'єднання"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (Підробна версія eMule %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (Підробний eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (підробний eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (оснований на eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "Прізвисько: %s ID: %u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "Запросив: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -818,7 +818,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Статистика файлів для цієї сесії: дозволено %d з %d запитаних, %s передано\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -830,7 +830,7 @@ msgstr[1] ""
 msgstr[2] ""
 "Статистика файлів для всіх сесій: дозволено %d з %d запитаних, %s передано\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "Запитаний невідомий файл"
 
@@ -981,12 +981,12 @@ msgid "Client Details"
 msgstr "Подробиці клієнта"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1038,27 +1038,27 @@ msgstr "Перевірено - добре"
 msgid "Not Available"
 msgstr "Недоступно"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "Користувач %s (%u) запитав ваш перелік спільних файлів -> Дозволено"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "Користувач %s (%u) запитав ваш перелік спільних файлів -> Відмовлено"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "Користувач %s (%u) запитав ваш перелік спільних тек -> Дозволено"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "Користувач %s (%u) запитав ваш перелік спільних тек -> Відмовлено"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
@@ -1066,7 +1066,7 @@ msgstr ""
 "Користувач %s (%u) запитав ваш перелік спільних файлів для теки %s -> "
 "Дозволено"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
@@ -1074,32 +1074,32 @@ msgstr ""
 "Користувач %s (%u) запитав ваш перелік спільних файлів для теки %s -> "
 "відмовлено"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "Користувач %s (%u) зробив спільною теку %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "Користувач %s (%u) надіслав незапитані спільні теки."
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "Користувач %s (%u) надіслав перелік спільних файлів для теки %s"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "Користувач %s (%u) завершив надсилати перелік спільних файлів"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "Користувач %s (%u) надіслав небажаний перелік спільних файлів"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr "Користувач %s (%u) заборонив доступ до переліку спільних тек/файлів"
@@ -1114,7 +1114,7 @@ msgstr "Ім'я користувача"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "Назва файлу"
 
@@ -1159,33 +1159,33 @@ msgstr "Авто [звичайна]"
 msgid "Auto [Hi]"
 msgstr "Авто [висока]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "Дуже низька"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "Низька"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "Звичайна"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "Висока"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "Дуже висока"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "Випуск"
 
@@ -1202,12 +1202,12 @@ msgid "Queue Full"
 msgstr "Черга заповнена"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "В черзі"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "Звантажується"
 
@@ -1268,7 +1268,7 @@ msgstr "Місцевий сервер"
 msgid "Remote Server"
 msgstr "Віддалений сервер"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1294,7 +1294,7 @@ msgid "Search Result"
 msgstr "Здобутки пошуку"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "Завершених"
 
@@ -1335,11 +1335,11 @@ msgid "Part"
 msgstr "Частина"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "Розмір"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "Переданих"
 
@@ -1352,17 +1352,17 @@ msgid "Progress"
 msgstr "Перебіг"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "Джерела"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "Перевага"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "Стан"
@@ -1387,7 +1387,7 @@ msgstr "Ви впевнені, що хочете видалити вибрани
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "Ви впевнені, що хочете видалити вибрані файли?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1397,7 +1397,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "Автоматично"
 
@@ -1449,11 +1449,11 @@ msgstr "Показати всі коментарі"
 msgid "Copy magnet URI to clipboard"
 msgstr "Скопіювати magnet-посилання в буфер обміну"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "Скопіювати eD2k-посилання до буферу обміну"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "Скопіювати інформацію відгуку до буферу обміну"
 
@@ -1469,24 +1469,24 @@ msgstr "Призначити категорію"
 msgid "&Open the file"
 msgstr "Відкрити файл"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "Введіть нову назву для цього файлу:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "Змінити назву файлу"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y.%m.%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "Звантаження (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1495,11 +1495,11 @@ msgstr ""
 "перегляду,\n"
 "оберіть відеопрогравач в налаштуваннях (за замовчуванням mplayer)."
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "Попередній перегляд файлу"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "ПОМИЛКА: не вдалося виконати зовнішній медіа-програвач! Команда: '%s'"
@@ -1608,29 +1608,29 @@ msgstr "Зовнішні з'єднання вимкнені, оскільки в
 msgid "External connections disabled in config file"
 msgstr "Зовнішні з'єднання вимкнені у файлі налаштувань."
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "Дозволено нове зовнішнє з'єднання"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "ПОМИЛКА: неможливо дозволити нове зовнішнє з'єднання"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr ""
 "Відмовлено у зовнішньому з'єднанні, оскільки в налаштуваннях порожній пароль!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "З'єднується клієнт: %s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "Невідома версія"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1638,7 +1638,7 @@ msgstr ""
 "Невірний ID версії EC, може бути двійкова несумісність. Використовуйте ядро "
 "та віддаленого клієнта з того самого зрізу"
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
@@ -1647,175 +1647,175 @@ msgstr ""
 "Ви не можете під'єднатись до остаточної версії з довільної SVN-версії! "
 "Можлива відмова попереджена"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "Невірна версія протоколу."
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "Відсутня позначка версії протоколу."
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr ""
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 #, fuzzy
 msgid "Authentication failed: wrong password."
 msgstr "Аутентифікація не вдалася."
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 #, fuzzy
 msgid "Authentication failed: missing password."
 msgstr "Аутентифікація не вдалася."
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 #, fuzzy
 msgid "Invalid request, please authenticate first."
 msgstr "Невірний запит, ви маєте спочатку представитись."
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "Дозвіл надано."
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, fuzzy, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "Фільтрувати повідомлення від невідомих клієнтів"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, fuzzy, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "Спроба доступу без уповноваження. З'єднання розірвано."
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "Віддалена PartFile-команда не вдалася: хеш файлу не знайдено: %s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "Хеш файлу не знайдений: %s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "Помилка при виконання OpCode"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "Сервер не додано"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "сервер не знайдено: %s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "потрібно визначити сервер для видалення"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k вимкнена у налаштуваннях"
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "Пошук просувається. За мить отримаю здобутки!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "Веб-пошук через віддалений інтерфейс не має сенсу. "
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "Немає точок для графіку."
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "Ваш клієнт не налаштований для такого рівня подробиць."
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "Зовнішнє з'єднання: запит на вимкнення"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "Вже вимикається."
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "Зовнішнє з'єднання: додається посилання '%s'"
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "Недопустиме посилання або вже в переліку."
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "Файл не знайдено."
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "Недопустима назва файлу."
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "Неможливо змінити назву файлу."
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad вимкнена в налаштуваннях."
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "Вже з'єднано з eD2k"
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "З'єднується з eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Вже з'єднано з Kad."
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "З'єднується з Kad"
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "Всі мережі вимкнені."
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "Від'єднується від eD2k."
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "Від'єднується від Kad."
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "Зовнішнє з'єднання: отримано недопустимий opcode: %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "Недопустимий opcode (невірна версія протоколу?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "Невідоме розширення '%s' для команди '%s'.\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "Невідома команда '%s'.\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1823,7 +1823,7 @@ msgstr ""
 "\n"
 "Ця команда не може мати аргумент.\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1831,7 +1831,7 @@ msgstr ""
 "\n"
 "Ця команда повинна мати аргумент.\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1840,7 +1840,7 @@ msgstr ""
 "Ця команда незавершена, ви повинні використати одне з розширень, що подані "
 "нижче.\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1848,11 +1848,11 @@ msgstr ""
 "\n"
 "Доступні розширення:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "Доступні команди:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1863,17 +1863,17 @@ msgstr ""
 "Всі команди розрізняють великі та малі літери.Введіть '%s <command>' щоб "
 "отримати докладну інформацію по <command>.\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "Вийти з програми."
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "Показати допомогу."
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1881,7 +1881,7 @@ msgstr ""
 "Щоб отримати допомогу по команді, введіть 'help <command>'.\n"
 "Щоб отримати повний перелік команд, введіть ''help\".\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1892,48 +1892,48 @@ msgstr ""
 "Використовуйте '%s' для переліку команд\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "Помилка синтаксису!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr ""
 "Помилка обробки команди - не повинно ніколи такого бути! Будь, ласка, "
 "повідомте про помилку\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "Ця команда не повинна мати жодного параметру."
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "Ця команда повинна мати параметр."
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "Невірний аргумент."
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "Це незавершена команда"
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "Напишіть '%s' щоб отримати більше допомоги.\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "Це %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "Це %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1941,7 +1941,7 @@ msgstr ""
 "\n"
 "Створюється клієнт...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1950,7 +1950,7 @@ msgstr ""
 "\n"
 "Добре, виходимо %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1964,47 +1964,47 @@ msgstr ""
 "\n"
 "Вихід...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "Показати цей текст допомоги."
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "Хост, де запущений aMule (за замовчуванням: localhost)."
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "Порт aMule для зовнішніх з'єднань (зазвичай: 4712)."
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "Пароль зовнішнього з'єднання"
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "Читати налаштування з файлу."
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "Не друкувати нічого до stdout."
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "Бути докладним: показувати також всі повідомлення налагодження"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "Вибрати локаль програми (мова)."
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "Записати параметри командного рядка до файлу налаштувань."
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "Створити файл налаштувань оснований на файлі налаштувань aMule."
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "Друкувати версію програми."
 
@@ -2017,8 +2017,8 @@ msgstr "Подробиці файлу"
 msgid "%.1f%% done"
 msgstr "%.2f%% виконано"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f кбайт/с"
@@ -2035,7 +2035,7 @@ msgstr "Неможливо відкрити перелік друзів 'emfrien
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "КРИТИЧНО - немає клієнта на StartChatSession"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "Друзі"
 
@@ -2166,32 +2166,32 @@ msgstr ""
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr ""
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr ""
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, fuzzy, c-format
 msgid "Downloaded %d bytes"
 msgstr "Звантажені"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr ""
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr ""
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 #, fuzzy
 msgid "Unable to connect to HTTP download server"
 msgstr "Перез'єднатись з сервером"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr ""
 
@@ -2224,7 +2224,7 @@ msgstr "Успішно оновлено GeoIP.dat"
 msgid "Error updating GeoIP.dat"
 msgstr "Помилка оновлення GeoIP.dat"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, fuzzy, c-format
 msgid "Failed to download %s from %s"
 msgstr "Не вдалося звантажити GeoIP.dat з %s"
@@ -2271,7 +2271,7 @@ msgstr[2] "%u спотворених рядків були відкинуті."
 msgid "Failed to rename new %s file, aborting update."
 msgstr "Неможливо змінити назву нового файлу GeoIP.dat, оновлення зірване."
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr ""
 
@@ -2288,53 +2288,53 @@ msgstr ""
 msgid "Nodes (%u)"
 msgstr "Вузли (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "Недопустима IP-адреса для початкового запуску"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "Недопустимий порт для початкового запуску"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "Будь ласка, заповніть потрібні поля"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "Ви впевнені, що хочете звантажити новий файл nodes.dat?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr ""
 "Такі дії призведуть до видалення поточних вузлів та перез'єднання з Kademlia."
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "Продовжити?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kademlia: пошукове слово занадто коротке"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "Ключове слово для пошуку: %s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kademlia: пошукове слово вже в переліку пошуку: "
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr ""
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
@@ -2342,14 +2342,14 @@ msgstr[0] "Прочитано %u контакт Kad"
 msgstr[1] "Прочитано %u контакти Kad"
 msgstr[2] "Прочитано %u контактів Kad"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr ""
 "Не знайдено жодного контакту, будь ласка, здійсніть початковий запуск або "
 "звантажте файл nodes.dat"
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
@@ -2357,7 +2357,7 @@ msgstr[0] "Тільки %d контакт Kad доступний, nodes.dat не
 msgstr[1] "Тільки %d контакти Kad доступні, nodes.dat не записано"
 msgstr[2] "Тільки %d контактів Kad доступні, nodes.dat не записано"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
@@ -2365,32 +2365,32 @@ msgstr[0] "Записано %d контакт Kad"
 msgstr[1] "Записано %d контакти Kad"
 msgstr[2] "Записано %d контактів Kad"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "Назва файлу"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "Розмір файлу"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "Відношення передачі"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "Вивантажено"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "Запитано"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "Дозволено"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "Завершених джерел"
 
@@ -2418,72 +2418,77 @@ msgstr "Невідома версія"
 msgid "Unable to get error description for error %d"
 msgstr "Тека призначення для звантажень"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "Обчислюється хеш"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "Завершується"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "Завершений"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "Призупинений"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "Помилковий"
 
 # файл
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "Очікує"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "Ви повинні вказати непорожній пароль."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "Неправильний пароль, не MD5-хеш"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "З'єднання невдале"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "EC з'єднання невдале. Порожня відповідь."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 #, fuzzy
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "Зовнішнє з'єднання: невірна відповідь сервера. З'єднання закрите."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "Успіх! Встановлене з'єднання до aMule"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "Успіх! Встановлене з'єднання."
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "Зовнішнє з'єднання: в доступі відмовлено з причини: "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 #, fuzzy
 msgid "External Connection: Handshake failed."
 msgstr "Зовнішнє з'єднання: в доступі відмовлено"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "Потік звантаження HTTP розпочатий"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "ListenSocket: Гаразд."
@@ -2492,16 +2497,16 @@ msgstr "ListenSocket: Гаразд."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "ПОМИЛКА: неможливо відкрити TCP-порт"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "ПОМИЛКА: "
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "ЗАСТЕРЕЖЕННЯ: "
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "Закрити"
 
@@ -2509,8 +2514,8 @@ msgstr "Закрити"
 msgid "Cut"
 msgstr "Вирізати"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "Скопіювати"
 
@@ -2519,7 +2524,7 @@ msgid "Paste"
 msgstr "Вставити"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "Очистити"
 
@@ -2529,7 +2534,7 @@ msgstr "Вибрати всі"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "кбайт/с"
@@ -2606,7 +2611,7 @@ msgid "ServerIP: "
 msgstr "IP серверу: "
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "Не з'єднано"
 
@@ -2641,7 +2646,7 @@ msgstr "Online-підпис: увімкнено"
 msgid "Online Signature: Disabled"
 msgstr "Online-підпис: вимкнено"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "Час роботи: %s"
@@ -2682,7 +2687,7 @@ msgstr "Сховати aMule"
 msgid "Show aMule"
 msgstr "Показати aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "Вийти"
 
@@ -2767,7 +2772,7 @@ msgstr "Пошук"
 msgid "Name:"
 msgstr "Назва:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "Тип"
 
@@ -2795,38 +2800,38 @@ msgstr "Фільтрування"
 msgid "File Type"
 msgstr "Тип файлу"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "Будь-який"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "Архіви"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "Аудіо"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "Образи CD"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "Зображення"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "Програми"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "Тексти"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "Відео"
 
@@ -2847,11 +2852,11 @@ msgid "KB"
 msgstr "кбайт"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "Мбайт"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "Гбайт"
 
@@ -2879,7 +2884,7 @@ msgstr "Перевернути фільтр"
 msgid "Hide Known Files"
 msgstr "Сховати відомі файли"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "Почати"
 
@@ -2937,7 +2942,7 @@ msgstr "Повна назва:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "недоступні"
 
@@ -2961,7 +2966,7 @@ msgstr "Стан часткових файлів:"
 msgid "Last seen complete :"
 msgstr "Востаннє повний:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "Передавання"
 
@@ -3049,27 +3054,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "Якість файлу"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "Без рейтингу"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "Невірний / Зіпсований / Підробний"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "Погано"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "Непогано"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "Добре"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "Відмінно"
 
@@ -3115,7 +3120,7 @@ msgid "Userhash :"
 msgstr "Хеш користувача:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "Додати"
 
@@ -3345,9 +3350,9 @@ msgstr ""
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "Переглянути"
 
@@ -3436,7 +3441,7 @@ msgstr "Найбільше одночасних з'єднань:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "eD2k"
 
@@ -3555,7 +3560,7 @@ msgstr "Введіть найменше бажане місце на диску"
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "Зберегти 10 джерел рідкісних файлів (менше ніж 20 джерел)"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "Вивантаження"
 
@@ -3797,7 +3802,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "Ввімкнути UPnP перенаправлення для EC-порту"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "Пароль"
 
@@ -3880,8 +3885,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "Виберіть колір для цієї категорії (зараз вибрано):"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "Очистити"
 
@@ -4284,88 +4289,93 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "Ввімкнути докладне ведення часопису."
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "Відкрити файл"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "Категорія повідомлення:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "Очікується..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "Додати зовнішні внесення"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "Повторити вибрані"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "Вилучити вибрані"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "Типи подій"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 #, fuzzy
 msgid "Active Uploads"
 msgstr "Чинні вивантаження:"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr ""
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "Сховати спільні файли"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "Вибрати фільтр перегляду"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "Чинні вивантаження"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "Показати клієнтів"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 #, fuzzy
 msgid "Reload:"
 msgstr "Перезавантажити перелік"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "Перезавантажити ваші спільні файли"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "Надіслати"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "Надіслати вказане повідомлення."
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "Закрити цю розмову."
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "З'єднатися з будь-яким сервером та/чи Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "Спільні файли"
 
@@ -4374,137 +4384,137 @@ msgstr "Спільні файли"
 msgid "Disabled [%s]"
 msgstr "Вимкнено [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "байт"
 msgstr[1] "байти"
 msgstr[2] "байт"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "кбайт"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "Тбайт"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "к"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "М"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "Г"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "Т"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "байт/с"
 msgstr[1] "байти/с"
 msgstr[2] "байт/с"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "Мбайт/с"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "с"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "хв"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "год"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "діб"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "всі"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "всі інші"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "Незавершені"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "Зупинені"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "Відео"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "Архів"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "Текст"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "Чинні"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr ""
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "Очікується завершення потому перетворення часткового файлу..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "Вноситься %s: %s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "Читається тимчасова тека"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "Витягується основна інформація з інформації звантажуваного файла"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "Створюється файл призначення"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "Завантажуються дані зі старого файлу звантажень (%u з %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "Зберігається блок даних в новий один файл звантаження (%u з %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "Отримується інформація по джерелам звантажуваного файла"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "Додається звантаження та зберігається новий частковий файл"
 
@@ -4520,12 +4530,12 @@ msgstr "Стан"
 msgid "Filehash"
 msgstr "Хеш файлу"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (диск: %s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
@@ -4533,12 +4543,12 @@ msgstr ""
 "Будь ласка, виберіть теку з тимчасовими звантаженнями! (підтеки будуть "
 "додані)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "Ви хочете, щоб джерела успішно внесених звантажень були видалені?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "Видалити джерела?"
 
@@ -4654,7 +4664,7 @@ msgstr "Частковий файл %s (%s) має порожні файли-д
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "Помилка читання файлу-джерела часткового файлу (%s - %s): %s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4672,39 +4682,39 @@ msgstr[2] ""
 "Знайдена підробна частина (%d) в (%d) часткових файлах %s - FileResultHash |%"
 "s| FileHash |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "Знайдено завершену частину (%i) в %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "Завершене повторне обчислення хешу: %s"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "Неочікувана помилка під час завершення %s. Файл призупинено"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "Завершене звантаження: %s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "Видаляється файл: %s"
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr ""
 "ЗАСТЕРЕЖЕННЯ: неможливо обчислити хеш звантаженого файлу - набір хешів "
 "неповний для '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4713,235 +4723,235 @@ msgstr ""
 "ПОМИЛКА: неможливо обчислити хеш звантаженого файлу - набір хешів неповний (%"
 "s). Такого ніколи не повинно бути"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr ""
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr ""
 "ЗАСТЕРЕЖЕННЯ: недостатньо вільного місця на диску! Призупиняється файл: %s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "Звантажена частина %i зіпсована в файлі: %s"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "Р.О.П.: відновлено зіпсовану частину %i для %s -> Збережено байт: %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "Виділяється"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "Не вистачає місця на диску"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "Звантажені"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "ПОМИЛКА: не вдалося відкрити частковий файл '%s'"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "Мова системи"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "Албанська"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "Арабська"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 #, fuzzy
 msgid "Asturian"
 msgstr "Естонська"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "Баскська"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "Болгарська"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "Каталонська"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "Китайська (спрощена)"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "Китайська (традиційна)"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "Хорватська"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "Чеська"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "Данська"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "Нідерландська"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "Англійська (Великобританія)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "Естонська"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "Фінська"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "Французька"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "Галісійська"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "Німецька"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "Грецька"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "Іврит"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "Угорська"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "Італійська"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "Італійська (Швейцарія)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "Японська"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "Корейська"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "Литовська"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "Норвезька (Нюнорск)"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "Польська"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "Португальська"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "Португальська (Бразилія)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "Російська"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "Словенська"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "Іспанська"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "Шведська"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "Турецька"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "Українська"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 #, fuzzy
 msgid "Change Language"
 msgstr "Мова: "
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "Недоступний"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "немає наявних опцій"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "Знайдена помилкова категорія, пропущена"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr ""
 "Порт TCP не може бути більшим ніж 65532, оскільки UDP-порт сервера є TCP+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "Буде використовуватися порт за замовчуванням (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "Усунення неіснуючих спільних тек: %s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "З'єднання"
 
@@ -4949,7 +4959,7 @@ msgstr "З'єднання"
 msgid "Directories"
 msgstr "Теки"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "Сервери"
 
@@ -5000,7 +5010,7 @@ msgid ""
 "    %PARTNAME - file name only"
 msgstr ""
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -5016,26 +5026,26 @@ msgstr ""
 "aMule чудово працює без зміни будь-яких\n"
 "з цих параметрів."
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "Помилка з'єднання Cfg до Widget з ID %d та ключем %s"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "Помилка передавання даних з Cfg до Widget з ID %d та ключем %s"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "Тип проксі з яким ви з'єднуєтесь"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "Помилка передавання даних з Widget до Cfg з ID %d та ключем %s"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -5043,30 +5053,35 @@ msgstr ""
 "aMule має бути перезапущений, щоб зміни подіяли:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP-порт змінено.\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP-порт змінено.\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "Зовнішнє з'єднання розірвано."
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "Дозволено нове зовнішнє з'єднання"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "Зовнішнє з'єднання розірвано."
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "Приховування протоколу"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -5074,7 +5089,7 @@ msgstr ""
 "Ваш перелік автоматичного оновлення серверів порожній.\n"
 "'Автоматичне оновлення серверів під час завантаження буде вимкнено."
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -5082,20 +5097,20 @@ msgstr ""
 "Ви увімкнули зовнішні з'єднання, але не визначили пароль.\n"
 "Зовнішні з'єднання не можуть бути ввімкнені поки не вказано вірний пароль."
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- Мова змінена.\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- Тимчасова тека змінена.\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 #, fuzzy
 msgid "- ED2K network enabled.\n"
 msgstr "Всі мережі вимкнені."
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -5103,7 +5118,7 @@ msgstr ""
 "Обидві eD2k та Kad-мережі вимкнені.\n"
 "Ви не зможете з'єднатися поки не увімкнете хоча б одну з них"
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -5111,7 +5126,7 @@ msgstr ""
 "Kad не розпочне роботу, якщо UDP-порт вимкнено.\n"
 "Увімкніть UDP-порт або вимкніть Kad"
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -5121,7 +5136,7 @@ msgstr ""
 "Ви ЗОБОВ'ЯЗАНІ перезапустити aMule зараз.\n"
 "Якщо ж не перезапустите, не скаржтеся, коли станеться щось жахливе.\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -5132,41 +5147,41 @@ msgstr ""
 "server.met.\n"
 "Натисніть на кнопку \"Перелік\" щоб ввести адресу."
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "Тимчасові файли"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "Вхідні файли"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "Онлайн-підписи"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "Виберіть теку для %s"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "Переглянути, щоб знайти відеопрогравач"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "Вибрати переглядач тенет"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "Виконуваний %s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "Редагувати перелік серверів"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5174,7 +5189,7 @@ msgstr ""
 "Додайте тут адреси файлів server.met.\n"
 "Тільки одна адреса на рядок."
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
@@ -5182,7 +5197,7 @@ msgstr[0] "Затримка оновлення: %d секунда"
 msgstr[1] "Затримка оновлення: %d секунди"
 msgstr[2] "Затримка оновлення: %d секунд"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
@@ -5190,12 +5205,12 @@ msgstr[0] "Час усереднення графіків: %d хвилина"
 msgstr[1] "Час усереднення графіків: %d хвилини"
 msgstr[2] "Час усереднення графіків: %d хвилин"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "Зміна розміру графіка з'єднань: %d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
@@ -5203,7 +5218,7 @@ msgstr[0] "Розмір файлу буфера: %d байт"
 msgstr[1] "Розмір файлу буфера: %d байти"
 msgstr[2] "Розмір файлу буфера: %d байт"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
@@ -5211,7 +5226,7 @@ msgstr[0] "Розмір черги вивантаження: %d клієнт"
 msgstr[1] "Розмір черги вивантаження: %d клієнти"
 msgstr[2] "Розмір черги вивантаження: %d клієнтів"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
@@ -5219,36 +5234,36 @@ msgstr[0] "Інтервал оновлення з'єднання з сервер
 msgstr[1] "Інтервал оновлення з'єднання з сервером: %d хвилини"
 msgstr[2] "Інтервал оновлення з'єднання з сервером: %d хвилин"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "Інтервал оновлення з'єднання з сервером: вимкнено"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "вимкнено"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "Виконати команду на подію '%s'"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "Ввімкнути виконання команди в ядрі"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "Команда ядра:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "Ввімкнути виконання команд в ГІК"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "Команда ГІК:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "Наступні змінні будуть замінені:"
 
@@ -5278,7 +5293,7 @@ msgstr "Пошук eD2k не може бути виконаний, якщо eD2k
 msgid "Unexpected error while attempting Kad search: "
 msgstr "Неочікувана помилка, коли намагаюсь шукати в Kad:"
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "ID файлу"
 
@@ -5397,7 +5412,7 @@ msgstr "ПОМИЛКА: невірний сокет після сплину ча
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "Спроба з'єднання з %s (%s:%i) добігла кінця."
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "Отриманий застарілий наслідок запиту до DNS, відкидається."
 
@@ -5425,7 +5440,7 @@ msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr ""
 "Файл server.met підробний, знайдена невірна мітка версії: 0x%x, розмір %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
@@ -5433,7 +5448,7 @@ msgstr[0] "%i сервер знайдено в server.met"
 msgstr[1] "%i сервери знайдені в server.met"
 msgstr[2] "%i серверів знайдені в server.met"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
@@ -5441,36 +5456,36 @@ msgstr[0] "Додано %d сервер"
 msgstr[1] "Додано %d сервери"
 msgstr[2] "Додано %d серверів"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr ""
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "Помилка введення-виведення під час читання файлу known.met: %s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "Сервер не додано: [%s:%d] не визначив вірний порт."
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "Сервер не додано: IP-адреса [%s:%d] відфільтрована або неприпустима."
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr "Сервер не додано: сервер з такими ж IP:порт [%s:%d] вже в переліку."
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "Сервер додано: сервер на [%s:%d] використовуючи назву '%s'."
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
@@ -5478,25 +5493,25 @@ msgstr ""
 "Ви з'єднані з сервером, який хочете видалити, будь ласка, роз'єднайтесь "
 "спочатку."
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "Не вдалося відкрити '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "Неможливо зберегти server.met!"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "Невірна URL-адреса"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, fuzzy, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "Завершилось звантаження переліку серверів з %s"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5505,28 +5520,28 @@ msgstr ""
 "вставте вірний перелік адрес серверів в цей файл для того щоб автоматично "
 "оновити ваш перелік серверів"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "Починається звантаження переліку серверів з %s"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr ""
 "ЗАСТЕРЕЖЕННЯ: вказана невірна адреса для автоматичного оновлення серверів: %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr ""
 "Немає правильної адреси автоматичного звантаження server.met в addresses.dat"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "Неможливо звантажити перелік серверів з %s"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5561,7 +5576,7 @@ msgid "Static"
 msgstr "Постійні"
 
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "Версія"
 
@@ -5587,8 +5602,8 @@ msgstr "Ви впевнені, що хочете видалити постійн
 msgid "Servers (%i)"
 msgstr "Сервери (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "Сервер"
 
@@ -5644,39 +5659,39 @@ msgstr "Ви впевнені, що хочете видалити вибрани
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "Ви впевнені, що хочете видалити вибрані сервери?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "ПОМИЛКА: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "ЗАСТЕРЕЖЕННЯ: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "Новий id клієнта %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "ЗАСТЕРЕЖЕННЯ: ви отримали LowID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\tНайбільш ймовірно це тому, що ви за фаєрволом або маршрутизатором."
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr ""
 "\tЗа додатковою інформацією, будь ласка, завітайте до http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "Отримана невідома інформація про сервери! - занадто коротко"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
@@ -5684,45 +5699,45 @@ msgstr[0] "Отримано %d новий сервер"
 msgstr[1] "Отримано %d нові сервери"
 msgstr[2] "Отримано %d нових серверів"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "Збереження переліку серверів завершено."
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "Сервер відхилив останню команду"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "З сервера отримано підробний пакет: %s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr ""
 "Помилка, що не може бути опрацьована, під час обробки пакету з сервера: %s"
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "Неможливо створити потік DNS-запиту для з'єднання з %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "IP-адреса сервера %s (%s) відфільтрована.  Не з'єднується."
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "використовується приховування протоколу."
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "З'єднуюсь з %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "Неможливо визначити DNS-назву для сервера: %s. Неможливо з'єднатися!"
@@ -5912,84 +5927,89 @@ msgstr "Назва файлу"
 msgid "Shares File List"
 msgstr "Спільні файли"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "Запитів"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "Прийняті запити"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "Передані дані"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "Відношення поширення"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "Отримані частини"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "Повних джерел"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "Шлях до теки"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "Додати коментар/рейтинг"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "Редагувати коментар/рейтинг"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "Змінити назву"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "Додати файли зі збірки до переліку передач"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "Скопіювати magnet-посилання до буферу обміну"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "Скопіювати eD2k-посилання до буферу обміну (джерело)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "Скопіювати eD2k-посилання до буферу обміну (джерело з шифруванням)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "Скопіювати eD2k-посилання до буферу обміну (назва хосту)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "Скопіювати eD2k-посилання до буферу обміну (назва хосту з шифруванням)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "Скопіювати eD2k-посилання до буферу обміну (інформація AICH)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "Скопіювати eD2k-посилання до буферу обміну (інформація AICH)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "Вам потрібно мати HighID щоб створити посилання на джерело"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "Спільні файли (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[частковий файл]"
 
@@ -5998,236 +6018,236 @@ msgstr "[частковий файл]"
 msgid "Remote File Name"
 msgstr "Назва файлу"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "Вивантажені дані (сесія (всього)): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "Всього службового трафіку (пакети): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "Трафік запитів (пакети): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "Трафік обміну джерелами (пакети): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "Трафік з сервером (пакети): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Трафік Kad (пакети): %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "Втрати на шифрування (UDP): %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "Активні вивантаження: %s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "Вивантаження очікують: %s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "Вього успішних сесій вивантаження: %s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "Всього невдалих сесій вивантаження: %s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "Середній час вивантаження: %s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "Звантажені дані (сесія (всього)): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "Знайдені джерела: %s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "Чинні звантаження (шматки): %s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "Відношення вивантажено/звантажено за сесію (всього): %s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "Середня швидкість звантаження (сесія): %s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "Середня швидкість вивантаження (сесія): %s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "Найбільша швидкість звантаження (сесія): %s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "Найбільша швидкість вивантаження (сесія): %s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "Перепід'єднань: %i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "Пройшло часу з останньої передачі: %s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "З'єднано з сервером з: %s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "Чинні з'єднання (приблизно): %i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "Досягнуто найбільшої кількості з'єднань: %s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "Середня кількість з'єднань (приблизно): %g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "Найбільше з'єднань (приблизно): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "Клієнти"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, fuzzy, c-format
 msgid "Unknown: %s"
 msgstr "Невідомий розмір"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, fuzzy, c-format
 msgid "Filtered: %s"
 msgstr "Відфільтровані"
 
 # користувач
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, fuzzy, c-format
 msgid "Banned: %s"
 msgstr "заборонений"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "Всього: %i Відомих: %i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "Робочі сервери: %i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "Неробочі сервери: %i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "Всього: %s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "Видалені сервери: %s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "Відфільтровані сервери: %s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "Користувачів на робочих серверах: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "Файлів на робочих серверах: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "Всього користувачів: %llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "Всього файлів: %llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "Навантаження на сервер: %.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "Кількість спільних файлів: %s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "Загальний розмір спільних файлів: %s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "Середній розмір файлу: %s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "Операційна система"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "Не отримана"
 
@@ -6285,7 +6305,7 @@ msgstr "Невірне число\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "Невірний хеш (довжина має бути точно 32 символи)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "Запит невдалий з невідомою помилкою."
 
@@ -6340,13 +6360,13 @@ msgstr "З'єднався з %s %s %s"
 msgid "Now connecting"
 msgstr "Не з'єднується"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "за фаєрволом"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "гаразд"
 
@@ -6799,21 +6819,21 @@ msgstr ""
 "Це застаріла команда та може бути видалена в майбутньому.\n"
 "Використовуйте '%s' замість неї.\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "Текстовий клієнт aMule"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "Перетворюється старий набір хешів AICH в '%s' до 64b в '%s'."
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "ЗАСТЕРЕЖЕННЯ: назва файлу '%s' невірна і буде змінена на '%s'."
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr ""
@@ -6886,7 +6906,7 @@ msgstr "Не вдалося виконати команду `%s' на подію
 msgid "Download completed"
 msgstr "Звантаження завершено"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "Повний шлях до файлу."
 
@@ -6906,68 +6926,68 @@ msgstr "Розмір файлу в байтах."
 msgid "Cumulative download activity time."
 msgstr "Загальний час звантаження."
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "Розпочато нову розмову"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "Відправник."
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "Немає місця"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "Розділ диску."
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "Помилка під час завершення"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "Кількість оброблених файлів %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr ""
 "Ви запитали частковий хеш (використовується тільки для файлів розмір яких "
 "більше ніж 9.5 МБ"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> Файл не існує!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, створювач eD2k-посилань aMule"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "Ласкаво просимо!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "Вхідні параметри"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "Файл для обчислення хешу"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "Додати додаткові URL-адреси для цього файлу"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "Введіть тут файл, eD2k-посилання якого хочете обчислити"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6975,15 +6995,15 @@ msgstr ""
 "Введіть тут адресу, яку хочете додати до eD2k-посилання: Додати / в кінець, "
 "щоб дати змогу aLinkCreator долучити поточну назву файлу"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "Вилучити"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "Створити посилання з частковими хешами"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
@@ -6991,81 +7011,81 @@ msgstr ""
 "Допоможіть поширювати нові та рідкісні файли швидше за рахунок збільшення "
 "розміру посилання"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4-хеш файлу"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k-хеш файлу"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k-посилання"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "Зберегти"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "Скопіювати до буферу обміну"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "Відкрити"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "Відкрити файл, щоб обчислити його eD2k-посилання"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "Копіювати eD2k-посилання до буферу обміну"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "Зберегти як"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "Зберегти розраховане eD2k-посилання до файлу"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "Про aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "Виберіть файл eD2k-посилання якого потрібно обчислити"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "Не можу відкрити буфер обміну"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "Зараз немає що копіювати!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "Виберіть файл для обчисленого eD2k-посилання"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "Неможливо відкрити "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "Будь ласка, введіть непорожнє ім'я файлу"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "Зараз немає що зберігати!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -7085,159 +7105,163 @@ msgstr ""
 "\n"
 "Distributed under GPL"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "Обчислення хешу..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator працює для вас"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "Обчислюється MD4-хеш..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "Обчислюються хеші eD2k..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "Скасовано!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "Виконано за %.2f с"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "Ви вже додали цю URL-адресу!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "Будь ласка, введіть непустий URL-адресу"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "Неможливо відкрити %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i діб %i год %i хв %i с"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02uдіб %02uгод %02uхв %02uс"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02uгод %02uхв %02uс"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02uхв %02uс"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02uс"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f байт"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.0f кбайт"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.0f Мбайт"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.0f Гбайт"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.0f Тбайт"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, aMule онлайн-статистика"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "Найбільша швидкість звантаження з тих пір як wxCas запущено"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr ""
 "Безумовна найбільша швидкість звантаження під час попереднього запуску wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "Система"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "Зупинити автоматичне оновлення"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "Зберегти зображення онлайн статистики"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "Надрукувати зображення онлайн статистики"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "Налаштування"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "Про wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "Розпочати автоматичне оновлення"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "Автоматичне оновлення зупинено"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "Автоматичне оновлення розпочато"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "Зберегти зображення статистики"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "Онлайн статистика aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7245,11 +7269,11 @@ msgstr ""
 "Негаразди друку.\n"
 "Можливо ваша поточна друкарка не налаштована вірно?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "Друк"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7267,325 +7291,325 @@ msgstr ""
 "\n"
 "Distributed under GPL"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "aMule не запущений..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule запущений"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule запущений, але від'єднаний"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule з'єднується..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "Стан aMule невідомий..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " працює "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " зупинений!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr " не з'єднаний!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " з'єднується..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " робить щось дивне, перевірте!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " з'єднався з "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "вимкнено"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " ввімкнено "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " з "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "Всього звантажень: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ", вивантажень: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "Сесія звантаження: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "Звантаження: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " кбайт/с, вивантаження: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " кбайт/с"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "Спільні файли: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " файл(ів), клієнтів у черзі: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "Час: "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " ввімкнено "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "Середня завантаженість системи (1-5-15 хв): "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "Час роботи системи: "
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "Тека, що містить файл amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "Введіть тут теку, де знаходиться файл amulesig.dat"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "Час оновлення в секундах"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "Створювати зображення статистики під час кожного оновлення"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "Введіть назву теки, де б ви хотіли зберігати зображення статистики"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "Вивантажувати час від часу ваші зображення статистики на FTP-сервер"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP-адреса"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP-шлях"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "Введіть тут адресу вашого FTP-сервера"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr ""
 "Введіть тут теку, куди будуть складатися зображення зі статистикою на FTP-"
 "сервері"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "Користувач"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "Введіть тут ім'я користувача для входу на ваш FTP-сервер"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "Введіть тут пароль входу на ваш FTP-сервер"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "Час оновлення FTP в хвилинах"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "Перевірити"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "Тека, що містить файл з вашим підписом"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "Тека, де створюються зображення статистики"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "Завантажується зразок <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "HTTP порт веб-сервера"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "Використовувати перенаправлення UPnP-портів на порт веб-сервера"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP порт"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "Використовувати gzip-стиснення"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Пароль повного доступу для веб-сервера"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Пароль гостя веб-сервера"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "Дозволити гостьовий доступ"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "Заборонити гостьовий доступ"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "Завантажити/записати налаштування веб-сервера з/до віддаленого aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "Шлях до файлу налаштувань aMule. НЕ ВИКОРИСТОВУЙТЕ БЕЗПОСЕРЕДНЬО!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "Вимкнути інтерпретатор PHP (застаріло)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "Перекомпілювати PHP-сторінки під час кожного запиту"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "Веб-сервер aMule"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "з'єднання веб-клієнта прийнято\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "ПОМИЛКА: неможливо прийняти з'єднання веб-клієнта\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "Запит невдалий з наступною помилкою: %s."
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "Файл індексу не знайдено:"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "Сесія добігла кінця - запитуємо новий вхід\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "Сесія в порядку, входимо\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "Сесія в порядку, не увійшли\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "Немає відкритих сесій, буде запитано вхід\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "Сесію створено - запит на вхід\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "Оброблюю запит [початковий]: "
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr ""
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "Перевіряється пароль\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "Неправильний хеш пароля\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "Пароль правильний\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "Пароль неправильний\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "Ви не ввели жодного паролю. Порожній пароль не дозволено.\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "Запитано вихід\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "Обробляється запит [перенаправлений]:"
 
@@ -7776,9 +7800,6 @@ msgstr "Обробляється запит [перенаправлений]:"
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "Вього користувачів: %s | Всього файлів: %s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "Потік звантаження HTTP розпочатий"
-
 #~ msgid "Download size: %i"
 #~ msgstr "Розмір звантаження: %i"
 
diff --git a/po/zh_CN.po b/po/zh_CN.po
index ce3326b..45c173a 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: aMule 2.2.7\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-04-21 12:10+1000\n"
 "Last-Translator: YiQi <u4781098 at anu.edu.au>\n"
 "Language-Team: Chinese Simplified <kde-i18n-doc at kde.org>\n"
@@ -41,43 +41,43 @@ msgstr "该用户编码无效!"
 msgid "Failed to open ED2KLinks file."
 msgstr "打开 ED2K 链接文件失败。"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr "警告:在低 ID 的情况下,你不能添加自己作为 ed2k 链接的源。"
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "现在,正在退出主程序..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, fuzzy, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "杀死 pid 为 '%ld' 的 amuleweb 进程..."
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, fuzzy, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "杀死 pid 为 '%ld' 的 amuleweb 进程..."
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "失败"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule 正在退出:中止内核。"
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "aMule 已经关闭。"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "aMule 退出的内存 Debug 结果:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -85,28 +85,28 @@ msgstr ""
 "\n"
 "EC 配置"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "密码已设置,启用远程连接。"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "警告"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
 msgstr "对不起,由于配置变动,您的地区设置已经变为系统默认值。"
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "信息"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -114,16 +114,16 @@ msgstr ""
 "在服务器列表中没有任何服务器。\n"
 "需要 aMule 现在就下载一个新的列表吗?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "服务器列表已下载"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "Web 服务器正在运行,进程编号为 %d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -133,23 +133,23 @@ msgstr ""
 "务器的 aMule 版本,或者使用 --enable-webserver 选项编译 aMule,然后运行 make "
 "install 进行安装"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "错误"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "无法绑定端口到指定的地址:%s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "端口 %u 已被占用,你会成为低 ID。\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -164,11 +164,11 @@ msgstr ""
 "\n"
 "请检测网络设置以确保端口可用于输入输出。"
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "创建在线统计文件失败"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "创建 aMule 在线统计文件失败"
 
@@ -217,143 +217,143 @@ msgstr ""
 "您为在线统计文件所选择的文件夹无效!\n"
 "在您更正设置之前在线统计将被禁用。"
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "获取服务器名称"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "为文件 '%s' 预分配磁盘空间失败:%s"
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "错误:无法打开日志文件"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "警告:日志文件为空。肯定有什么地方出错了。"
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "记录文件已被重置"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "服务器消息:%s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "跳过下载%s,因为请求的文件不是最新的。"
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "下载节点列表失败。"
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "打开已下载的版本检查文件失败"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "损坏的版本检查文件"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "您使用的是老版本的aMule!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "您的 aMule 版本是 %i.%i.%i,最新版本是 %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "最新版本可从这里下载:http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "警告:您的 aMuled 版本太旧:%i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "您的aMule是最新版本。"
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "下载版本检查文件失败"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "用户:%s | 文件:%s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "用户:E:%s K:%s | 文件:E:%s K:%s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "没有选择网络"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "有低 ID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "有高 ID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "已连接到 %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "正在连接到 %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "已从 eD2k 断开"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad 已启动。"
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad 已停止。"
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "已连接至 Kad (ok)"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "已连接至 Kad 网络 (有防火墙)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "已断开 Kad 连接"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr "如果在设置中禁用了 UDP 端口,Kad 网络将不能使用,没有启动。"
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad 网络在设置中被禁用了,没有连接。"
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -364,7 +364,7 @@ msgstr ""
 "通的 aMule,或使用 --ec-config选项启动 amuled 或在文件 ~/aMule/amule.conf 中"
 "设置选项\"AcceptExternalConnections\"为1"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -377,19 +377,19 @@ msgstr ""
 "中的\"ECPassword\"字段,使它有一个合适的值。执行amuled --ce-config来设置这个"
 "密码。更多信息请访问http://wiki.amule.org。"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled:正在初始化 - 启动计时器"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled: 进入后台 - 再见"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "不能创建 Pid 文件"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "错误:%s"
@@ -466,9 +466,9 @@ msgstr "版权所有 (c) 2002-2008 Petar Maymounkov ( petar at post.harvard.edu )\n
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "消息"
 
@@ -476,7 +476,7 @@ msgstr "消息"
 msgid "aMule dialog destroyed"
 msgstr "aMule 对话损坏"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "正在连接"
 
@@ -510,7 +510,7 @@ msgstr "Kad:关闭"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "取消"
 
@@ -527,7 +527,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "从当前已连接的网络断开"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "连接"
 
@@ -568,7 +568,7 @@ msgstr "退出确认"
 msgid "Launch Command: "
 msgstr "运行命令:"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- 默认 -"
 
@@ -583,80 +583,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "警告:无法打开皮肤文件 %s 进行读取"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "网络"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "网络窗口"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "搜索"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "搜索窗口"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "下载"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "下载窗口"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "共享文件"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "共享文件窗口"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "消息"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "消息窗口"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "统计"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "统计图窗口"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "设置"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "设置窗口"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "导入"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "part 文件导入工具"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "关于"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "关于/帮助"
 
@@ -676,7 +676,7 @@ msgstr "无网络"
 msgid "aMule remote control"
 msgstr "aMule 远程控制"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -688,106 +688,106 @@ msgstr "严重错误:无法创建核心计时器"
 msgid "Connect to remote amule"
 msgstr "连接到远程 amule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "严重错误:无法建立轮询计时器"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "准备事件循环..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "正在连接..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "连接失败"
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "远程 GUI 外部连接事件处理程序"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "下降"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "连接失败。不能连接到 %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "连接关闭 - aMule 可能已经终止运行。"
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "准备"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "全部"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr "不能为分类 '%2$s' 创建目录 '%1$s',保持目录 '%3$s'。"
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "未知"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "无法获取用户 %s 的共享文件"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "正在搜索用户用于低 ID 连接"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (假冒 eMule 版本 %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (假冒 eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (假冒 eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (基于 eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "昵称:%s ID:%u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "已请求: %s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -795,7 +795,7 @@ msgid_plural ""
 msgstr[0] "本次运行文件统计:接受了 %d 个请求(总请求数 %d),已传送 %s\n"
 msgstr[1] "本次运行文件统计:接受了 %d 个请求(总请求数 %d),已传送 %s\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
@@ -803,7 +803,7 @@ msgid_plural ""
 msgstr[0] "历史运行文件统计:接受了 %d 个请求(总请求数 %d),已传送 %s\n"
 msgstr[1] "历史运行文件统计:接受了 %d 个请求(总请求数 %d),已传送 %s\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "请求了未知文件"
 
@@ -947,12 +947,12 @@ msgid "Client Details"
 msgstr "客户端详细信息"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "低 ID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "高 ID"
 
@@ -1004,64 +1004,64 @@ msgstr "验证 - 通过"
 msgid "Not Available"
 msgstr "不可用"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "用户 %s(%u)请求您的共享文件列表 -> 已接受"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "用户 %s(%u)请求您的共享文件列表 -> 已拒绝"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "用户  %s(%u)请求了您的共享文件夹列表 -> 已接受"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "用户 %s(%u)请求了您的共享文件夹列表 -> 已拒绝"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr "用户 %s(%u)请求目录 %s 的共享文件列表 -> 已接受"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, fuzzy, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr "用户 %s(%u)请求目录 %s 的共享文件列表 -> 已拒绝"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, fuzzy, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "用户 %s(%u)共享了目录 %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "用户 %s(%u)发送了未经请求的共享文件夹列表"
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, fuzzy, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "用户 %s(%u)发送了目录 %s 内的共享文件列表"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "用户 %s(%u)完成了共享文件列表的发送"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "用户 %s(%u)发送了未经请求的共享文件列表"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr "用户 %s(%u)拒绝了目录/文件列表的访问"
@@ -1076,7 +1076,7 @@ msgstr "用户名"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "文件名"
 
@@ -1118,33 +1118,33 @@ msgstr "自动 [普]"
 msgid "Auto [Hi]"
 msgstr "自动 [高]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "极低"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "低"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "普通"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "高"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "极高"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "发布"
 
@@ -1161,12 +1161,12 @@ msgid "Queue Full"
 msgstr "队列已满"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "正在排队"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "正在下载"
 
@@ -1226,7 +1226,7 @@ msgstr "本地服务器"
 msgid "Remote Server"
 msgstr "远程服务器"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1252,7 +1252,7 @@ msgid "Search Result"
 msgstr "搜索结果"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "已完成"
 
@@ -1293,11 +1293,11 @@ msgid "Part"
 msgstr "块"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "大小"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "已传输"
 
@@ -1310,17 +1310,17 @@ msgid "Progress"
 msgstr "进度"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "源"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "优先级"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "状态"
@@ -1345,7 +1345,7 @@ msgstr "您确定删除所选择的文件吗?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "您确定删除所选择的文件吗?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1353,7 +1353,7 @@ msgid ""
 msgstr "反馈来自:%s(%s)\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "自动"
 
@@ -1405,11 +1405,11 @@ msgstr "显示所有注释"
 msgid "Copy magnet URI to clipboard"
 msgstr "复制 magnet 地址到剪贴板"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "复制 eD2k 链接到剪贴板 (&L)"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "复制统计信息到剪贴板"
 
@@ -1425,24 +1425,24 @@ msgstr "指定到分类"
 msgid "&Open the file"
 msgstr "打开文件 (&O)"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "请输入新文件名:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "更改文件名"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "下载(%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1450,11 +1450,11 @@ msgstr ""
 "为了不让此提示在每次预览时都出现,\n"
 "请在设置中预设您喜欢的播放器(默认为mplayer)。"
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "文件预览"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "错误:无法运行媒体播放器!命令:%s"
@@ -1560,206 +1560,206 @@ msgstr "密码未设置,远程连接已被禁止"
 msgid "External connections disabled in config file"
 msgstr "配置文件中已禁止远程连接"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "新的远程连接已被接受"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "错误:不能接受新的远程连接"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "由于未设置密码,远程连接已被拒绝!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "正在连接用户:%s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "未知版本"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
 msgstr "错误的远程连接版本号,可能会不兼容,请使用相同版本的核心和远程程序。"
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 #, fuzzy
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr "你不能连接至任意 CVS 版本的发布!目的是为了不让程序崩溃。"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "非法协议版本。"
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "缺失协议版本标签。"
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr "验证失败:非法的校验作为EC密码"
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "验证失败:密码错误。"
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "验证失败:没有密码"
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "无效请求,请先验证。"
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "登录成功"
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "发送错误消息喔 \"%s\"到客户端。"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "来自%s的非法登录尝试,已关闭连接。"
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "远程 Part 文件命令失败:文件校验码不存在:%s"
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "文件校验码不存在:%s"
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "OpCode 处理错误!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "服务器没有被添加"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "找不到服务器:%s"
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "必须定义需删除的服务器"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k 被设为禁用"
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "正在搜索,请稍等然后重新获取结果!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "远程界面使用网络搜索没有意义。"
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "此图没有节点"
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "您的客户端没有为详细级别进行配置。"
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "远程连接:已请求关闭"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "已经在关闭。"
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "远程连接:正在添加链接 '%s'。"
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "非法链接或已经存在列表中。"
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "文件未找到。"
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "非法文件名。"
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "无法重命名文件。"
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad 被设为禁用"
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "已经连接至 eD2k。"
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "正在连接至 eD2k..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "已连接至 Kad。"
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "正在连接至 Kad..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "全部网络都被禁用了。"
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "已从 eD2k 断开连接。"
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "已从 Kad 断开连接。"
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "远程连接:非法 opcode:%#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "非法的 opcode(错误的协议版本?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "未知扩展选项 '%s' 用于命令 '%s'。\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "未知命令 '%s'。\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1767,7 +1767,7 @@ msgstr ""
 "\n"
 "此命令不能含有参数。\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1775,7 +1775,7 @@ msgstr ""
 "\n"
 "此命令必须有参数。\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1783,7 +1783,7 @@ msgstr ""
 "\n"
 "此命令不完整,您必须使用以下扩展选项中的一个。\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1791,11 +1791,11 @@ msgstr ""
 "\n"
 "可用扩展选项:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "可用命令:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1806,17 +1806,17 @@ msgstr ""
 "全部命令都不区分大小写。\n"
 "输入 '%s <命令>' 获取在 <命令> 中的详细信息。\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "退出程序。"
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "显示帮助。"
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1824,7 +1824,7 @@ msgstr ""
 "输入 'help <命令>' 可显示命令的帮助。\n"
 "输入 'help' 可显示全部命令列表。\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1835,46 +1835,46 @@ msgstr ""
 "使用 '%s' 列出所有命令\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "语法错误!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr "处理指令时发生意外错误 - 这不应该发生!请提交错误报告\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "此命令不需要任何参数。"
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "此命令必须有一个参数。"
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "无效参数"
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "此命令不完整。"
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "输入 '%s' 显示更多帮助信息。\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "这是 %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "这是 %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1882,7 +1882,7 @@ msgstr ""
 "\n"
 "正在建立用户...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1891,7 +1891,7 @@ msgstr ""
 "\n"
 "完成,正在退出 %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1905,47 +1905,47 @@ msgstr ""
 "\n"
 "退出...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "显示帮助信息。"
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "aMule 正在运行的主机。(缺省:localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "aMule 的远程连接端口。(默认:4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "远程连接密码。"
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "从文件读取设置。"
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "不在控制台输出任何信息。"
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "详细显示调试信息。"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "设置程序地区(语言)。"
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "把命令行参数写入设置文件。"
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "基于 aMule 的设置文件建立新设置文件。"
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "输出程序版本。"
 
@@ -1958,8 +1958,8 @@ msgstr "文件信息"
 msgid "%.1f%% done"
 msgstr "%.2f%% 已完成"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f kB/s"
@@ -1976,7 +1976,7 @@ msgstr "写好友列表文件emfriends.met失败!"
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "严重错误 - 开始聊天进程没有客户端"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "好友"
 
@@ -2104,31 +2104,31 @@ msgstr "要下载的地址不能为空"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "地址%s已经返回:%i - 错误(%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "写入下载文件时发生严重错误"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "已下载 %d 字节"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "丢弃了 %d 字节,但是下载了 %d 字节。"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr "非法的HTTP下载或重定向地址(您是否忘记了加“http://”?)"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "无法连接到HTTP下载服务器"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "HTTP下载服务器返回非法响应"
 
@@ -2160,7 +2160,7 @@ msgstr "成功更新%s"
 msgid "Error updating GeoIP.dat"
 msgstr "更新 GeoIP.dat 时发生错误"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "从%s下载%s失败"
@@ -2203,7 +2203,7 @@ msgstr[1] "丢弃了 %u 行错误数据。"
 msgid "Failed to rename new %s file, aborting update."
 msgstr "重名命新的%s文件失败,放弃更新。"
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP过滤器已准备好"
 
@@ -2218,103 +2218,103 @@ msgstr "从已知用户启动"
 msgid "Nodes (%u)"
 msgstr "节点(%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "无效 IP"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "无效端口"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "请填写所有必要信息"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "确定要下载新的 node.dat 文件吗?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr "这样将删除您当前节点并重启 Kad 连接。"
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "继续?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kad:搜索关键词太短"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "搜索关键词:%s"
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kad:搜索关键词已经在搜索列表中:"
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr "无法读取 node.dat 档案 - 版本 (0) 太旧,已经不再支持了。"
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "读取 %u 个 Kad 联系人"
 msgstr[1] "读取 %u 个 Kad 联系人"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr "没有找到联系人,请尝试 bootstrap 或者下载一个 nodes.dat 文件。"
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "只有 %d 个 Kad 联系人可用,nodes.dat 没有写入"
 msgstr[1] "只有%d个Kad联系人可用,nodes.dat没有写入"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "已写入 %d 个 Kad 联系人"
 msgstr[1] "已写入%d个Kad联系人"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "文件名"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "文件大小"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "共享率"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "已上传"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "已请求"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "已接受"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "完成的源"
 
@@ -2340,69 +2340,74 @@ msgstr "未知版本"
 msgid "Unable to get error description for error %d"
 msgstr "无法为下载创建目标文件%s"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "正在校检"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "正在完成"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "完成"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "已暂停"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "已出错"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "等待中"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "您必须输入非空密码。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "非法密码,不是合法的MD5校验码!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "连接失败"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "远程连接失败,回复为空。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "远程连接:错误回应,握手失败。连接已经关闭。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "成功!已连接至 aMule"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "成功!已经建立连接。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "远程连接:访问被拒绝,原因:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "远程连接:握手失败。"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "HTTP 下载线程开始"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "监听Socket: Ok."
@@ -2411,16 +2416,16 @@ msgstr "监听Socket: Ok."
 msgid "ERROR: Could not listen to TCP port."
 msgstr "错误:无法监听 TCP 端口。"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "错误:"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "警告:"
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "关闭"
 
@@ -2428,8 +2433,8 @@ msgstr "关闭"
 msgid "Cut"
 msgstr "剪切"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "复制"
 
@@ -2438,7 +2443,7 @@ msgid "Paste"
 msgstr "粘贴"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "清除"
 
@@ -2448,7 +2453,7 @@ msgstr "选择全部"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "kB/s"
@@ -2525,7 +2530,7 @@ msgid "ServerIP: "
 msgstr "服务器 IP:"
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "未连接"
 
@@ -2560,7 +2565,7 @@ msgstr "在线统计: 启用"
 msgid "Online Signature: Disabled"
 msgstr "在线统计: 禁用"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "运行时间:%s"
@@ -2601,7 +2606,7 @@ msgstr "隐藏 aMule"
 msgid "Show aMule"
 msgstr "显示 aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "退出"
 
@@ -2678,7 +2683,7 @@ msgstr "查找"
 msgid "Name:"
 msgstr "名字:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "类型"
 
@@ -2706,38 +2711,38 @@ msgstr "过滤"
 msgid "File Type"
 msgstr "文件类型"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "任何"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "存档"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "音乐"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "CD 镜像"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "图片"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "程序"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "文本"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "视频"
 
@@ -2758,11 +2763,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2790,7 +2795,7 @@ msgstr "反向排序结果"
 msgid "Hide Known Files"
 msgstr "隐藏已知文件"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "开始"
 
@@ -2847,7 +2852,7 @@ msgstr "全名:"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2871,7 +2876,7 @@ msgstr "part 文件状态:"
 msgid "Last seen complete :"
 msgstr "最后发现完整共享文件:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "传输"
 
@@ -2959,27 +2964,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "文件质量"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "未评分"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "无效 / 损坏 / 假冒"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "差"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "一般"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "好"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "很好"
 
@@ -3024,7 +3029,7 @@ msgid "Userhash :"
 msgstr "用户编码:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "添加"
 
@@ -3252,9 +3257,9 @@ msgstr "在此处输入您的浏览器名称,如要使用系统默认浏览器
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "浏览"
 
@@ -3340,7 +3345,7 @@ msgstr "最大同时连接:"
 msgid "Kademlia"
 msgstr "Kademlia"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3458,7 +3463,7 @@ msgstr "请输入最低硬盘空间。"
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "保存稀有文件(少于20个源)的10个源"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "上传"
 
@@ -3700,7 +3705,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "为远程连接端口启用 UPnP"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "密码"
 
@@ -3783,8 +3788,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "选择该类别颜色 (当前选择) :"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "重置"
 
@@ -4160,87 +4165,92 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "启用详细调试日志。"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "打开文件 (&O)"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "消息分类:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "等待中..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "添加导入文件"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "重试所选"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "删除所选"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "事件类型"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr "所选文件的统计和队列用户:会话/全部时间"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "活跃上传:"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 #, fuzzy
 msgid "Percent of total files"
 msgstr "全部文件的百分比"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 #, fuzzy
 msgid "All files"
 msgstr "所有共享文件"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 #, fuzzy
 msgid "Selected files"
 msgstr "选择显示过滤"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 #, fuzzy
 msgid "Active uploads only"
 msgstr "活跃上传"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 #, fuzzy
 msgid "Show Clients for"
 msgstr "显示用户"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "重新载入:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "刷新共享文件"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "发送"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "发送指定消息。"
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "结束本次聊天。"
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "连接至任何服务器和/或 Kad"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "共享文件"
 
@@ -4249,135 +4259,135 @@ msgstr "共享文件"
 msgid "Disabled [%s]"
 msgstr "已禁用 [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "字节"
 msgstr[1] "字节"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "kB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "k"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "字节/秒"
 msgstr[1] "字节/秒"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "秒"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "分钟"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "小时"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "日"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "所有"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "其它"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "未完成"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "已停止"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "视频"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "归档"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "文本"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "活动"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "使用配置目录:%s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "等待partfile转换线程结束..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "正在导入 %s:%s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "正在读取临时文件夹"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "正在从下载信息文件获取基本信息"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "创建目标文件"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "从旧下载文件载入数据(%u 共 %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "正在保存数据块至新的单个下载文件(%u 共 %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "正在获取源下载文件信息"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "正在下载和保存新part文件"
 
@@ -4393,23 +4403,23 @@ msgstr "状态"
 msgid "Filehash"
 msgstr "文件校验码"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (磁盘:%s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr "请选择一个目录用于搜索临时下载文件!(子目录也将被包括)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "要删除成功导入下载的源文件吗?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "删除源?"
 
@@ -4520,7 +4530,7 @@ msgstr "Part 文件 %s(%s)的种子文件为空"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "读取 part 文件的种子文件出错(%s - %s):%s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4533,37 +4543,37 @@ msgstr[0] ""
 msgstr[1] ""
 "发现损坏的数据块 (%d) 于%d段文件 %s - 文件结果校检码 |%s| 文件校检码 |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "发现了已完成的数据段 %i 在%s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "重新校验 %s 完成"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "在完成文件%s时遇到意外文件错误,文件已暂停"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "完成下载:%s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "正在删除文件:%s "
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr "警告:无法为已下载的数据段计算校检码 - 校检码集不完整 '%s'"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4571,231 +4581,231 @@ msgid ""
 msgstr ""
 "警告:无法生成校检码 - 校检码集不完整(%s), 正常情况下这是不应该发生的"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
 "s' with length %u: %s"
 msgstr "文件结束 当下载  %u 长度 %u (最大 %u) partfile '%s'长度 %u: %s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "警告:硬盘空间不足!暂停文件:%s"
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "下载的数据段 %i 已损坏 文件: (%s)"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH:修复了损坏的数据段 %i(%s),挽救数据(字节): %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "正在分配"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "磁盘空间不足"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "已下载"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "错误:打开part文件'%s'失败"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "系统默认"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "阿尔巴尼亚语"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "阿拉伯语"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "澳大利亚"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "巴斯克语"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "保加利亚语"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "加泰罗尼亚语"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "简体中文"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "繁体中文"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "克罗的亚语"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "捷克语"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "丹麦语"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "荷兰语"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "英语(英国)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "爱斯托尼亚语"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "芬兰语"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "法语"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "加利西亚语"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "德语"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "希腊语"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "希伯来语"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "匈牙利语"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "意大利语"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "意大利语(瑞士)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "日语"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "韩语"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "立陶宛语"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "新挪威语"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "芬兰语"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "葡萄牙语"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "葡萄牙语(巴西)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "俄语"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "斯洛文尼亚语"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "西班牙语"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "瑞典语"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "土耳其语"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "乌克兰"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "更改语言"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr ""
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 #, fuzzy
 msgid "No languages available"
 msgstr "不可用"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "无选项可用"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "发现无效的分类,跳过"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr "TCP端口不可高于65532,因为服务器UDP端口值为TCP端口值+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "缺省端口将被使用(%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "丢弃不存在共享目录:%s"
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "连接"
 
@@ -4803,7 +4813,7 @@ msgstr "连接"
 msgid "Directories"
 msgstr "目录"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "服务器"
 
@@ -4856,7 +4866,7 @@ msgstr ""
 "以下变量将被被替换:    %PARTFILE - 文件的完整路径\n"
 "    %PARTNAME - 只有文件名"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4872,55 +4882,60 @@ msgstr ""
 "即使不改动这些设置,aMule\n"
 "也完全可以正常运行。"
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "使用ID %d和密匙%s连接Cfg到小插件失败"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "通过ID %d和密匙%s把数据从Cfg转移到小插件失败"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "正在连接的代理服务器类型"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "通过ID %d和密匙%s把数据从小插件转移到Cfg失败"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
 msgstr "重启aMule后设置才能生效:\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP端口已更改。\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP端口已更改。\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 #, fuzzy
 msgid "- External connect port changed.\n"
 msgstr "已关闭远程连接。"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 #, fuzzy
 msgid "- External connect acceptance changed.\n"
 msgstr "新的远程连接已被接受"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 #, fuzzy
 msgid "- External connect interface changed.\n"
 msgstr "已关闭远程连接。"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "迷惑协议"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -4928,7 +4943,7 @@ msgstr ""
 "您的自动更新服务器列表是可空的,\n"
 "启动时自动更新服务器列表功能将被禁用。"
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -4936,19 +4951,19 @@ msgstr ""
 "您已经启用了远程连接但还没有设置密码。\n"
 "远程连接在没有有效密码的情况下不能使用。"
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- 语言已更改。\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- 临时文件目录已更改。\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "-ED2K网络已启用。\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -4956,7 +4971,7 @@ msgstr ""
 "eD2k和Kad网络都已被禁用,\n"
 "你至少要启用其中的一项才能连接。"
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -4964,7 +4979,7 @@ msgstr ""
 "如果你的 UDP 端口被禁用,Kad 将不能启动。\n"
 "启动 UDP 端口或禁用 Kad。"
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -4974,7 +4989,7 @@ msgstr ""
 "你必须现在重启aMule,\n"
 "如果现在不重启的话,出现任何问题可别怪别人。\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -4984,41 +4999,41 @@ msgstr ""
 "请输入至少一个指向有效 server.met 的网址,\n"
 "点击这个勾选框旁边的\"列表\"按钮然后输入网址。"
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "临时文件"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "传入文件"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "在线统计"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "为%s选择文件夹"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "浏览寻找视频播放器"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "选择浏览器"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "可执行%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "编辑服务器列表"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5026,76 +5041,76 @@ msgstr ""
 "加入下载 server.met 文件的网址,每行只限一个网址。\n"
 " "
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "刷新时间:%d秒"
 msgstr[1] "刷新时间:%d秒"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "平均值图表显示时间:%d分钟"
 msgstr[1] "平均值图表显示时间:%d分钟"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "网络连接图表缩放:%d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "文件缓冲区大小:%d字节"
 msgstr[1] "文件缓冲区大小:%d字节"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "上传队列长度:%d个用户"
 msgstr[1] "上传队列长度:%d个用户"
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "服务器连接刷新周期:%d分钟"
 msgstr[1] "服务器连接刷新周期:%d分钟"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "服务器连接刷新周期:已禁用"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "禁用"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, fuzzy, c-format
 msgid "Execute command on '%s' event"
 msgstr "发生 '%s' 事件时执行命令"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "在核心启用执行命令"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "核心命令:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "在图形界面端启用执行命令"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "图形界面命令:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr "以下变量将被替换:"
 
@@ -5123,7 +5138,7 @@ msgstr "eD2k未连接时eD2k搜索无法进行"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "尝试Kad搜索时出现不可预料的错误:"
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "文件编号"
 
@@ -5232,7 +5247,7 @@ msgstr "错误:连接超时,端口无效"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "连接超时 %s(%s:%i)"
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "获取更新的DNS查询结果,丢弃。"
 
@@ -5259,74 +5274,74 @@ msgstr "无法打开 server.met 文件"
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr "Server.met 文件损坏,发现错误的版本标记:0x%x,大小 %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "server.met 中找到%i个服务器"
 msgstr[1] "server.met 中找到%i个服务器"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "新增%d个服务器"
 msgstr[1] "新增%d个服务器"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "错误: 文件 'server.met' 已经损坏: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 #, fuzzy
 msgid "IO error while reading 'server.met': "
 msgstr "读取 %s 文件时发生 IO 错误:%s"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "没有添加服务器:[%s:%d] 端口无效"
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "没有添加服务器:[%s:%d] IP 地址无效"
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr "没有添加服务器: 服务器列表中已有[%s:%d]"
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "成功添加服务器:[%s:%d] 服务器名为 '%s'"
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr "您在连接您已决定删除的服务器,请断开连接。"
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "无法读取 '%s'"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "无法 server.met 保存"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "无效 URL"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "从%s下载服务器列表完成"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5334,26 +5349,26 @@ msgstr ""
 "addresses.dat文件内没有服务器列表地址,请粘贴一个有效服务器列表地址到该文件以"
 "自动更新服务器列表."
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "正在开始从 %s 下载服务器列表"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr "警告:自动下载服务器列表的地址错误:%s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "addresses.dat 文件中没有有效的自动更新服务器列表URL"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "无法从 %s 下载服务器列表"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5389,7 +5404,7 @@ msgstr "静态"
 
 #
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "版本"
 
@@ -5413,8 +5428,8 @@ msgstr "您确定要删除静态服务器 %s ?"
 msgid "Servers (%i)"
 msgstr "服务器(%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "服务器"
 
@@ -5470,82 +5485,82 @@ msgstr "您确定要删除已选的服务器吗?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "您确定要删除已选的服务器吗?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "错误: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "警告: %s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "新的用户编号是 %u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "警告:你收到了低ID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\t大概这是因为您处在防火墙或路由器后面。"
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\t如需了解更多相关信息,请访问 http://wiki.amule.org"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "收到未知服务器信息 ! - 长度过短"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "收到 %d 个新服务器"
 msgstr[1] "收到 %d 个新服务器"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "服务器列表保存完毕。"
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "服务器拒绝了上一个明令"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "服务器数据包无效:%s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "在处理从服务器接收的数据有无法处理的错误 : %s "
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "无法建立DNS线程以连接 %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "服务器 IP %s (%s) 已被过滤,不在连接。"
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr "使用迷惑协议。"
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "正在连接至 %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "无法查找服务器%s的DNS记录: 无法连接!"
@@ -5727,84 +5742,89 @@ msgstr "文件名"
 msgid "Shares File List"
 msgstr "共享文件"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "请求"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "接受的请求"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "已传送数据"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "共享比例"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "已获取的部分"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "完整源"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "所在目录"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "添加注释"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "编辑注释"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "更名"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "添加收藏中的文件至传输列表"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "复制magnet地址到剪贴板(&U)"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "复制eD2k链接到剪贴板(含源)(&S)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "复制eD2k链接到剪贴板(含源)(包括加密选项)(&W)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "复制eD2k链接到剪贴板(含主机名)(&H)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "复制eD2k链接到剪贴板(含主机名)(包括加密选项)(&C)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "复制eD2k链接到剪贴板(包含&AICH信息)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "复制eD2k链接到剪贴板(包含&AICH信息)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "你需要高ID来产生源链接"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "共享文件 (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[part 文件]"
 
@@ -5813,235 +5833,235 @@ msgstr "[part 文件]"
 msgid "Remote File Name"
 msgstr "文件名"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "本次上传(全部): %s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "总开销 (数据包): %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "文件请求开销(数据包): %s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "源交换开销(数据包): %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "服务器开销(数据包): %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "Kad 开销(数据包):%s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "加密开销(UDP):%s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "活动上传:%s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "等待上传:%s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "成功上传会话总数:%s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "失败上传会话总数:%s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "平均上传时间:%s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "本次下载(总共): %s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "发现的源:%s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "活动下载(块数):%s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "本次上传下载比率:%s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "平均下载速度(本次运行):%s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "平均上传速度(本次运行):%s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "最大下载速度(本次运行):%s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "最大上传速度(本次运行):%s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "重新连接:%i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "首次传输到现在时间:%s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "与服务器连接时间:%s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "活跃连接(估计值):%i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "达到最大连接数:%s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "平均连接数(估计):%g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "最高连接(估计值): %i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "用户"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "未知大小: %s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "过滤: %s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "封杀: %s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "总数:%i 已知:%i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "有效服务器:%i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "无效服务器:%i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "总共:%s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "已删除服务器:%s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "被过滤的服务器:%s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "有效服务器中的用户数: %llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "有效服务器中的文件数: %llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "用户总数:%llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "文件总数:%llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "服务器开销:%.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "共享文件数:%s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "共享文件大小总和:%s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "平均文件大小:%s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "操作系统"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "没有收到"
 
@@ -6097,7 +6117,7 @@ msgstr "非有效数字\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "无效的校验值(长度必须为32个字符)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "请求失败,错误未知。"
 
@@ -6151,13 +6171,13 @@ msgstr "已连接到 %s %s %s"
 msgid "Now connecting"
 msgstr "正在连接"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "被防火墙阻挡"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "确定"
 
@@ -6577,21 +6597,21 @@ msgid ""
 "Use '%s' instead.\n"
 msgstr "这是一个已废弃的命令,将来可能被删除,请使用 '%s' 替代。\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule 文本客户端"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "正在转换在 '%s'在 '%s' 中旧的 AICH 校验集至64b"
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "警告:文件名 '%s' 非法,已经重命名为 '%s'。"
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "警告:文件 '%s' 已经存在,新文件重命名为 '%s'。"
@@ -6662,7 +6682,7 @@ msgstr "执行`%s' 事件中的命令`%s' 失败。"
 msgid "Download completed"
 msgstr "下载已完成"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "文件的完整路径。"
 
@@ -6682,160 +6702,160 @@ msgstr "文件大小(字节)。"
 msgid "Cumulative download activity time."
 msgstr "累计下载活动时间。"
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "新的聊天对话已启动"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "消息发送者。"
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "磁盘空间不足"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "磁盘分区。"
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "最后阶段出错"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "正在处理文件号 %u: %s"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "您要求了文件块校检码(只用于大于 9.5 MB 的文件)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> 文件不存在!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator,aMule eD2k链接的创建程序"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "欢迎!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "输入参数"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "需计算校检码的文件"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "添加附加链接到该文件"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "在此处输入需要生成eD2k链接的文件名"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
 msgstr "在这里输入要添加的eD2k链接,在结尾加 '/' 以附加此文件名"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "删除"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "创建有文件块校检码的链接"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr "该选项可以帮助新文件和稀有文件更快散播,只是链接长度会增加"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 文件校检码"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k文件校验码"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k链接"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "保存"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "复制到剪贴板"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "打开"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "打开文件并生成eD2k链接"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "复制已生成的eD2k链接至剪贴板"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "另存为"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "保存已生成的eD2k链接至文件"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "关于 aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "选择要生成eD2k链接的文件"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "不能打开剪贴簿"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "当前无内容需要复制!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "选择已生成eD2k链接的文件"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "无法读取 "
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "请输入一个非空的文件名"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "暂时没有东西可保存!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6855,158 +6875,162 @@ msgstr ""
 "\n"
 "基于GPL协议发布"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "正在生成校检码"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator正在工作"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "计算MD4编码..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "计算eD2K编码..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "已取消!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "在 %.2f 秒内完成"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "您已添加了该链接!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "请输入一个非空的链接"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "无法打开 %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i 天 %i 小时 %i 分钟 %i 秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02u天 %02u小时 %02u分钟 %02u秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02u小时 %02u分钟 %02u秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02u分钟 %02u秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02u秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas,aMule在线统计"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "本次运行最高下载速度"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "历史最高下载速度"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "系统"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "停止自动刷新"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "保存在线统计图"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "打印在线统计图"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "设置"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "关于 wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "开始自动刷新"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "自动刷新已停止"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "自动刷新已开始"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "保存统计图"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule 在线统计"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -7014,11 +7038,11 @@ msgstr ""
 "打印时出现问题。\n"
 "可能当前打印机没有设置正确?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "打印中"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7036,323 +7060,323 @@ msgstr ""
 "\n"
 "基于 GPL 协议分发"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "aMule没有运行"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule 正在运行"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule 正在运行,但是已断开连接"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule 正在连接..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "aMule状态不明..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " 已经运行 "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr "已停止!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr "未连接!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " 正在连接..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " 状态不正常,请检查!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr "已连接至"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr "Kad:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "关闭"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " 是在 "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " 和 "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "总下载:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ",上传:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "本次运行下载:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "下载:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " kB/s,上传:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " kB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "共享:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " 文件,队列长度:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "时间:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " 在 "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "系统平均负载(1-5-15 分钟):"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "系统运行时间:"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "amulesig.dat 文件所在的目录"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "请输入 amulesig.dat 文件所在的目录"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "刷新周期(秒)"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "每次刷新都生成统计图"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "输入存放所产生的统计图的目录"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "周期性上传统计图到 FTP 服务器"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP 地址"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP 路径"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "输入 FTP 服务器的地址"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "输入 FTP 服务器上存放统计图的目录"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "用户名"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "输入登录 FTP 服务器的用户名"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "输入登录FTP服务器的密码"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP上传周期(分钟)"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "检测"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "统计文件所在文件夹"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "统计图存放文件夹"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "载入模板 <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "Web服务器的HTTP端口"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "为Web服务器端口启用uPnP"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP端口"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "使用gzip压缩"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "Web服务器的完整权限密码"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "Web服务器的访客密码"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "允许访客访问"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "拒绝访客访问"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "载入/保存Web服务器设置从/至远程aMule"
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule设置文件路径,不要直接使用!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "禁用PHP解释器(已废弃)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "为每个请求重编译PHP页面"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule Web服务器"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "网页客户端连接已被接受\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "错误:无法接受网页客户端连接\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "请求失败,错误为:%s"
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "索引文件未找到:"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "会话过期 - 正在请求登录\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "会话正常,已登录\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "会话正常,未登录\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "没有会话已打开 - 将请求登录\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "会话已创建 - 正在请求登录\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "正在处理请求 [原始]:"
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "没有指定密码,不允许登录。"
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "检查密码\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "密码校验值错误\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "密码正确\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "密码错误\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "您没有输入密码,不允许空密码。\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "已请求注销\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "正在处理请求 [已重定向]:"
 
@@ -7548,9 +7572,6 @@ msgstr "正在处理请求 [已重定向]:"
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "用户总数:%s | 文件总数:%s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "HTTP 下载线程开始"
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr "没有获得下载大小,持续下载直到连接关闭"
 
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 12a4203..eb37996 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -20,7 +20,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: zh_TW\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-11 21:59+0100\n"
+"POT-Creation-Date: 2012-05-12 07:21+0200\n"
 "PO-Revision-Date: 2011-11-11 01:29+0800\n"
 "Last-Translator: Wayne Su <mstarmstar at gmail.com>\n"
 "Language-Team: \n"
@@ -53,43 +53,43 @@ msgstr "這個使用者 hash 值無效!"
 msgid "Failed to open ED2KLinks file."
 msgstr "無法開啟 ED2K 連結檔。"
 
-#: src/amuleAppCommon.cpp:190
+#: src/amuleAppCommon.cpp:201
 msgid ""
 "WARNING: You can't add yourself as a source for an eD2k link while having a "
 "lowid."
 msgstr "警告:LowID 時不可以將自己加入 eD2k 連結來源。"
 
-#: src/amule.cpp:239
+#: src/amule.cpp:229
 msgid "Now, exiting main app..."
 msgstr "正在離開主程式..."
 
-#: src/amule.cpp:258
+#: src/amule.cpp:248
 #, c-format
 msgid "Terminating amuleweb instance with pid '%ld' ... "
 msgstr "正在終止 pid %ld 的 amuleweb 執行緒..."
 
-#: src/amule.cpp:261
+#: src/amule.cpp:251
 #, c-format
 msgid "Killing amuleweb instance with pid '%ld' ... "
 msgstr "正在強行終止 pid %ld 的 amuleweb 執行緒..."
 
-#: src/amule.cpp:263 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
+#: src/amule.cpp:253 src/ClientRef.cpp:194 src/ServerListCtrl.cpp:94
 msgid "Failed"
 msgstr "失敗"
 
-#: src/amule.cpp:269
+#: src/amule.cpp:259
 msgid "aMule OnExit: Terminating core."
 msgstr "aMule 離開中:正在終止主程式。"
 
-#: src/amule.cpp:335
+#: src/amule.cpp:330
 msgid "aMule shutdown completed."
 msgstr "已關閉 aMule 。"
 
-#: src/amule.cpp:339
+#: src/amule.cpp:334
 msgid "Memory debug results for aMule exit:"
 msgstr "離開 aMule 時記憶體除錯結果:"
 
-#: src/amule.cpp:435
+#: src/amule.cpp:433
 msgid ""
 "\n"
 "EC configuration"
@@ -97,28 +97,28 @@ msgstr ""
 "\n"
 "外部連線設定"
 
-#: src/amule.cpp:438
+#: src/amule.cpp:436
 msgid "Password set and external connections enabled."
 msgstr "密碼已設定,外部連線已啟用。"
 
-#: src/amule.cpp:449 src/KadDlg.cpp:182 src/KadDlg.cpp:188
-#: src/PrefsUnifiedDlg.cpp:742 src/SharedFilesCtrl.cpp:315
+#: src/amule.cpp:447 src/KadDlg.cpp:179 src/KadDlg.cpp:185
+#: src/PrefsUnifiedDlg.cpp:747 src/SharedFilesCtrl.cpp:318
 msgid "WARNING"
 msgstr "警告"
 
-#: src/amule.cpp:495
+#: src/amule.cpp:493
 msgid ""
 "Your locale has been changed to System Default due to a configuration "
 "change. Sorry."
 msgstr "對不起,由於版本變更,您的地區設定已經被變更爲系統預設值。"
 
-#: src/amule.cpp:497 src/amule.cpp:1054 src/CatDialog.cpp:141
-#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:345
+#: src/amule.cpp:495 src/amule.cpp:1054 src/CatDialog.cpp:141
+#: src/CatDialog.cpp:151 src/CatDialog.cpp:163 src/ServerList.cpp:346
 #: src/ServerListCtrl.cpp:148
 msgid "Info"
 msgstr "資訊"
 
-#: src/amule.cpp:580
+#: src/amule.cpp:581
 msgid ""
 "You don't have any server in the server list.\n"
 "Do you want aMule to download a new list now?"
@@ -126,16 +126,16 @@ msgstr ""
 "在伺服器清單中沒有任何伺服器。\n"
 "要讓 aMule 現在就下載一個新的嗎?"
 
-#: src/amule.cpp:581
+#: src/amule.cpp:582
 msgid "Server list download"
 msgstr "已下載伺服器清單"
 
-#: src/amule.cpp:654
+#: src/amule.cpp:655
 #, c-format
 msgid "web server running on pid %d"
 msgstr "執行中的網站伺服器 pid:%d"
 
-#: src/amule.cpp:658
+#: src/amule.cpp:659
 msgid ""
 "You requested to run web server on startup, but the amuleweb binary cannot "
 "be run. Please install the package containing aMule web server, or compile "
@@ -144,23 +144,23 @@ msgstr ""
 "您要求啟動時執行網站伺服器,但系統無法執行 amuleweb。請安裝含有 aMule 網站伺"
 "服器的套件,或於編譯 aMule 程式碼時加入 --enable-webserver 選項"
 
-#: src/amule.cpp:659 src/amule.cpp:776 src/amule.cpp:1065
-#: src/amule-remote-gui.cpp:298 src/amule-remote-gui.cpp:320
-#: src/amule-remote-gui.cpp:322 src/amule-remote-gui.cpp:633
+#: src/amule.cpp:660 src/amule.cpp:774 src/amule.cpp:1065
+#: src/amule-remote-gui.cpp:304 src/amule-remote-gui.cpp:326
+#: src/amule-remote-gui.cpp:328 src/amule-remote-gui.cpp:641
 msgid "ERROR"
 msgstr "錯誤"
 
-#: src/amule.cpp:741
+#: src/amule.cpp:742
 #, c-format
 msgid "Could not bind ports to the specified address: %s"
 msgstr "無法選定使用此位址的通訊埠:%s"
 
-#: src/amule.cpp:768
+#: src/amule.cpp:766
 #, c-format
 msgid "Port %u is not available. You will be LOWID\n"
 msgstr "通訊埠 %u 已被佔用。您會變成 LOWID。\n"
 
-#: src/amule.cpp:774
+#: src/amule.cpp:772
 #, c-format
 msgid ""
 "Port %u is not available!\n"
@@ -175,11 +175,11 @@ msgstr ""
 "\n"
 "請檢查網路設定以確保通訊埠可正常使用。"
 
-#: src/amule.cpp:853
+#: src/amule.cpp:851
 msgid "Failed to create OnlineSig File"
 msgstr "無法建立線上簽名識別檔"
 
-#: src/amule.cpp:861
+#: src/amule.cpp:859
 msgid "Failed to create aMule OnlineSig File"
 msgstr "無法建立 aMule 線上簽名識別檔"
 
@@ -227,143 +227,143 @@ msgstr ""
 "您選擇的線上簽名識別檔案所在資料夾無效!\n"
 " 在您變更偏好設定之前,線上簽名識別功能將被停用。"
 
-#: src/amule.cpp:1120
+#: src/amule.cpp:1121
 msgid "Server hostname notified"
 msgstr "已通伺服器主機名稱"
 
-#: src/amule.cpp:1346
+#: src/amule.cpp:1347
 #, c-format
 msgid "Disk space preallocation for file '%s' failed: %s"
 msgstr "無法為檔案 %s 預先分配磁碟空間:%s "
 
-#: src/amule.cpp:1475
+#: src/amule.cpp:1482
 msgid "ERROR: can't open logfile"
 msgstr "錯誤:無法開啟記錄檔"
 
-#: src/amule.cpp:1479
+#: src/amule.cpp:1486
 msgid "WARNING: logfile is empty. Something is wrong."
 msgstr "警告:沒有記錄檔,肯定有什麽地方出錯了。"
 
-#: src/amule.cpp:1497
+#: src/amule.cpp:1504
 msgid "Log has been reset"
 msgstr "記錄已被清除"
 
-#: src/amule.cpp:1523
+#: src/amule.cpp:1530
 #, c-format
 msgid "ServerMessage: %s"
 msgstr "伺服器訊息:%s"
 
-#: src/amule.cpp:1561 src/IP2Country.cpp:151 src/IPFilter.cpp:509
-#: src/ServerList.cpp:856
+#: src/amule.cpp:1568 src/IP2Country.cpp:151 src/IPFilter.cpp:510
+#: src/ServerList.cpp:858
 #, c-format
 msgid "Skipped download of %s, because requested file is not newer."
 msgstr "略過不下載 %s ,因為並不是新近檔案。"
 
-#: src/amule.cpp:1563
+#: src/amule.cpp:1570
 msgid "Failed to download the nodes list."
 msgstr "無法下載節點清單。"
 
-#: src/amule.cpp:1583
+#: src/amule.cpp:1590
 msgid "Failed to open the downloaded version check file"
 msgstr "無法開啟下載的版本檢查檔"
 
-#: src/amule.cpp:1586 src/amule.cpp:1596 src/amule.cpp:1602
+#: src/amule.cpp:1593 src/amule.cpp:1603 src/amule.cpp:1609
 msgid "Corrupted version check file"
 msgstr "損壞的版本檢查檔"
 
-#: src/amule.cpp:1612
+#: src/amule.cpp:1619
 msgid "You are using an outdated version of aMule!"
 msgstr "您使用的是過期的 aMule 版本!"
 
-#: src/amule.cpp:1613
+#: src/amule.cpp:1621
 #, c-format
 msgid "Your aMule version is %i.%i.%i and the latest version is %li.%li.%li"
 msgstr "您的 aMule 版本是 %i.%i.%i,最新版本是 %li.%li.%li"
 
-#: src/amule.cpp:1614
+#: src/amule.cpp:1622
 msgid "The latest version can always be found at http://www.amule.org"
 msgstr "最新版本可從這裏下載:http://www.amule.org"
 
-#: src/amule.cpp:1616
+#: src/amule.cpp:1624
 #, c-format
 msgid "WARNING: Your aMuled version is outdated: %i.%i.%i < %li.%li.%li"
 msgstr "警告:您的 aMuled 版本已經過期:%i.%i.%i < %li.%li.%li"
 
-#: src/amule.cpp:1620
+#: src/amule.cpp:1628
 msgid "Your copy of aMule is up to date."
 msgstr "您的 aMule 是最新版本。"
 
-#: src/amule.cpp:1627
+#: src/amule.cpp:1635
 msgid "Failed to download the version check file"
 msgstr "無法下載版本檢查檔"
 
-#: src/amule.cpp:1792 src/amule-remote-gui.cpp:518
+#: src/amule.cpp:1800 src/amule-remote-gui.cpp:526
 #, c-format
 msgid "Users: %s | Files: %s"
 msgstr "使用者:%s | 檔案:%s"
 
-#: src/amule.cpp:1793 src/amule-remote-gui.cpp:519
+#: src/amule.cpp:1801 src/amule-remote-gui.cpp:527
 #, c-format
 msgid "Users: E: %s K: %s | Files: E: %s K: %s"
 msgstr "使用者:E:%s K:%s | 檔案:E:%s K:%s"
 
-#: src/amule.cpp:1802 src/amule-remote-gui.cpp:528
+#: src/amule.cpp:1810 src/amule-remote-gui.cpp:536
 msgid "No networks selected"
 msgstr "未選取網路"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with LowID"
 msgstr "有 LowID"
 
-#: src/amule.cpp:1865 src/TextClient.cpp:707
+#: src/amule.cpp:1873 src/TextClient.cpp:707
 msgid "with HighID"
 msgstr "有 HighID"
 
-#: src/amule.cpp:1867
+#: src/amule.cpp:1875
 #, c-format
 msgid "Connected to %s %s"
 msgstr "已連線到 %s %s"
 
-#: src/amule.cpp:1870
+#: src/amule.cpp:1879
 #, c-format
 msgid "Connecting to %s"
 msgstr "正在連線到 %s"
 
-#: src/amule.cpp:1872
+#: src/amule.cpp:1881
 msgid "Disconnected from eD2k"
 msgstr "已中斷 eD2k 網路連線"
 
-#: src/amule.cpp:1879
+#: src/amule.cpp:1889
 msgid "Kad started."
 msgstr "Kad 已啓動。"
 
-#: src/amule.cpp:1881
+#: src/amule.cpp:1891
 msgid "Kad stopped."
 msgstr "Kad 已停止。"
 
-#: src/amule.cpp:1888
+#: src/amule.cpp:1899
 msgid "Connected to Kad (ok)"
 msgstr "已連線到 Kad"
 
-#: src/amule.cpp:1890
+#: src/amule.cpp:1901
 msgid "Connected to Kad (firewalled)"
 msgstr "已連線到 Kad 網路 (防火牆內)"
 
-#: src/amule.cpp:1893
+#: src/amule.cpp:1904
 msgid "Disconnected from Kad"
 msgstr "已中斷 Kad 網路連線"
 
-#: src/amule.cpp:1960
+#: src/amule.cpp:1971
 msgid ""
 "Kad network cannot be used if UDP port is disabled on preferences, not "
 "starting."
 msgstr "Kad 網路未啟動:如果在偏好設定中停用了 UDP 埠,Kad 網路將不能使用。"
 
-#: src/amule.cpp:1963
+#: src/amule.cpp:1974
 msgid "Kad network disabled on preferences, not connecting."
 msgstr "Kad 網路在偏好設定中被停用了,沒有連線。"
 
-#: src/amuled.cpp:560
+#: src/amuled.cpp:584
 msgid ""
 "ERROR: aMule daemon cannot be used when external connections are disabled. "
 "To enable External Connections, use either a normal aMule, start amuled with "
@@ -374,7 +374,7 @@ msgstr ""
 "準的 aMule,或使用 --ec-config 選項啓動 amuled,或在檔案 ~/aMule/amule.conf "
 "中將「AcceptExternalConnections」設定值改為 1"
 
-#: src/amuled.cpp:563
+#: src/amuled.cpp:587
 msgid ""
 "ERROR: A valid password is required to use external connections, and aMule "
 "daemon cannot be used without external connections. To run aMule deamon, you "
@@ -387,19 +387,19 @@ msgstr ""
 "「ECPassword」 設定值改為適當的數字。使用 --ec-config 參數啓動 amuled 以設定"
 "密碼。請到 http://wiki.amule.org 取得更多資訊"
 
-#: src/amuled.cpp:615
+#: src/amuled.cpp:642
 msgid "amuled: OnInit - starting timer"
 msgstr "amuled:初始中 - 正在開始計時器"
 
-#: src/amuled.cpp:630
+#: src/amuled.cpp:657
 msgid "amuled: forking to background - see you"
 msgstr "amuled:在背景執行 - 再見"
 
-#: src/amuled.cpp:661
+#: src/amuled.cpp:688
 msgid "Cannot Create Pid File"
 msgstr "無法建立 pid 檔案"
 
-#: src/amuled.cpp:711
+#: src/amuled.cpp:735
 #, c-format
 msgid "ERROR: %s"
 msgstr "錯誤:%s"
@@ -482,9 +482,9 @@ msgstr " Copyright (c) 2002-2011 Petar Maymounkov ( petar at post.harvard.edu )\n"
 msgid "http://kademlia.scs.cs.nyu.edu\n"
 msgstr "http://kademlia.scs.cs.nyu.edu\n"
 
-#: src/amuleDlg.cpp:513 src/KadDlg.cpp:192 src/PartFile.cpp:920
-#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:624
-#: src/PrefsUnifiedDlg.cpp:729 src/PrefsUnifiedDlg.cpp:842
+#: src/amuleDlg.cpp:513 src/KadDlg.cpp:189 src/PartFile.cpp:920
+#: src/PartFile.cpp:928 src/PrefsUnifiedDlg.cpp:629
+#: src/PrefsUnifiedDlg.cpp:734 src/PrefsUnifiedDlg.cpp:847
 msgid "Message"
 msgstr "訊息"
 
@@ -492,7 +492,7 @@ msgstr "訊息"
 msgid "aMule dialog destroyed"
 msgstr "aMule 對話方塊已銷毀"
 
-#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:543
+#: src/amuleDlg.cpp:574 src/DataToText.cpp:61 src/IPFilter.cpp:544
 msgid "Connecting"
 msgstr "正在連線"
 
@@ -526,7 +526,7 @@ msgstr "Kad:關閉"
 #: src/muuli_wdr.cpp:1003 src/muuli_wdr.cpp:2329 src/muuli_wdr.cpp:2431
 #: src/muuli_wdr.cpp:3147 src/ServerListCtrl.cpp:153
 #: src/ServerListCtrl.cpp:527 src/ServerListCtrl.cpp:546
-#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:294
+#: src/TransferWnd.cpp:375 src/utils/wxCas/src/wxcasprefs.cpp:285
 msgid "Cancel"
 msgstr "取消"
 
@@ -543,7 +543,7 @@ msgid "Disconnect from the currently connected networks"
 msgstr "中斷已連線的網路"
 
 #: src/amuleDlg.cpp:786 src/MuleTrayIcon.cpp:499 src/muuli_wdr.cpp:2755
-#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3143 src/muuli_wdr.cpp:3530
 msgid "Connect"
 msgstr "連線"
 
@@ -584,7 +584,7 @@ msgstr "確認離開"
 msgid "Launch Command: "
 msgstr "執行指令:"
 
-#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:842
+#: src/amuleDlg.cpp:1209 src/muuli_wdr.cpp:2092 src/Preferences.cpp:844
 msgid "- default -"
 msgstr "- 預設 -"
 
@@ -599,80 +599,80 @@ msgid "WARNING: Unable to open skin file '%s' for read"
 msgstr "警告:無法開啟面板檔案 %s 供讀取"
 
 #: src/amuleDlg.cpp:1335 src/amuleDlg.cpp:1469 src/muuli_wdr.cpp:1673
-#: src/muuli_wdr.cpp:3529
+#: src/muuli_wdr.cpp:3532
 msgid "Networks"
 msgstr "網路"
 
-#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3529
+#: src/amuleDlg.cpp:1335 src/muuli_wdr.cpp:3532
 msgid "Networks Window"
 msgstr "網路 視窗"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches"
 msgstr "搜尋"
 
-#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3530
+#: src/amuleDlg.cpp:1336 src/muuli_wdr.cpp:3533
 msgid "Searches Window"
 msgstr "搜尋 視窗"
 
 #: src/amuleDlg.cpp:1337 src/DownloadListCtrl.cpp:643 src/muuli_wdr.cpp:426
-#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3531 src/Statistics.cpp:752
+#: src/muuli_wdr.cpp:1788 src/muuli_wdr.cpp:3534 src/Statistics.cpp:757
 msgid "Downloads"
 msgstr "下載"
 
-#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3531
+#: src/amuleDlg.cpp:1337 src/muuli_wdr.cpp:3534
 msgid "Downloads Window"
 msgstr "下載 視窗"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3409
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3412
 msgid "Shared files"
 msgstr "檔案分享"
 
-#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3533
+#: src/amuleDlg.cpp:1338 src/muuli_wdr.cpp:3536
 msgid "Shared Files Window"
 msgstr "檔案分享 視窗"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3482
-#: src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:2971 src/muuli_wdr.cpp:3485
+#: src/muuli_wdr.cpp:3537
 msgid "Messages"
 msgstr "訊息"
 
-#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3534
+#: src/amuleDlg.cpp:1339 src/muuli_wdr.cpp:3537
 msgid "Messages Window"
 msgstr "訊息 視窗"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535 src/PrefsUnifiedDlg.cpp:183
-#: src/Statistics.cpp:722 src/Statistics.cpp:1020
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538 src/PrefsUnifiedDlg.cpp:183
+#: src/Statistics.cpp:727 src/Statistics.cpp:1024
 msgid "Statistics"
 msgstr "統計"
 
-#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3535
+#: src/amuleDlg.cpp:1340 src/muuli_wdr.cpp:3538
 msgid "Statistics Graph Window"
 msgstr "統計 視窗"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537 src/PrefsUnifiedDlg.cpp:198
-#: src/utils/wxCas/src/wxcasprefs.cpp:50
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540 src/PrefsUnifiedDlg.cpp:198
+#: src/utils/wxCas/src/wxcasprefs.cpp:41
 msgid "Preferences"
 msgstr "偏好設定"
 
-#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3537
+#: src/amuleDlg.cpp:1342 src/muuli_wdr.cpp:3540
 msgid "Preferences Settings Window"
 msgstr "偏好設定 視窗"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "Import"
 msgstr "匯入"
 
-#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3538
+#: src/amuleDlg.cpp:1344 src/muuli_wdr.cpp:3541
 msgid "The partfile importer tool"
 msgstr "暫存檔匯入工具"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
-#: src/utils/aLinkCreator/src/alcframe.cpp:274
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
+#: src/utils/aLinkCreator/src/alcframe.cpp:271
 msgid "About"
 msgstr "關於"
 
-#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3539
+#: src/amuleDlg.cpp:1346 src/muuli_wdr.cpp:3542
 msgid "About/Help"
 msgstr "關於/幫助"
 
@@ -692,7 +692,7 @@ msgstr "無網路"
 msgid "aMule remote control"
 msgstr "aMulle 遠端控制"
 
-#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:116
+#: src/amule-gui.cpp:212 src/utils/wxCas/src/wxcasframe.cpp:111
 msgid "aMule"
 msgstr "aMule"
 
@@ -704,120 +704,120 @@ msgstr "嚴重錯誤:無法建立主程式端計時器"
 msgid "Connect to remote amule"
 msgstr "連線到遠端 amule"
 
-#: src/amule-remote-gui.cpp:253
+#: src/amule-remote-gui.cpp:257
 msgid "Fatal Error: Failed to create Poll Timer"
 msgstr "嚴重錯誤:無法建立 Poll Timer"
 
-#: src/amule-remote-gui.cpp:268
+#: src/amule-remote-gui.cpp:274
 msgid "Going to event loop..."
 msgstr "正在進行事件迴圈..."
 
-#: src/amule-remote-gui.cpp:294
+#: src/amule-remote-gui.cpp:300
 msgid "Connecting..."
 msgstr "正在連線..."
 
-#: src/amule-remote-gui.cpp:298
+#: src/amule-remote-gui.cpp:304
 msgid "Connection failed "
 msgstr "無法連線"
 
-#: src/amule-remote-gui.cpp:309
+#: src/amule-remote-gui.cpp:315
 msgid "Remote GUI EC event handler"
 msgstr "遠端 GUI 外部連線事件處理器"
 
-#: src/amule-remote-gui.cpp:316
+#: src/amule-remote-gui.cpp:322
 msgid "Going down"
 msgstr "關閉中"
 
-#: src/amule-remote-gui.cpp:319 src/ExternalConnector.cpp:400
+#: src/amule-remote-gui.cpp:325 src/ExternalConnector.cpp:387
 #, c-format
 msgid "Connection Failed. Unable to connect to %s:%d\n"
 msgstr "無法連線到 %s:%d\n"
 
-#: src/amule-remote-gui.cpp:322
+#: src/amule-remote-gui.cpp:328
 msgid "Connection closed - aMule has terminated probably."
 msgstr "已關閉連線 - aMule 可能已經被終止執行了。"
 
-#: src/amule-remote-gui.cpp:407
+#: src/amule-remote-gui.cpp:415
 msgid "Ready"
 msgstr "就緒"
 
-#: src/amule-remote-gui.cpp:585 src/TransferWnd.cpp:340
+#: src/amule-remote-gui.cpp:593 src/TransferWnd.cpp:340
 msgid "All"
 msgstr "全部"
 
-#: src/amule-remote-gui.cpp:631
+#: src/amule-remote-gui.cpp:639
 #, c-format
 msgid "Can't create directory '%s' for category '%s', keeping directory '%s'."
 msgstr "無法建立 %s 目錄 ( %s 分類用),繼續使用 %s 目錄。"
 
-#: src/amule-remote-gui.cpp:1343 src/BaseClient.cpp:1785
+#: src/amule-remote-gui.cpp:1351 src/BaseClient.cpp:1783
 #: src/BaseClient.cpp:2311 src/BaseClient.cpp:2327 src/BaseClient.cpp:2622
 #: src/ClientDetailDialog.cpp:80 src/ClientDetailDialog.cpp:81
 #: src/ClientDetailDialog.cpp:114 src/ClientDetailDialog.cpp:115
 #: src/ClientDetailDialog.cpp:125 src/DataToText.cpp:54 src/DataToText.cpp:70
 #: src/DataToText.cpp:80 src/DataToText.cpp:116 src/DataToText.cpp:137
-#: src/DownloadListCtrl.cpp:1076 src/DownloadListCtrl.cpp:1089
-#: src/DownloadListCtrl.cpp:1100 src/ExternalConn.cpp:431
+#: src/DownloadListCtrl.cpp:1081 src/DownloadListCtrl.cpp:1094
+#: src/DownloadListCtrl.cpp:1105 src/ExternalConn.cpp:440
 #: src/FileDetailDialog.cpp:129 src/GenericClientListCtrl.cpp:1050
 #: src/GenericClientListCtrl.cpp:1061 src/GenericClientListCtrl.cpp:1071
-#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:916 src/KnownFile.cpp:922
-#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2521 src/PartFile.cpp:2527
-#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:967
+#: src/HTTPDownload.cpp:83 src/KnownFile.cpp:919 src/KnownFile.cpp:925
+#: src/MuleTrayIcon.cpp:365 src/PartFile.cpp:2526 src/PartFile.cpp:2532
+#: src/Server.cpp:133 src/Server.cpp:208 src/Statistics.cpp:972
 msgid "Unknown"
 msgstr "不明"
 
-#: src/BaseClient.cpp:1378
+#: src/BaseClient.cpp:1374
 #, c-format
 msgid "Failed to retrieve shared files from user '%s'"
 msgstr "無法從使用者 %s 取得分享檔案清單"
 
-#: src/BaseClient.cpp:1590
+#: src/BaseClient.cpp:1586
 msgid "Searching buddy for lowid connection"
 msgstr "搜尋 LowID 連線好友"
 
-#: src/BaseClient.cpp:1802
+#: src/BaseClient.cpp:1800
 #, c-format
 msgid " (Fake eMule version %#x)"
 msgstr " (假 eMule 版本 %#x)"
 
-#: src/BaseClient.cpp:1813
+#: src/BaseClient.cpp:1811
 msgid " (Fake eMule)"
 msgstr " (假 eMule)"
 
-#: src/BaseClient.cpp:1815
+#: src/BaseClient.cpp:1813
 msgid "xMule (Fake eMule)"
 msgstr "xMule (假 eMule)"
 
-#: src/BaseClient.cpp:1854
+#: src/BaseClient.cpp:1852
 #, c-format
 msgid "1.x (based on eMule v0.%u)"
 msgstr "1.x (源自 eMule v0.%u)"
 
-#: src/BaseClient.cpp:2027
+#: src/BaseClient.cpp:2025
 #, c-format
 msgid "NickName: %s ID: %u"
 msgstr "暱稱:%s ID:%u"
 
-#: src/BaseClient.cpp:2029
+#: src/BaseClient.cpp:2027
 #, c-format
 msgid "Requested: %s\n"
 msgstr "已要求:%s\n"
 
-#: src/BaseClient.cpp:2031
+#: src/BaseClient.cpp:2029
 #, c-format
 msgid "Filestats for this session: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
 "Filestats for this session: Accepted %d of %d requests, %s transferred\n"
 msgstr[0] "本次:共接受 %d/%d 個要求,已傳送 %s\n"
 
-#: src/BaseClient.cpp:2034
+#: src/BaseClient.cpp:2032
 #, c-format
 msgid "Filestats for all sessions: Accepted %d of %d request, %s transferred\n"
 msgid_plural ""
 "Filestats for all sessions: Accepted %d of %d requests, %s transferred\n"
 msgstr[0] "總計:共接受 %d/%d 個要求,已傳送 %s\n"
 
-#: src/BaseClient.cpp:2037
+#: src/BaseClient.cpp:2035
 msgid "Requested unknown file"
 msgstr "已要求不明檔案"
 
@@ -959,12 +959,12 @@ msgid "Client Details"
 msgstr "客戶端詳細資訊"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:169 src/ServerWnd.cpp:179
-#: src/utils/wxCas/src/onlinesig.cpp:269
+#: src/utils/wxCas/src/onlinesig.cpp:260
 msgid "LowID"
 msgstr "LowID"
 
 #: src/ClientDetailDialog.cpp:100 src/ServerWnd.cpp:182
-#: src/utils/wxCas/src/onlinesig.cpp:267
+#: src/utils/wxCas/src/onlinesig.cpp:258
 msgid "HighID"
 msgstr "HighID"
 
@@ -1016,64 +1016,64 @@ msgstr "驗證通過"
 msgid "Not Available"
 msgstr "N/A"
 
-#: src/ClientTCPSocket.cpp:844
+#: src/ClientTCPSocket.cpp:832
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Accepted"
 msgstr "使用者 %s (%u) 要求您的分享檔案清單 -> 已接受"
 
-#: src/ClientTCPSocket.cpp:865
+#: src/ClientTCPSocket.cpp:853
 #, c-format
 msgid "User %s (%u) requested your sharedfiles-list -> Denied"
 msgstr "使用者 %s (%u) 要求您的分享檔案清單 -> 已拒絕"
 
-#: src/ClientTCPSocket.cpp:897
+#: src/ClientTCPSocket.cpp:885
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Accepted"
 msgstr "使用者 %s (%u) 要求您的分享目錄清單 -> 接受"
 
-#: src/ClientTCPSocket.cpp:903
+#: src/ClientTCPSocket.cpp:891
 #, c-format
 msgid "User %s (%u) requested your shareddirectories-list -> Denied"
 msgstr "使用者 %s (%u) 要求您的分享目錄清單 -> 拒絕"
 
-#: src/ClientTCPSocket.cpp:928
+#: src/ClientTCPSocket.cpp:916
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted"
 msgstr "使用者 %s (%u) 要求目錄 %s 的分享檔案清單 -> 已接受"
 
-#: src/ClientTCPSocket.cpp:933
+#: src/ClientTCPSocket.cpp:921
 #, c-format
 msgid ""
 "User %s (%u) requested your sharedfiles-list for directory '%s' -> denied"
 msgstr "使用者 %s (%u) 要求目錄 %s 的分享檔案清單 -> 已拒絕"
 
-#: src/ClientTCPSocket.cpp:952
+#: src/ClientTCPSocket.cpp:940
 #, c-format
 msgid "User %s (%u) shares directory '%s'"
 msgstr "使用者 %s (%u) 分享的目錄 %s"
 
-#: src/ClientTCPSocket.cpp:967
+#: src/ClientTCPSocket.cpp:955
 #, c-format
 msgid "User %s (%u) sent unrequested shared dirs."
 msgstr "使用者 %s (%u) 傳送了未要求的分享目錄。"
 
-#: src/ClientTCPSocket.cpp:982
+#: src/ClientTCPSocket.cpp:970
 #, c-format
 msgid "User %s (%u) sent sharedfiles-list for directory '%s'"
 msgstr "使用者 %s (%u) 傳送了目錄 %s 內的分享檔案清單"
 
-#: src/ClientTCPSocket.cpp:989
+#: src/ClientTCPSocket.cpp:977
 #, c-format
 msgid "User %s (%u) finished sending sharedfiles-list"
 msgstr "使用者 %s (%u) 已傳送分享檔案清單"
 
-#: src/ClientTCPSocket.cpp:994
+#: src/ClientTCPSocket.cpp:982
 #, c-format
 msgid "User %s (%u) sent unwanted sharedfiles-list"
 msgstr "使用者 %s (%u) 傳送了未經要求的分享檔案清單"
 
-#: src/ClientTCPSocket.cpp:1006
+#: src/ClientTCPSocket.cpp:994
 #, c-format
 msgid "User %s (%u) denied access to shared directories/files list"
 msgstr "使用者 %s (%u) 拒絕傳送分享檔案/目錄清單"
@@ -1088,7 +1088,7 @@ msgstr "使用者名稱"
 
 #: src/CommentDialogLst.cpp:56 src/DownloadListCtrl.cpp:159
 #: src/FileDetailListCtrl.cpp:42 src/SearchListCtrl.cpp:87
-#: src/SharedFilesCtrl.cpp:101
+#: src/SharedFilesCtrl.cpp:102
 msgid "File Name"
 msgstr "檔案名稱"
 
@@ -1128,33 +1128,33 @@ msgstr "自動 [普]"
 msgid "Auto [Hi]"
 msgstr "自動 [高]"
 
-#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:136
+#: src/DataToText.cpp:43 src/SharedFilesCtrl.cpp:137
 msgid "Very low"
 msgstr "極低"
 
 #: src/DataToText.cpp:44 src/DownloadListCtrl.cpp:646 src/muuli_wdr.cpp:2393
 #: src/ServerListCtrl.cpp:235 src/ServerListCtrl.cpp:398
-#: src/SharedFilesCtrl.cpp:137
+#: src/SharedFilesCtrl.cpp:138
 msgid "Low"
 msgstr "低"
 
 #: src/DataToText.cpp:45 src/DownloadListCtrl.cpp:647 src/muuli_wdr.cpp:2394
 #: src/ServerListCtrl.cpp:236 src/ServerListCtrl.cpp:399
-#: src/SharedFilesCtrl.cpp:138
+#: src/SharedFilesCtrl.cpp:139
 msgid "Normal"
 msgstr "普通"
 
 #: src/DataToText.cpp:46 src/DownloadListCtrl.cpp:648 src/muuli_wdr.cpp:2395
 #: src/ServerListCtrl.cpp:237 src/ServerListCtrl.cpp:400
-#: src/SharedFilesCtrl.cpp:139
+#: src/SharedFilesCtrl.cpp:140
 msgid "High"
 msgstr "高"
 
-#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:140
+#: src/DataToText.cpp:47 src/SharedFilesCtrl.cpp:141
 msgid "Very High"
 msgstr "極高"
 
-#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:141
+#: src/DataToText.cpp:48 src/SharedFilesCtrl.cpp:142
 msgid "Release"
 msgstr "釋放"
 
@@ -1171,12 +1171,12 @@ msgid "Queue Full"
 msgstr "等候區已滿"
 
 #: src/DataToText.cpp:64 src/GenericClientListCtrl.cpp:997
-#: src/KnownFile.cpp:1550
+#: src/KnownFile.cpp:1553
 msgid "On Queue"
 msgstr "等候中"
 
 #: src/DataToText.cpp:65 src/libs/ec/cpp/ECSpecialTags.cpp:53
-#: src/OtherFunctions.cpp:676 src/PartFile.cpp:3715 src/TransferWnd.cpp:348
+#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3720 src/TransferWnd.cpp:348
 msgid "Downloading"
 msgstr "正在下載"
 
@@ -1236,7 +1236,7 @@ msgstr "本地伺服器"
 msgid "Remote Server"
 msgstr "遠端伺服器"
 
-#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3284
+#: src/DataToText.cpp:130 src/muuli_wdr.cpp:198 src/muuli_wdr.cpp:3287
 #: src/SearchDlg.cpp:109 src/TextClient.cpp:714
 msgid "Kad"
 msgstr "Kad"
@@ -1262,7 +1262,7 @@ msgid "Search Result"
 msgstr "搜尋結果"
 
 #: src/DataToText.cpp:145 src/DownloadListCtrl.cpp:162
-#: src/OtherFunctions.cpp:674 src/TransferWnd.cpp:346
+#: src/OtherFunctions.cpp:677 src/TransferWnd.cpp:346
 msgid "Completed"
 msgstr "已完成"
 
@@ -1303,11 +1303,11 @@ msgid "Part"
 msgstr "部份"
 
 #: src/DownloadListCtrl.cpp:160 src/PartFileConvertDlg.cpp:93
-#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:102
+#: src/SearchListCtrl.cpp:88 src/SharedFilesCtrl.cpp:103
 msgid "Size"
 msgstr "大小"
 
-#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3359
+#: src/DownloadListCtrl.cpp:161 src/muuli_wdr.cpp:3362
 msgid "Transferred"
 msgstr "已傳輸"
 
@@ -1320,17 +1320,17 @@ msgid "Progress"
 msgstr "進度"
 
 #: src/DownloadListCtrl.cpp:165 src/FileDetailListCtrl.cpp:43
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:89
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:89
 msgid "Sources"
 msgstr "來源"
 
 #: src/DownloadListCtrl.cpp:166 src/DownloadListCtrl.cpp:651
 #: src/ServerListCtrl.cpp:93 src/ServerListCtrl.cpp:402
-#: src/SharedFilesCtrl.cpp:104 src/SharedFilesCtrl.cpp:144
+#: src/SharedFilesCtrl.cpp:105 src/SharedFilesCtrl.cpp:145
 msgid "Priority"
 msgstr "優先等級"
 
-#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3763
+#: src/DownloadListCtrl.cpp:167 src/PartFile.cpp:3768
 #: src/SearchListCtrl.cpp:92
 msgid "Status"
 msgstr "狀態"
@@ -1355,7 +1355,7 @@ msgstr "您確定要刪除這個檔案嗎?"
 msgid "Are you sure that you wish to delete the selected files?"
 msgstr "您確定要刪除這些檔案嗎?"
 
-#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:200
+#: src/DownloadListCtrl.cpp:554 src/SharedFilesCtrl.cpp:203
 #, c-format
 msgid ""
 "Feedback from: %s (%s)\n"
@@ -1365,7 +1365,7 @@ msgstr ""
 "\n"
 
 #: src/DownloadListCtrl.cpp:649 src/muuli_wdr.cpp:2396
-#: src/SharedFilesCtrl.cpp:142
+#: src/SharedFilesCtrl.cpp:143
 msgid "Auto"
 msgstr "自動"
 
@@ -1417,11 +1417,11 @@ msgstr "顯示所有註解"
 msgid "Copy magnet URI to clipboard"
 msgstr "複製 magnet 網址到剪貼簿"
 
-#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:163
+#: src/DownloadListCtrl.cpp:686 src/SharedFilesCtrl.cpp:164
 msgid "Copy eD2k &link to clipboard"
 msgstr "複製 eD2k 連結到剪貼簿(&L)"
 
-#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:169
+#: src/DownloadListCtrl.cpp:688 src/SharedFilesCtrl.cpp:171
 msgid "Copy feedback to clipboard"
 msgstr "複製傳輸狀況到剪貼簿"
 
@@ -1437,24 +1437,24 @@ msgstr "分類"
 msgid "&Open the file"
 msgstr "開啟檔案(&O)"
 
-#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:682
+#: src/DownloadListCtrl.cpp:812 src/SharedFilesCtrl.cpp:686
 msgid "Enter new name for this file:"
 msgstr "請輸入新檔案名稱:"
 
-#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:683
+#: src/DownloadListCtrl.cpp:813 src/SharedFilesCtrl.cpp:687
 msgid "File rename"
 msgstr "更改檔名"
 
-#: src/DownloadListCtrl.cpp:1087 src/DownloadListCtrl.cpp:1098
+#: src/DownloadListCtrl.cpp:1092 src/DownloadListCtrl.cpp:1103
 msgid "%y/%m/%d %H:%M:%S"
 msgstr "%y/%m/%d %H:%M:%S"
 
-#: src/DownloadListCtrl.cpp:1268
+#: src/DownloadListCtrl.cpp:1273
 #, c-format
 msgid "Downloads (%i)"
 msgstr "下載 (%i)"
 
-#: src/DownloadListCtrl.cpp:1412
+#: src/DownloadListCtrl.cpp:1428
 msgid ""
 "To prevent this warning to show up in every preview,\n"
 "set your preferred video player in preferences (default is mplayer)."
@@ -1462,11 +1462,11 @@ msgstr ""
 "請在偏好設定中設定影片播放器 (預設為 mplayer),\n"
 "以避免這個警告訊息繼續出現。"
 
-#: src/DownloadListCtrl.cpp:1413
+#: src/DownloadListCtrl.cpp:1429
 msgid "File preview"
 msgstr "檔案預覽"
 
-#: src/DownloadListCtrl.cpp:1461
+#: src/DownloadListCtrl.cpp:1477
 #, c-format
 msgid "ERROR: Failed to execute external media-player! Command: `%s'"
 msgstr "錯誤:無法執行媒體播放器!指令:「 %s 」"
@@ -1571,28 +1571,28 @@ msgstr "未設定密碼,外部連線已被停用!"
 msgid "External connections disabled in config file"
 msgstr "已在設定檔中停用外部連線"
 
-#: src/ExternalConn.cpp:400
+#: src/ExternalConn.cpp:407
 msgid "New external connection accepted"
 msgstr "已接受新的外部連線"
 
-#: src/ExternalConn.cpp:403
+#: src/ExternalConn.cpp:410
 msgid "ERROR: couldn't accept a new external connection"
 msgstr "錯誤:無法接受新的外部連線"
 
-#: src/ExternalConn.cpp:421
+#: src/ExternalConn.cpp:428
 msgid "External connection refused due to empty password in preferences!"
 msgstr "由於偏好設定中未設定密碼,外部連線已被拒絕!"
 
-#: src/ExternalConn.cpp:430
+#: src/ExternalConn.cpp:439
 #, c-format
 msgid "Connecting client: %s %s"
 msgstr "連線中客戶端:%s %s"
 
-#: src/ExternalConn.cpp:432
+#: src/ExternalConn.cpp:441
 msgid "Unknown version"
 msgstr "不明版本"
 
-#: src/ExternalConn.cpp:442
+#: src/ExternalConn.cpp:451
 msgid ""
 "Incorrect EC version ID, there might be binary incompatibility. Use core and "
 "remote from same snapshot."
@@ -1600,179 +1600,179 @@ msgstr ""
 "不正確的外部連線版本 ID,這將導致執行檔不相容,請使用相同版本的主程式和遠端程"
 "式。"
 
-#: src/ExternalConn.cpp:447
+#: src/ExternalConn.cpp:456
 msgid ""
 "You cannot connect to a release version from an arbitrary development "
 "snapshot! *sigh* possible crash prevented"
 msgstr ""
 "您不能用開發中版本 (SVN) 連線到正式發行版,這是為了避免系統遭受不確定的損害"
 
-#: src/ExternalConn.cpp:475
+#: src/ExternalConn.cpp:480
 msgid "Invalid protocol version."
 msgstr "協定版本無效。"
 
-#: src/ExternalConn.cpp:480
+#: src/ExternalConn.cpp:485
 msgid "Missing protocol version tag."
 msgstr "缺少協定版本標記。"
 
-#: src/ExternalConn.cpp:487
+#: src/ExternalConn.cpp:492
 msgid "Authentication failed: invalid hash specified as EC password."
 msgstr "驗證失敗:指定無效的 hash 值做為外部連線密碼。"
 
-#: src/ExternalConn.cpp:504
+#: src/ExternalConn.cpp:509
 msgid "Authentication failed: wrong password."
 msgstr "驗證失敗:密碼錯誤。"
 
-#: src/ExternalConn.cpp:506
+#: src/ExternalConn.cpp:511
 msgid "Authentication failed: missing password."
 msgstr "驗證失敗:沒有密碼。"
 
-#: src/ExternalConn.cpp:516
+#: src/ExternalConn.cpp:521
 msgid "Invalid request, please authenticate first."
 msgstr "無效的要求,請先通過登入驗證。"
 
-#: src/ExternalConn.cpp:521
+#: src/ExternalConn.cpp:526
 msgid "Access granted."
 msgstr "登入成功。"
 
-#: src/ExternalConn.cpp:529
+#: src/ExternalConn.cpp:534
 #, c-format
 msgid "Sent error message \"%s\" to client."
 msgstr "傳送錯誤訊息「%s」給客戶端。"
 
-#: src/ExternalConn.cpp:534
+#: src/ExternalConn.cpp:537
 #, c-format
 msgid "Unauthorized access attempt from %s. Connection closed."
 msgstr "%s 試圖非法登入,已關閉連線。"
 
-#: src/ExternalConn.cpp:799
+#: src/ExternalConn.cpp:802
 #, c-format
 msgid "Remote PartFile command failed: FileHash not found: %s"
 msgstr "無法執行對遠端暫存檔的指令:找不到檔案 hash 值:%s "
 
-#: src/ExternalConn.cpp:801
+#: src/ExternalConn.cpp:804
 #, c-format
 msgid "FileHash not found: %s"
 msgstr "找不到檔案 hash 值:%s "
 
-#: src/ExternalConn.cpp:848 src/ExternalConn.cpp:930 src/ExternalConn.cpp:1001
+#: src/ExternalConn.cpp:851 src/ExternalConn.cpp:933 src/ExternalConn.cpp:1004
 msgid "OOPS! OpCode processing error!"
 msgstr "糟糕!指令碼處理錯誤!"
 
-#: src/ExternalConn.cpp:876
+#: src/ExternalConn.cpp:879
 msgid "Server not added"
 msgstr "伺服器未被加入"
 
-#: src/ExternalConn.cpp:894
+#: src/ExternalConn.cpp:897
 #, c-format
 msgid "server not found: %s"
 msgstr "找不到伺服器:%s "
 
-#: src/ExternalConn.cpp:910
+#: src/ExternalConn.cpp:913
 msgid "need to define server to be removed"
 msgstr "必須指定要刪除的伺服器"
 
-#: src/ExternalConn.cpp:924
+#: src/ExternalConn.cpp:927
 msgid "eD2k is disabled in preferences."
 msgstr "eD2k 網路已在偏好設定中被停用了。"
 
-#: src/ExternalConn.cpp:1102
+#: src/ExternalConn.cpp:1105
 msgid "Search in progress. Refetch results in a moment!"
 msgstr "搜尋中,請稍候!"
 
-#: src/ExternalConn.cpp:1108
+#: src/ExternalConn.cpp:1111
 msgid "WebSearch from remote interface makes no sense."
 msgstr "從遠端界面使用網頁搜尋功能沒有意義。"
 
-#: src/ExternalConn.cpp:1306
+#: src/ExternalConn.cpp:1309
 msgid "No points for graph."
 msgstr "此圖沒有參考點。"
 
-#: src/ExternalConn.cpp:1315
+#: src/ExternalConn.cpp:1318
 msgid "Your client is not configured for this detail level."
 msgstr "您的客戶端並沒有設定這個細部等級。"
 
-#: src/ExternalConn.cpp:1342
+#: src/ExternalConn.cpp:1345
 msgid "External Connection: shutdown requested"
 msgstr "外部連線:必須關閉"
 
-#: src/ExternalConn.cpp:1354
+#: src/ExternalConn.cpp:1357
 msgid "Already shutting down."
 msgstr "已經在關閉中。"
 
-#: src/ExternalConn.cpp:1366
+#: src/ExternalConn.cpp:1369
 #, c-format
 msgid "ExternalConn: adding link '%s'."
 msgstr "外部連線:正在加入連結 %s 。"
 
-#: src/ExternalConn.cpp:1372
+#: src/ExternalConn.cpp:1375
 msgid "Invalid link or already on list."
 msgstr "無效連結或已在清單中。"
 
-#: src/ExternalConn.cpp:1442
+#: src/ExternalConn.cpp:1445
 msgid "File not found."
 msgstr "找不到檔案。"
 
-#: src/ExternalConn.cpp:1447
+#: src/ExternalConn.cpp:1450
 msgid "Invalid file name."
 msgstr "無效的檔名。"
 
-#: src/ExternalConn.cpp:1455
+#: src/ExternalConn.cpp:1458
 msgid "Unable to rename file."
 msgstr "無法重新命名。"
 
-#: src/ExternalConn.cpp:1751 src/ExternalConn.cpp:1778
+#: src/ExternalConn.cpp:1756 src/ExternalConn.cpp:1783
 msgid "Kad is disabled in preferences."
 msgstr "Kad 網路已在偏好設定中被停用了。"
 
-#: src/ExternalConn.cpp:1790
+#: src/ExternalConn.cpp:1795
 msgid "Already connected to eD2k."
 msgstr "eD2k 網路已連線。"
 
-#: src/ExternalConn.cpp:1793
+#: src/ExternalConn.cpp:1798
 msgid "Connecting to eD2k..."
 msgstr "eD2k 連線中..."
 
-#: src/ExternalConn.cpp:1801
+#: src/ExternalConn.cpp:1806
 msgid "Already connected to Kad."
 msgstr "Kad 網路已連線。"
 
-#: src/ExternalConn.cpp:1804
+#: src/ExternalConn.cpp:1809
 msgid "Connecting to Kad..."
 msgstr "Kad 連線中..."
 
-#: src/ExternalConn.cpp:1811
+#: src/ExternalConn.cpp:1816
 msgid "All networks are disabled."
 msgstr "所有網路都被停用了。"
 
-#: src/ExternalConn.cpp:1819
+#: src/ExternalConn.cpp:1824
 msgid "Disconnected from eD2k."
 msgstr "已中斷 eD2k 網路連線。"
 
-#: src/ExternalConn.cpp:1823
+#: src/ExternalConn.cpp:1828
 msgid "Disconnected from Kad."
 msgstr "已中斷 Kad 網路連線。"
 
-#: src/ExternalConn.cpp:1832
+#: src/ExternalConn.cpp:1837
 #, c-format
 msgid "External Connection: invalid opcode received: %#x"
 msgstr "外部連線:接收到無效的指令碼 - %#x"
 
-#: src/ExternalConn.cpp:1835
+#: src/ExternalConn.cpp:1840
 msgid "Invalid opcode (wrong protocol version?)"
 msgstr "無效的指令碼(協定版本錯誤?)"
 
-#: src/ExternalConnector.cpp:142
+#: src/ExternalConnector.cpp:143
 #, c-format
 msgid "Unknown extension '%s' for the '%s' command.\n"
 msgstr "不明的副檔名 %s 傳給指令「 %s 」。\n"
 
-#: src/ExternalConnector.cpp:144
+#: src/ExternalConnector.cpp:145
 #, c-format
 msgid "Unknown command '%s'.\n"
 msgstr "不明的指令「 %s 」。\n"
 
-#: src/ExternalConnector.cpp:156
+#: src/ExternalConnector.cpp:157
 msgid ""
 "\n"
 "This command cannot have an argument.\n"
@@ -1780,7 +1780,7 @@ msgstr ""
 "\n"
 "這個指令不能有引數。\n"
 
-#: src/ExternalConnector.cpp:158
+#: src/ExternalConnector.cpp:159
 msgid ""
 "\n"
 "This command must have an argument.\n"
@@ -1788,7 +1788,7 @@ msgstr ""
 "\n"
 "這個指令必須要有引數。\n"
 
-#: src/ExternalConnector.cpp:161
+#: src/ExternalConnector.cpp:162
 msgid ""
 "\n"
 "This command is incomplete, you must use one of the extensions below.\n"
@@ -1796,7 +1796,7 @@ msgstr ""
 "\n"
 "這個指令不完整,您必須使用以下其中一個副檔名。\n"
 
-#: src/ExternalConnector.cpp:167
+#: src/ExternalConnector.cpp:168
 msgid ""
 "\n"
 "Available extensions:\n"
@@ -1804,11 +1804,11 @@ msgstr ""
 "\n"
 "可用的副檔名:\n"
 
-#: src/ExternalConnector.cpp:169
+#: src/ExternalConnector.cpp:170
 msgid "Available commands:\n"
 msgstr "可用的指令:\n"
 
-#: src/ExternalConnector.cpp:186
+#: src/ExternalConnector.cpp:187
 #, c-format
 msgid ""
 "\n"
@@ -1819,17 +1819,17 @@ msgstr ""
 "所有指令都不區分大小寫。\n"
 "輸入「 %s <指令> 」取得 <指令> 的詳細資訊。\n"
 
-#: src/ExternalConnector.cpp:222 src/ExternalConnector.cpp:223
+#: src/ExternalConnector.cpp:225 src/ExternalConnector.cpp:226
 msgid "Exits from the application."
 msgstr "離開程式。"
 
-#: src/ExternalConnector.cpp:224
+#: src/ExternalConnector.cpp:227
 msgid "Show help."
 msgstr "顯示幫助。"
 
 #. TRANSLATORS:
 #. Do not translate the word 'help', it is a command to the program!
-#: src/ExternalConnector.cpp:227
+#: src/ExternalConnector.cpp:230
 msgid ""
 "To get help on a command, type 'help <command>'.\n"
 "To get the full command list type 'help'.\n"
@@ -1837,7 +1837,7 @@ msgstr ""
 "輸入「 help <指令> 」可顯示該指令的說明。\n"
 "輸入「 help 」可顯示所有指令一覽。\n"
 
-#: src/ExternalConnector.cpp:248
+#: src/ExternalConnector.cpp:251
 #, c-format
 msgid ""
 "\n"
@@ -1848,46 +1848,46 @@ msgstr ""
 "使用「 %s 」列出所有指令\n"
 "\n"
 
-#: src/ExternalConnector.cpp:278
+#: src/ExternalConnector.cpp:281
 msgid "Syntax error!"
 msgstr "語法錯誤!"
 
-#: src/ExternalConnector.cpp:281
+#: src/ExternalConnector.cpp:284
 msgid "Error processing command - should never happen! Report bug, please\n"
 msgstr "處理指令時發生意外錯誤!請提出錯誤報告\n"
 
-#: src/ExternalConnector.cpp:284
+#: src/ExternalConnector.cpp:287
 msgid "This command should not have any parameters."
 msgstr "這個指令不能有參數。"
 
-#: src/ExternalConnector.cpp:287
+#: src/ExternalConnector.cpp:290
 msgid "This command must have a parameter."
 msgstr "這個指令必須要有參數。"
 
-#: src/ExternalConnector.cpp:290
+#: src/ExternalConnector.cpp:293
 msgid "Invalid argument."
 msgstr "無效的引數。"
 
-#: src/ExternalConnector.cpp:293
+#: src/ExternalConnector.cpp:296
 msgid "This is an incomplete command."
 msgstr "不完整的指令。"
 
-#: src/ExternalConnector.cpp:302
+#: src/ExternalConnector.cpp:305
 #, c-format
 msgid "Type '%s' to get more help.\n"
 msgstr "輸入「 %s 」顯示更多協助資訊。\n"
 
-#: src/ExternalConnector.cpp:357
+#: src/ExternalConnector.cpp:360
 #, c-format
 msgid "This is %s %s %s\n"
 msgstr "這是 %s %s %s\n"
 
-#: src/ExternalConnector.cpp:359
+#: src/ExternalConnector.cpp:362
 #, c-format
 msgid "This is %s %s\n"
 msgstr "這是 %s %s\n"
 
-#: src/ExternalConnector.cpp:390
+#: src/ExternalConnector.cpp:377
 msgid ""
 "\n"
 "Creating client...\n"
@@ -1895,7 +1895,7 @@ msgstr ""
 "\n"
 "正在建立客戶端...\n"
 
-#: src/ExternalConnector.cpp:414
+#: src/ExternalConnector.cpp:401
 #, c-format
 msgid ""
 "\n"
@@ -1904,7 +1904,7 @@ msgstr ""
 "\n"
 "OK,正在離開 %s...\n"
 
-#: src/ExternalConnector.cpp:420
+#: src/ExternalConnector.cpp:407
 msgid ""
 "Cannot connect with an empty password.\n"
 "You must specify a password either in config file\n"
@@ -1918,47 +1918,47 @@ msgstr ""
 "\n"
 "正在離開...\n"
 
-#: src/ExternalConnector.cpp:429
+#: src/ExternalConnector.cpp:416
 msgid "Show this help text."
 msgstr "顯示協助資訊。"
 
-#: src/ExternalConnector.cpp:432
+#: src/ExternalConnector.cpp:419
 msgid "Host where aMule is running. (default: localhost)"
 msgstr "執行 aMule 的主機。(預設:localhost)"
 
-#: src/ExternalConnector.cpp:435
+#: src/ExternalConnector.cpp:422
 msgid "aMule's port for External Connection. (default: 4712)"
 msgstr "aMule 的外部連線埠。 (預設:4712)"
 
-#: src/ExternalConnector.cpp:438
+#: src/ExternalConnector.cpp:425
 msgid "External Connection password."
 msgstr "外部連線密碼。"
 
-#: src/ExternalConnector.cpp:441
+#: src/ExternalConnector.cpp:428
 msgid "Read configuration from file."
 msgstr "從檔案讀取設定。"
 
-#: src/ExternalConnector.cpp:444
+#: src/ExternalConnector.cpp:431
 msgid "Do not print any output to stdout."
 msgstr "不顯示任何輸出訊息。"
 
-#: src/ExternalConnector.cpp:447
+#: src/ExternalConnector.cpp:434
 msgid "Be verbose - show also debug messages."
 msgstr "詳細顯示除錯資訊。"
 
-#: src/ExternalConnector.cpp:450
+#: src/ExternalConnector.cpp:437
 msgid "Sets program locale (language)."
 msgstr "設定程式的地區設定 (語言)。"
 
-#: src/ExternalConnector.cpp:453
+#: src/ExternalConnector.cpp:440
 msgid "Write command line options to config file."
 msgstr "把命令列選項寫入設定檔。"
 
-#: src/ExternalConnector.cpp:456
+#: src/ExternalConnector.cpp:443
 msgid "Creates config file based on aMule's config file."
 msgstr "使用 aMule 的設定檔建立新設定檔。"
 
-#: src/ExternalConnector.cpp:459
+#: src/ExternalConnector.cpp:446
 msgid "Print program version."
 msgstr "列出程式版本。"
 
@@ -1971,8 +1971,8 @@ msgstr "檔案詳細資訊"
 msgid "%.1f%% done"
 msgstr "完成 %.1f%%"
 
-#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1144
-#: src/utils/wxCas/src/wxcasframe.cpp:1154
+#: src/FileDetailDialog.cpp:115 src/utils/wxCas/src/wxcasframe.cpp:1139
+#: src/utils/wxCas/src/wxcasframe.cpp:1149
 #, c-format
 msgid "%.2f kB/s"
 msgstr "%.2f KB/s"
@@ -1989,7 +1989,7 @@ msgstr "無法開啟好友清單檔案 emfriends.met 供寫入!"
 msgid "CRITICAL - no client on StartChatSession"
 msgstr "重大錯誤 - 開始交談時沒有客戶端"
 
-#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3455
+#: src/FriendListCtrl.cpp:122 src/muuli_wdr.cpp:2833 src/muuli_wdr.cpp:3458
 msgid "Friends"
 msgstr "好友"
 
@@ -2117,31 +2117,31 @@ msgstr "要下載的網址不可空白"
 msgid "The URL %s returned: %i - Error (%i)!"
 msgstr "網址 %s 傳回:%i - 錯誤 (%i)!"
 
-#: src/HTTPDownload.cpp:260
+#: src/HTTPDownload.cpp:262
 msgid "Critical error while writing downloaded file"
 msgstr "寫入下載檔案時發生重大錯誤"
 
-#: src/HTTPDownload.cpp:275
+#: src/HTTPDownload.cpp:277
 #, c-format
 msgid "Downloaded %d bytes"
 msgstr "已下載 %d B"
 
-#: src/HTTPDownload.cpp:279
+#: src/HTTPDownload.cpp:281
 #, c-format
 msgid "Expected %d bytes, but downloaded %d bytes"
 msgstr "原預計 %d B,但實際下載了 %d B"
 
-#: src/HTTPDownload.cpp:336
+#: src/HTTPDownload.cpp:338
 msgid ""
 "Invalid URL for HTTP download or HTTP redirection (did you forget "
 "'http://' ?)"
 msgstr "無效的 HTTP 下載網址或 HTTP 轉址 (您是否忘了在前面加「http://」?"
 
-#: src/HTTPDownload.cpp:379
+#: src/HTTPDownload.cpp:381
 msgid "Unable to connect to HTTP download server"
 msgstr "無法連線到 HTTP 下載伺服器"
 
-#: src/HTTPDownload.cpp:400
+#: src/HTTPDownload.cpp:402
 msgid "Invalid response from HTTP download server"
 msgstr "HTTP 下載伺服器傳來無效的回應"
 
@@ -2173,7 +2173,7 @@ msgstr "成功更新 %s"
 msgid "Error updating GeoIP.dat"
 msgstr "GeoIP.dat 更新錯誤"
 
-#: src/IP2Country.cpp:153 src/IPFilter.cpp:511 src/ServerList.cpp:858
+#: src/IP2Country.cpp:153 src/IPFilter.cpp:512 src/ServerList.cpp:860
 #, c-format
 msgid "Failed to download %s from %s"
 msgstr "無法下載 %s (從 %s)"
@@ -2214,7 +2214,7 @@ msgstr[0] "放棄 %u 行錯誤資料。"
 msgid "Failed to rename new %s file, aborting update."
 msgstr "無法重新命名新的 %s 檔案,停止更新。"
 
-#: src/IPFilter.cpp:533
+#: src/IPFilter.cpp:534
 msgid "IP filter is ready"
 msgstr "IP 過濾表已備妥"
 
@@ -2229,100 +2229,100 @@ msgstr "從已知客戶端啓動"
 msgid "Nodes (%u)"
 msgstr "節點 (%u)"
 
-#: src/KadDlg.cpp:182
+#: src/KadDlg.cpp:179
 msgid "Invalid ip to bootstrap"
 msgstr "無效 IP"
 
-#: src/KadDlg.cpp:188
+#: src/KadDlg.cpp:185
 msgid "Invalid port to bootstrap"
 msgstr "無效的通訊埠"
 
-#: src/KadDlg.cpp:192
+#: src/KadDlg.cpp:189
 msgid "Please fill all fields required"
 msgstr "請填寫所有必要資訊"
 
-#: src/KadDlg.cpp:211
+#: src/KadDlg.cpp:208
 msgid "Are you sure you want to download a new nodes.dat file?\n"
 msgstr "確定要下載新的 node.dat 檔案嗎?\n"
 
-#: src/KadDlg.cpp:212
+#: src/KadDlg.cpp:209
 msgid ""
 "Doing so will remove your current nodes and restart Kademlia connection."
 msgstr "這樣將會刪除您現有節點並重新啓動 Kad 連線。"
 
-#: src/KadDlg.cpp:213
+#: src/KadDlg.cpp:210
 msgid "Continue?"
 msgstr "繼續?"
 
-#: src/kademlia/kademlia/SearchManager.cpp:128
+#: src/kademlia/kademlia/SearchManager.cpp:125
 msgid "Kademlia: search keyword too short"
 msgstr "Kad:關鍵字太短"
 
-#: src/kademlia/kademlia/SearchManager.cpp:133
+#: src/kademlia/kademlia/SearchManager.cpp:130
 #, c-format
 msgid "Keyword for search: %s"
 msgstr "搜尋的關鍵字:%s "
 
-#: src/kademlia/kademlia/SearchManager.cpp:141
+#: src/kademlia/kademlia/SearchManager.cpp:138
 msgid "Kademlia: Search keyword is already on search list: "
 msgstr "Kad:關鍵字已在搜尋清單中:"
 
-#: src/kademlia/routing/RoutingZone.cpp:172
+#: src/kademlia/routing/RoutingZone.cpp:171
 msgid ""
 "Failed to read nodes.dat file - too old. This version (0) is not supported "
 "anymore."
 msgstr "無法讀取 nodes.dat 檔案 - 版本 (0) 太舊,已經不再支援了。"
 
-#: src/kademlia/routing/RoutingZone.cpp:210
-#: src/kademlia/routing/RoutingZone.cpp:285
+#: src/kademlia/routing/RoutingZone.cpp:209
+#: src/kademlia/routing/RoutingZone.cpp:284
 #, c-format
 msgid "Read %u Kad contact"
 msgid_plural "Read %u Kad contacts"
 msgstr[0] "讀取 %u 個 Kad 聯絡人"
 
-#: src/kademlia/routing/RoutingZone.cpp:222
-#: src/kademlia/routing/RoutingZone.cpp:289
+#: src/kademlia/routing/RoutingZone.cpp:221
+#: src/kademlia/routing/RoutingZone.cpp:288
 msgid "No contacts found, please bootstrap, or download a nodes.dat file."
 msgstr "找不到聯絡人,請設啟動節點、或下載一個 nodes.dat 檔案。"
 
-#: src/kademlia/routing/RoutingZone.cpp:307
+#: src/kademlia/routing/RoutingZone.cpp:306
 #, c-format
 msgid "Only %d Kad contact available, nodes.dat not written"
 msgid_plural "Only %d Kad contacts available, nodes.dat not written"
 msgstr[0] "只有 %d 個 Kad 聯絡人,nods.dat 未寫入"
 
-#: src/kademlia/routing/RoutingZone.cpp:338
+#: src/kademlia/routing/RoutingZone.cpp:337
 #, c-format
 msgid "Wrote %d Kad contact"
 msgid_plural "Wrote %d Kad contacts"
 msgstr[0] "已寫入 %d 個 Kad 聯絡人"
 
-#: src/KnownFile.cpp:1544 src/PartFileConvertDlg.cpp:91
+#: src/KnownFile.cpp:1547 src/PartFileConvertDlg.cpp:91
 msgid "File name"
 msgstr "檔案名稱"
 
-#: src/KnownFile.cpp:1545
+#: src/KnownFile.cpp:1548
 msgid "File size"
 msgstr "檔案大小"
 
-#: src/KnownFile.cpp:1546
+#: src/KnownFile.cpp:1549
 msgid "Share ratio"
 msgstr "分享率"
 
-#: src/KnownFile.cpp:1547 src/SharedFilePeersListCtrl.cpp:31
+#: src/KnownFile.cpp:1550 src/SharedFilePeersListCtrl.cpp:31
 #: src/SourceListCtrl.cpp:31
 msgid "Uploaded"
 msgstr "已上傳"
 
-#: src/KnownFile.cpp:1548 src/muuli_wdr.cpp:3337
+#: src/KnownFile.cpp:1551 src/muuli_wdr.cpp:3340
 msgid "Requested"
 msgstr "已要求"
 
-#: src/KnownFile.cpp:1549
+#: src/KnownFile.cpp:1552
 msgid "Accepted"
 msgstr "已接受"
 
-#: src/KnownFile.cpp:1551
+#: src/KnownFile.cpp:1554
 msgid "Complete sources"
 msgstr "完整來源"
 
@@ -2348,69 +2348,74 @@ msgstr "不明的錯誤 %d"
 msgid "Unable to get error description for error %d"
 msgstr "無法取得關於錯誤 %d 的說明"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3693
+#: src/libs/ec/cpp/ECSpecialTags.cpp:40 src/PartFile.cpp:3698
 msgid "Hashing"
 msgstr "正在計算 hash 值"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3699
+#: src/libs/ec/cpp/ECSpecialTags.cpp:44 src/PartFile.cpp:3704
 msgid "Completing"
 msgstr "正在完成"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3702
+#: src/libs/ec/cpp/ECSpecialTags.cpp:46 src/PartFile.cpp:3707
 msgid "Complete"
 msgstr "完成"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:678
-#: src/PartFile.cpp:3705 src/TransferWnd.cpp:350
+#: src/libs/ec/cpp/ECSpecialTags.cpp:48 src/OtherFunctions.cpp:681
+#: src/PartFile.cpp:3710 src/TransferWnd.cpp:350
 msgid "Paused"
 msgstr "已暫停"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:677
-#: src/PartFile.cpp:3708 src/TransferWnd.cpp:349
+#: src/libs/ec/cpp/ECSpecialTags.cpp:50 src/OtherFunctions.cpp:680
+#: src/PartFile.cpp:3713 src/TransferWnd.cpp:349
 msgid "Erroneous"
 msgstr "錯誤的"
 
-#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:675
-#: src/PartFile.cpp:3717 src/TransferWnd.cpp:347
+#: src/libs/ec/cpp/ECSpecialTags.cpp:55 src/OtherFunctions.cpp:678
+#: src/PartFile.cpp:3722 src/TransferWnd.cpp:347
 msgid "Waiting"
 msgstr "正在等候"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:118 src/libs/ec/cpp/RemoteConnect.cpp:126
+#: src/libs/ec/cpp/RemoteConnect.cpp:119 src/libs/ec/cpp/RemoteConnect.cpp:127
 msgid "You must specify a non-empty password."
 msgstr "您必須輸入密碼。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:123
+#: src/libs/ec/cpp/RemoteConnect.cpp:124
 msgid "Invalid password, not a MD5 hash!"
 msgstr "無效的密碼,不是 MD5 hash 值!"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:184
+#: src/libs/ec/cpp/RemoteConnect.cpp:187
 msgid "Connection failure"
 msgstr "無法連線"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:244
+#: src/libs/ec/cpp/RemoteConnect.cpp:247
 msgid "EC connection failed. Empty reply."
 msgstr "無法外部連線,無回應。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:255
+#: src/libs/ec/cpp/RemoteConnect.cpp:258
 msgid "External Connection: Bad reply, handshake failed. Connection closed."
 msgstr "外部連線:回應不正確、訊號交換失敗,已關閉連線。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:263
+#: src/libs/ec/cpp/RemoteConnect.cpp:266
 msgid "Succeeded! Connection established to aMule "
 msgstr "已成功連線到 aMule "
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:266
+#: src/libs/ec/cpp/RemoteConnect.cpp:269
 msgid "Succeeded! Connection established."
 msgstr "連線成功。"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:272
+#: src/libs/ec/cpp/RemoteConnect.cpp:275
 msgid "External Connection: Access denied because: "
 msgstr "外部連線:拒絕存取,原因:"
 
-#: src/libs/ec/cpp/RemoteConnect.cpp:275
+#: src/libs/ec/cpp/RemoteConnect.cpp:278
 msgid "External Connection: Handshake failed."
 msgstr "外部連線:訊號交換失敗"
 
+#: src/LibSocketAsio.cpp:1259
+#, fuzzy, c-format
+msgid "Asio thread %d started"
+msgstr "已開始 HTTP 下載執行緒"
+
 #: src/ListenSocket.cpp:65
 msgid "ListenSocket: Ok."
 msgstr "監聽連接端點:OK。"
@@ -2419,16 +2424,16 @@ msgstr "監聽連接端點:OK。"
 msgid "ERROR: Could not listen to TCP port."
 msgstr "錯誤:無法監聽 TCP 埠。"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "ERROR: "
 msgstr "錯誤:"
 
-#: src/Logger.cpp:305 src/Logger.cpp:328
+#: src/Logger.cpp:329 src/Logger.cpp:353
 msgid "WARNING: "
 msgstr "警告:"
 
 #: src/MuleNotebook.cpp:167 src/muuli_wdr.cpp:901 src/muuli_wdr.cpp:1430
-#: src/muuli_wdr.cpp:3232 src/muuli_wdr.cpp:3502
+#: src/muuli_wdr.cpp:3235 src/muuli_wdr.cpp:3505
 msgid "Close"
 msgstr "關閉"
 
@@ -2436,8 +2441,8 @@ msgstr "關閉"
 msgid "Cut"
 msgstr "剪下"
 
-#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:393
-#: src/utils/aLinkCreator/src/alcframe.cpp:266
+#: src/MuleTextCtrl.cpp:80 src/PartFileConvert.cpp:388
+#: src/utils/aLinkCreator/src/alcframe.cpp:263
 msgid "Copy"
 msgstr "複製"
 
@@ -2446,7 +2451,7 @@ msgid "Paste"
 msgstr "貼上"
 
 #: src/MuleTextCtrl.cpp:82 src/muuli_wdr.cpp:385 src/muuli_wdr.cpp:832
-#: src/utils/aLinkCreator/src/alcframe.cpp:155
+#: src/utils/aLinkCreator/src/alcframe.cpp:152
 msgid "Clear"
 msgstr "清除"
 
@@ -2456,7 +2461,7 @@ msgstr "全選"
 
 #: src/MuleTrayIcon.cpp:82 src/MuleTrayIcon.cpp:464 src/MuleTrayIcon.cpp:485
 #: src/muuli_wdr.cpp:1576 src/muuli_wdr.cpp:1585 src/muuli_wdr.cpp:1594
-#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:139
+#: src/muuli_wdr.cpp:1941 src/muuli_wdr.cpp:1950 src/OtherFunctions.cpp:142
 #: src/StatisticsDlg.cpp:101 src/StatisticsDlg.cpp:103
 msgid "kB/s"
 msgstr "KB/s"
@@ -2533,7 +2538,7 @@ msgid "ServerIP: "
 msgstr "伺服器 IP:"
 
 #: src/MuleTrayIcon.cpp:357 src/ServerWnd.cpp:187
-#: src/utils/wxCas/src/onlinesig.cpp:272
+#: src/utils/wxCas/src/onlinesig.cpp:263
 msgid "Not Connected"
 msgstr "未連線"
 
@@ -2568,7 +2573,7 @@ msgstr "線上簽名識別:啟用"
 msgid "Online Signature: Disabled"
 msgstr "線上簽名識別:停用"
 
-#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:727
+#: src/MuleTrayIcon.cpp:406 src/Statistics.cpp:732
 #, c-format
 msgid "Uptime: %s"
 msgstr "已執行時間:%s"
@@ -2609,7 +2614,7 @@ msgstr "隱藏 aMule"
 msgid "Show aMule"
 msgstr "顯示 aMule"
 
-#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:238
+#: src/MuleTrayIcon.cpp:517 src/utils/aLinkCreator/src/alcframe.cpp:235
 msgid "Exit"
 msgstr "離開"
 
@@ -2686,7 +2691,7 @@ msgstr "搜尋"
 msgid "Name:"
 msgstr "名稱:"
 
-#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:103
+#: src/muuli_wdr.cpp:191 src/SearchListCtrl.cpp:90 src/SharedFilesCtrl.cpp:104
 msgid "Type"
 msgstr "類型"
 
@@ -2714,38 +2719,38 @@ msgstr "過濾"
 msgid "File Type"
 msgstr "檔案類型"
 
-#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:241
+#: src/muuli_wdr.cpp:229 src/OtherFunctions.cpp:244
 msgid "Any"
 msgstr "任何"
 
-#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:206
+#: src/muuli_wdr.cpp:230 src/OtherFunctions.cpp:209
 msgid "Archives"
 msgstr "壓縮檔"
 
-#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:199 src/OtherFunctions.cpp:681
+#: src/muuli_wdr.cpp:231 src/OtherFunctions.cpp:202 src/OtherFunctions.cpp:684
 #: src/TransferWnd.cpp:357
 msgid "Audio"
 msgstr "音樂"
 
-#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:213 src/OtherFunctions.cpp:683
+#: src/muuli_wdr.cpp:232 src/OtherFunctions.cpp:216 src/OtherFunctions.cpp:686
 #: src/TransferWnd.cpp:359
 msgid "CD-Images"
 msgstr "光碟映像"
 
-#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:220 src/OtherFunctions.cpp:684
+#: src/muuli_wdr.cpp:233 src/OtherFunctions.cpp:223 src/OtherFunctions.cpp:687
 #: src/TransferWnd.cpp:360
 msgid "Pictures"
 msgstr "圖片"
 
-#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:234
+#: src/muuli_wdr.cpp:234 src/OtherFunctions.cpp:237
 msgid "Programs"
 msgstr "程式"
 
-#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:227
+#: src/muuli_wdr.cpp:235 src/OtherFunctions.cpp:230
 msgid "Texts"
 msgstr "文件"
 
-#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:192
+#: src/muuli_wdr.cpp:236 src/OtherFunctions.cpp:195
 msgid "Videos"
 msgstr "影片"
 
@@ -2766,11 +2771,11 @@ msgid "KB"
 msgstr "KB"
 
 #: src/muuli_wdr.cpp:272 src/muuli_wdr.cpp:295 src/muuli_wdr.cpp:1826
-#: src/OtherFunctions.cpp:110
+#: src/OtherFunctions.cpp:113
 msgid "MB"
 msgstr "MB"
 
-#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:112
+#: src/muuli_wdr.cpp:273 src/muuli_wdr.cpp:296 src/OtherFunctions.cpp:115
 msgid "GB"
 msgstr "GB"
 
@@ -2798,7 +2803,7 @@ msgstr "反向排序結果"
 msgid "Hide Known Files"
 msgstr "隱藏已知檔案"
 
-#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:232
+#: src/muuli_wdr.cpp:349 src/utils/aLinkCreator/src/alcframe.cpp:229
 msgid "Start"
 msgstr "開始"
 
@@ -2855,7 +2860,7 @@ msgstr "全名︰"
 #: src/muuli_wdr.cpp:1347 src/muuli_wdr.cpp:1354 src/muuli_wdr.cpp:1363
 #: src/muuli_wdr.cpp:1370 src/muuli_wdr.cpp:1379 src/muuli_wdr.cpp:1397
 #: src/muuli_wdr.cpp:1406 src/muuli_wdr.cpp:1413 src/muuli_wdr.cpp:1422
-#: src/muuli_wdr.cpp:3340 src/muuli_wdr.cpp:3351 src/muuli_wdr.cpp:3362
+#: src/muuli_wdr.cpp:3343 src/muuli_wdr.cpp:3354 src/muuli_wdr.cpp:3365
 msgid "N/A"
 msgstr "N/A"
 
@@ -2879,7 +2884,7 @@ msgstr "暫存檔狀態:"
 msgid "Last seen complete :"
 msgstr "最後看到完整檔案:"
 
-#: src/muuli_wdr.cpp:597 src/Statistics.cpp:729
+#: src/muuli_wdr.cpp:597 src/Statistics.cpp:734
 msgid "Transfer"
 msgstr "傳輸"
 
@@ -2967,27 +2972,27 @@ msgstr ""
 msgid "File Quality"
 msgstr "檔案品質"
 
-#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:261 src/OtherFunctions.cpp:267
+#: src/muuli_wdr.cpp:846 src/OtherFunctions.cpp:264 src/OtherFunctions.cpp:270
 msgid "Not rated"
 msgstr "未評價"
 
-#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:262
+#: src/muuli_wdr.cpp:847 src/OtherFunctions.cpp:265
 msgid "Invalid / Corrupt / Fake"
 msgstr "無效 / 損壞 / 假檔"
 
-#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:263
+#: src/muuli_wdr.cpp:848 src/OtherFunctions.cpp:266
 msgid "Poor"
 msgstr "差"
 
-#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:264
+#: src/muuli_wdr.cpp:849 src/OtherFunctions.cpp:267
 msgid "Fair"
 msgstr "一般"
 
-#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:265
+#: src/muuli_wdr.cpp:850 src/OtherFunctions.cpp:268
 msgid "Good"
 msgstr "好"
 
-#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:266
+#: src/muuli_wdr.cpp:851 src/OtherFunctions.cpp:269
 msgid "Excellent"
 msgstr "優良"
 
@@ -3032,7 +3037,7 @@ msgid "Userhash :"
 msgstr "使用者 hash 值:"
 
 #: src/muuli_wdr.cpp:999 src/muuli_wdr.cpp:2565
-#: src/utils/aLinkCreator/src/alcframe.cpp:148
+#: src/utils/aLinkCreator/src/alcframe.cpp:145
 msgid "Add"
 msgstr "加入"
 
@@ -3259,9 +3264,9 @@ msgstr "請輸入瀏覽器的名稱,空白則使用系統預設。"
 
 #: src/muuli_wdr.cpp:1520 src/muuli_wdr.cpp:1540 src/muuli_wdr.cpp:1865
 #: src/muuli_wdr.cpp:1876 src/muuli_wdr.cpp:2951
-#: src/utils/aLinkCreator/src/alcframe.cpp:145
-#: src/utils/wxCas/src/wxcasprefs.cpp:65
-#: src/utils/wxCas/src/wxcasprefs.cpp:142
+#: src/utils/aLinkCreator/src/alcframe.cpp:142
+#: src/utils/wxCas/src/wxcasprefs.cpp:56
+#: src/utils/wxCas/src/wxcasprefs.cpp:133
 msgid "Browse"
 msgstr "瀏覽"
 
@@ -3347,7 +3352,7 @@ msgstr "最大同時連線數:"
 msgid "Kademlia"
 msgstr "Kad"
 
-#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3279
+#: src/muuli_wdr.cpp:1680 src/muuli_wdr.cpp:3282
 msgid "ED2K"
 msgstr "ED2K"
 
@@ -3465,7 +3470,7 @@ msgstr "請輸入最小磁碟可用空間。"
 msgid "Save 10 sources on rare files (< 20 sources)"
 msgstr "為來源稀少 (< 20) 的檔案儲存 10 個來源"
 
-#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:731
+#: src/muuli_wdr.cpp:1837 src/Statistics.cpp:736
 msgid "Uploads"
 msgstr "上傳"
 
@@ -3704,7 +3709,7 @@ msgid "Enable UPnP port forwarding on the EC port"
 msgstr "外部連線通訊埠啟用 UPnP 通訊埠轉向"
 
 #: src/muuli_wdr.cpp:2211 src/muuli_wdr.cpp:3127
-#: src/utils/wxCas/src/wxcasprefs.cpp:210
+#: src/utils/wxCas/src/wxcasprefs.cpp:201
 msgid "Password"
 msgstr "密碼"
 
@@ -3786,8 +3791,8 @@ msgid "Select color for this Category (currently selected) :"
 msgstr "選取該分類的顏色 (目前選擇):"
 
 #: src/muuli_wdr.cpp:2480 src/muuli_wdr.cpp:2505
-#: src/utils/wxCas/src/wxcasframe.cpp:138
-#: src/utils/wxCas/src/wxcasframe.cpp:142
+#: src/utils/wxCas/src/wxcasframe.cpp:133
+#: src/utils/wxCas/src/wxcasframe.cpp:137
 msgid "Reset"
 msgstr "清除"
 
@@ -4161,82 +4166,87 @@ msgid "Enable Verbose Debug-Logging."
 msgstr "啓用記錄詳細除錯訊息。"
 
 #: src/muuli_wdr.cpp:3169
+#, fuzzy
+msgid "Only to Logfile"
+msgstr "開啟檔案(&O)"
+
+#: src/muuli_wdr.cpp:3172
 msgid "Message Categories:"
 msgstr "訊息分類:"
 
-#: src/muuli_wdr.cpp:3195 src/PartFileConvertDlg.cpp:145
+#: src/muuli_wdr.cpp:3198 src/PartFileConvertDlg.cpp:153
 msgid "Waiting..."
 msgstr "等候中..."
 
-#: src/muuli_wdr.cpp:3222
+#: src/muuli_wdr.cpp:3225
 msgid "Add imports"
 msgstr "加入"
 
-#: src/muuli_wdr.cpp:3226
+#: src/muuli_wdr.cpp:3229
 msgid "Retry selected"
 msgstr "重試"
 
-#: src/muuli_wdr.cpp:3229
+#: src/muuli_wdr.cpp:3232
 msgid "Remove selected"
 msgstr "移除"
 
-#: src/muuli_wdr.cpp:3301
+#: src/muuli_wdr.cpp:3304
 msgid "Event Types"
 msgstr "事件種類"
 
-#: src/muuli_wdr.cpp:3321
+#: src/muuli_wdr.cpp:3324
 msgid "Statistics and queued clients for selected file(s) : Session / All time"
 msgstr "已選取的檔案的統計資料與等候區客戶端數:本次 / 總計"
 
-#: src/muuli_wdr.cpp:3348
+#: src/muuli_wdr.cpp:3351
 msgid "Active Uploads"
 msgstr "目前上傳數"
 
-#: src/muuli_wdr.cpp:3368
+#: src/muuli_wdr.cpp:3371
 msgid "Percent of total files"
 msgstr "% (所有檔案中)"
 
-#: src/muuli_wdr.cpp:3415
+#: src/muuli_wdr.cpp:3418
 msgid "All files"
 msgstr "所有檔案"
 
-#: src/muuli_wdr.cpp:3416
+#: src/muuli_wdr.cpp:3419
 msgid "Selected files"
 msgstr "選取的檔案"
 
-#: src/muuli_wdr.cpp:3417
+#: src/muuli_wdr.cpp:3420
 msgid "Active uploads only"
 msgstr "僅限目前上傳中"
 
-#: src/muuli_wdr.cpp:3419
+#: src/muuli_wdr.cpp:3422
 msgid "Show Clients for"
 msgstr "顯示客戶端:"
 
-#: src/muuli_wdr.cpp:3422
+#: src/muuli_wdr.cpp:3425
 msgid "Reload:"
 msgstr "重新載入:"
 
-#: src/muuli_wdr.cpp:3427
+#: src/muuli_wdr.cpp:3430
 msgid "Reload your shared files"
 msgstr "重新載入分享的檔案"
 
-#: src/muuli_wdr.cpp:3497
+#: src/muuli_wdr.cpp:3500
 msgid "Send"
 msgstr "傳送"
 
-#: src/muuli_wdr.cpp:3498
+#: src/muuli_wdr.cpp:3501
 msgid "Sends the specified message."
 msgstr "傳送訊息。"
 
-#: src/muuli_wdr.cpp:3503
+#: src/muuli_wdr.cpp:3506
 msgid "Close this chat-session."
 msgstr "結束本次交談。"
 
-#: src/muuli_wdr.cpp:3527
+#: src/muuli_wdr.cpp:3530
 msgid "Connect to any server and/or Kad"
 msgstr "連線到任何伺服器 和/或 Kad 網路"
 
-#: src/muuli_wdr.cpp:3533 src/SharedFilesCtrl.cpp:134 src/Statistics.cpp:810
+#: src/muuli_wdr.cpp:3536 src/SharedFilesCtrl.cpp:135 src/Statistics.cpp:815
 msgid "Shared Files"
 msgstr "分享檔案"
 
@@ -4245,133 +4255,133 @@ msgstr "分享檔案"
 msgid "Disabled [%s]"
 msgstr "已停用 [%s]"
 
-#: src/OtherFunctions.cpp:106
+#: src/OtherFunctions.cpp:109
 msgid "byte"
 msgid_plural "bytes"
 msgstr[0] "B"
 
-#: src/OtherFunctions.cpp:108
+#: src/OtherFunctions.cpp:111
 msgid "kB"
 msgstr "KB"
 
-#: src/OtherFunctions.cpp:114
+#: src/OtherFunctions.cpp:117
 msgid "TB"
 msgstr "TB"
 
-#: src/OtherFunctions.cpp:124
+#: src/OtherFunctions.cpp:127
 msgid "k"
 msgstr "K"
 
-#: src/OtherFunctions.cpp:126
+#: src/OtherFunctions.cpp:129
 msgid "M"
 msgstr "M"
 
-#: src/OtherFunctions.cpp:128
+#: src/OtherFunctions.cpp:131
 msgid "G"
 msgstr "G"
 
-#: src/OtherFunctions.cpp:130
+#: src/OtherFunctions.cpp:133
 msgid "T"
 msgstr "T"
 
-#: src/OtherFunctions.cpp:137
+#: src/OtherFunctions.cpp:140
 msgid "byte/sec"
 msgid_plural "bytes/sec"
 msgstr[0] "B/s"
 
-#: src/OtherFunctions.cpp:141
+#: src/OtherFunctions.cpp:144
 msgid "MB/s"
 msgstr "MB/s"
 
-#: src/OtherFunctions.cpp:150 src/OtherFunctions.cpp:153
+#: src/OtherFunctions.cpp:153 src/OtherFunctions.cpp:156
 msgid "secs"
 msgstr "秒"
 
-#: src/OtherFunctions.cpp:157
+#: src/OtherFunctions.cpp:160
 msgid "mins"
 msgstr "分"
 
-#: src/OtherFunctions.cpp:160 src/OtherFunctions.cpp:164
+#: src/OtherFunctions.cpp:163 src/OtherFunctions.cpp:167
 msgid "hours"
 msgstr "時"
 
-#: src/OtherFunctions.cpp:163
+#: src/OtherFunctions.cpp:166
 msgid "Days"
 msgstr "天"
 
-#: src/OtherFunctions.cpp:671
+#: src/OtherFunctions.cpp:674
 msgid "all"
 msgstr "全部"
 
-#: src/OtherFunctions.cpp:672
+#: src/OtherFunctions.cpp:675
 msgid "all others"
 msgstr "其它"
 
-#: src/OtherFunctions.cpp:673 src/TransferWnd.cpp:345
+#: src/OtherFunctions.cpp:676 src/TransferWnd.cpp:345
 msgid "Incomplete"
 msgstr "不完整"
 
-#: src/OtherFunctions.cpp:679 src/PartFile.cpp:3722 src/TransferWnd.cpp:351
+#: src/OtherFunctions.cpp:682 src/PartFile.cpp:3727 src/TransferWnd.cpp:351
 msgid "Stopped"
 msgstr "已停止"
 
-#: src/OtherFunctions.cpp:680 src/TransferWnd.cpp:356
+#: src/OtherFunctions.cpp:683 src/TransferWnd.cpp:356
 msgid "Video"
 msgstr "影片"
 
-#: src/OtherFunctions.cpp:682 src/TransferWnd.cpp:358
+#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:358
 msgid "Archive"
 msgstr "壓縮檔"
 
-#: src/OtherFunctions.cpp:685 src/TransferWnd.cpp:361
+#: src/OtherFunctions.cpp:688 src/TransferWnd.cpp:361
 msgid "Text"
 msgstr "文件"
 
-#: src/OtherFunctions.cpp:686 src/TransferWnd.cpp:352
+#: src/OtherFunctions.cpp:689 src/TransferWnd.cpp:352
 msgid "Active"
 msgstr "啟動"
 
-#: src/OtherFunctions.cpp:1103
+#: src/OtherFunctions.cpp:1106
 #, c-format
 msgid "Using config dir: %s"
 msgstr "使用設定目錄:%s"
 
-#: src/PartFileConvert.cpp:156
+#: src/PartFileConvert.cpp:154
 msgid "Waiting for partfile convert thread to die..."
 msgstr "正在等候暫存檔轉換執行緒終止..."
 
-#: src/PartFileConvert.cpp:200
+#: src/PartFileConvert.cpp:198
 #, c-format
 msgid "Importing %s: %s"
 msgstr "正在匯入 %s:%s"
 
-#: src/PartFileConvert.cpp:237
+#: src/PartFileConvert.cpp:234
 msgid "Reading temp folder"
 msgstr "正在讀取暫存資料夾"
 
-#: src/PartFileConvert.cpp:241
+#: src/PartFileConvert.cpp:238
 msgid "Retrieving basic information from download info file"
 msgstr "正在從下載資訊檔取得基本資訊"
 
-#: src/PartFileConvert.cpp:318
+#: src/PartFileConvert.cpp:316
 msgid "Creating destination file"
 msgstr "正在建立目標檔案"
 
-#: src/PartFileConvert.cpp:327
+#: src/PartFileConvert.cpp:326
 #, c-format
 msgid "Loading data from old download file (%u of %u)"
 msgstr "正在從舊下載檔案載入資料 (%u / %u)"
 
-#: src/PartFileConvert.cpp:347
+#: src/PartFileConvert.cpp:344
 #, c-format
 msgid "Saving data block into new single download file (%u of %u)"
 msgstr "正在將資料區塊儲存到新的單一下載檔案 (%u / %u)"
 
-#: src/PartFileConvert.cpp:413
+#: src/PartFileConvert.cpp:408
 msgid "Retrieving source downloadfile information"
 msgstr "正在取得來源下載檔案資訊"
 
-#: src/PartFileConvert.cpp:436
+#: src/PartFileConvert.cpp:431
 msgid "Adding download and saving new partfile"
 msgstr "正在加入下載和儲存新暫存檔"
 
@@ -4387,23 +4397,23 @@ msgstr "狀態"
 msgid "Filehash"
 msgstr "檔案 hash 值"
 
-#: src/PartFileConvertDlg.cpp:169
+#: src/PartFileConvertDlg.cpp:177
 #, c-format
 msgid "%s (Disk: %s)"
 msgstr "%s (磁碟:%s)"
 
-#: src/PartFileConvertDlg.cpp:194
+#: src/PartFileConvertDlg.cpp:202
 msgid ""
 "Please choose a folder to search for temporary downloads! (subfolders will "
 "be included)"
 msgstr "請選擇要搜尋暫存檔的資料夾! (底下的子資料夾將一併處理)"
 
-#: src/PartFileConvertDlg.cpp:198
+#: src/PartFileConvertDlg.cpp:206
 msgid ""
 "Do you want the source files of succesfully imported downloads be deleted?"
 msgstr "要刪除已成功匯入下載的來源檔嗎?"
 
-#: src/PartFileConvertDlg.cpp:199
+#: src/PartFileConvertDlg.cpp:207
 msgid "Remove sources?"
 msgstr "刪除來源?"
 
@@ -4512,7 +4522,7 @@ msgstr "ha暫存檔 %s (%s) 的種子檔案沒有內容"
 msgid "Error reading partfile's seeds file (%s - %s): %s"
 msgstr "讀取暫存檔的種子檔案 (%s - %s) 時出錯:%s"
 
-#: src/PartFile.cpp:1131 src/PartFile.cpp:1160
+#: src/PartFile.cpp:1132 src/PartFile.cpp:1161
 #, c-format
 msgid ""
 "Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |"
@@ -4523,37 +4533,37 @@ msgid_plural ""
 msgstr[0] ""
 "找到損壞 (%d) 的 %d 個暫存檔 %s - 檔案結果 hash 值 |%s| 檔案 hash 值 |%s|"
 
-#: src/PartFile.cpp:1175
+#: src/PartFile.cpp:1176
 #, c-format
 msgid "Found completed part (%i) in %s"
 msgstr "找到已完成的暫存檔 %i 在 %s"
 
-#: src/PartFile.cpp:1208
+#: src/PartFile.cpp:1209
 #, c-format
 msgid "Finished rehashing %s"
 msgstr "已重新計算完成 %s 的 hash 值"
 
-#: src/PartFile.cpp:2128
+#: src/PartFile.cpp:2129
 #, c-format
 msgid "Unexpected error while completing %s. File paused"
 msgstr "計算 %s 時發生意外的錯誤,暫停檔案處理"
 
-#: src/PartFile.cpp:2165
+#: src/PartFile.cpp:2166
 #, c-format
 msgid "Finished downloading: %s"
 msgstr "下載完成:%s"
 
-#: src/PartFile.cpp:2222
+#: src/PartFile.cpp:2223
 #, c-format
 msgid "Deleting file: %s"
 msgstr "正刪除檔案:%s "
 
-#: src/PartFile.cpp:2287
+#: src/PartFile.cpp:2292
 #, c-format
 msgid "WARNING: Unable to hash downloaded part - hashset incomplete for '%s'"
 msgstr "警告:無法計算已下載部份的 hash 值 - %s 的 hash 值組不完整"
 
-#: src/PartFile.cpp:2292
+#: src/PartFile.cpp:2297
 #, c-format
 msgid ""
 "ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should "
@@ -4561,7 +4571,7 @@ msgid ""
 msgstr ""
 "錯誤:無法計算已下載部分的 hash 值 - %s 的 hash 值組不完整,這個狀況不該發生"
 
-#: src/PartFile.cpp:2302 src/PartFile.cpp:2307
+#: src/PartFile.cpp:2307 src/PartFile.cpp:2312
 #, c-format
 msgid ""
 "EOF while hashing downloaded part %u with length %u (max %u) of partfile '%"
@@ -4570,223 +4580,223 @@ msgstr ""
 "計算下載部份 %u (長度 %u / 最大 %u) - 暫存檔 %s (長度 %u) 的 hash 值時出現檔"
 "案結束碼:%s"
 
-#: src/PartFile.cpp:2968
+#: src/PartFile.cpp:2973
 #, c-format
 msgid "WARNING: Not enough free disk-space! Pausing file: %s"
 msgstr "警告:磁碟可用空間不足!暫停檔案:%s "
 
-#: src/PartFile.cpp:3038
+#: src/PartFile.cpp:3043
 #, c-format
 msgid "Downloaded part %i is corrupt in file: %s"
 msgstr "已下載的部份 %i 已損壞 (檔案:%s)"
 
-#: src/PartFile.cpp:3090
+#: src/PartFile.cpp:3095
 #, c-format
 msgid "ICH: Recovered corrupted part %i for %s -> Saved bytes: %s"
 msgstr "ICH:已修復損壞的部份 %i (%s) -> 救回 %s"
 
-#: src/PartFile.cpp:3695
+#: src/PartFile.cpp:3700
 msgid "Allocating"
 msgstr "正在分配"
 
-#: src/PartFile.cpp:3711
+#: src/PartFile.cpp:3716
 msgid "Insufficient disk space"
 msgstr "磁碟空間不足"
 
-#: src/PartFile.cpp:3761 src/SearchListCtrl.cpp:1006
+#: src/PartFile.cpp:3766 src/SearchListCtrl.cpp:1006
 #: src/SharedFilePeersListCtrl.cpp:29 src/SourceListCtrl.cpp:29
 msgid "Downloaded"
 msgstr "已下載"
 
-#: src/PartFile.cpp:4003
+#: src/PartFile.cpp:4015
 #, c-format
 msgid "ERROR: Failed to open partfile '%s'"
 msgstr "錯誤:無法開啟暫存檔 %s"
 
-#: src/Preferences.cpp:630
+#: src/Preferences.cpp:631
 msgid "System default"
 msgstr "系統預設"
 
-#: src/Preferences.cpp:631
+#: src/Preferences.cpp:632
 msgid "Albanian"
 msgstr "阿爾巴尼亞語"
 
-#: src/Preferences.cpp:632
+#: src/Preferences.cpp:633
 msgid "Arabic"
 msgstr "阿拉伯語"
 
-#: src/Preferences.cpp:633
+#: src/Preferences.cpp:634
 msgid "Asturian"
 msgstr "奧地利語"
 
-#: src/Preferences.cpp:634
+#: src/Preferences.cpp:635
 msgid "Basque"
 msgstr "巴斯克語"
 
-#: src/Preferences.cpp:635
+#: src/Preferences.cpp:636
 msgid "Bulgarian"
 msgstr "保加利亞語"
 
-#: src/Preferences.cpp:636
+#: src/Preferences.cpp:637
 msgid "Catalan"
 msgstr "加泰隆尼亞語"
 
-#: src/Preferences.cpp:637
+#: src/Preferences.cpp:638
 msgid "Chinese (Simplified)"
 msgstr "簡體中文"
 
-#: src/Preferences.cpp:638
+#: src/Preferences.cpp:639
 msgid "Chinese (Traditional)"
 msgstr "正體中文"
 
-#: src/Preferences.cpp:639
+#: src/Preferences.cpp:640
 msgid "Croatian"
 msgstr "克羅埃西亞語"
 
-#: src/Preferences.cpp:640
+#: src/Preferences.cpp:641
 msgid "Czech"
 msgstr "捷克語"
 
-#: src/Preferences.cpp:641
+#: src/Preferences.cpp:642
 msgid "Danish"
 msgstr "丹麥語"
 
-#: src/Preferences.cpp:642
+#: src/Preferences.cpp:643
 msgid "Dutch"
 msgstr "荷蘭語"
 
-#: src/Preferences.cpp:643
+#: src/Preferences.cpp:644
 msgid "English (U.K.)"
 msgstr "英語 (英國)"
 
-#: src/Preferences.cpp:644
+#: src/Preferences.cpp:645
 msgid "Estonian"
 msgstr "愛沙尼亞語"
 
-#: src/Preferences.cpp:645
+#: src/Preferences.cpp:646
 msgid "Finnish"
 msgstr "芬蘭語"
 
-#: src/Preferences.cpp:646
+#: src/Preferences.cpp:647
 msgid "French"
 msgstr "法語"
 
-#: src/Preferences.cpp:647
+#: src/Preferences.cpp:648
 msgid "Galician"
 msgstr "加利西亞語"
 
-#: src/Preferences.cpp:648
+#: src/Preferences.cpp:649
 msgid "German"
 msgstr "德語"
 
-#: src/Preferences.cpp:649
+#: src/Preferences.cpp:650
 msgid "Greek"
 msgstr "希臘語"
 
-#: src/Preferences.cpp:650
+#: src/Preferences.cpp:651
 msgid "Hebrew"
 msgstr "希伯來語"
 
-#: src/Preferences.cpp:651
+#: src/Preferences.cpp:652
 msgid "Hungarian"
 msgstr "匈牙利語"
 
-#: src/Preferences.cpp:652
+#: src/Preferences.cpp:653
 msgid "Italian"
 msgstr "義大利語"
 
-#: src/Preferences.cpp:653
+#: src/Preferences.cpp:654
 msgid "Italian (Swiss)"
 msgstr "意大利語 (瑞士)"
 
-#: src/Preferences.cpp:654
+#: src/Preferences.cpp:655
 msgid "Japanese"
 msgstr "日語"
 
-#: src/Preferences.cpp:655
+#: src/Preferences.cpp:656
 msgid "Korean"
 msgstr "韓語"
 
-#: src/Preferences.cpp:656
+#: src/Preferences.cpp:657
 msgid "Lithuanian"
 msgstr "立陶宛語"
 
-#: src/Preferences.cpp:657
+#: src/Preferences.cpp:658
 msgid "Norwegian (Nynorsk)"
 msgstr "新挪威語"
 
-#: src/Preferences.cpp:658
+#: src/Preferences.cpp:659
 msgid "Polish"
 msgstr "波蘭語"
 
-#: src/Preferences.cpp:659
+#: src/Preferences.cpp:660
 msgid "Portuguese"
 msgstr "葡萄牙語"
 
-#: src/Preferences.cpp:660
+#: src/Preferences.cpp:661
 msgid "Portuguese (Brazilian)"
 msgstr "葡萄牙語 (巴西)"
 
-#: src/Preferences.cpp:661
+#: src/Preferences.cpp:662
 msgid "Russian"
 msgstr "俄語"
 
-#: src/Preferences.cpp:662
+#: src/Preferences.cpp:663
 msgid "Slovenian"
 msgstr "斯洛維尼亞語"
 
-#: src/Preferences.cpp:663
+#: src/Preferences.cpp:664
 msgid "Spanish"
 msgstr "西班牙語"
 
-#: src/Preferences.cpp:664
+#: src/Preferences.cpp:665
 msgid "Swedish"
 msgstr "瑞典語"
 
-#: src/Preferences.cpp:665
+#: src/Preferences.cpp:666
 msgid "Turkish"
 msgstr "土耳其語"
 
-#: src/Preferences.cpp:666
+#: src/Preferences.cpp:667
 msgid "Ukrainian"
 msgstr "烏克蘭語"
 
-#: src/Preferences.cpp:728
+#: src/Preferences.cpp:730
 msgid "Change Language"
 msgstr "變更語言"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "There are no translations installed for aMule"
 msgstr "沒有已安裝的 aMule 翻譯"
 
-#: src/Preferences.cpp:771
+#: src/Preferences.cpp:773
 msgid "No languages available"
 msgstr "沒有可用的語言"
 
-#: src/Preferences.cpp:902
+#: src/Preferences.cpp:904
 msgid "no options available"
 msgstr "沒有選項"
 
-#: src/Preferences.cpp:1584
+#: src/Preferences.cpp:1587
 msgid "Invalid category found, skipping"
 msgstr "找到無效的分類,略過"
 
-#: src/Preferences.cpp:1766
+#: src/Preferences.cpp:1769
 msgid ""
 "TCP port can't be higher than 65532 due to server UDP socket being TCP+3"
 msgstr "TCP 埠不可大於 65532,因爲伺服器 UDP 連接端點值爲 TCP 埠值+3"
 
-#: src/Preferences.cpp:1767
+#: src/Preferences.cpp:1770
 #, c-format
 msgid "Default port will be used (%d)"
 msgstr "使用預設通訊埠 (%d)"
 
-#: src/Preferences.cpp:1790
+#: src/Preferences.cpp:1793
 #, c-format
 msgid "Dropping non-existing shared directory: %s"
 msgstr "正在放棄不存在的分享目錄:%s "
 
-#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:771
+#: src/PrefsUnifiedDlg.cpp:177 src/Statistics.cpp:776
 msgid "Connection"
 msgstr "連線"
 
@@ -4794,7 +4804,7 @@ msgstr "連線"
 msgid "Directories"
 msgstr "目錄"
 
-#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:797
+#: src/PrefsUnifiedDlg.cpp:179 src/Statistics.cpp:802
 msgid "Servers"
 msgstr "伺服器"
 
@@ -4848,7 +4858,7 @@ msgstr ""
 "    %PARTFILE - 檔案的完整路徑\n"
 "    %PARTNAME - 只有檔案名稱"
 
-#: src/PrefsUnifiedDlg.cpp:289
+#: src/PrefsUnifiedDlg.cpp:290
 msgid ""
 "Do not change these setting unless you know\n"
 "what you are doing, otherwise you can easily\n"
@@ -4863,26 +4873,26 @@ msgstr ""
 "\n"
 "即使不變更這些設定,aMule 一樣可以正常運作。"
 
-#: src/PrefsUnifiedDlg.cpp:350
+#: src/PrefsUnifiedDlg.cpp:351
 #, c-format
 msgid "Failed to connect Cfg to widget with the ID %d and key %s"
 msgstr "無法以 ID %d、key %s 將 Cfg 與 widget 相連"
 
-#: src/PrefsUnifiedDlg.cpp:399
+#: src/PrefsUnifiedDlg.cpp:400
 #, c-format
 msgid "Failed to transfer data from Cfg to Widget with the ID %d and key %s"
 msgstr "無法以 ID %d、key %s 將資料 Cfg 與 widget 連線"
 
-#: src/PrefsUnifiedDlg.cpp:416
+#: src/PrefsUnifiedDlg.cpp:417
 msgid "The type of proxy you are connecting to"
 msgstr "正在連線的代理伺服器類型"
 
-#: src/PrefsUnifiedDlg.cpp:534
+#: src/PrefsUnifiedDlg.cpp:535
 #, c-format
 msgid "Failed to transfer data from Widget to Cfg with the ID %d and key %s"
 msgstr "無法以 ID %d、key %s 從 Cfg 傳輸資料到 Widget"
 
-#: src/PrefsUnifiedDlg.cpp:589
+#: src/PrefsUnifiedDlg.cpp:590
 msgid ""
 "aMule must be restarted to enable these changes:\n"
 "\n"
@@ -4890,27 +4900,32 @@ msgstr ""
 "請重新啟動 aMule,變更的設定才能生效:\n"
 "\n"
 
-#: src/PrefsUnifiedDlg.cpp:596
+#: src/PrefsUnifiedDlg.cpp:597
 msgid "- TCP port changed.\n"
 msgstr "- TCP 埠已變更。\n"
 
-#: src/PrefsUnifiedDlg.cpp:601
+#: src/PrefsUnifiedDlg.cpp:602
 msgid "- UDP port changed.\n"
 msgstr "- UDP 埠已變更。\n"
 
-#: src/PrefsUnifiedDlg.cpp:606
+#: src/PrefsUnifiedDlg.cpp:607
 msgid "- External connect port changed.\n"
 msgstr "- 已變更外部連線埠設定。\n"
 
-#: src/PrefsUnifiedDlg.cpp:610
+#: src/PrefsUnifiedDlg.cpp:611
 msgid "- External connect acceptance changed.\n"
 msgstr "- 已變更外部連線設定。\n"
 
-#: src/PrefsUnifiedDlg.cpp:614
+#: src/PrefsUnifiedDlg.cpp:615
 msgid "- External connect interface changed.\n"
 msgstr "- 已變更外部連線介面設定。\n"
 
-#: src/PrefsUnifiedDlg.cpp:623
+#: src/PrefsUnifiedDlg.cpp:619
+#, fuzzy
+msgid "- Protocol obfuscation support changed.\n"
+msgstr "模糊協定"
+
+#: src/PrefsUnifiedDlg.cpp:628
 msgid ""
 "Your Auto-update server list is empty.\n"
 "'Auto-update server list at startup' will be disabled."
@@ -4918,7 +4933,7 @@ msgstr ""
 "您的自動更新伺服器清單是空的。\n"
 "「啟動時自動更新伺服器清單」功能將被停用。"
 
-#: src/PrefsUnifiedDlg.cpp:630
+#: src/PrefsUnifiedDlg.cpp:635
 msgid ""
 "You have enabled external connections but have not specified a password.\n"
 "External connections cannot be enabled unless a valid password is specified."
@@ -4926,19 +4941,19 @@ msgstr ""
 "您已經設定啓用外部連線但還沒有輸入密碼,\n"
 "輸入有效密碼之後,外部連線才能開始使用。"
 
-#: src/PrefsUnifiedDlg.cpp:642
+#: src/PrefsUnifiedDlg.cpp:647
 msgid "- Language changed.\n"
 msgstr "- 語言已變更。\n"
 
-#: src/PrefsUnifiedDlg.cpp:647
+#: src/PrefsUnifiedDlg.cpp:652
 msgid "- Temp folder changed.\n"
 msgstr "- 暫存資料夾已變更。\n"
 
-#: src/PrefsUnifiedDlg.cpp:652
+#: src/PrefsUnifiedDlg.cpp:657
 msgid "- ED2K network enabled.\n"
 msgstr "- ED2K 網路已啟用。\n"
 
-#: src/PrefsUnifiedDlg.cpp:724
+#: src/PrefsUnifiedDlg.cpp:729
 msgid ""
 "Both eD2k and Kad network are disabled.\n"
 "You won't be able to connect until you enable at least one of them."
@@ -4946,7 +4961,7 @@ msgstr ""
 "eD2k 與 Kad 網路都已停用。\n"
 "請至少啟用一種,否則您將無法連線。"
 
-#: src/PrefsUnifiedDlg.cpp:728
+#: src/PrefsUnifiedDlg.cpp:733
 msgid ""
 "Kad will not start if your UDP port is disabled.\n"
 "Enable UDP port or disable Kad."
@@ -4954,7 +4969,7 @@ msgstr ""
 "如果您停用 UDP 埠,Kad 將無法啓動。\n"
 "請啟用 UDP 埠或停用 Kad。"
 
-#: src/PrefsUnifiedDlg.cpp:741
+#: src/PrefsUnifiedDlg.cpp:746
 msgid ""
 "\n"
 "You MUST restart aMule now.\n"
@@ -4964,7 +4979,7 @@ msgstr ""
 "您必須立即重新啟動 aMule,\n"
 "如果現在不重啟動,可能會發生不可預期的問題。\n"
 
-#: src/PrefsUnifiedDlg.cpp:841
+#: src/PrefsUnifiedDlg.cpp:846
 msgid ""
 "Your Auto-update servers list is in blank.\n"
 "Please fill in at least one URL to point to a valid server.met file.\n"
@@ -4974,41 +4989,41 @@ msgstr ""
 "請至少輸入一個能取得有效 server.met 檔案的網址。\n"
 "請點選旁邊的「清單」按鈕後輸入。"
 
-#: src/PrefsUnifiedDlg.cpp:980
+#: src/PrefsUnifiedDlg.cpp:985
 msgid "Temporary files"
 msgstr "暫存檔"
 
-#: src/PrefsUnifiedDlg.cpp:985
+#: src/PrefsUnifiedDlg.cpp:990
 msgid "Incoming files"
 msgstr "新進檔案"
 
-#: src/PrefsUnifiedDlg.cpp:990
+#: src/PrefsUnifiedDlg.cpp:995
 msgid "Online Signatures"
 msgstr "線上簽名識別"
 
-#: src/PrefsUnifiedDlg.cpp:1003
+#: src/PrefsUnifiedDlg.cpp:1008
 #, c-format
 msgid "Choose a folder for %s"
 msgstr "爲 %s 選擇資料夾"
 
-#: src/PrefsUnifiedDlg.cpp:1023
+#: src/PrefsUnifiedDlg.cpp:1028
 msgid "Browse for videoplayer"
 msgstr "瀏覽尋找影片播放器"
 
-#: src/PrefsUnifiedDlg.cpp:1027
+#: src/PrefsUnifiedDlg.cpp:1032
 msgid "Select browser"
 msgstr "設定瀏覽器"
 
-#: src/PrefsUnifiedDlg.cpp:1033
+#: src/PrefsUnifiedDlg.cpp:1038
 #, c-format
 msgid "Executable%s"
 msgstr "可執行%s"
 
-#: src/PrefsUnifiedDlg.cpp:1054
+#: src/PrefsUnifiedDlg.cpp:1059
 msgid "Edit server list"
 msgstr "編輯伺服器清單"
 
-#: src/PrefsUnifiedDlg.cpp:1055
+#: src/PrefsUnifiedDlg.cpp:1060
 msgid ""
 "Add here URL's to download server.met files.\n"
 "Only one url on each line."
@@ -5016,71 +5031,71 @@ msgstr ""
 "加入可下載 server.met 檔案的網址。\n"
 "每一行一個網址。"
 
-#: src/PrefsUnifiedDlg.cpp:1114 src/PrefsUnifiedDlg.cpp:1133
+#: src/PrefsUnifiedDlg.cpp:1119 src/PrefsUnifiedDlg.cpp:1138
 #, c-format
 msgid "Update delay: %d second"
 msgid_plural "Update delay: %d seconds"
 msgstr[0] "更新延遲時間:%d 秒"
 
-#: src/PrefsUnifiedDlg.cpp:1121
+#: src/PrefsUnifiedDlg.cpp:1126
 #, c-format
 msgid "Time for average graph: %d minute"
 msgid_plural "Time for average graph: %d minutes"
 msgstr[0] "平均值圖表顯示時間:%d 分鐘"
 
-#: src/PrefsUnifiedDlg.cpp:1127
+#: src/PrefsUnifiedDlg.cpp:1132
 #, c-format
 msgid "Connections Graph Scale: %d"
 msgstr "網路連線圖表比例:%d"
 
-#: src/PrefsUnifiedDlg.cpp:1139
+#: src/PrefsUnifiedDlg.cpp:1144
 #, c-format
 msgid "File Buffer Size: %d byte"
 msgid_plural "File Buffer Size: %d bytes"
 msgstr[0] "檔案緩衝區大小:%d B"
 
-#: src/PrefsUnifiedDlg.cpp:1145
+#: src/PrefsUnifiedDlg.cpp:1150
 #, c-format
 msgid "Upload Queue Size: %d client"
 msgid_plural "Upload Queue Size: %d clients"
 msgstr[0] "上傳等候區大小:%d "
 
-#: src/PrefsUnifiedDlg.cpp:1152
+#: src/PrefsUnifiedDlg.cpp:1157
 #, c-format
 msgid "Server connection refresh interval: %d minute"
 msgid_plural "Server connection refresh interval: %d minutes"
 msgstr[0] "伺服器連線更新間隔時間:%d 分鐘"
 
-#: src/PrefsUnifiedDlg.cpp:1154
+#: src/PrefsUnifiedDlg.cpp:1159
 msgid "Server connection refresh interval: Disabled"
 msgstr "伺服器連線更新間隔時間:已停用"
 
-#: src/PrefsUnifiedDlg.cpp:1199
+#: src/PrefsUnifiedDlg.cpp:1204
 msgid "disabled"
 msgstr "已停用"
 
-#: src/PrefsUnifiedDlg.cpp:1222
+#: src/PrefsUnifiedDlg.cpp:1227
 #, c-format
 msgid "Execute command on '%s' event"
 msgstr "發生 %s 事件時執行指令"
 
-#: src/PrefsUnifiedDlg.cpp:1225
+#: src/PrefsUnifiedDlg.cpp:1230
 msgid "Enable command execution on core"
 msgstr "啓用在主程式端執行指令"
 
-#: src/PrefsUnifiedDlg.cpp:1233
+#: src/PrefsUnifiedDlg.cpp:1238
 msgid "Core command:"
 msgstr "主程式端指令:"
 
-#: src/PrefsUnifiedDlg.cpp:1242
+#: src/PrefsUnifiedDlg.cpp:1247
 msgid "Enable command execution on GUI"
 msgstr "啓用在圖形界面端執行指令"
 
-#: src/PrefsUnifiedDlg.cpp:1250
+#: src/PrefsUnifiedDlg.cpp:1255
 msgid "GUI command:"
 msgstr "圖形界面端指令:"
 
-#: src/PrefsUnifiedDlg.cpp:1259
+#: src/PrefsUnifiedDlg.cpp:1264
 msgid "The following variables will be replaced:"
 msgstr ""
 "使用以下變數:\n"
@@ -5110,7 +5125,7 @@ msgstr "eD2k 網路尚未連線,無法使用 eD2k 搜尋"
 msgid "Unexpected error while attempting Kad search: "
 msgstr "試圖 Kad 搜尋時發生無法預料的錯誤:"
 
-#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:105
+#: src/SearchListCtrl.cpp:91 src/SharedFilesCtrl.cpp:106
 msgid "FileID"
 msgstr "檔案 ID"
 
@@ -5218,7 +5233,7 @@ msgstr "錯誤:連接端點於逾時查驗時失效"
 msgid "Connection attempt to %s (%s:%i) timed out."
 msgstr "連線到 %s (%s:%i) 時逾時。"
 
-#: src/ServerConnect.cpp:645
+#: src/ServerConnect.cpp:646
 msgid "Received late result of DNS lookup, discarding."
 msgstr "接收到過期的 DNS 查閱,放棄中。"
 
@@ -5245,71 +5260,71 @@ msgstr "無法開啟 server.met !"
 msgid "Server.met file corrupt, found invalid versiontag: 0x%x, size %i"
 msgstr "server.met 檔案損壞,發現無效的版本標記:0x%x, 大小 %i"
 
-#: src/ServerList.cpp:173
+#: src/ServerList.cpp:174
 #, c-format
 msgid "%i server in server.met found"
 msgid_plural "%i servers in server.met found"
 msgstr[0] "在 server.met 中找到 %i 個伺服器"
 
-#: src/ServerList.cpp:175
+#: src/ServerList.cpp:176
 #, c-format
 msgid "%d server added"
 msgid_plural "%d servers added"
 msgstr[0] "已加入 %d 個伺服器"
 
-#: src/ServerList.cpp:178
+#: src/ServerList.cpp:179
 msgid "Error: the file 'server.met' is corrupted: "
 msgstr "錯誤:  server.met 檔案已經損壞: "
 
-#: src/ServerList.cpp:182
+#: src/ServerList.cpp:183
 msgid "IO error while reading 'server.met': "
 msgstr "讀取 server.met 時發生 IO 錯誤:"
 
-#: src/ServerList.cpp:195
+#: src/ServerList.cpp:196
 #, c-format
 msgid "Server not added: [%s:%d] does not specify a valid port."
 msgstr "未加入伺服器:[%s:%d] 的通訊埠無效。"
 
-#: src/ServerList.cpp:213
+#: src/ServerList.cpp:214
 #, c-format
 msgid "Server not added: The IP of [%s:%d] is filtered or invalid."
 msgstr "未加入伺服器:[%s:%d] 已被過濾或無效。"
 
-#: src/ServerList.cpp:232
+#: src/ServerList.cpp:233
 #, c-format
 msgid "Server not added: Server with matching IP:Port [%s:%d] found in list."
 msgstr "未加入伺服器:%s:%d 已在伺服器清單中。"
 
-#: src/ServerList.cpp:250
+#: src/ServerList.cpp:251
 #, c-format
 msgid "Server added: Server at [%s:%d] using the name '%s'."
 msgstr "已加入伺服器:[%s:%d]  名稱 %s 。"
 
-#: src/ServerList.cpp:345
+#: src/ServerList.cpp:346
 msgid ""
 "You are connected to the server you are trying to delete. please disconnect "
 "first."
 msgstr "現在正連線到要刪除的伺服器。請先中斷連線。"
 
-#: src/ServerList.cpp:517
+#: src/ServerList.cpp:518
 #, c-format
 msgid "Failed to open '%s'"
 msgstr "無法開啟 %s"
 
-#: src/ServerList.cpp:685
+#: src/ServerList.cpp:686
 msgid "Failed to save server.met!"
 msgstr "無法儲存 server.met !"
 
-#: src/ServerList.cpp:832
+#: src/ServerList.cpp:833
 msgid "Invalid URL"
 msgstr "無效網址"
 
-#: src/ServerList.cpp:854
+#: src/ServerList.cpp:855
 #, c-format
 msgid "Finished downloading the server list from %s"
 msgstr "完成從 %s 下載伺服器清單"
 
-#: src/ServerList.cpp:869
+#: src/ServerList.cpp:871
 msgid ""
 "No server list address entry in 'addresses.dat' found. Please paste a valid "
 "server list address into this file in order to auto-update your server list"
@@ -5317,26 +5332,26 @@ msgstr ""
 "在 addresses.dat 中找不到伺服器清單檔位址。請在檔案中貼上有效的伺服器清單檔位"
 "址,以自動更新您的伺服器清單"
 
-#: src/ServerList.cpp:882
+#: src/ServerList.cpp:884
 #, c-format
 msgid "Start downloading server list from %s"
 msgstr "開始從 %s下載伺服器清單"
 
-#: src/ServerList.cpp:891
+#: src/ServerList.cpp:893
 #, c-format
 msgid "WARNING: invalid URL specified for auto-updating of servers: %s"
 msgstr "警告:自動更新伺服器的網址無效 - %s"
 
-#: src/ServerList.cpp:895
+#: src/ServerList.cpp:897
 msgid "No valid server.met auto-download url on addresses.dat"
 msgstr "addresses.dat 檔案中沒有有效的自動更新伺服器清單網址"
 
-#: src/ServerList.cpp:911
+#: src/ServerList.cpp:913
 #, c-format
 msgid "Failed to download the server list from %s"
 msgstr "無法從 %s 下載伺服器清單"
 
-#: src/ServerList.cpp:985
+#: src/ServerList.cpp:987
 msgid ""
 "Local server is filtered by the IPFilters, reconnecting to a different "
 "server!"
@@ -5372,7 +5387,7 @@ msgstr "靜態"
 
 #
 #: src/ServerListCtrl.cpp:96 src/SharedFilePeersListCtrl.cpp:34
-#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:954
+#: src/SourceListCtrl.cpp:33 src/Statistics.cpp:959
 msgid "Version"
 msgstr "版本"
 
@@ -5396,8 +5411,8 @@ msgstr "您確定要刪除靜態伺服器 %s"
 msgid "Servers (%i)"
 msgstr "伺服器 (%i)"
 
-#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:257
-#: src/ServerSocket.cpp:272 src/ServerWnd.cpp:178
+#: src/ServerListCtrl.cpp:396 src/ServerSocket.cpp:255
+#: src/ServerSocket.cpp:270 src/ServerWnd.cpp:178
 msgid "Server"
 msgstr "伺服器"
 
@@ -5453,81 +5468,81 @@ msgstr "您確定要刪除選取的伺服器嗎?"
 msgid "Are you sure that you wish to delete the selected servers?"
 msgstr "您確定要刪除選取的伺服器嗎?"
 
-#: src/ServerSocket.cpp:259
+#: src/ServerSocket.cpp:257
 #, c-format
 msgid "ERROR: %s (%s) - %s"
 msgstr "錯誤:%s (%s) - %s"
 
-#: src/ServerSocket.cpp:274
+#: src/ServerSocket.cpp:272
 #, c-format
 msgid "WARNING: %s (%s) - %s"
 msgstr "警告:%s (%s) - %s"
 
-#: src/ServerSocket.cpp:413
+#: src/ServerSocket.cpp:411
 #, c-format
 msgid "New clientid is %u"
 msgstr "新客戶端 ID:%u"
 
-#: src/ServerSocket.cpp:415
+#: src/ServerSocket.cpp:413
 msgid "WARNING: You have received Low-ID!"
 msgstr "警告:您現在是 Low-ID!"
 
-#: src/ServerSocket.cpp:416
+#: src/ServerSocket.cpp:414
 msgid "\tMost likely this is because you're behind a firewall or router."
 msgstr "\t可能是因爲受到防火牆或網路分享器影響。"
 
-#: src/ServerSocket.cpp:417
+#: src/ServerSocket.cpp:415
 msgid "\tFor more information, please refer to http://wiki.amule.org"
 msgstr "\t請參考 http://wiki.amule.org 的資訊"
 
-#: src/ServerSocket.cpp:474
+#: src/ServerSocket.cpp:471
 msgid "Unknown server info received! - too short"
 msgstr "收到不明伺服器資訊 ! - 長度過短"
 
-#: src/ServerSocket.cpp:535
+#: src/ServerSocket.cpp:532
 #, c-format
 msgid "Received %d new server"
 msgid_plural "Received %d new servers"
 msgstr[0] "收到 %d 個新伺服器"
 
-#: src/ServerSocket.cpp:538
+#: src/ServerSocket.cpp:535
 msgid "Saving of server-list completed."
 msgstr "伺服器清單儲存完畢。"
 
-#: src/ServerSocket.cpp:588
+#: src/ServerSocket.cpp:585
 msgid "Server rejected last command"
 msgstr "伺服器已拒絕上一個指令"
 
-#: src/ServerSocket.cpp:596 src/ServerSocket.cpp:598
+#: src/ServerSocket.cpp:593 src/ServerSocket.cpp:595
 #, c-format
 msgid "Bogus packet received from server: %s"
 msgstr "從伺服器收到偽裝封包:%s"
 
-#: src/ServerSocket.cpp:600
+#: src/ServerSocket.cpp:597
 #, c-format
 msgid "Unhandled error while processing packet from server: %s"
 msgstr "處理伺服器傳來的封包時發生無法處理的錯誤:%s "
 
-#: src/ServerSocket.cpp:639 src/ServerSocket.cpp:643
+#: src/ServerSocket.cpp:636 src/ServerSocket.cpp:640
 #, c-format
 msgid "Cannot create DNS solving thread for connecting to %s"
 msgstr "無法送出 DNS 解析執行緒以連線到 %s"
 
-#: src/ServerSocket.cpp:725
+#: src/ServerSocket.cpp:722
 #, c-format
 msgid "Server IP %s (%s) is filtered.  Not connecting."
 msgstr "伺服器 IP %s (%s) 已被過濾。未連線。"
 
-#: src/ServerSocket.cpp:735
+#: src/ServerSocket.cpp:732
 msgid "using protocol obfuscation."
 msgstr ",使用模糊協定。"
 
-#: src/ServerSocket.cpp:744
+#: src/ServerSocket.cpp:741
 #, c-format
 msgid "Connecting to %s (%s - %s:%i) %s"
 msgstr "正在連線到 %s (%s - %s:%i) %s"
 
-#: src/ServerSocket.cpp:757
+#: src/ServerSocket.cpp:754
 #, c-format
 msgid "Could not solve dns for server %s: Unable to connect!"
 msgstr "無法解析伺服器 %s 的 DNS 資訊:無法連線!"
@@ -5703,84 +5718,89 @@ msgstr "本地檔案名稱"
 msgid "Shares File List"
 msgstr "分享檔案清單"
 
-#: src/SharedFilesCtrl.cpp:106
+#: src/SharedFilesCtrl.cpp:107
 msgid "Requests"
 msgstr "要求"
 
-#: src/SharedFilesCtrl.cpp:107
+#: src/SharedFilesCtrl.cpp:108
 msgid "Accepted Requests"
 msgstr "已接受要求"
 
-#: src/SharedFilesCtrl.cpp:108
+#: src/SharedFilesCtrl.cpp:109
 msgid "Transferred Data"
 msgstr "已傳輸資料"
 
-#: src/SharedFilesCtrl.cpp:109
+#: src/SharedFilesCtrl.cpp:110
 msgid "Share Ratio"
 msgstr "分享率"
 
-#: src/SharedFilesCtrl.cpp:110
+#: src/SharedFilesCtrl.cpp:111
 msgid "Obtained Parts"
 msgstr "已獲得部分"
 
-#: src/SharedFilesCtrl.cpp:111
+#: src/SharedFilesCtrl.cpp:112
 msgid "Complete Sources"
 msgstr "完整來源"
 
-#: src/SharedFilesCtrl.cpp:112
+#: src/SharedFilesCtrl.cpp:113
 msgid "Directory Path"
 msgstr "所在目錄"
 
-#: src/SharedFilesCtrl.cpp:149
+#: src/SharedFilesCtrl.cpp:150
 msgid "Add Comment/Rating"
 msgstr "加入註解/評價"
 
-#: src/SharedFilesCtrl.cpp:151
+#: src/SharedFilesCtrl.cpp:152
 msgid "Edit Comment/Rating"
 msgstr "編輯註解/評價"
 
-#: src/SharedFilesCtrl.cpp:155
+#: src/SharedFilesCtrl.cpp:156
 msgid "Rename"
 msgstr "重新命名"
 
-#: src/SharedFilesCtrl.cpp:159
+#: src/SharedFilesCtrl.cpp:160
 msgid "Add files in collection to transfer list"
 msgstr "加入收藏中的檔案到傳輸清單"
 
-#: src/SharedFilesCtrl.cpp:162
+#: src/SharedFilesCtrl.cpp:163
 msgid "Copy magnet &URI to clipboard"
 msgstr "複製 magnet 網址到剪貼簿(&U)"
 
-#: src/SharedFilesCtrl.cpp:164
+#: src/SharedFilesCtrl.cpp:165
 msgid "Copy eD2k link to clipboard (&Source)"
 msgstr "複製 eD2k 連結到剪貼簿 (來源) (&S)"
 
-#: src/SharedFilesCtrl.cpp:165
+#: src/SharedFilesCtrl.cpp:166
 msgid "Copy eD2k link to clipboard (Source) (&With Crypt options)"
 msgstr "複製 eD2k 連結到剪貼簿 (來源,加密) (&W)"
 
-#: src/SharedFilesCtrl.cpp:166
+#: src/SharedFilesCtrl.cpp:167
 msgid "Copy eD2k link to clipboard (&Hostname)"
 msgstr "複製 eD2k 連結到剪貼簿 (主機名稱) (&H)"
 
-#: src/SharedFilesCtrl.cpp:167
+#: src/SharedFilesCtrl.cpp:168
 msgid "Copy eD2k link to clipboard (Hostname) (With &Crypt options)"
 msgstr "複製 eD2k 連結到剪貼簿 (主機名稱,加密) (&C)"
 
-#: src/SharedFilesCtrl.cpp:168
+#: src/SharedFilesCtrl.cpp:169
 msgid "Copy eD2k link to clipboard (&AICH info)"
 msgstr "複製 eD2k 連結到剪貼簿 (AICH 資訊) (&A)"
 
-#: src/SharedFilesCtrl.cpp:315
+#: src/SharedFilesCtrl.cpp:170
+#, fuzzy
+msgid "Copy eD2k link to clipboard (&AICH info + Source)"
+msgstr "複製 eD2k 連結到剪貼簿 (AICH 資訊) (&A)"
+
+#: src/SharedFilesCtrl.cpp:318
 msgid "You need a HighID to create a valid sourcelink"
 msgstr "您需要一個 HighID 才能建立有效來源連結"
 
-#: src/SharedFilesCtrl.cpp:461
+#: src/SharedFilesCtrl.cpp:465
 #, c-format
 msgid "Shared Files (%i)"
 msgstr "分享檔案 (%i)"
 
-#: src/SharedFilesCtrl.cpp:596
+#: src/SharedFilesCtrl.cpp:600
 msgid "[PartFile]"
 msgstr "[--暫存檔--]"
 
@@ -5788,235 +5808,235 @@ msgstr "[--暫存檔--]"
 msgid "Remote File Name"
 msgstr "遠端檔案名稱"
 
-#: src/Statistics.cpp:732
+#: src/Statistics.cpp:737
 #, c-format
 msgid "Uploaded Data (Session (Total)): %s"
 msgstr "本次上傳量/總計上傳量:%s"
 
-#: src/Statistics.cpp:734 src/Statistics.cpp:755
+#: src/Statistics.cpp:739 src/Statistics.cpp:760
 #, c-format
 msgid "Total Overhead (Packets): %s"
 msgstr "額外支出傳輸量/封包: %s"
 
-#: src/Statistics.cpp:735 src/Statistics.cpp:756
+#: src/Statistics.cpp:740 src/Statistics.cpp:761
 #, c-format
 msgid "File Request Overhead (Packets): %s"
 msgstr "  檔案要求支出傳輸量/封包:%s"
 
-#: src/Statistics.cpp:737 src/Statistics.cpp:758
+#: src/Statistics.cpp:742 src/Statistics.cpp:763
 #, c-format
 msgid "Source Exchange Overhead (Packets): %s"
 msgstr "  來源交換支出傳輸量/封包: %s"
 
-#: src/Statistics.cpp:739 src/Statistics.cpp:760
+#: src/Statistics.cpp:744 src/Statistics.cpp:765
 #, c-format
 msgid "Server Overhead (Packets): %s"
 msgstr "  伺服器支出傳輸量/封包: %s"
 
-#: src/Statistics.cpp:741 src/Statistics.cpp:762
+#: src/Statistics.cpp:746 src/Statistics.cpp:767
 #, c-format
 msgid "Kad Overhead (Packets): %s"
 msgstr "  Kad 網路支出傳輸量/封包: %s"
 
-#: src/Statistics.cpp:743 src/Statistics.cpp:764
+#: src/Statistics.cpp:748 src/Statistics.cpp:769
 #, c-format
 msgid "Crypt overhead (UDP): %s"
 msgstr "  加密支出傳輸量/封包: %s"
 
-#: src/Statistics.cpp:745
+#: src/Statistics.cpp:750
 #, c-format
 msgid "Active Uploads: %s"
 msgstr "目前上傳數:%s"
 
-#: src/Statistics.cpp:746
+#: src/Statistics.cpp:751
 #, c-format
 msgid "Waiting Uploads: %s"
 msgstr "等候中:%s"
 
-#: src/Statistics.cpp:747
+#: src/Statistics.cpp:752
 #, c-format
 msgid "Total successful upload sessions: %s"
 msgstr "上傳成功總次數:%s"
 
-#: src/Statistics.cpp:748
+#: src/Statistics.cpp:753
 #, c-format
 msgid "Total failed upload sessions: %s"
 msgstr "上傳失敗總次數:%s"
 
-#: src/Statistics.cpp:750
+#: src/Statistics.cpp:755
 #, c-format
 msgid "Average upload time: %s"
 msgstr "平均上傳時間:%s"
 
-#: src/Statistics.cpp:753
+#: src/Statistics.cpp:758
 #, c-format
 msgid "Downloaded Data (Session (Total)): %s"
 msgstr "本次下載量/總計下載量:%s"
 
-#: src/Statistics.cpp:766
+#: src/Statistics.cpp:771
 #, c-format
 msgid "Found Sources: %s"
 msgstr "找到的來源數:%s"
 
-#: src/Statistics.cpp:767
+#: src/Statistics.cpp:772
 #, c-format
 msgid "Active Downloads (chunks): %s"
 msgstr "目前下載中區塊數:%s"
 
-#: src/Statistics.cpp:769
+#: src/Statistics.cpp:774
 #, c-format
 msgid "Session UL:DL Ratio (Total): %s"
 msgstr "本次上傳下載比率 (總計):%s"
 
-#: src/Statistics.cpp:772
+#: src/Statistics.cpp:777
 #, c-format
 msgid "Average download rate (Session): %s"
 msgstr "本次平均下載速度:%s"
 
-#: src/Statistics.cpp:773
+#: src/Statistics.cpp:778
 #, c-format
 msgid "Average upload rate (Session): %s"
 msgstr "本次平均上傳速度:%s"
 
-#: src/Statistics.cpp:774
+#: src/Statistics.cpp:779
 #, c-format
 msgid "Max download rate (Session): %s"
 msgstr "本次最大下載速度:%s"
 
-#: src/Statistics.cpp:775
+#: src/Statistics.cpp:780
 #, c-format
 msgid "Max upload rate (Session): %s"
 msgstr "本次最大上傳速度:%s"
 
-#: src/Statistics.cpp:776
+#: src/Statistics.cpp:781
 #, c-format
 msgid "Reconnects: %i"
 msgstr "重新連線次數:%i"
 
-#: src/Statistics.cpp:777
+#: src/Statistics.cpp:782
 #, c-format
 msgid "Time Since First Transfer: %s"
 msgstr "首次傳輸至今時間:%s"
 
-#: src/Statistics.cpp:778
+#: src/Statistics.cpp:783
 #, c-format
 msgid "Connected To Server Since: %s"
 msgstr "與伺服器連線時間:%s"
 
-#: src/Statistics.cpp:779
+#: src/Statistics.cpp:784
 #, c-format
 msgid "Active Connections (estimate): %i"
 msgstr "目前連線數 (估計值):%i"
 
-#: src/Statistics.cpp:780
+#: src/Statistics.cpp:785
 #, c-format
 msgid "Max Connection Limit Reached: %s"
 msgstr "達到最大連線量次數:%s"
 
-#: src/Statistics.cpp:781
+#: src/Statistics.cpp:786
 #, c-format
 msgid "Average Connections (estimate): %g"
 msgstr "平均連線數 (估計值):%g"
 
-#: src/Statistics.cpp:783
+#: src/Statistics.cpp:788
 #, c-format
 msgid "Peak Connections (estimate): %i"
 msgstr "最高連線數 (估計值):%i"
 
-#: src/Statistics.cpp:785
+#: src/Statistics.cpp:790
 msgid "Clients"
 msgstr "客戶端"
 
-#: src/Statistics.cpp:786
+#: src/Statistics.cpp:791
 #, c-format
 msgid "Unknown: %s"
 msgstr "不明:%s"
 
-#: src/Statistics.cpp:792
+#: src/Statistics.cpp:797
 #, c-format
 msgid "Filtered: %s"
 msgstr "已過濾:%s"
 
-#: src/Statistics.cpp:793
+#: src/Statistics.cpp:798
 #, c-format
 msgid "Banned: %s"
 msgstr "已封鎖:%s"
 
-#: src/Statistics.cpp:794
+#: src/Statistics.cpp:799
 #, c-format
 msgid "Total: %i Known: %i"
 msgstr "總計:%i  -  已知:%i"
 
-#: src/Statistics.cpp:798
+#: src/Statistics.cpp:803
 #, c-format
 msgid "Working Servers: %i"
 msgstr "有效:%i"
 
-#: src/Statistics.cpp:799
+#: src/Statistics.cpp:804
 #, c-format
 msgid "Failed Servers: %i"
 msgstr "無效:%i"
 
-#: src/Statistics.cpp:800
+#: src/Statistics.cpp:805
 #, c-format
 msgid "Total: %s"
 msgstr "總計:%s"
 
-#: src/Statistics.cpp:801
+#: src/Statistics.cpp:806
 #, c-format
 msgid "Deleted Servers: %s"
 msgstr "已刪除:%s"
 
-#: src/Statistics.cpp:802
+#: src/Statistics.cpp:807
 #, c-format
 msgid "Filtered Servers: %s"
 msgstr "已過濾:%s"
 
-#: src/Statistics.cpp:803
+#: src/Statistics.cpp:808
 #, c-format
 msgid "Users on Working Servers: %llu"
 msgstr "有效使用者數:%llu"
 
-#: src/Statistics.cpp:804
+#: src/Statistics.cpp:809
 #, c-format
 msgid "Files on Working Servers: %llu"
 msgstr "有效檔案數:%llu"
 
-#: src/Statistics.cpp:805
+#: src/Statistics.cpp:810
 #, c-format
 msgid "Total Users: %llu"
 msgstr "使用者總數:%llu"
 
-#: src/Statistics.cpp:806
+#: src/Statistics.cpp:811
 #, c-format
 msgid "Total Files: %llu"
 msgstr "檔案總數:%llu"
 
-#: src/Statistics.cpp:807
+#: src/Statistics.cpp:812
 #, c-format
 msgid "Server Occupation: %.2f%%"
 msgstr "伺服器使用率:%.2f%%"
 
-#: src/Statistics.cpp:811
+#: src/Statistics.cpp:816
 #, c-format
 msgid "Number of Shared Files: %s"
 msgstr "檔案數:%s"
 
-#: src/Statistics.cpp:812
+#: src/Statistics.cpp:817
 #, c-format
 msgid "Total size of Shared Files: %s"
 msgstr "檔案總容量:%s"
 
-#: src/Statistics.cpp:814
+#: src/Statistics.cpp:819
 #, c-format
 msgid "Average file size: %s"
 msgstr "平均檔案大小:%s"
 
-#: src/Statistics.cpp:955
+#: src/Statistics.cpp:960
 msgid "Operating System"
 msgstr "作業系統"
 
-#: src/Statistics.cpp:980
+#: src/Statistics.cpp:985
 msgid "Not Received"
 msgstr "未收到"
 
@@ -6072,7 +6092,7 @@ msgstr "不是有效的數字\n"
 msgid "Not a valid hash (length should be exactly 32 chars)\n"
 msgstr "不是有效的 hash 值 (必須爲 32 碼)\n"
 
-#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:373
+#: src/TextClient.cpp:643 src/webserver/src/WebServer.cpp:395
 msgid "Request failed with an unknown error."
 msgstr "要求失敗,不明的錯誤。"
 
@@ -6126,13 +6146,13 @@ msgstr "已連線到 %s %s %s"
 msgid "Now connecting"
 msgstr "正在連線"
 
-#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1056
-#: src/utils/wxCas/src/wxcasframe.cpp:1078
+#: src/TextClient.cpp:719 src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1073
 msgid "firewalled"
 msgstr "防火牆內"
 
-#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1054
-#: src/utils/wxCas/src/wxcasframe.cpp:1076
+#: src/TextClient.cpp:721 src/utils/wxCas/src/wxcasframe.cpp:1049
+#: src/utils/wxCas/src/wxcasframe.cpp:1071
 msgid "ok"
 msgstr "ok"
 
@@ -6555,21 +6575,21 @@ msgstr ""
 "這是一個已停用的指令,將來可能被刪除,\n"
 "請改用「 %s 」。\n"
 
-#: src/TextClient.h:60
+#: src/TextClient.h:59
 msgid "aMule text client"
 msgstr "aMule 文字模式客戶端"
 
-#: src/ThreadTasks.cpp:363
+#: src/ThreadTasks.cpp:374
 #, c-format
 msgid "Converting old AICH hashsets in '%s' to 64b in '%s'."
 msgstr "將 %s 的舊 AICH hash 值組轉換為 %s 的 64b 格式。"
 
-#: src/ThreadTasks.cpp:442
+#: src/ThreadTasks.cpp:453
 #, c-format
 msgid "WARNING: The filename '%s' is invalid and has been renamed to '%s'."
 msgstr "警告:檔名 %s 無效,已重新命名爲 %s 。"
 
-#: src/ThreadTasks.cpp:454
+#: src/ThreadTasks.cpp:465
 #, c-format
 msgid "WARNING: The file '%s' already exists, new file renamed to '%s'."
 msgstr "警告:檔案 %s 已經存在,新檔案重新命名爲 %s 。"
@@ -6639,7 +6659,7 @@ msgstr "無法執行指令「 %s 」(事件:%s )。"
 msgid "Download completed"
 msgstr "下載完畢"
 
-#: src/UserEvents.h:63 src/UserEvents.h:103
+#: src/UserEvents.h:63 src/UserEvents.h:97
 msgid "The full path to the file."
 msgstr "檔案的完整路徑。"
 
@@ -6659,66 +6679,66 @@ msgstr "檔案大小 (B)。"
 msgid "Cumulative download activity time."
 msgstr "累計實際下載時間。"
 
-#: src/UserEvents.h:84
+#: src/UserEvents.h:82
 msgid "New chat session started"
 msgstr "已開始新的交談"
 
-#: src/UserEvents.h:87
+#: src/UserEvents.h:85
 msgid "Message sender."
 msgstr "訊息傳送者。"
 
-#: src/UserEvents.h:92
+#: src/UserEvents.h:88
 msgid "Out of space"
 msgstr "空間不足"
 
-#: src/UserEvents.h:95
+#: src/UserEvents.h:91
 msgid "Disk partition."
 msgstr "磁碟分割區。"
 
-#: src/UserEvents.h:100
+#: src/UserEvents.h:94
 msgid "Error on completion"
 msgstr "有錯誤發生於完成"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:74
+#: src/utils/aLinkCreator/src/alcc.cpp:67
 #, c-format
 msgid "Processing file number %u: %s"
 msgstr "a正在處理檔案編號 %u:%s "
 
-#: src/utils/aLinkCreator/src/alcc.cpp:78
+#: src/utils/aLinkCreator/src/alcc.cpp:71
 msgid "You have asked for part hashes (Only used for files > 9.5 MB)"
 msgstr "您已要求暫存檔 hash 值 (只用於超過 9.5 MB 的檔案)"
 
-#: src/utils/aLinkCreator/src/alcc.cpp:95
+#: src/utils/aLinkCreator/src/alcc.cpp:88
 #, c-format
 msgid "%s ---> Non existant file !\n"
 msgstr "%s ---> 檔案不存在!\n"
 
-#: src/utils/aLinkCreator/src/alc.cpp:55
+#: src/utils/aLinkCreator/src/alc.cpp:46
 msgid "aLinkCreator, the aMule eD2k link creator"
 msgstr "aLinkCreator, 用以建立 aMule eD2k 連結"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:88
-#: src/utils/wxCas/src/wxcasframe.cpp:96
+#: src/utils/aLinkCreator/src/alcframe.cpp:85
+#: src/utils/wxCas/src/wxcasframe.cpp:91
 msgid "Welcome!"
 msgstr "歡迎!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:108
+#: src/utils/aLinkCreator/src/alcframe.cpp:105
 msgid "Input parameters"
 msgstr "輸入參數"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:119
+#: src/utils/aLinkCreator/src/alcframe.cpp:116
 msgid "File to Hash"
 msgstr "須計算 hash 值的檔案"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:123
+#: src/utils/aLinkCreator/src/alcframe.cpp:120
 msgid "Add Optional URLs for this file"
 msgstr "加入附加網址到這個檔案"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:131
+#: src/utils/aLinkCreator/src/alcframe.cpp:128
 msgid "Enter here the file you want to compute the eD2k link"
 msgstr "輸入您想要求得 eD2k 連結的檔案"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:137
+#: src/utils/aLinkCreator/src/alcframe.cpp:134
 msgid ""
 "Enter here the URL you want to add to the eD2k link: Add / at the end to let "
 "aLinkCreator append the current file name"
@@ -6726,95 +6746,95 @@ msgstr ""
 "輸入您想要加入 eD2k 連結的網址:請在最後加上 '/' 以利 aLinkCreator 程式幫您輸"
 "入檔名"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:153
+#: src/utils/aLinkCreator/src/alcframe.cpp:150
 msgid "Remove"
 msgstr "移除"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:164
+#: src/utils/aLinkCreator/src/alcframe.cpp:161
 msgid "Create link with part-hashes"
 msgstr "以暫存檔 hash 值建立連結"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:170
+#: src/utils/aLinkCreator/src/alcframe.cpp:167
 msgid ""
 "Help to spread new and rare files faster, at the cost of an increased link "
 "size"
 msgstr "協助新檔案和稀有檔案更快散播,只是會增加連結長度"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:196
+#: src/utils/aLinkCreator/src/alcframe.cpp:193
 msgid "MD4 File Hash"
 msgstr "MD4 檔案 hash 值"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:208
+#: src/utils/aLinkCreator/src/alcframe.cpp:205
 msgid "eD2k File Hash"
 msgstr "eD2k 檔案 hash 值"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:219
+#: src/utils/aLinkCreator/src/alcframe.cpp:216
 msgid "eD2k link"
 msgstr "eD2k 連結"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:234
+#: src/utils/aLinkCreator/src/alcframe.cpp:231
 msgid "Save"
 msgstr "儲存"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:236
+#: src/utils/aLinkCreator/src/alcframe.cpp:233
 msgid "Copy to clipboard"
 msgstr "複製到剪貼簿"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:263
+#: src/utils/aLinkCreator/src/alcframe.cpp:260
 msgid "Open"
 msgstr "開啟"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:264
+#: src/utils/aLinkCreator/src/alcframe.cpp:261
 msgid "Open a file to compute its eD2k link"
 msgstr "開啟要求得 eD2k 連結的檔案"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:267
+#: src/utils/aLinkCreator/src/alcframe.cpp:264
 msgid "Copy computed eD2k link to clipboard"
 msgstr "複製 eD2k 連結到剪貼簿"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:269
+#: src/utils/aLinkCreator/src/alcframe.cpp:266
 msgid "Save as"
 msgstr "另存為"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:270
+#: src/utils/aLinkCreator/src/alcframe.cpp:267
 msgid "Save computed eD2k link to file"
 msgstr "儲存 eD2k 連結到檔案"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:275
-#: src/utils/aLinkCreator/src/alcframe.cpp:475
+#: src/utils/aLinkCreator/src/alcframe.cpp:272
+#: src/utils/aLinkCreator/src/alcframe.cpp:472
 msgid "About aLinkCreator"
 msgstr "關於 aLinkCreator"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:372
+#: src/utils/aLinkCreator/src/alcframe.cpp:369
 msgid "Select the file you want to compute the eD2k link"
 msgstr "選取要求得 eD2k 連結的檔案"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:406
+#: src/utils/aLinkCreator/src/alcframe.cpp:403
 msgid "Can't open the clipboard"
 msgstr "無法開啟剪貼簿"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:415
+#: src/utils/aLinkCreator/src/alcframe.cpp:412
 msgid "Nothing to copy for now !"
 msgstr "沒有東西可複製!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:442
+#: src/utils/aLinkCreator/src/alcframe.cpp:439
 msgid "Select the file to your computed eD2k link"
 msgstr "選取已求得 eD2k 連結的檔案"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:453
+#: src/utils/aLinkCreator/src/alcframe.cpp:450
 msgid "Unable to open "
 msgstr "無法開啟"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:460
-#: src/utils/aLinkCreator/src/alcframe.cpp:589
+#: src/utils/aLinkCreator/src/alcframe.cpp:457
+#: src/utils/aLinkCreator/src/alcframe.cpp:582
 msgid "Please, enter a non empty file name"
 msgstr "請輸入一個非空白的檔名"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:465
+#: src/utils/aLinkCreator/src/alcframe.cpp:462
 msgid "Nothing to save for now !"
 msgstr "沒有東西可儲存!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:474
+#: src/utils/aLinkCreator/src/alcframe.cpp:471
 msgid ""
 "aLinkCreator, the aMule eD2k link creator\n"
 "\n"
@@ -6834,158 +6854,162 @@ msgstr ""
 "\n"
 "依據 GPL 授權散佈"
 
+#: src/utils/aLinkCreator/src/alcframe.cpp:512
+#: src/utils/aLinkCreator/src/alcframe.cpp:513
 #: src/utils/aLinkCreator/src/alcframe.cpp:519
-#: src/utils/aLinkCreator/src/alcframe.cpp:520
-#: src/utils/aLinkCreator/src/alcframe.cpp:526
 msgid "Hashing..."
 msgstr "正在計算 hash 值..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "aLinkCreator is working for you"
 msgstr "aLinkCreator 正為您運作中"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:524
+#: src/utils/aLinkCreator/src/alcframe.cpp:517
 msgid "Computing MD4 Hash..."
 msgstr "計算 MD4 hash 值中..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:539
+#: src/utils/aLinkCreator/src/alcframe.cpp:532
 msgid "Computing eD2k Hashes..."
 msgstr "計算 eD2k hash 值中..."
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:574
-#: src/utils/aLinkCreator/src/alcframe.cpp:575
-#: src/utils/aLinkCreator/src/md4.cpp:359
+#: src/utils/aLinkCreator/src/alcframe.cpp:567
+#: src/utils/aLinkCreator/src/alcframe.cpp:568
+#: src/utils/aLinkCreator/src/md4.cpp:351
 msgid "Cancelled !"
 msgstr "已取消!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:583
+#: src/utils/aLinkCreator/src/alcframe.cpp:576
 #, c-format
 msgid "Done in %.2f s"
 msgstr "在 %.2f 秒內完成"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:622
+#: src/utils/aLinkCreator/src/alcframe.cpp:614
 msgid "You have already added this URL !"
 msgstr "您已經加入這個網址了!"
 
-#: src/utils/aLinkCreator/src/alcframe.cpp:627
+#: src/utils/aLinkCreator/src/alcframe.cpp:619
 msgid "Please, enter a non empty URL"
 msgstr "請輸入一個非空白的網址"
 
-#: src/utils/aLinkCreator/src/ed2khash.cpp:82
+#: src/utils/aLinkCreator/src/ed2khash.cpp:73
 #, c-format
 msgid "Unable to open %s"
 msgstr "無法開啟 %s"
 
-#: src/utils/wxCas/src/linuxmon.cpp:86
+#: src/utils/aLinkCreator/src/ed2khash.cpp:162
+msgid "Out of memory while calculating ed2k hash!"
+msgstr ""
+
+#: src/utils/wxCas/src/linuxmon.cpp:77
 #, c-format
 msgid "%i day(s) %i hour(s) %i min %i s"
 msgstr "%i 天 %i 小時 %i 分鐘 %i 秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:234
+#: src/utils/wxCas/src/onlinesig.cpp:225
 #, c-format
 msgid "%02uD %02uh %02umin %02us"
 msgstr "%02u天 %02u小時 %02u分鐘 %02u秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:236
+#: src/utils/wxCas/src/onlinesig.cpp:227
 #, c-format
 msgid "%02uh %02umin %02us"
 msgstr "%02u小時 %02u分鐘 %02u秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:238
+#: src/utils/wxCas/src/onlinesig.cpp:229
 #, c-format
 msgid "%02umin %02us"
 msgstr "%02u分鐘 %02u秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:240
+#: src/utils/wxCas/src/onlinesig.cpp:231
 #, c-format
 msgid "%02us"
 msgstr "%02u秒"
 
-#: src/utils/wxCas/src/onlinesig.cpp:339
+#: src/utils/wxCas/src/onlinesig.cpp:330
 #, c-format
 msgid "%.0f B"
 msgstr "%.0f B"
 
-#: src/utils/wxCas/src/onlinesig.cpp:342
+#: src/utils/wxCas/src/onlinesig.cpp:333
 #, c-format
 msgid "%.2f KB"
 msgstr "%.2f KB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:345
+#: src/utils/wxCas/src/onlinesig.cpp:336
 #, c-format
 msgid "%.2f MB"
 msgstr "%.2f MB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:348
+#: src/utils/wxCas/src/onlinesig.cpp:339
 #, c-format
 msgid "%.2f GB"
 msgstr "%.2f GB"
 
-#: src/utils/wxCas/src/onlinesig.cpp:351
+#: src/utils/wxCas/src/onlinesig.cpp:342
 #, c-format
 msgid "%.2f TB"
 msgstr "%.2f TB"
 
-#: src/utils/wxCas/src/wxcas.cpp:83
+#: src/utils/wxCas/src/wxcas.cpp:74
 msgid "wxCas, aMule Online Statistics"
 msgstr "wxCas, aMule 線上統計"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:120
+#: src/utils/wxCas/src/wxcasframe.cpp:115
 msgid "Maximum DL rate since wxCas is running"
 msgstr "本次 wxCas 執行後最大下載速度"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:124
+#: src/utils/wxCas/src/wxcasframe.cpp:119
 msgid "Absolute Maximum DL rate during wxCas previous runs"
 msgstr "過去執行 wxCas 時最大下載速度"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:147
+#: src/utils/wxCas/src/wxcasframe.cpp:142
 msgid "System"
 msgstr "系統"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:211
-#: src/utils/wxCas/src/wxcasframe.cpp:340
+#: src/utils/wxCas/src/wxcasframe.cpp:206
+#: src/utils/wxCas/src/wxcasframe.cpp:335
 msgid "Stop Auto Refresh"
 msgstr "停止自動更新顯示"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:216
+#: src/utils/wxCas/src/wxcasframe.cpp:211
 msgid "Save Online Statistics image"
 msgstr "儲存線上統計圖表"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:219
+#: src/utils/wxCas/src/wxcasframe.cpp:214
 msgid "Print Online Statistics image"
 msgstr "列印線上統計圖表"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:217
 msgid "Preferences setting"
 msgstr "偏好設定"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:227
-#: src/utils/wxCas/src/wxcasframe.cpp:415
+#: src/utils/wxCas/src/wxcasframe.cpp:222
+#: src/utils/wxCas/src/wxcasframe.cpp:410
 msgid "About wxCas"
 msgstr "關於 wxCas"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:331
+#: src/utils/wxCas/src/wxcasframe.cpp:326
 msgid "Start Auto Refresh"
 msgstr "開始自動更新顯示"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:333
+#: src/utils/wxCas/src/wxcasframe.cpp:328
 msgid "Auto Refresh stopped"
 msgstr "自動更新顯示已停止"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:342
+#: src/utils/wxCas/src/wxcasframe.cpp:337
 msgid "Auto Refresh started"
 msgstr "已開始自動更新顯示"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:353
+#: src/utils/wxCas/src/wxcasframe.cpp:348
 msgid "Save Statistics Image"
 msgstr "儲存統計圖表"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:391
+#: src/utils/wxCas/src/wxcasframe.cpp:386
 msgid "aMule Online Statistics"
 msgstr "aMule 線上統計"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:395
+#: src/utils/wxCas/src/wxcasframe.cpp:390
 msgid ""
 "There was a problem printing.\n"
 "Perhaps your current printer is not set correctly?"
@@ -6993,11 +7017,11 @@ msgstr ""
 "列印時發生問題。\n"
 "可能是您的印表機沒有設定正確?"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:396
+#: src/utils/wxCas/src/wxcasframe.cpp:391
 msgid "Printing"
 msgstr "正在列印"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:414
+#: src/utils/wxCas/src/wxcasframe.cpp:409
 msgid ""
 "wxCas, aMule OnLine Signature Statistics\n"
 "\n"
@@ -7015,323 +7039,323 @@ msgstr ""
 "\n"
 "依據 GPL 授權散佈"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:580
+#: src/utils/wxCas/src/wxcasframe.cpp:575
 msgid "Oh Oh, aMule is not running..."
 msgstr "aMule 未執行..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:656
-#: src/utils/wxCas/src/wxcasframe.cpp:726
-#: src/utils/wxCas/src/wxcasframe.cpp:795
+#: src/utils/wxCas/src/wxcasframe.cpp:651
+#: src/utils/wxCas/src/wxcasframe.cpp:721
+#: src/utils/wxCas/src/wxcasframe.cpp:790
 msgid "aMule is running"
 msgstr "aMule 正在執行"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:865
+#: src/utils/wxCas/src/wxcasframe.cpp:860
 msgid "aMule is running, but disconnected"
 msgstr "aMule 正在執行,但是已中斷連線"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:936
+#: src/utils/wxCas/src/wxcasframe.cpp:931
 msgid "aMule is connecting..."
 msgstr "aMule 正在連線..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:940
+#: src/utils/wxCas/src/wxcasframe.cpp:935
 msgid "Oh Oh, aMule status is unknown..."
 msgstr "aMule 狀態不明..."
 
+#: src/utils/wxCas/src/wxcasframe.cpp:1006
 #: src/utils/wxCas/src/wxcasframe.cpp:1011
-#: src/utils/wxCas/src/wxcasframe.cpp:1016
-#: src/utils/wxCas/src/wxcasframe.cpp:1020
-#: src/utils/wxCas/src/wxcasframe.cpp:1024
-#: src/utils/wxCas/src/wxcasframe.cpp:1028
+#: src/utils/wxCas/src/wxcasframe.cpp:1015
+#: src/utils/wxCas/src/wxcasframe.cpp:1019
+#: src/utils/wxCas/src/wxcasframe.cpp:1023
 msgid "aMule "
 msgstr "aMule "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1013
+#: src/utils/wxCas/src/wxcasframe.cpp:1008
 msgid " has been running for "
 msgstr " 已執行"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1018
+#: src/utils/wxCas/src/wxcasframe.cpp:1013
 msgid " is stopped !"
 msgstr " 已停止!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1022
-#: src/utils/wxCas/src/wxcasframe.cpp:1046
+#: src/utils/wxCas/src/wxcasframe.cpp:1017
+#: src/utils/wxCas/src/wxcasframe.cpp:1041
 msgid " is not connected !"
 msgstr "未連線!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1026
+#: src/utils/wxCas/src/wxcasframe.cpp:1021
 msgid " is connecting..."
 msgstr " 正在連線..."
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1030
+#: src/utils/wxCas/src/wxcasframe.cpp:1025
 msgid " is doing something strange, check it !"
 msgstr " 狀態不正常,請檢查!"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1051
+#: src/utils/wxCas/src/wxcasframe.cpp:1046
 msgid " is connected to "
 msgstr " 已連線到"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1052
-#: src/utils/wxCas/src/wxcasframe.cpp:1074
+#: src/utils/wxCas/src/wxcasframe.cpp:1047
+#: src/utils/wxCas/src/wxcasframe.cpp:1069
 msgid " Kad: "
 msgstr " Kad:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1058
-#: src/utils/wxCas/src/wxcasframe.cpp:1080
+#: src/utils/wxCas/src/wxcasframe.cpp:1053
+#: src/utils/wxCas/src/wxcasframe.cpp:1075
 msgid "off"
 msgstr "關閉"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1064
+#: src/utils/wxCas/src/wxcasframe.cpp:1059
 msgid " is on "
 msgstr " 是在 "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1071
+#: src/utils/wxCas/src/wxcasframe.cpp:1066
 msgid " with "
 msgstr " 和 "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1089
+#: src/utils/wxCas/src/wxcasframe.cpp:1084
 msgid "Total Download: "
 msgstr "總下載:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1091
-#: src/utils/wxCas/src/wxcasframe.cpp:1102
+#: src/utils/wxCas/src/wxcasframe.cpp:1086
+#: src/utils/wxCas/src/wxcasframe.cpp:1097
 msgid ", Upload: "
 msgstr ",上傳:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1100
+#: src/utils/wxCas/src/wxcasframe.cpp:1095
 msgid "Session Download: "
 msgstr "本次下載:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1111
+#: src/utils/wxCas/src/wxcasframe.cpp:1106
 msgid "Download: "
 msgstr "下載:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1113
+#: src/utils/wxCas/src/wxcasframe.cpp:1108
 msgid " kB/s, Upload: "
 msgstr " KB/s,上傳:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1115
+#: src/utils/wxCas/src/wxcasframe.cpp:1110
 msgid " kB/s"
 msgstr " KB/s"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1123
+#: src/utils/wxCas/src/wxcasframe.cpp:1118
 msgid "Sharing: "
 msgstr "分享:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1125
+#: src/utils/wxCas/src/wxcasframe.cpp:1120
 msgid " file(s), Clients on queue: "
 msgstr " 個檔案、等候區人數:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1135
+#: src/utils/wxCas/src/wxcasframe.cpp:1130
 msgid "Time: "
 msgstr "時間:"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1145
-#: src/utils/wxCas/src/wxcasframe.cpp:1155
+#: src/utils/wxCas/src/wxcasframe.cpp:1140
+#: src/utils/wxCas/src/wxcasframe.cpp:1150
 msgid " on "
 msgstr " 在 "
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1165
+#: src/utils/wxCas/src/wxcasframe.cpp:1160
 msgid "System Load Average (1-5-15 min): "
 msgstr "系統平均負載 (1-5-15 分鐘):"
 
-#: src/utils/wxCas/src/wxcasframe.cpp:1176
+#: src/utils/wxCas/src/wxcasframe.cpp:1171
 msgid "System uptime: "
 msgstr "系統執行時間:"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:60
+#: src/utils/wxCas/src/wxcasprefs.cpp:51
 msgid "Directory containing amulesig.dat file"
 msgstr "amulesig.dat 檔案所在的目錄"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:80
+#: src/utils/wxCas/src/wxcasprefs.cpp:71
 msgid "Enter here the directory where your amulesig.dat file is"
 msgstr "請輸入 amulesig.dat 所在的目錄"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:99
+#: src/utils/wxCas/src/wxcasprefs.cpp:90
 msgid "Refresh rate interval in seconds"
 msgstr "更新顯示間隔 (秒)"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:115
+#: src/utils/wxCas/src/wxcasprefs.cpp:106
 msgid "Generate a stat image at every refresh event"
 msgstr "每次更新顯示時都產生統計圖"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:139
+#: src/utils/wxCas/src/wxcasprefs.cpp:130
 msgid "Enter here the directory where you want to generate the statistic image"
 msgstr "輸入存放製成的統計圖的目錄"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:166
+#: src/utils/wxCas/src/wxcasprefs.cpp:157
 msgid "Upload periodicaly your stat image to FTP server"
 msgstr "定期上傳統計圖到 FTP 伺服器"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:174
+#: src/utils/wxCas/src/wxcasprefs.cpp:165
 msgid "FTP Url"
 msgstr "FTP 網址"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:178
+#: src/utils/wxCas/src/wxcasprefs.cpp:169
 msgid "FTP Path"
 msgstr "FTP 路徑"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:188
+#: src/utils/wxCas/src/wxcasprefs.cpp:179
 msgid "Enter here the URL of your FTP server"
 msgstr "輸入 FTP 伺服器的網址"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:200
+#: src/utils/wxCas/src/wxcasprefs.cpp:191
 msgid "Enter here the directory where putting your stat image on FTP server"
 msgstr "輸入 FTP 伺服器上存放統計圖的目錄"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:206
+#: src/utils/wxCas/src/wxcasprefs.cpp:197
 msgid "User"
 msgstr "使用者"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:221
+#: src/utils/wxCas/src/wxcasprefs.cpp:212
 msgid "Enter here the User name to log into your FTP server"
 msgstr "輸入登入 FTP 伺服器的使用者名稱"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:233
+#: src/utils/wxCas/src/wxcasprefs.cpp:224
 msgid "Enter here the User password to log into your FTP server"
 msgstr "輸入登入 FTP 伺服器的密碼"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:252
+#: src/utils/wxCas/src/wxcasprefs.cpp:243
 msgid "FTP update rate interval in minutes"
 msgstr "FTP 上傳間隔 (分鐘)"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:292
+#: src/utils/wxCas/src/wxcasprefs.cpp:283
 msgid "Validate"
 msgstr "檢測"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:326
+#: src/utils/wxCas/src/wxcasprefs.cpp:317
 msgid "Folder containing your signature file"
 msgstr "簽名識別檔所在資料夾"
 
-#: src/utils/wxCas/src/wxcasprefs.cpp:340
+#: src/utils/wxCas/src/wxcasprefs.cpp:331
 msgid "Folder where generating the statistic image"
 msgstr "統計圖存放資料夾"
 
-#: src/webserver/src/WebInterface.cpp:523
+#: src/webserver/src/WebInterface.cpp:561
 msgid "Loads template <str>"
 msgstr "載入模板 <str>"
 
-#: src/webserver/src/WebInterface.cpp:527
+#: src/webserver/src/WebInterface.cpp:565
 msgid "Web server HTTP port"
 msgstr "網站伺服器 HTTP 埠"
 
-#: src/webserver/src/WebInterface.cpp:531
+#: src/webserver/src/WebInterface.cpp:569
 msgid "Use UPnP port forwarding on web server port"
 msgstr "網站伺服器通訊埠使用 UPnP 通訊埠轉向"
 
-#: src/webserver/src/WebInterface.cpp:535
+#: src/webserver/src/WebInterface.cpp:573
 msgid "UPnP port"
 msgstr "UPnP 埠"
 
-#: src/webserver/src/WebInterface.cpp:539
+#: src/webserver/src/WebInterface.cpp:577
 msgid "Use gzip compression"
 msgstr "使用 gzip 壓縮"
 
-#: src/webserver/src/WebInterface.cpp:547
+#: src/webserver/src/WebInterface.cpp:585
 msgid "Full access password for web server"
 msgstr "網站伺服器的 完整存取密碼"
 
-#: src/webserver/src/WebInterface.cpp:551
+#: src/webserver/src/WebInterface.cpp:589
 msgid "Guest password for web server"
 msgstr "網站伺服器的 訪客密碼"
 
-#: src/webserver/src/WebInterface.cpp:555
+#: src/webserver/src/WebInterface.cpp:593
 msgid "Allow guest access"
 msgstr "允許訪客連線"
 
-#: src/webserver/src/WebInterface.cpp:559
+#: src/webserver/src/WebInterface.cpp:597
 msgid "Deny guest access"
 msgstr "拒絕訪客連線"
 
-#: src/webserver/src/WebInterface.cpp:563
+#: src/webserver/src/WebInterface.cpp:601
 msgid "Load/save web server settings from/to remote aMule"
 msgstr "載入/儲存 遠端 aMule 的網站伺服器設定 "
 
-#: src/webserver/src/WebInterface.cpp:567
+#: src/webserver/src/WebInterface.cpp:605
 msgid "aMule config file path. DO NOT USE DIRECTLY!"
 msgstr "aMule 設定檔路徑。請勿直接使用!"
 
-#: src/webserver/src/WebInterface.cpp:575
+#: src/webserver/src/WebInterface.cpp:613
 msgid "Disable PHP interpreter (deprecated)"
 msgstr "停用 PHP 解譯器(不建議)"
 
-#: src/webserver/src/WebInterface.cpp:583
+#: src/webserver/src/WebInterface.cpp:621
 msgid "Recompile PHP pages on each request"
 msgstr "爲每個要求重編譯 PHP 頁面"
 
-#: src/webserver/src/WebInterface.cpp:681
+#: src/webserver/src/WebInterface.cpp:719
 msgid "aMule Web Server"
 msgstr "aMule 網站伺服器"
 
-#: src/webserver/src/WebServer.cpp:298
+#: src/webserver/src/WebServer.cpp:320
 msgid "web client connection accepted\n"
 msgstr "已接受網頁客戶端連線\n"
 
-#: src/webserver/src/WebServer.cpp:301
+#: src/webserver/src/WebServer.cpp:323
 msgid "ERROR: cannot accept web client connection\n"
 msgstr "錯誤:無法接受網頁客戶端連線\n"
 
-#: src/webserver/src/WebServer.cpp:370
+#: src/webserver/src/WebServer.cpp:392
 #, c-format
 msgid "Request failed with the following error: %s."
 msgstr "要求失敗,錯誤爲:%s 。"
 
-#: src/webserver/src/WebServer.cpp:1697
+#: src/webserver/src/WebServer.cpp:1726
 msgid "Index file not found: "
 msgstr "找不到索引檔:"
 
-#: src/webserver/src/WebServer.cpp:1775
+#: src/webserver/src/WebServer.cpp:1805
 msgid "Session expired - requesting login\n"
 msgstr "作業階段過期 - 正在要求登入\n"
 
-#: src/webserver/src/WebServer.cpp:1780
+#: src/webserver/src/WebServer.cpp:1810
 msgid "Session ok, logged in\n"
 msgstr "作業階段正常,已登入\n"
 
-#: src/webserver/src/WebServer.cpp:1782
+#: src/webserver/src/WebServer.cpp:1812
 msgid "Session ok, not logged in\n"
 msgstr "作業階段正常,未登入\n"
 
-#: src/webserver/src/WebServer.cpp:1787
+#: src/webserver/src/WebServer.cpp:1817
 msgid "No session opened - will request login\n"
 msgstr "未開啟作業階段 - 將要求登入\n"
 
-#: src/webserver/src/WebServer.cpp:1796
+#: src/webserver/src/WebServer.cpp:1826
 msgid "Session created - requesting login\n"
 msgstr "作業階段已建立 - 正在要求登入\n"
 
-#: src/webserver/src/WebServer.cpp:1811
+#: src/webserver/src/WebServer.cpp:1841
 msgid "Processing request [original]: "
 msgstr "正在處理要求 [原始]:"
 
-#: src/webserver/src/WebServer.cpp:1826
+#: src/webserver/src/WebServer.cpp:1856
 msgid "No password specified, login will not be allowed."
 msgstr "未輸入密碼,不允許登入。"
 
-#: src/webserver/src/WebServer.cpp:1828
+#: src/webserver/src/WebServer.cpp:1858
 msgid "Checking password\n"
 msgstr "正在檢查密碼\n"
 
-#: src/webserver/src/WebServer.cpp:1833
+#: src/webserver/src/WebServer.cpp:1863
 msgid "Password hash invalid\n"
 msgstr "密碼 hash 值無效\n"
 
-#: src/webserver/src/WebServer.cpp:1848
+#: src/webserver/src/WebServer.cpp:1878
 msgid "Password ok\n"
 msgstr "密碼正確\n"
 
-#: src/webserver/src/WebServer.cpp:1850
+#: src/webserver/src/WebServer.cpp:1880
 msgid "Password bad\n"
 msgstr "密碼錯誤\n"
 
-#: src/webserver/src/WebServer.cpp:1853
+#: src/webserver/src/WebServer.cpp:1883
 msgid "You did not enter any password. Blank password is not allowed.\n"
 msgstr "您沒有輸入密碼,密碼不允許空白。\n"
 
-#: src/webserver/src/WebServer.cpp:1861
+#: src/webserver/src/WebServer.cpp:1891
 msgid "Logout requested\n"
 msgstr "已要求登出\n"
 
-#: src/webserver/src/WebServer.cpp:1866
+#: src/webserver/src/WebServer.cpp:1896
 msgid "Processing request [redirected]: "
 msgstr "正在處理 [已重定向] 的要求:"
 
@@ -7520,9 +7544,6 @@ msgstr "正在處理 [已重定向] 的要求:"
 #~ msgid "Total Users: %s | Total Files: %s"
 #~ msgstr "使用者總數:%s | 檔案總數:%s"
 
-#~ msgid "HTTP download thread started"
-#~ msgstr "已開始 HTTP 下載執行緒"
-
 #~ msgid "Download size not received, downloading until connection is closed"
 #~ msgstr "未收到下載大小資料,持續下載至連線關閉時"
 
diff --git a/src/AddFriend.cpp b/src/AddFriend.cpp
index 4f1b8a3..eed70ed 100644
--- a/src/AddFriend.cpp
+++ b/src/AddFriend.cpp
@@ -3,7 +3,7 @@
 //
 // Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
 // Copyright (c) 2002-2011 Merkur ( devs at emule-project.net / http://www.emule-project.net )
-// 
+//
 // Any parts of this program derived from the xMule, lMule or eMule project,
 // or contributed by third-party developers are copyrighted by their
 // respective authors.
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -32,7 +32,7 @@
 #include "NetworkFunctions.h"
 #include "OtherFunctions.h"
 #include "MD4Hash.h"
-#include <common/StringFunctions.h> // Needed for unicode2char 
+#include <common/StringFunctions.h> // Needed for unicode2char
 
 
 BEGIN_EVENT_TABLE(CAddFriend, wxDialog)
@@ -56,12 +56,12 @@ void CAddFriend::OnAddBtn(wxCommandEvent& WXUNUSED(evt))
 	wxString fullip = CastChild(ID_IPADDRESS, wxTextCtrl)->GetValue().Strip(wxString::both);
 	uint16 port = StrToULong( CastChild(ID_IPORT, wxTextCtrl)->GetValue() );
 	uint32 ip = StringIPtoUint32(fullip);
-	
+
 	if (!ip || !port) {
 		wxMessageBox(_("You have to enter a valid IP and port!"), _("Information"), wxOK | wxICON_INFORMATION, this);
-		return;		
+		return;
 	}
-	
+
 	CMD4Hash userhash;
 	if ((!hash.IsEmpty()) && (!userhash.Decode(hash))) {
 		wxMessageBox(_("The specified userhash is not valid!"), _("Information"), wxOK | wxICON_INFORMATION, this);
@@ -74,7 +74,7 @@ void CAddFriend::OnAddBtn(wxCommandEvent& WXUNUSED(evt))
 	}
 
 	theApp->friendlist->AddFriend(userhash, ip, port, name);
-	
+
 	EndModal(true); // Friend added
 }
 
diff --git a/src/AddFriend.h b/src/AddFriend.h
index dd6010f..a00c65f 100644
--- a/src/AddFriend.h
+++ b/src/AddFriend.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/ArchSpecific.h b/src/ArchSpecific.h
index b4b2329..019d645 100644
--- a/src/ArchSpecific.h
+++ b/src/ArchSpecific.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -27,6 +27,9 @@
 #define ARCHSPECIFIC_H
 
 #include "Types.h"
+#ifdef HAVE_CONFIG_H
+#	include "config.h"
+#endif
 
 #define ENDIAN_SWAP_16(x) (wxUINT16_SWAP_ON_BE(x))
 #define ENDIAN_SWAP_I_16(x) x = wxUINT16_SWAP_ON_BE(x)
@@ -43,13 +46,13 @@
 // ntohl
 #define ENDIAN_NTOHL(x) ( wxUINT32_SWAP_ON_LE(x) )
 // new
-#define ENDIAN_NTOHLL(x) ( wxUINT64_SWAP_ON_LE(x) )	
+#define ENDIAN_NTOHLL(x) ( wxUINT64_SWAP_ON_LE(x) )
 // htons
 #define ENDIAN_HTONS(x) ( wxUINT16_SWAP_ON_LE(x) )
 // htonl
-#define ENDIAN_HTONL(x) ( wxUINT32_SWAP_ON_LE(x) )	
+#define ENDIAN_HTONL(x) ( wxUINT32_SWAP_ON_LE(x) )
 // new
-#define ENDIAN_HTONLL(x) ( wxUINT64_SWAP_ON_LE(x) )	
+#define ENDIAN_HTONLL(x) ( wxUINT64_SWAP_ON_LE(x) )
 
 
 /**
@@ -103,8 +106,8 @@ inline void PokeUInt64(void* p, uint64 nVal);
 // \}
 
 
-#if defined(__arm__) || defined(__sparc__) || defined(__mips__)
-	#define ARM_OR_SPARC
+#if defined(__arm__) || defined(__sparc__) || defined(__mips__) || defined(GCC_USES_STRICT_ALIASING)
+	#define ARCHSPECIFIC_USE_MEMCPY
 #endif
 
 
@@ -113,7 +116,7 @@ inline void PokeUInt64(void* p, uint64 nVal);
 
 inline uint16 RawPeekUInt16(const void* p)
 {
-#ifndef ARM_OR_SPARC
+#ifndef ARCHSPECIFIC_USE_MEMCPY
 	return *((uint16*)p);
 #else
 	uint16 value;
@@ -125,7 +128,7 @@ inline uint16 RawPeekUInt16(const void* p)
 
 inline uint32 RawPeekUInt32(const void* p)
 {
-#ifndef ARM_OR_SPARC
+#ifndef ARCHSPECIFIC_USE_MEMCPY
 	return *((uint32*)p);
 #else
 	uint32 value;
@@ -137,7 +140,7 @@ inline uint32 RawPeekUInt32(const void* p)
 
 inline uint64 RawPeekUInt64(const void* p)
 {
-#ifndef ARM_OR_SPARC
+#ifndef ARCHSPECIFIC_USE_MEMCPY
 	return *((uint64*)p);
 #else
 	uint64 value;
@@ -177,7 +180,7 @@ inline uint64 PeekUInt64(const void* p)
 
 inline void RawPokeUInt16(void* p, uint16 nVal)
 {
-#ifndef ARM_OR_SPARC
+#ifndef ARCHSPECIFIC_USE_MEMCPY
 	*((uint16*)p) = nVal;
 #else
 	memcpy( p, &nVal, sizeof(uint16) );
@@ -187,7 +190,7 @@ inline void RawPokeUInt16(void* p, uint16 nVal)
 
 inline void RawPokeUInt32(void* p, uint32 nVal)
 {
-#ifndef ARM_OR_SPARC
+#ifndef ARCHSPECIFIC_USE_MEMCPY
 	*((uint32*)p) = nVal;
 #else
 	memcpy( p, &nVal, sizeof(uint32) );
@@ -197,7 +200,7 @@ inline void RawPokeUInt32(void* p, uint32 nVal)
 
 inline void RawPokeUInt64(void* p, uint64 nVal)
 {
-#ifndef ARM_OR_SPARC
+#ifndef ARCHSPECIFIC_USE_MEMCPY
 	*((uint64*)p) = nVal;
 #else
 	memcpy( p, &nVal, sizeof(uint64) );
@@ -227,5 +230,8 @@ inline void PokeUInt64(void* p, uint64 nVal)
 	RawPokeUInt64( p, ENDIAN_SWAP_64( nVal ) );
 }
 
+// Don't pollute the preprocessor namespace
+#undef ARCHSPECIFIC_USE_MEMCPY
+
 #endif
 // File_checked_for_headers
diff --git a/src/AsyncDNS.cpp b/src/AsyncDNS.cpp
index 2db82b7..c0c08d7 100644
--- a/src/AsyncDNS.cpp
+++ b/src/AsyncDNS.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -31,11 +31,11 @@
 #include "Logger.h"
 
 
-CAsyncDNS::CAsyncDNS(const wxChar* ipName, DnsSolveType type, wxEvtHandler* handler, void* socket)
+CAsyncDNS::CAsyncDNS(const wxString& ipName, DnsSolveType type, wxEvtHandler* handler, void* socket)
 	: wxThread(wxTHREAD_DETACHED)
 {
 	m_type = type;
-	m_ipName = ipName;
+	m_ipName = ipName.wc_str();		// make a deep copy to to circument the thread-unsafe wxString reference counting
 	m_socket = socket;
 	m_handler = handler;
 }
@@ -46,7 +46,7 @@ wxThread::ExitCode CAsyncDNS::Entry()
 	uint32 result = StringHosttoUint32(m_ipName);
 	uint32 event_id = 0;
 	void* event_data = NULL;
-	
+
 	switch (m_type) {
 		case DNS_UDP:
 			event_id = wxEVT_CORE_UDP_DNS_DONE;
@@ -63,14 +63,14 @@ wxThread::ExitCode CAsyncDNS::Entry()
 		default:
 			AddLogLineN(wxT("WRONG TYPE ID ON ASYNC DNS SOLVING!!!"));
 	}
-	
+
 	if (event_id) {
 		CMuleInternalEvent evt(event_id);
 		evt.SetExtraLong(result);
 		evt.SetClientData(event_data);
 		wxPostEvent(m_handler,evt);
 	}
-	
+
 	return NULL;
 }
 // File_checked_for_headers
diff --git a/src/AsyncDNS.h b/src/AsyncDNS.h
index b188b42..acf61ae 100644
--- a/src/AsyncDNS.h
+++ b/src/AsyncDNS.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,7 +30,7 @@
 #include <wx/string.h>
 #include <wx/thread.h>
 
-// Implementation of Asynchronous dns resolving using wxThread 
+// Implementation of Asynchronous dns resolving using wxThread
 //	 and internal wxIPV4address handling of dns
 
 class wxEvtHandler;
@@ -49,8 +49,7 @@ enum DnsSolveType {
 class CAsyncDNS : public wxThread
 {
 public:
-	/** Note: wxChar* is used to circument the thread-unsafe wxString reference counting. */
-	CAsyncDNS(const wxChar* ipName, DnsSolveType type, wxEvtHandler* handler, void* socket = NULL);
+	CAsyncDNS(const wxString& ipName, DnsSolveType type, wxEvtHandler* handler, void* socket = NULL);
 	virtual ExitCode Entry();
 
 private:
diff --git a/src/BarShader.cpp b/src/BarShader.cpp
index 8c17deb..047f90d 100644
--- a/src/BarShader.cpp
+++ b/src/BarShader.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -122,12 +122,12 @@ void CBarShader::FillRange(uint64 start, uint64 end, const CMuleColour& colour)
 	if (start >= end || start >= m_FileSize) {
 		return;
 	}
-	
-	// precision for small files: end must be increased by one 
+
+	// precision for small files: end must be increased by one
 	// think of each byte as a visible block, then start points to
 	// the beginning of its block, but end points to the END of its block
 	end++;
-	
+
 	if (end > m_FileSize) {
 		end = m_FileSize;
 	}
@@ -137,7 +137,7 @@ void CBarShader::FillRange(uint64 start, uint64 end, const CMuleColour& colour)
 	if (lastPixel == m_Width) {
 		lastPixel--;
 	}
-	
+
 	double f_Width = m_Width;
 	// calculate how much of this pixels is to be covered with the fill
 	double firstCovered = firstPixel + 1 - start * f_Width / m_FileSize;
diff --git a/src/BarShader.h b/src/BarShader.h
index 03ad577..da8bd08 100644
--- a/src/BarShader.h
+++ b/src/BarShader.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -35,8 +35,8 @@ class wxDC;
 /**
  * The barshader class is responsible for drawing the chunk-based progress bars used in aMule.
  *
- * CBarShader represents the chunks of a file through the use of spans, which 
- * cover a range in the file with a certain color. New spans can be added on 
+ * CBarShader represents the chunks of a file through the use of spans, which
+ * cover a range in the file with a certain color. New spans can be added on
  * the fly and old spans are automatically removed, resized or merged when
  * necessary.
  *
@@ -47,7 +47,7 @@ class CBarShader
 public:
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @param height The height of the area upon which the span is drawn.
 	 * @param width  The width of the area upon which the span is drawn.
 	 */
@@ -61,7 +61,7 @@ public:
 	/**
 	 * Sets the width of the drawn bar.
 	 *
-	 * @param width The new width. 
+	 * @param width The new width.
 	 *
 	 * Setting this sets the width the bar which is used when it
 	 * is drawn and resets the pixel buffer to the fill color.
@@ -71,7 +71,7 @@ public:
 	/**
 	 * Sets the height of the drawn bar.
 	 *
-	 * @param height The new height. 
+	 * @param height The new height.
 	 *
 	 * Changes the height of the bar, used when it is drawn.
 	 */
@@ -89,7 +89,7 @@ public:
 	 *
 	 * @param fileSize The new filesize.
 	 *
-	 * Calling this function sets a new filesize, which is the virtual 
+	 * Calling this function sets a new filesize, which is the virtual
 	 * length of the bar. This function must be called before any filling.
 	 */
 	void SetFileSize(uint64 fileSize)	{ m_FileSize = fileSize; }
@@ -137,7 +137,7 @@ private:
 	 * Calculates the modifiers used to create 3d effect.
 	 */
 	void BuildModifiers();
-	
+
 	//! The width of the drawn bar
 	unsigned	m_Width;
 	//! The height of the drawn bar
@@ -146,7 +146,7 @@ private:
 	uint64	m_FileSize;
 	//! Pointer to array of modifers used to create 3D effect. Size is (m_Height+1)/2 when set.
 	double*	m_Modifiers;
-	//! The current 3d level 
+	//! The current 3d level
 	uint16	m_used3dlevel;
 
 	// color for each pixel across the width is stored here
diff --git a/src/BaseClient.cpp b/src/BaseClient.cpp
index 44bc2eb..075eb58 100644
--- a/src/BaseClient.cpp
+++ b/src/BaseClient.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -117,7 +117,7 @@ CUpDownClient::CUpDownClient(uint16 in_port, uint32 in_userid, uint32 in_serveri
 	} else {
 		SetUserIDHybrid( in_userid);
 	}
-	
+
 	//If highID and ED2K source, incoming ID and IP are equal..
 	//If highID and Kad source, incoming IP needs swap for the IP
 
@@ -142,9 +142,9 @@ CUpDownClient::CUpDownClient(uint16 in_port, uint32 in_userid, uint32 in_serveri
 		} else{
 			// avoid that an unwanted client instance keeps a friend slot
 			m_bFriendSlot = false;
-		}	
+		}
 	}
-	
+
 }
 
 void CUpDownClient::Init()
@@ -248,19 +248,17 @@ void CUpDownClient::Init()
 	m_uploadingfile = NULL;
 
 	m_OSInfo_sent = false;
-	
+
 	/* Kad stuff */
 	SetBuddyID(NULL);
 	m_nBuddyIP = 0;
-	m_nBuddyPort = 0;	
+	m_nBuddyPort = 0;
 	m_nUserIDHybrid = 0;
 
 	m_nSourceFrom = SF_NONE;
 
 	if (m_socket) {
-		amuleIPV4Address address;
-		m_socket->GetPeer(address);
-		SetIP(StringIPtoUint32(address.IPAddress()));
+		SetIP(m_socket->GetPeerInt());
 	} else {
 		SetIP(0);
 	}
@@ -268,16 +266,16 @@ void CUpDownClient::Init()
 	/* Statistics */
 	m_lastClientSoft = (uint32)(-1);
 	m_lastClientVersion = 0;
-	
+
 	/* Creation time (for buddies timeout) */
 	m_nCreationTime = ::GetTickCount();
-	
+
 	m_MaxBlockRequests = STANDARD_BLOCKS_REQUEST; // Safe starting amount
 
 	m_last_block_start = 0;
 	m_lastaverage = 0;
 
-	SetLastBuddyPingPongTime();	
+	SetLastBuddyPingPongTime();
 	m_fRequestsCryptLayer = 0;
 	m_fSupportsCryptLayer = 0;
 	m_fRequiresCryptLayer = 0;
@@ -301,18 +299,18 @@ CUpDownClient::~CUpDownClient()
 	if (!connection_reason.IsEmpty()) {
 		AddDebugLogLineN(logClient, wxT("Client to check for ") + connection_reason + wxT(" was deleted without connection."));
 	}
-	#endif	
-	
-	
+	#endif
+
+
 	if (m_lastClientSoft == SO_UNKNOWN) {
 		theStats::RemoveUnknownClient();
 	} else if (m_lastClientSoft != (uint32)(-1)) {
 		theStats::RemoveKnownClient(m_lastClientSoft, m_lastClientVersion, m_lastOSInfo);
 	}
-		
+
 	// Indicate that we are not anymore on stats
 	m_lastClientSoft = (uint32)(-1);
-	
+
 	// The socket should have been removed in Safe_Delete, but it
 	// doesn't hurt to have an extra check.
 	if (m_socket) {
@@ -325,9 +323,9 @@ CUpDownClient::~CUpDownClient()
 	ClearDownloadBlockRequests();
 
 	DeleteContents(m_WaitingPackets_list);
-	
+
 	// Allow detection of deleted clients that didn't go through Safe_Delete
- 	m_clientState = CS_DYING;
+	m_clientState = CS_DYING;
 }
 
 
@@ -395,7 +393,7 @@ void CUpDownClient::Safe_Delete()
 		return;
 	}
 
- 	m_clientState = CS_DYING;
+	m_clientState = CS_DYING;
 
 	// Make sure client doesn't get deleted until this method is finished
 	CClientRef ref(CCLIENTREF(this, wxT("CUpDownClient::Safe_Delete reflocker")));
@@ -484,11 +482,11 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 			case CT_NAME:
 				m_Username = temptag.GetStr();
 				break;
-				
+
 			case CT_VERSION:
 				m_nClientVersion = temptag.GetInt();
 				break;
-				
+
 			case ET_MOD_VERSION:
 				if (temptag.IsStr()) {
 					m_strModVersion = temptag.GetStr();
@@ -499,11 +497,11 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 				}
 
 				break;
-				
+
 			case CT_PORT:
 				nUserPort = temptag.GetInt();
 				break;
-				
+
 			case CT_EMULE_UDPPORTS:
 				// 16 KAD Port
 				// 16 UDP Port
@@ -514,15 +512,15 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 				AddLogLineNS(CFormat(wxT("Hello type packet processing with eMule ports UDP=%i KAD=%i")) % m_nUDPPort % m_nKadPort);
 				#endif
 				break;
-				
+
 			case CT_EMULE_BUDDYIP:
 				// 32 BUDDY IP
 				m_nBuddyIP = temptag.GetInt();
 				#ifdef __PACKET_DEBUG__
 				AddLogLineNS(CFormat(wxT("Hello type packet processing with eMule BuddyIP=%u (%s)")) % m_nBuddyIP % Uint32toStringIP(m_nBuddyIP));
 				#endif
-				break;				
-				
+				break;
+
 			case CT_EMULE_BUDDYUDP:
 				// 16 --Reserved for future use--
 				// 16 BUDDY Port
@@ -531,7 +529,7 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 				AddLogLineNS(CFormat(wxT("Hello type packet processing with eMule BuddyPort=%u")) % m_nBuddyPort);
 				#endif
 				break;
-				
+
 			case CT_EMULE_MISCOPTIONS1: {
 				//  3 AICH Version (0 = not supported)
 				//  1 Unicode
@@ -601,7 +599,7 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 
 				m_fRequestsCryptLayer &= m_fSupportsCryptLayer;
 				m_fRequiresCryptLayer &= m_fRequestsCryptLayer;
-			
+
 				#ifdef __PACKET_DEBUG__
 				AddLogLineNS(wxT("Hello type packet processing with eMule Misc Options 2:"));
 				AddLogLineNS(CFormat(wxT("	m_fDirectUDPCallback	= %i")) % m_fDirectUDPCallback);
@@ -614,7 +612,7 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 				AddLogLineNS(CFormat(wxT("	m_fSupportsLargeFiles	= %i")) % m_fSupportsLargeFiles);
 				AddLogLineNS(CFormat(wxT("	KadVersion		= %u")) % m_byKadVersion);
 				AddLogLineNS(wxT("That's all."));
-				#endif			
+				#endif
 				break;
 
 			// Special tag for Compat. Clients Misc options.
@@ -624,7 +622,7 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 				m_fValueBasedTypeTags	= (temptag.GetInt() >> 1*1) & 0x01;
 				m_fOsInfoSupport		= (temptag.GetInt() >> 1*0) & 0x01;
 				break;
-				
+
 			case CT_EMULE_VERSION:
 				//  8 Compatible Client ID
 				//  7 Mjr Version (Doesn't really matter..)
@@ -636,7 +634,7 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 				m_byEmuleVersion = 0x99;
 				m_fSharedDirectories = 1;
 				dwEmuleTags |= 4;
-				break;				
+				break;
 		}
 	}
 
@@ -660,9 +658,7 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 	}
 
 	if (m_socket) {
-		amuleIPV4Address address;
-		m_socket->GetPeer(address);
-		SetIP(StringIPtoUint32(address.IPAddress()));
+		SetIP(m_socket->GetPeerInt());
 	} else {
 		throw wxString(wxT("Huh, socket failure. Avoided crash this time."));
 	}
@@ -682,7 +678,7 @@ bool CUpDownClient::ProcessHelloTypePacket(const CMemFile& data)
 	if(!HasLowID() || m_nUserIDHybrid == 0 || m_nUserIDHybrid == m_dwUserIP )  {
 		SetUserIDHybrid(wxUINT32_SWAP_ALWAYS(m_dwUserIP));
 	}
-	
+
 	// get client credits
 	CClientCredits* pFoundCredits = theApp->clientcredits->GetCredit(m_UserHash);
 	if (credits == NULL){
@@ -733,9 +729,7 @@ bool CUpDownClient::SendHelloPacket()
 	}
 
 	// if IP is filtered, don't greet him but disconnect...
-	amuleIPV4Address address;
-	m_socket->GetPeer(address);
-	if ( theApp->ipfilter->IsFiltered(StringIPtoUint32(address.IPAddress()))) {
+	if (theApp->ipfilter->IsFiltered(m_socket->GetPeerInt())) {
 		if (Disconnected(wxT("IPFilter"))) {
 			Safe_Delete();
 			return false;
@@ -746,7 +740,7 @@ bool CUpDownClient::SendHelloPacket()
 	CMemFile data(128);
 	data.WriteUInt8(16); // size of userhash
 	SendHelloTypePacket(&data);
-	
+
 	CPacket* packet = new CPacket(data, OP_EDONKEYPROT, OP_HELLO);
 	theStats::AddUpOverheadOther(packet->GetPacketSize());
 	SendPacket(packet,true);
@@ -766,23 +760,23 @@ void CUpDownClient::SendMuleInfoPacket(bool bAnswer, bool OSInfo) {
 	CMemFile data;
 
 	data.WriteUInt8(CURRENT_VERSION_SHORT);
-	
+
 	if (OSInfo) {
-		
+
 		// Special MuleInfo packet for clients supporting it.
 		// This means aMule >= 2.0.0 and Hydranode
-		
+
 		// Violently mark it as special Mule Info packet
 		// Sending this makes non-supporting-osinfo clients to refuse to read this
 		// packet. Anyway, this packet should NEVER get to non-supporting clients.
-		
-		data.WriteUInt8(/*EMULE_PROTOCOL*/ 0xFF);		
+
+		data.WriteUInt8(/*EMULE_PROTOCOL*/ 0xFF);
 
 		data.WriteUInt32(1); // One Tag (OS_INFO)
 
 		CTagString tag1(ET_OS_INFO,theApp->GetOSType());
 		tag1.WriteTagToFile(&data);
-		
+
 		m_OSInfo_sent = true; // So we don't send it again
 
 	} else {
@@ -791,7 +785,7 @@ void CUpDownClient::SendMuleInfoPacket(bool bAnswer, bool OSInfo) {
 
 		// Kry - There's no point on upgrading to VBT tags here
 		// as no client supporting it uses mule info packet.
-		
+
 		data.WriteUInt8(EMULE_PROTOCOL);
 
 		// Tag number
@@ -823,21 +817,22 @@ void CUpDownClient::SendMuleInfoPacket(bool bAnswer, bool OSInfo) {
 
 		CTagInt32 tag8(ET_COMPATIBLECLIENT,SO_AMULE);
 		tag8.WriteTagToFile(&data);
-	
+
 		// Support for tag ET_MOD_VERSION
 		wxString mod_name(MOD_VERSION_LONG);
 		CTagString tag9(ET_MOD_VERSION, mod_name);
 		tag9.WriteTagToFile(&data);
 		// Maella end
-	
+
 	}
 
 	packet = new CPacket(data, OP_EMULEPROT, (bAnswer ? OP_EMULEINFOANSWER : OP_EMULEINFO));
-	
+
 	if (m_socket) {
 		theStats::AddUpOverheadOther(packet->GetPacketSize());
 		SendPacket(packet,true,true);
-		
+
+#ifdef __DEBUG__
 		if (!bAnswer) {
 			if (!OSInfo) {
 				AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_EMULEINFO to ") + GetFullIP() );
@@ -847,6 +842,7 @@ void CUpDownClient::SendMuleInfoPacket(bool bAnswer, bool OSInfo) {
 		} else {
 			AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_EMULEINFOANSWER to ") + GetFullIP() );
 		}
+#endif
 	}
 }
 
@@ -859,7 +855,7 @@ bool CUpDownClient::ProcessMuleInfoPacket(const byte* pachPacket, uint32 nSize)
 	// The version number part of this packet will soon be useless since
 	// it is only able to go to v.99. Why the version is a uint8 and why
 	// it was not done as a tag like the eDonkey hello packet is not known.
-	// Therefore, sooner or later, we are going to have to switch over to 
+	// Therefore, sooner or later, we are going to have to switch over to
 	// using the eDonkey hello packet to set the version. No sense making
 	// a third value sent for versions.
 	uint8 mule_version = data.ReadUInt8();
@@ -873,7 +869,7 @@ bool CUpDownClient::ProcessMuleInfoPacket(const byte* pachPacket, uint32 nSize)
 				case ET_OS_INFO:
 					// Special tag, only supporting clients (aMule/Hydranode)
 					// It was recycled from a mod's tag, so if the other side
-					// is not supporting OS Info, we're seriously fucked up :)					
+					// is not supporting OS Info, we're seriously fucked up :)
 					m_sClientOSInfo = temptag.GetStr();
 
 					// If we didn't send our OSInfo to this client, just send it
@@ -883,7 +879,7 @@ bool CUpDownClient::ProcessMuleInfoPacket(const byte* pachPacket, uint32 nSize)
 
 					UpdateStats();
 
-					break;	
+					break;
 
 				// Your ad... er... I mean TAG, here
 
@@ -901,9 +897,9 @@ bool CUpDownClient::ProcessMuleInfoPacket(const byte* pachPacket, uint32 nSize)
 		}
 
 		if (!(m_bEmuleProtocol = (protocol_version == EMULE_PROTOCOL))) {
-			return false;	
+			return false;
 		}
-		
+
 		for (uint32 i = 0;i < tagcount; i++){
 			CTag temptag(data, false);
 			switch(temptag.GetNameID()){
@@ -912,37 +908,37 @@ bool CUpDownClient::ProcessMuleInfoPacket(const byte* pachPacket, uint32 nSize)
 					// Bits  7- 0: data compression version
 					m_byDataCompVer = temptag.GetInt();
 					break;
-					
+
 				case ET_UDPPORT:
 					// Bits 31-16: 0 - reserved
 					// Bits 15- 0: UDP port
 					m_nUDPPort = temptag.GetInt();
 					break;
-					
+
 				case ET_UDPVER:
 					// Bits 31- 8: 0 - reserved
 					// Bits  7- 0: UDP protocol version
 					m_byUDPVer = temptag.GetInt();
 					break;
-					
+
 				case ET_SOURCEEXCHANGE:
 					// Bits 31- 8: 0 - reserved
 					// Bits  7- 0: source exchange protocol version
 					m_bySourceExchange1Ver = temptag.GetInt();
 					break;
-					
+
 				case ET_COMMENTS:
 					// Bits 31- 8: 0 - reserved
 					// Bits  7- 0: comments version
 					m_byAcceptCommentVer = temptag.GetInt();
 					break;
-					
+
 				case ET_EXTENDEDREQUEST:
 					// Bits 31- 8: 0 - reserved
 					// Bits  7- 0: extended requests version
 					m_byExtendedRequestsVer = temptag.GetInt();
 					break;
-					
+
 				case ET_COMPATIBLECLIENT:
 					// Bits 31- 8: 0 - reserved
 					// Bits  7- 0: compatible client ID
@@ -978,7 +974,7 @@ bool CUpDownClient::ProcessMuleInfoPacket(const byte* pachPacket, uint32 nSize)
 
 					break;
 			}
-		}				
+		}
 
 		if( m_byDataCompVer == 0 ){
 			m_bySourceExchange1Ver = 0;
@@ -1010,7 +1006,7 @@ bool CUpDownClient::ProcessMuleInfoPacket(const byte* pachPacket, uint32 nSize)
 
 		ReGetClientSoft();
 
-		m_byInfopacketsReceived |= IP_EMULEPROTPACK;		
+		m_byInfopacketsReceived |= IP_EMULEPROTPACK;
 	}
 
 	return (protocol_version == 0xFF); // This was a OS_Info?
@@ -1045,7 +1041,7 @@ void CUpDownClient::SendHelloTypePacket(CMemFile* data)
 		tagcount += 2;
 	}
 	tagcount ++; // eMule misc flags 2 (kad version)
-	
+
 	#ifdef __SVN__
 	// Kry - This is the tagcount!!! Be sure to update it!!
 	// Last update: CT_EMULECOMPAT_OPTIONS included
@@ -1078,14 +1074,14 @@ void CUpDownClient::SendHelloTypePacket(CMemFile* data)
 	if( theApp->clientlist->GetBuddy() && theApp->IsFirewalled() ) {
 		CTagVarInt tagBuddyIP(CT_EMULE_BUDDYIP, theApp->clientlist->GetBuddy()->GetIP(), GetVBTTags() ? 0 : 32);
 		tagBuddyIP.WriteTagToFile(data);
-	
-		CTagVarInt tagBuddyPort(CT_EMULE_BUDDYUDP, 
+
+		CTagVarInt tagBuddyPort(CT_EMULE_BUDDYUDP,
 //					( RESERVED												)
 					((uint32)theApp->clientlist->GetBuddy()->GetUDPPort()  )
 					, GetVBTTags() ? 0 : 32);
 		tagBuddyPort.WriteTagToFile(data);
-	}	
-	
+	}
+
 	// aMule Version
 	CTagVarInt tagMuleVersion(CT_EMULE_VERSION,
 				(SO_AMULE	<< 24) |
@@ -1099,14 +1095,14 @@ void CUpDownClient::SendHelloTypePacket(CMemFile* data)
 	const uint32 uUdpVer			= 4;
 	const uint32 uDataCompVer		= 1;
 	const uint32 uSupportSecIdent		= theApp->CryptoAvailable() ? 3 : 0;
-	const uint32 uSourceExchangeVer		= 3; 
+	const uint32 uSourceExchangeVer		= 3;
 	const uint32 uExtendedRequestsVer	= 2;
 	const uint32 uAcceptCommentVer		= 1;
 	const uint32 uNoViewSharedFiles		= (thePrefs::CanSeeShares() == vsfaNobody) ? 1 : 0; // for backward compatibility this has to be a 'negative' flag
 	const uint32 uMultiPacket		= 1;
 	const uint32 uSupportPreview		= 0; // No network preview at all.
 	const uint32 uPeerCache			= 0; // No peercache for aMule, baby
-	const uint32 uUnicodeSupport		= 1; 
+	const uint32 uUnicodeSupport		= 1;
 	const uint32 nAICHVer			= 1; // AICH is ENABLED right now.
 
 	CTagVarInt tagMisOptions(CT_EMULE_MISCOPTIONS1,
@@ -1121,7 +1117,7 @@ void CUpDownClient::SendHelloTypePacket(CMemFile* data)
 				(uPeerCache			<< 1*3) |
 				(uNoViewSharedFiles		<< 1*2) |
 				(uMultiPacket			<< 1*1) |
-				(uSupportPreview		<< 1*0) 
+				(uSupportPreview		<< 1*0)
 				, GetVBTTags() ? 0 : 32);
 	tagMisOptions.WriteTagToFile(data);
 
@@ -1132,7 +1128,7 @@ void CUpDownClient::SendHelloTypePacket(CMemFile* data)
 	const uint32 uReserved			= 0; // mod bit
 	const uint32 uSupportsCryptLayer	= thePrefs::IsClientCryptLayerSupported() ? 1 : 0;
 	const uint32 uRequestsCryptLayer	= thePrefs::IsClientCryptLayerRequested() ? 1 : 0;
-	const uint32 uRequiresCryptLayer	= thePrefs::IsClientCryptLayerRequired() ? 1 : 0;	
+	const uint32 uRequiresCryptLayer	= thePrefs::IsClientCryptLayerRequired() ? 1 : 0;
 	const uint32 uSupportsSourceEx2		= 1;
 #ifdef AMULE_DAEMON
 // captcha for daemon/remotegui not supported for now
@@ -1144,10 +1140,10 @@ void CUpDownClient::SendHelloTypePacket(CMemFile* data)
 	const uint32 uDirectUDPCallback		= (Kademlia::CKademlia::IsRunning() && Kademlia::CKademlia::IsFirewalled()
 						   && !Kademlia::CUDPFirewallTester::IsFirewalledUDP(true) && Kademlia::CUDPFirewallTester::IsVerified()) ? 1 : 0;
 
-	CTagVarInt tagMisOptions2(CT_EMULE_MISCOPTIONS2, 
+	CTagVarInt tagMisOptions2(CT_EMULE_MISCOPTIONS2,
 //				(RESERVED				     )
 				(uDirectUDPCallback	<< 12) |
- 				(uSupportsCaptcha	<< 11) |	
+				(uSupportsCaptcha	<< 11) |
 				(uSupportsSourceEx2	<< 10) |
 				(uRequiresCryptLayer	<<  9) |
 				(uRequestsCryptLayer	<<  8) |
@@ -1155,18 +1151,18 @@ void CUpDownClient::SendHelloTypePacket(CMemFile* data)
 				(uReserved		<<  6) |
 				(uExtMultiPacket	<<  5) |
 				(uSupportLargeFiles	<<  4) |
-				(uKadVersion		<<  0) 
+				(uKadVersion		<<  0)
 				, GetVBTTags() ? 0 : 32	);
 	tagMisOptions2.WriteTagToFile(data);
 
 	const uint32 nOSInfoSupport			= 1; // We support OS_INFO
 	const uint32 nValueBasedTypeTags	= 0; // Experimental, disabled
-	
+
 	CTagVarInt tagMisCompatOptions(CT_EMULECOMPAT_OPTIONS,
 				(nValueBasedTypeTags	<< 1*1) |
-				(nOSInfoSupport			<< 1*0) 
+				(nOSInfoSupport			<< 1*0)
 				, GetVBTTags() ? 0 : 32);
-	
+
 	tagMisCompatOptions.WriteTagToFile(data);
 
 #ifdef __SVN__
@@ -1207,11 +1203,11 @@ void CUpDownClient::ProcessMuleCommentPacket(const byte* pachPacket, uint32 nSiz
 		AddDebugLogLineN( logClient, wxString(wxT("Rating for file '")) << m_clientFilename << wxT("' received: ") << m_iRating);
 	}
 
-	// The comment is unicoded, with a uin32 len and safe read 
+	// The comment is unicoded, with a uin32 len and safe read
 	// (won't break if string size is < than advertised len)
 	// Truncated to MAXFILECOMMENTLEN size
 	m_strComment = data.ReadString((GetUnicodeSupport() != utf8strNone), 4 /* bytes (it's a uint32)*/, true).Left(MAXFILECOMMENTLEN);
-	
+
 	AddDebugLogLineN( logClient, wxString(wxT("Description for file '")) << m_clientFilename << wxT("' received: ") << m_strComment);
 
 	// Update file rating
@@ -1225,14 +1221,14 @@ void CUpDownClient::ClearDownloadBlockRequests()
 		std::list<Requested_Block_Struct*>::iterator it = m_DownloadBlocks_list.begin();
 		for (; it != m_DownloadBlocks_list.end(); ++it) {
 			Requested_Block_Struct* cur_block = *it;
-			
+
 			if (m_reqfile){
 				m_reqfile->RemoveBlockFromList(cur_block->StartOffset, cur_block->EndOffset);
 			}
-			
+
 			delete cur_block;
 		}
-		
+
 		m_DownloadBlocks_list.clear();
 	}
 
@@ -1240,7 +1236,7 @@ void CUpDownClient::ClearDownloadBlockRequests()
 		std::list<Pending_Block_Struct*>::iterator it = m_PendingBlocks_list.begin();
 		for (; it != m_PendingBlocks_list.end(); ++it) {
 			Pending_Block_Struct* pending = *it;
-			
+
 			if (m_reqfile) {
 				m_reqfile->RemoveBlockFromList(pending->block->StartOffset, pending->block->EndOffset);
 			}
@@ -1251,10 +1247,10 @@ void CUpDownClient::ClearDownloadBlockRequests()
 				inflateEnd(pending->zStream);
 				delete pending->zStream;
 			}
-			
+
 			delete pending;
 		}
-		
+
 		m_PendingBlocks_list.clear();
 	}
 }
@@ -1268,7 +1264,7 @@ bool CUpDownClient::Disconnected(const wxString& DEBUG_ONLY(strReason), bool bFr
 		AddDebugLogLineN(logClient, wxT("Disconnected() called for already deleted client on ip ") + Uint32toStringIP(GetConnectIP()));
 		return false;
 	}
-	
+
 	// was this a direct callback?
 	if (m_dwDirectCallbackTimeout != 0) {
 		theApp->clientlist->RemoveDirectCallback(this);
@@ -1287,7 +1283,7 @@ bool CUpDownClient::Disconnected(const wxString& DEBUG_ONLY(strReason), bool bFr
 
 	//If this is a KAD client object, just delete it!
 	SetKadState(KS_NONE);
-	
+
 	if (GetUploadState() == US_UPLOADING) {
 		// sets US_NONE
 		theApp->uploadqueue->RemoveFromUploadQueue(this);
@@ -1321,7 +1317,7 @@ bool CUpDownClient::Disconnected(const wxString& DEBUG_ONLY(strReason), bool bFr
 
 	SourceItemType source_type = UNAVAILABLE_SOURCE;
 	SourceItemType peer_type = UNAVAILABLE_SOURCE;
-	
+
 	//check if this client is needed in any way, if not delete it
 	bool bDelete = true;
 	switch (m_nUploadState) {
@@ -1330,10 +1326,10 @@ bool CUpDownClient::Disconnected(const wxString& DEBUG_ONLY(strReason), bool bFr
 			peer_type = AVAILABLE_SOURCE;
 			break;
 	};
-	
+
 	switch (m_nDownloadState) {
 		case DS_ONQUEUE:
-			source_type = A4AF_SOURCE; // Will be checked.		
+			source_type = A4AF_SOURCE; // Will be checked.
 		case DS_TOOMANYCONNS:
 		case DS_NONEEDEDPARTS:
 		case DS_LOWTOLOWIP:
@@ -1388,16 +1384,16 @@ bool CUpDownClient::Disconnected(const wxString& DEBUG_ONLY(strReason), bool bFr
 	} else {
 		Notify_SharedCtrlRefreshClient(ECID(), peer_type);
 		Notify_SourceCtrlUpdateSource(ECID(), source_type);
-		
+
 		m_fHashsetRequesting = 0;
 		SetSentCancelTransfer(0);
 		m_bHelloAnswerPending = false;
 		m_fSentOutOfPartReqs = 0;
 	}
 	AddDebugLogLineN(logClient, CFormat(wxT("--- %s client D:%d U:%d \"%s\"; Reason was %s"))
-		% (bDelete ? wxT("Deleted") : wxT("Disconnected")) 
+		% (bDelete ? wxT("Deleted") : wxT("Disconnected"))
 		% m_nDownloadState % m_nUploadState % GetClientFullInfo() % strReason );
-	
+
 	return bDelete;
 }
 
@@ -1425,14 +1421,14 @@ bool CUpDownClient::TryToConnect(bool bIgnoreMaxCon)
 		} else {
 			return true;
 		}
-	}	
-	
+	}
+
 	// Ipfilter check
 	uint32 uClientIP = GetIP();
 	if (uClientIP == 0 && !HasLowID()) {
 		uClientIP = wxUINT32_SWAP_ALWAYS(m_nUserIDHybrid);
 	}
-	
+
 	if (uClientIP) {
 		// Although we filter all received IPs (server sources, source exchange) and all incomming connection attempts,
 		// we do have to filter outgoing connection attempts here too, because we may have updated the ip filter list
@@ -1481,7 +1477,7 @@ bool CUpDownClient::TryToConnect(bool bIgnoreMaxCon)
 		}
 
 		//We already know we are not firewalled here as the above condition already detected LowID->LowID and returned.
-		//If ANYTHING changes with the "if(!theApp->CanDoCallback(this))" above that will let you fall through 
+		//If ANYTHING changes with the "if(!theApp->CanDoCallback(this))" above that will let you fall through
 		//with the condition that the source is firewalled and we are firewalled, we must
 		//recheck it before the this check..
 		if (HasValidBuddyID() && !GetBuddyIP() && !GetBuddyPort() && !theApp->serverconnect->IsLocalServer(GetServerIP(), GetServerPort())
@@ -1497,7 +1493,7 @@ bool CUpDownClient::TryToConnect(bool bIgnoreMaxCon)
 			}
 		}
 	}
-	
+
 	if (!m_socket || !m_socket->IsConnected()) {
 		if (m_socket) {
 			m_socket->Safe_Delete();
@@ -1506,15 +1502,15 @@ bool CUpDownClient::TryToConnect(bool bIgnoreMaxCon)
 	} else {
 		ConnectionEstablished();
 		return true;
-	}	
-	
-	
+	}
+
+
 	if (HasLowID() && SupportsDirectUDPCallback() && thePrefs::GetEffectiveUDPPort() != 0 && GetConnectIP() != 0) { // LOWID with DirectCallback
 		if (m_dwDirectCallbackTimeout != 0) {
 			AddDebugLogLineN(logClient, wxT("ERROR: Trying Direct UDP Callback while already trying to connect to client on ip ") + Uint32toStringIP(GetConnectIP()));
 			return true;	// We're already trying a direct connection to this client
 		}
-		// a direct callback is possible - since no other parties are involved and only one additional packet overhead 
+		// a direct callback is possible - since no other parties are involved and only one additional packet overhead
 		// is used we basically handle it like a normal connection try, no restrictions apply
 		// we already check above with !theApp->CanDoCallback(this) if any callback is possible at all
 		m_dwDirectCallbackTimeout = ::GetTickCount() + SEC2MS(45);
@@ -1554,7 +1550,7 @@ bool CUpDownClient::TryToConnect(bool bIgnoreMaxCon)
 			SetDownloadState(DS_WAITCALLBACK);
 		} else {
 			if (GetUploadState() == US_NONE && (!GetRemoteQueueRank() || m_bReaskPending)) {
-				
+
 				if( !HasValidBuddyID() ) {
 					theApp->downloadqueue->RemoveSource(this);
 					if (Disconnected(wxT("LowID and US_NONE and QR=0"))) {
@@ -1563,7 +1559,7 @@ bool CUpDownClient::TryToConnect(bool bIgnoreMaxCon)
 					}
 					return true;
 				}
-				
+
 				if( !Kademlia::CKademlia::IsConnected() ) {
 					//We are not connected to Kad and this is a Kad Firewalled source..
 					theApp->downloadqueue->RemoveSource(this);
@@ -1573,8 +1569,8 @@ bool CUpDownClient::TryToConnect(bool bIgnoreMaxCon)
 					}
 					return true;
 				}
-				
-               	 if( GetDownloadState() == DS_WAITCALLBACK ) {
+
+			 if( GetDownloadState() == DS_WAITCALLBACK ) {
 					if( GetBuddyIP() && GetBuddyPort()) {
 						CMemFile bio(34);
 						bio.WriteUInt128(Kademlia::CUInt128(GetBuddyID()));
@@ -1607,7 +1603,7 @@ bool CUpDownClient::TryToConnect(bool bIgnoreMaxCon)
 					m_bReaskPending = true;
 					SetDownloadState(DS_ONQUEUE);
 				}
-			}	
+			}
 		}
 	} else { // HIGHID
 		if (!Connect()) {
@@ -1620,7 +1616,7 @@ bool CUpDownClient::TryToConnect(bool bIgnoreMaxCon)
 bool CUpDownClient::Connect()
 {
 	m_hasbeenobfuscatinglately = false;
-	
+
 	if (!m_socket->IsOk()) {
 		// Enable or disable crypting based on our and the remote clients preference
 		if (HasValidHash() && SupportsCryptLayer() && thePrefs::IsClientCryptLayerSupported() && (RequestsCryptLayer() || thePrefs::IsClientCryptLayerRequested())){
@@ -1634,7 +1630,7 @@ bool CUpDownClient::Connect()
 		AddDebugLogLineN(logClient, wxT("Trying to connect to ") + Uint32_16toStringIP_Port(GetConnectIP(),GetUserPort()));
 		m_socket->Connect(tmp, false);
 		// We should send hello packets AFTER connecting!
-		// so I moved it to OnConnect	
+		// so I moved it to OnConnect
 		return true;
 	} else {
 		return false;
@@ -1643,12 +1639,12 @@ bool CUpDownClient::Connect()
 
 void CUpDownClient::ConnectionEstablished()
 {
-	/* Kry - First thing, check if this client was just used to retrieve 
+	/* Kry - First thing, check if this client was just used to retrieve
 	   info. That's some debug thing for myself... check connection_reason
 	   definition */
-	
+
 	m_hasbeenobfuscatinglately = (m_socket && m_socket->IsConnected() && m_socket->IsObfusicating());
-	
+
 	#ifdef __DEBUG__
 	if (!connection_reason.IsEmpty()) {
 		AddLogLineN(CFormat(wxT("Got client info checking for %s: %s\nDisconnecting and deleting.")) % connection_reason % GetClientFullInfo());
@@ -1657,13 +1653,13 @@ void CUpDownClient::ConnectionEstablished()
 		return;
 	}
 	#endif
-	
+
 	// Check if we should use this client to retrieve our public IP
 	// Ignore local ip on GetPublicIP (could be wrong)
 	if (theApp->GetPublicIP(true) == 0 && theApp->IsConnectedED2K()) {
 		SendPublicIPRequest();
 	}
-	
+
 	// was this a direct callback?
 	if (m_dwDirectCallbackTimeout != 0){
 		theApp->clientlist->RemoveDirectCallback(this);
@@ -1691,7 +1687,7 @@ void CUpDownClient::ConnectionEstablished()
 	if (GetChatState() == MS_CONNECTING) {
 		SetChatState( MS_CHATTING );
 	}
-	
+
 	if (GetChatState() == MS_CHATTING) {
 		bool result = true;
 		if (!m_pendingMessage.IsEmpty()) {
@@ -1731,17 +1727,19 @@ void CUpDownClient::ConnectionEstablished()
 		CPacket* packet = new CPacket(m_fSharedDirectories ? OP_ASKSHAREDDIRS : OP_ASKSHAREDFILES, 0, OP_EDONKEYPROT);
 		theStats::AddUpOverheadOther(packet->GetPacketSize());
 		SendPacket(packet,true,true);
+#ifdef __DEBUG__
 		if (m_fSharedDirectories) {
 			AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_ASKSHAREDDIRS to ") + GetFullIP() );
 		} else {
 			AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_ASKSHAREDFILES to ") + GetFullIP() );
 		}
+#endif
 	}
-	
+
 	while (!m_WaitingPackets_list.empty()) {
 		CPacket* packet = m_WaitingPackets_list.front();
 		m_WaitingPackets_list.pop_front();
-		
+
 		SendPacket(packet);
 	}
 }
@@ -1757,7 +1755,7 @@ int CUpDownClient::GetHashType() const
 		return SO_EMULE;
 	}
 
- 	if ( m_UserHash[5] == 'M' && m_UserHash[14] == 'L' ) {
+	if ( m_UserHash[5] == 'M' && m_UserHash[14] == 'L' ) {
 		return SO_MLDONKEY;
 	}
 
@@ -1790,7 +1788,7 @@ void CUpDownClient::ReGetClientSoft()
 	int iHashType = GetHashType();
 	wxString clientModString;
 	if (iHashType == SO_EMULE) {
-		
+
 		m_clientSoft = m_byCompatibleClient;
 		m_clientSoftString = GetSoftName(m_clientSoft);
 		// Special issues:
@@ -1801,9 +1799,9 @@ void CUpDownClient::ReGetClientSoft()
 		if ((m_clientSoft == SO_LXMULE) && (GetMuleVersion() > 0x26) && (GetMuleVersion() != 0x99)) {
 			m_clientSoftString += CFormat(_(" (Fake eMule version %#x)")) % GetMuleVersion();
 		}
-		if ((m_clientSoft == SO_EMULE) && 
+		if ((m_clientSoft == SO_EMULE) &&
 			(
-				wxString(GetClientModString()).MakeLower().Find(wxT("xmule")) != -1 
+				wxString(GetClientModString()).MakeLower().Find(wxT("xmule")) != -1
 				|| GetUserName().Find(wxT("xmule.")) != -1
 			)
 		) {
@@ -1814,7 +1812,7 @@ void CUpDownClient::ReGetClientSoft()
 			} else {
 				m_clientSoftString = _("xMule (Fake eMule)"); // don't use GetSoftName, it's not lmule.
 			}
-		}		
+		}
 		// Now, what if we don't know this SO_ID?
 		if (m_clientSoftString.IsEmpty()) {
 			if(m_bIsML) {
@@ -1829,7 +1827,7 @@ void CUpDownClient::ReGetClientSoft()
 				if (
 					// Exceptions:
 					(m_byCompatibleClient != 0xf0)	// Chinese leech mod
-					&& (1==1) 						// Your ad here
+					&& (1==1)						// Your ad here
 					) {
 					AddLogLineNS(CFormat(wxT("Compatible client found with ET_COMPATIBLECLIENT of %x")) % m_byCompatibleClient);
 				}
@@ -1874,7 +1872,7 @@ void CUpDownClient::ReGetClientSoft()
 				case SO_HYDRANODE:
 				case SO_MLDONKEY:
 				case SO_NEW_MLDONKEY:
-				case SO_NEW2_MLDONKEY:					
+				case SO_NEW2_MLDONKEY:
 					// Kry - xMule started sending correct version tags on 1.9.1b.
 					// It only took them 4 months, and being told by me and the
 					// eMule+ developers, so I think they're slowly getting smarter.
@@ -2126,7 +2124,7 @@ void CUpDownClient::SendSignaturePacket(){
 	if (bUseV2) {
 		data.WriteUInt8(byChaIPKind);
 	}
-	
+
 	CPacket* packet = new CPacket(data, OP_EMULEPROT, OP_SIGNATURE);
 
 	theStats::AddUpOverheadOther(packet->GetPacketSize());
@@ -2201,6 +2199,7 @@ void CUpDownClient::ProcessSignaturePacket(const byte* pachPacket, uint32 nSize)
 		return;
 	}
 
+	// cppcheck-suppress duplicateBranch
 	if (theApp->clientcredits->VerifyIdent(credits, pachPacket+1, pachPacket[0], GetIP(), byChaIPKind ) ) {
 		// result is saved in function above
 		AddDebugLogLineN( logClient, CFormat( wxT("'%s' has passed the secure identification, V2 State: %i") ) % GetUserName() % byChaIPKind );
@@ -2213,8 +2212,8 @@ void CUpDownClient::ProcessSignaturePacket(const byte* pachPacket, uint32 nSize)
 
 void CUpDownClient::SendSecIdentStatePacket(){
 	// check if we need public key and signature
-	uint8 nValue = 0;
 	if (credits){
+		uint8 nValue = 0;
 		if (theApp->CryptoAvailable()){
 			if (credits->GetSecIDKeyLen() == 0) {
 				nValue = IS_KEYANDSIGNEEDED;
@@ -2301,6 +2300,7 @@ bool CUpDownClient::CheckHandshakeFinished() const
 }
 
 
+#ifdef __DEBUG__
 wxString CUpDownClient::GetClientFullInfo()
 {
 	if (m_clientVerString.IsEmpty()) {
@@ -2311,11 +2311,11 @@ wxString CUpDownClient::GetClientFullInfo()
 		% ( m_Username.IsEmpty() ? wxString(_("Unknown")) : m_Username )
 		% GetFullIP()
 		% GetUserPort()
-		% m_clientSoftString 
+		% m_clientSoftString
 		% m_clientVerString
 		% m_strModVersion;
 }
-
+#endif
 
 wxString CUpDownClient::GetClientShortInfo()
 {
@@ -2325,7 +2325,7 @@ wxString CUpDownClient::GetClientShortInfo()
 
 	return CFormat( wxT("'%s' (%s %s %s)") )
 		% ( m_Username.IsEmpty() ? wxString(_("Unknown")) : m_Username )
-		% m_clientSoftString 
+		% m_clientSoftString
 		% m_clientVerString
 		% m_strModVersion;
 }
@@ -2380,7 +2380,7 @@ float CUpDownClient::SetDownloadLimit(uint32 reducedownload)
 		wxASSERT( m_socket );
 
 	float kBpsClient = CalculateKBpsDown();
-	
+
 	if ( m_socket ) {
 
 		if (reducedownload) {
@@ -2389,27 +2389,27 @@ float CUpDownClient::SetDownloadLimit(uint32 reducedownload)
 			uint32 limit = (uint32)(reducedownload * kBpsClient * 1024.0 / 100000.0 * CORE_TIMER_PERIOD);
 
 			if(limit<1024 && reducedownload >= 200) {
-				// If we're going up and this download is < 1kB, 
+				// If we're going up and this download is < 1kB,
 				// we want it to go up fast. Can be reduced later,
-				// and it'll probably be in a more fair way with 
+				// and it'll probably be in a more fair way with
 				// other downloads that are faster.
 				limit +=1024;
 			} else if(limit == 0) {
-				// This download is not transferring yet... make it 
-				// 1024 so we don't fill the TCP stack and lose the 
+				// This download is not transferring yet... make it
+				// 1024 so we don't fill the TCP stack and lose the
 				// connection.
 				limit = 1024;
 			}
-			
+
 			m_socket->SetDownloadLimit(limit);
 		} else {
 			m_socket->DisableDownloadLimit();
-		}		
-		
+		}
+
 	} else {
 		AddLogLineNS(CFormat(wxT("CAUGHT DEAD SOCKET IN SETDOWNLOADLIMIT() WITH SPEED %f")) % kBpsClient);
 	}
-	
+
 	return kBpsClient;
 }
 
@@ -2428,7 +2428,7 @@ void CUpDownClient::SetIP( uint32 val )
 	m_dwUserIP = val;
 
 	m_nConnectIP = val;
-	
+
 	m_FullUserIP = val;
 }
 
@@ -2448,7 +2448,7 @@ EUtf8Str CUpDownClient::GetUnicodeSupport() const
 }
 
 void CUpDownClient::SetSpammer(bool bVal)
-{ 
+{
 	if (bVal) {
 		Ban();
 	} else if (IsBanned() && m_fIsSpammer) {
@@ -2463,10 +2463,10 @@ uint8 CUpDownClient::GetSecureIdentState()
 		if (!SecIdentSupRec) {
 			// This can be caused by a 0.30x based client which sends the old
 			// style Hello packet, and the mule info packet, but between them they
-			// send a secure ident state packet (after a hello but before we have 
+			// send a secure ident state packet (after a hello but before we have
 			// the SUI capabilities). This is a misbehaving client, and somehow I
 			// feel like it should be dropped. But then again, it won't harm to use
-			// this SUI state if they are reporting no SUI (won't be used) and if 
+			// this SUI state if they are reporting no SUI (won't be used) and if
 			// they report using SUI on the mule info packet, it's ok to use it.
 
 			AddDebugLogLineN(logClient, wxT("A client sent secure ident state before telling us the SUI capabilities"));
@@ -2500,7 +2500,7 @@ bool CUpDownClient::SendChatMessage(const wxString& message)
 			// There must be a message to send
 			// - except if we got disconnected. No need to assert therefore.
 		}
-		m_pendingMessage += message;		
+		m_pendingMessage += message;
 		return false;
 	}
 	if (IsConnected()) {
@@ -2539,7 +2539,7 @@ void CUpDownClient::SetBuddyID(const byte* pucBuddyID)
 // Kad added by me
 
 bool CUpDownClient::SendBuddyPing() {
-	SetLastBuddyPingPongTime();	
+	SetLastBuddyPingPongTime();
 	CPacket* buddyPing = new CPacket(OP_BUDDYPING, 0, OP_EMULEPROT);
 	theStats::AddUpOverheadKad(buddyPing->GetPacketSize());
 	AddDebugLogLineN(logLocalClient,wxT("Local Client: OP_BUDDYPING to ") + GetFullIP());
@@ -2557,11 +2557,11 @@ void CUpDownClient::UpdateStats()
 		} else if (m_lastClientSoft != (uint32)(-1)) {
 			theStats::RemoveKnownClient(m_lastClientSoft, m_lastClientVersion, m_lastOSInfo);
 		}
-		
+
 		m_lastClientSoft = m_clientSoft;
 		m_lastClientVersion = m_nClientVersion;
 		m_lastOSInfo = m_sClientOSInfo;
-		
+
 		if (m_clientSoft == SO_UNKNOWN) {
 			theStats::AddUnknownClient();
 		} else {
@@ -2570,42 +2570,42 @@ void CUpDownClient::UpdateStats()
 	}
 }
 
-bool CUpDownClient::IsIdentified() const 
+bool CUpDownClient::IsIdentified() const
 {
 	return (credits && credits->GetCurrentIdentState(GetIP()) == IS_IDENTIFIED);
 }
 
-bool CUpDownClient::IsBadGuy() const 
+bool CUpDownClient::IsBadGuy() const
 {
 	return (credits && credits->GetCurrentIdentState(GetIP()) == IS_IDBADGUY);
 }
 
-bool CUpDownClient::SUIFailed() const 
+bool CUpDownClient::SUIFailed() const
 {
 	return (credits && credits->GetCurrentIdentState(GetIP()) == IS_IDFAILED);
 }
 
-bool CUpDownClient::SUINeeded() const 
+bool CUpDownClient::SUINeeded() const
 {
 	return (credits && credits->GetCurrentIdentState(GetIP()) == IS_IDNEEDED);
 }
 
-bool CUpDownClient::SUINotSupported() const 
+bool CUpDownClient::SUINotSupported() const
 {
 	return (credits && credits->GetCurrentIdentState(GetIP()) == IS_NOTAVAILABLE);
 }
 
-uint64 CUpDownClient::GetDownloadedTotal() const 
+uint64 CUpDownClient::GetDownloadedTotal() const
 {
 	return credits ? credits->GetDownloadedTotal() : 0;
 }
-	
-uint64 CUpDownClient::GetUploadedTotal() const 
+
+uint64 CUpDownClient::GetUploadedTotal() const
 {
 	return credits ? credits->GetUploadedTotal() : 0;
 }
-	
-double CUpDownClient::GetScoreRatio() const 
+
+double CUpDownClient::GetScoreRatio() const
 {
 	return credits ? credits->GetScoreRatio(GetIP(), theApp->CryptoAvailable()) : 0;
 }
@@ -2615,17 +2615,17 @@ const wxString CUpDownClient::GetServerName() const
 	wxString ret;
 	wxString srvaddr = Uint32toStringIP(GetServerIP());
 	CServer* cserver = theApp->serverlist->GetServerByAddress(
-		srvaddr, GetServerPort()); 
+		srvaddr, GetServerPort());
 	if (cserver) {
 		ret = cserver->GetListName();
 	} else {
 		ret = _("Unknown");
 	}
-	
+
 	return ret;
 }
 
-bool CUpDownClient::ShouldReceiveCryptUDPPackets() const 
+bool CUpDownClient::ShouldReceiveCryptUDPPackets() const
 {
 	return (thePrefs::IsClientCryptLayerSupported() && SupportsCryptLayer() && theApp->GetPublicIP() != 0
 		&& HasValidHash() && (thePrefs::IsClientCryptLayerRequested() || RequestsCryptLayer()) );
@@ -2770,7 +2770,7 @@ void CUpDownClient::ProcessChatMessage(wxString message)
 					SafeSendPacket(packet);
 					return; // nothing more todo
 				}
-			}	
+			}
 		}
 	}
 
@@ -2839,13 +2839,13 @@ void CUpDownClient::SendSharedDirectories()
 {
 		// This list will contain all (unique) folders.
 		PathList foldersToSend;
-	   
+
 		// The shared folders
 		const unsigned folderCount = theApp->glob_prefs->shareddir_list.size();
 		for (unsigned i = 0; i < folderCount; ++i) {
 			foldersToSend.push_back(theApp->glob_prefs->shareddir_list[i]);
 		}
-		
+
 		// ... the categories folders ... (category 0 -> incoming)
 		for (unsigned i = 0; i < theApp->glob_prefs->GetCatCount(); ++i) {
 			foldersToSend.push_back(theApp->glob_prefs->GetCategory(i)->path);
@@ -2854,10 +2854,10 @@ void CUpDownClient::SendSharedDirectories()
 		// Strip duplicates
 		foldersToSend.sort();
 		foldersToSend.unique();
-		
+
 		// Build packet
 		CMemFile tempfile(80);
-		tempfile.WriteUInt32(foldersToSend.size());
+		tempfile.WriteUInt32(foldersToSend.size() + 1);	// + 1 for the incomplete files
 
 		PathList::iterator it = foldersToSend.begin();
 		for (; it != foldersToSend.end(); ++it) {
@@ -2879,7 +2879,7 @@ void CUpDownClient::SendSharedDirectories()
 void CUpDownClient::SendSharedFilesOfDirectory(const wxString& strReqDir)
 {
 	CKnownFilePtrList list;
-	
+
 	if (strReqDir == OP_INCOMPLETE_SHARED_FILES) {
 		// get all shared files from download queue
 		int iQueuedFiles = theApp->downloadqueue->GetFileCount();
@@ -2903,14 +2903,14 @@ void CUpDownClient::SendSharedFilesOfDirectory(const wxString& strReqDir)
 	CMemFile tempfile(80);
 	tempfile.WriteString(strReqDir, GetUnicodeSupport());
 	tempfile.WriteUInt32(list.size());
-	
+
 	while (!list.empty()) {
 		if (!list.front()->IsLargeFile() || SupportsLargeFiles()) {
 			list.front()->CreateOfferedFilePacket(&tempfile, NULL, this);
 		}
 		list.pop_front();
 	}
-	
+
 	CPacket* replypacket = new CPacket(tempfile, OP_EDONKEYPROT, OP_ASKSHAREDFILESDIRANS);
 	theStats::AddUpOverheadOther(replypacket->GetPacketSize());
 	AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_ASKSHAREDFILESDIRANS to ") + GetFullIP() );
@@ -2946,7 +2946,7 @@ void CUpDownClient::ProcessFirewallCheckUDPRequest(CMemFile* data)
 		return;
 	}
 
-	// first search if we know this IP already, if so the result might be biased and we need tell the requester 
+	// first search if we know this IP already, if so the result might be biased and we need tell the requester
 	bool errorAlreadyKnown = false;
 	if (GetUploadState() != US_NONE || GetDownloadState() != DS_NONE || GetChatState() != MS_NONE) {
 		errorAlreadyKnown = true;
@@ -2961,9 +2961,9 @@ void CUpDownClient::ProcessFirewallCheckUDPRequest(CMemFile* data)
 		//DebugLogError(_T("UDP Firewallcheck requested with Intern Port == 0 (%s)"), GetClientFullInfo());
 		return;
 	}
-// 	if (senderKey == 0)
-// 		DebugLogWarning(_T("UDP Firewallcheck requested with SenderKey == 0 (%s)"), GetClientFullInfo());
-	
+//	if (senderKey == 0)
+//		DebugLogWarning(_T("UDP Firewallcheck requested with SenderKey == 0 (%s)"), GetClientFullInfo());
+
 	CMemFile testPacket1;
 	testPacket1.WriteUInt8(errorAlreadyKnown ? 1 : 0);
 	testPacket1.WriteUInt16(remoteInternPort);
diff --git a/src/BitVector.h b/src/BitVector.h
index 69d6028..9576a11 100644
--- a/src/BitVector.h
+++ b/src/BitVector.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -123,7 +123,7 @@ public:
 			for (uint32 i = 0; !foundFalse && i < lastByte; i++) {
 				foundFalse = m_vector[i] != 0xff;
 			}
-			// This is really just a caching of information, 
+			// This is really just a caching of information,
 			// so m_allTrue is mutable and AllTrue() still const.
 			m_allTrue = foundFalse ? 0 : 1;
 		}
diff --git a/src/CFile.cpp b/src/CFile.cpp
index aab1d24..7c6f3ef 100644
--- a/src/CFile.cpp
+++ b/src/CFile.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,7 +39,7 @@
 #endif
 
 // standard
-#if defined(__WXMSW__) && !defined(__GNUWIN32__) && !defined(__WXWINE__) && !defined(__WXMICROWIN__)
+#if defined(__WINDOWS__ ) && !defined(__GNUWIN32__) && !defined(__WXWINE__) && !defined(__WXMICROWIN__)
 #	include <io.h>
 #	ifndef __SALFORDC__
 #		define   WIN32_LEAN_AND_MEAN
@@ -49,7 +49,9 @@
 #		define   NOGDI
 #		define   NOGDICAPMASKS
 #		define   NOMETAFILE
-#		define   NOMINMAX
+#ifndef NOMINMAX
+	#define   NOMINMAX
+#endif
 #		define   NOMSG
 #		define   NOOPENFILE
 #		define   NORASTEROPS
@@ -90,14 +92,14 @@ char* mktemp( char * path ) { return path ;}
 #	define   O_BINARY    (0)
 #endif  //__UNIX__
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 #include <wx/msw/mslu.h>
 #endif
 
 
 // The following defines handle different names across platforms,
 // and ensures that we use 64b IO on windows (only 32b by default).
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	#define FLUSH_FD(x)			_commit(x)
 	#define SEEK_FD(x, y, z)		_lseeki64(x, y, z)
 	#define TELL_FD(x)			_telli64(x)
@@ -167,13 +169,13 @@ CFile::CFile(const wxString& fileName, OpenMode mode)
 
 
 CFile::~CFile()
-{ 
+{
 	if (IsOpened()) {
 		// If the writing gets aborted, dtor is still called.
 		// In this case do NOT replace the original file with the
 		// probably broken new one!
 		m_safeWrite = false;
-		Close(); 
+		Close();
 	}
 }
 
@@ -214,7 +216,7 @@ bool CFile::Create(const wxString& path, bool overwrite, int accessMode)
 bool CFile::Open(const wxString& fileName, OpenMode mode, int accessMode)
 {
 	MULE_VALIDATE_PARAMS(fileName.Length(), wxT("CFile: Cannot open, empty path."));
-	
+
 	return Open(CPath(fileName), mode, accessMode);
 }
 
@@ -224,9 +226,9 @@ bool CFile::Open(const CPath& fileName, OpenMode mode, int accessMode)
 	MULE_VALIDATE_PARAMS(fileName.IsOk(), wxT("CFile: Cannot open, empty path."));
 
 	if (IsOpened()) {
-		Close();	
+		Close();
 	}
-	
+
 	m_safeWrite = false;
 	m_filePath = fileName;
 
@@ -239,7 +241,7 @@ bool CFile::Open(const CPath& fileName, OpenMode mode, int accessMode)
 		case read:
 			flags |= O_RDONLY;
 			break;
-		
+
 		case write_append:
 			if (fileName.FileExists())
 			{
@@ -248,28 +250,28 @@ bool CFile::Open(const CPath& fileName, OpenMode mode, int accessMode)
 			}
 			//else: fall through as write_append is the same as write if the
 			//      file doesn't exist
-		
+
 		case write:
 			flags |= O_WRONLY | O_CREAT | O_TRUNC;
 			break;
-		
+
 		case write_safe:
 			flags |= O_WRONLY | O_CREAT | O_TRUNC;
 			m_filePath = m_filePath.AppendExt(wxT(".new"));
 			m_safeWrite = true;
 			break;
-		
+
 		case write_excl:
 			flags |= O_WRONLY | O_CREAT | O_EXCL;
 			break;
-		
+
 		case read_write:
 			flags |= O_RDWR;
-        	break;
+		break;
 	}
-	
+
 	// Windows needs wide character file names
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	m_fd = _wopen(m_filePath.GetRaw().c_str(), flags, accessMode);
 #else
 	Unicode2CharBuf tmpFileName = filename2char(m_filePath.GetRaw());
@@ -277,7 +279,7 @@ bool CFile::Open(const CPath& fileName, OpenMode mode, int accessMode)
 	m_fd = open(tmpFileName, flags, accessMode);
 #endif
 	syscall_check(m_fd != fd_invalid, m_filePath, wxT("opening file"));
-	
+
 	return IsOpened();
 }
 
@@ -290,13 +292,13 @@ void CFile::Reopen(OpenMode mode)
 }
 
 
-bool CFile::Close() 
+bool CFile::Close()
 {
 	MULE_VALIDATE_STATE(IsOpened(), wxT("CFile: Cannot close closed file."));
 
 	bool closed = (close(m_fd) != -1);
 	syscall_check(closed, m_filePath, wxT("closing file"));
-	
+
 	m_fd = fd_invalid;
 
 	if (m_safeWrite) {
@@ -306,7 +308,7 @@ bool CFile::Close()
 			closed = CPath::RenameFile(filePathTemp, m_filePath, true);
 		}
 	}
-	
+
 	return closed;
 }
 
@@ -314,11 +316,11 @@ bool CFile::Close()
 bool CFile::Flush()
 {
 	MULE_VALIDATE_STATE(IsOpened(), wxT("CFile: Cannot flush closed file."));
-	
+
 	bool flushed = (FLUSH_FD(m_fd) != -1);
 	syscall_check(flushed, m_filePath, wxT("flushing file"));
 
-	return flushed;	
+	return flushed;
 }
 
 
@@ -326,11 +328,11 @@ sint64 CFile::doRead(void* buffer, size_t count) const
 {
 	MULE_VALIDATE_PARAMS(buffer, wxT("CFile: Invalid buffer in read operation."));
 	MULE_VALIDATE_STATE(IsOpened(), wxT("CFile: Cannot read from closed file."));
-	
+
 	size_t totalRead = 0;
 	while (totalRead < count) {
 		int current = ::read(m_fd, (char*)buffer + totalRead, count - totalRead);
-		
+
 		if (current == -1) {
 			// Read error, nothing we can do other than abort.
 			throw CIOFailureException(wxString(wxT("Error reading from file: ")) + wxSysErrorMsg());
@@ -340,10 +342,10 @@ sint64 CFile::doRead(void* buffer, size_t count) const
 			// is needed to avoid inf. loops.
 			break;
 		}
-		
+
 		totalRead += current;
 	}
-	
+
 	return totalRead;
 }
 
@@ -354,7 +356,7 @@ sint64 CFile::doWrite(const void* buffer, size_t nCount)
 	MULE_VALIDATE_STATE(IsOpened(), wxT("CFile: Cannot write to closed file."));
 
 	sint64 result = ::write(m_fd, buffer, nCount);
-	
+
 	if (result != (sint64)nCount) {
 		throw CIOFailureException(wxString(wxT("Error writing to file: ")) + wxSysErrorMsg());
 	}
@@ -367,7 +369,7 @@ sint64 CFile::doSeek(sint64 offset) const
 {
 	MULE_VALIDATE_STATE(IsOpened(), wxT("Cannot seek on closed file."));
 	MULE_VALIDATE_PARAMS(offset >= 0, wxT("Invalid position, must be positive."));
-	
+
 	sint64 result = SEEK_FD(m_fd, offset, SEEK_SET);
 
 	if (result == offset) {
@@ -375,7 +377,7 @@ sint64 CFile::doSeek(sint64 offset) const
 	} else if (result == wxInvalidOffset) {
 		throw CSeekFailureException(wxString(wxT("Seeking failed: ")) + wxSysErrorMsg());
 	} else {
-		throw CSeekFailureException(wxT("Seeking returned incorrect position"));		
+		throw CSeekFailureException(wxT("Seeking returned incorrect position"));
 	}
 }
 
@@ -383,12 +385,12 @@ sint64 CFile::doSeek(sint64 offset) const
 uint64 CFile::GetPosition() const
 {
 	MULE_VALIDATE_STATE(IsOpened(), wxT("Cannot get position in closed file."));
-	
+
 	sint64 pos = TELL_FD(m_fd);
 	if (pos == wxInvalidOffset) {
 		throw CSeekFailureException(wxString(wxT("Failed to retrieve position in file: ")) + wxSysErrorMsg());
 	}
-	
+
 	return pos;
 }
 
@@ -401,7 +403,7 @@ uint64 CFile::GetLength() const
 	if (STAT_FD(m_fd, &buf) == -1) {
 		throw CIOFailureException(wxString(wxT("Failed to retrieve length of file: ")) + wxSysErrorMsg());
 	}
-	
+
 	return buf.st_size;
 }
 
@@ -425,7 +427,7 @@ bool CFile::SetLength(uint64 new_len)
 {
 	MULE_VALIDATE_STATE(IsOpened(), wxT("CFile: Cannot set length when no file is open."));
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 #ifdef _MSC_VER
 // MSVC has a 64bit version
 	bool result = _chsize_s(m_fd, new_len) == 0;
diff --git a/src/CFile.h b/src/CFile.h
index 8ca05db..7745977 100644
--- a/src/CFile.h
+++ b/src/CFile.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -40,7 +40,7 @@
  *
  * In addition to implementing the CFileDataIO interface,
  * it offers improved support for UTF8 filenames and 64b
- * file-IO on both windows and unix-like systems. 
+ * file-IO on both windows and unix-like systems.
  *
  * @see wxFile
  */
@@ -53,12 +53,12 @@ public:
 	/** @see wxFile::OpenMode */
 	enum OpenMode { read, write, read_write, write_append, write_excl, write_safe };
 
-	
+
 	/**
 	 * Creates a closed file.
 	 */
 	CFile();
-	
+
 	/**
 	 * Constructor, calls Open on the specified file.
 	 *
@@ -73,7 +73,7 @@ public:
 	 */
 	virtual ~CFile();
 
-		
+
 	/**
 	 * Opens a file.
 	 *
@@ -81,8 +81,8 @@ public:
 	 * @param mode The opening mode.
 	 * @param accessMode The permissions in case a new file is created.
 	 * @return True if the file was opened, false otherwise.
-	 * 
-	 * Calling Open with the openmodes 'write' or 'write_append' will 
+	 *
+	 * Calling Open with the openmodes 'write' or 'write_append' will
 	 * create the specified file if it does not already exist.
 	 *
 	 * Calling Open with the openmode 'write_safe' will append ".new"
@@ -100,12 +100,12 @@ public:
 	 * Reopens a file which was opened and closed before.
 	 *
 	 * @param mode The opening mode.
-	 * 
+	 *
 	 * The filename used for last open is used again.
 	 * No return value - function throws on failure.
 	 */
 	void Reopen(OpenMode mode);
-	
+
 	/**
 	 * Calling Create is equivilant of calling open with OpenMode 'write'.
 	 *
@@ -116,7 +116,7 @@ public:
 	 */
 	bool Create(const CPath& path, bool overwrite = false, int accessMode = wxS_DEFAULT);
 	bool Create(const wxString& path, bool overwrite = false, int accessMode = wxS_DEFAULT);
-	
+
 	/**
 	 * Closes the file.
 	 *
@@ -142,20 +142,20 @@ public:
 	 */
 	bool Flush();
 
-	
+
 	/**
 	 * @see CSafeFileIO::GetLength
 	 *
-	 * Note that calling GetLength on a closed file 
+	 * Note that calling GetLength on a closed file
 	 * is an illegal operation.
 	 */
 	virtual uint64 GetLength() const;
-	
+
 	/**
 	 * Resizes the file to the specified length.
 	 */
 	bool SetLength(uint64 newLength);
-	
+
 	/**
 	 * @see CSafeFileIO::GetPosition
 	 *
@@ -163,25 +163,25 @@ public:
 	 * is an illegal operation.
 	 */
 	virtual uint64 GetPosition() const;
-	
+
 	/**
 	 * Returns the current available bytes to read on the file before EOF
-	 * 
+	 *
 	 */
-	virtual uint64 GetAvailable() const;	
-	
+	virtual uint64 GetAvailable() const;
+
 	/**
 	 * Returns the path of the currently opened file.
-	 * 
+	 *
 	 */
 	const CPath& GetFilePath() const;
-	
+
 
 	/**
 	 * Returns true if the file is opened, false otherwise.
 	 */
 	bool IsOpened() const;
-	
+
 protected:
 	/** @see CFileDataIO::doRead **/
 	virtual sint64 doRead(void* buffer, size_t count) const;
@@ -196,10 +196,10 @@ private:
 	CFile(const CFile&);
 	CFile& operator=(const CFile&);
 	//@}
-	
+
 	//! File descriptor or 'fd_invalid' if not opened
 	int m_fd;
-	
+
 	//! The full path to the current file.
 	CPath m_filePath;
 
diff --git a/src/CanceledFileList.cpp b/src/CanceledFileList.cpp
index 9597a08..d6aae85 100644
--- a/src/CanceledFileList.cpp
+++ b/src/CanceledFileList.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,7 +42,7 @@ CCanceledFileList::CCanceledFileList()
 bool CCanceledFileList::Init()
 {
 	CFile file;
-	
+
 	CPath fullpath = CPath(theApp->ConfigDir + m_filename);
 	if (!fullpath.FileExists()) {
 		// This is perfectly normal. The file was probably either
@@ -54,14 +54,14 @@ bool CCanceledFileList::Init()
 		AddLogLineC(CFormat(_("WARNING: %s cannot be opened.")) % m_filename);
 		return false;
 	}
-	
+
 	try {
 		uint8 version = file.ReadUInt8();
 		if (version != CANCELEDFILE_VERSION) {
 			AddLogLineC(_("WARNING: Canceled file list corrupted, contains invalid header."));
 			return false;
 		}
-		
+
 		uint32 RecordsNumber = file.ReadUInt32();
 		AddDebugLogLineN(logKnownFiles,
 			CFormat(wxT("Reading %i canceled files from file format 0x%02x."))
@@ -75,12 +75,12 @@ bool CCanceledFileList::Init()
 			}
 		}
 		AddDebugLogLineN(logKnownFiles, wxT("Finished reading canceled files"));
-	
+
 		return true;
 	} catch (const CSafeIOException& e) {
 		AddLogLineC(CFormat(_("IO error while reading %s file: %s")) % m_filename % e.what());
-	}	
-	
+	}
+
 	return false;
 }
 
diff --git a/src/CanceledFileList.h b/src/CanceledFileList.h
index b329c10..4cf58c7 100644
--- a/src/CanceledFileList.h
+++ b/src/CanceledFileList.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/CaptchaDialog.cpp b/src/CaptchaDialog.cpp
index e53503e..e66fcc1 100644
--- a/src/CaptchaDialog.cpp
+++ b/src/CaptchaDialog.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -82,14 +82,14 @@ wxSizer * CCaptchaDialog::captchaDlg( wxWindow *parent )
 
     parent->SetSizer( item0 );
     item0->SetSizeHints( parent );
-    
+
     return item0;
 }
 
 bool CCaptchaDialog::OnInitDialog()
 {
 	Layout();
-	
+
 	return true;
 }
 // File_checked_for_headers
diff --git a/src/CaptchaDialog.h b/src/CaptchaDialog.h
index 7242597..911c353 100644
--- a/src/CaptchaDialog.h
+++ b/src/CaptchaDialog.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,15 +42,15 @@ class CCaptchaDialog : public wxDialog
 {
 public:
 	/**
-	 * Constructor. 
+	 * Constructor.
 	 *
 	 * @param parent The window that created the dialog.
 	 * @param client The client whose details we're showing.
 	 */
-	CCaptchaDialog(wxWindow*parent, const wxImage& captchaImage, uint64 id);   
-	
+	CCaptchaDialog(wxWindow*parent, const wxImage& captchaImage, uint64 id);
+
 	/**
-	 * Destructor. 
+	 * Destructor.
 	 */
 	virtual ~CCaptchaDialog();
 
@@ -58,14 +58,14 @@ protected:
 
 	/**
 	 * Creates all the data objects in the dialog, filling them accordingly.
-	 * 
+	 *
 	 * Called when the dialog object is created.
 	 */
-	virtual bool OnInitDialog();	
-	
+	virtual bool OnInitDialog();
+
 	/**
 	 * Ends the dialog, calling EndModal with return value 0
-	 * 
+	 *
 	 * @param evt The close event, unused right now
 	 */
 	void OnBnClose(wxCommandEvent& evt);
diff --git a/src/CaptchaGenerator.cpp b/src/CaptchaGenerator.cpp
index ae82810..c1644c6 100644
--- a/src/CaptchaGenerator.cpp
+++ b/src/CaptchaGenerator.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -43,7 +43,7 @@ CCaptchaGenerator::CCaptchaGenerator(uint32 nLetterCount)
 
 void CCaptchaGenerator::ReGenerateCaptcha(uint32 nLetterCount)
 {
-	static wxString schCaptchaContent = wxT("ABCDEFGHJKLMNPQRSTUVWXYZ123456789"); 
+	static wxString schCaptchaContent = wxT("ABCDEFGHJKLMNPQRSTUVWXYZ123456789");
 	m_strCaptchaText.Clear();
 	// Bitmap must be created with full depth, or it will fail on GTK
 	wxBitmap pimgResult(LETTERSIZE + (nLetterCount-1)*CROWDEDSIZE, 36);
@@ -57,7 +57,7 @@ void CCaptchaGenerator::ReGenerateCaptcha(uint32 nLetterCount)
 	for (uint32 i = 0; i < nLetterCount; i++) {
 		wxString strLetter(schCaptchaContent[GetRandomUint16() % schCaptchaContent.length()]);
 		m_strCaptchaText += strLetter;
-		
+
 		uint16 nRandomSize = 30 - GetRandomUint16() % 12;
 		wxFont font(nRandomSize, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD);
 		dc.SetFont(font);
diff --git a/src/CaptchaGenerator.h b/src/CaptchaGenerator.h
index b0c5499..cdcb177 100644
--- a/src/CaptchaGenerator.h
+++ b/src/CaptchaGenerator.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/CatDialog.cpp b/src/CatDialog.cpp
index 5606f33..9232b1a 100644
--- a/src/CatDialog.cpp
+++ b/src/CatDialog.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -26,7 +26,7 @@
 #include <wx/wx.h>
 #include <wx/colordlg.h>
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	#include <io.h> // Do_not_auto_remove
 #endif
 
@@ -72,7 +72,7 @@ wxDialog(parent, -1, _("Category"),
 	if (index > -1) {
 		m_category = theApp->glob_prefs->GetCategory(index);
 	}
-	
+
 	if (m_category) {
 		// Filling values by the specified category
 		CastChild(IDC_TITLE,	wxTextCtrl)->SetValue(m_category->title);
@@ -80,7 +80,7 @@ wxDialog(parent, -1, _("Category"),
 		CastChild(IDC_INCOMING,	wxTextCtrl)->SetValue(m_category->path.GetRaw());
 		CastChild(IDC_COMMENT,	wxTextCtrl)->SetValue(m_category->comment);
 		CastChild(IDC_PRIOCOMBO,wxChoice)->SetSelection(m_category->prio);
-		
+
 		m_colour = CMuleColour(m_category->color);
 	} else {
 		// Default values for new categories
@@ -88,12 +88,12 @@ wxDialog(parent, -1, _("Category"),
 		CastChild(IDC_INCOMING,	wxTextCtrl)->SetValue(thePrefs::GetIncomingDir().GetRaw());
 		CastChild(IDC_COMMENT,	wxTextCtrl)->SetValue(wxEmptyString);
 		CastChild(IDC_PRIOCOMBO,wxChoice)->SetSelection(0);
-		
+
 		m_colour = CMuleColour(rand() % 255, rand() % 255, rand() % 255);
 	}
-	
+
 	CastChild(ID_BOX_CATCOLOR, wxStaticBitmap)->SetBitmap(MakeBitmap());
-	
+
 	if (!allowbrowse) {
 		CastChild(IDC_BROWSE, wxButton)->Destroy();
 	}
@@ -112,15 +112,15 @@ wxBitmap CCatDialog::MakeBitmap()
 
 	dc.SetBrush(m_colour.GetBrush());
 	dc.DrawRectangle(0, 0, 16, 16);
-	
+
 	return bitmap;
 }
 
 
 void CCatDialog::OnBnClickedBrowse(wxCommandEvent& WXUNUSED(evt))
-{	
+{
 	wxString dir = CastChild(IDC_INCOMING, wxTextCtrl)->GetValue();
-	
+
 	dir = wxDirSelector(
 		_("Choose a folder for incoming files"),
 		dir, wxDD_DEFAULT_STYLE, wxDefaultPosition, this);
@@ -133,7 +133,7 @@ void CCatDialog::OnBnClickedBrowse(wxCommandEvent& WXUNUSED(evt))
 void CCatDialog::OnBnClickedOk(wxCommandEvent& WXUNUSED(evt))
 {
 	wxString newname = CastChild(IDC_TITLE, wxTextCtrl)->GetValue();
-	
+
 	// No empty names
 	if (newname.IsEmpty()) {
 		wxMessageBox(
@@ -141,15 +141,15 @@ void CCatDialog::OnBnClickedOk(wxCommandEvent& WXUNUSED(evt))
 			_("Info"), wxOK, this);
 		return;
 	}
-	
+
 	CPath newpath = CPath(CastChild(IDC_INCOMING, wxTextCtrl)->GetValue());
-	
-	// No empty dirs please 
+
+	// No empty dirs please
 	if (!newpath.IsOk()) {
 		wxMessageBox(
 			_("You must specify a path for the category!"),
 			_("Info"), wxOK, this);
-		
+
 		return;
 	}
 
@@ -190,22 +190,22 @@ void CCatDialog::OnBnClickedOk(wxCommandEvent& WXUNUSED(evt))
 	if (!m_category) {
 		// New category, or the old one is gone
 		 theApp->glob_prefs->CreateCategory(
-			m_category, newname, newpath, 
+			m_category, newname, newpath,
 			CastChild(IDC_COMMENT, wxTextCtrl)->GetValue(),
 			m_colour.GetULong(),
- 			CastChild(IDC_PRIOCOMBO, wxChoice)->GetSelection());
-        	
+			CastChild(IDC_PRIOCOMBO, wxChoice)->GetSelection());
+
 		theApp->amuledlg->m_transferwnd->AddCategory(m_category);
 	} else {
-		theApp->glob_prefs->UpdateCategory(index, newname, newpath, 
-        	CastChild(IDC_COMMENT, wxTextCtrl)->GetValue(), m_colour.GetULong(),
-        	CastChild(IDC_PRIOCOMBO, wxChoice)->GetSelection());
+		theApp->glob_prefs->UpdateCategory(index, newname, newpath,
+		CastChild(IDC_COMMENT, wxTextCtrl)->GetValue(), m_colour.GetULong(),
+		CastChild(IDC_PRIOCOMBO, wxChoice)->GetSelection());
 
 		theApp->amuledlg->m_transferwnd->UpdateCategory(index);
 		theApp->amuledlg->m_transferwnd->downloadlistctrl->Refresh();
 		theApp->amuledlg->m_searchwnd->UpdateCatChoice();
 	}
-	
+
 	EndModal(wxID_OK);
 }
 
diff --git a/src/CatDialog.h b/src/CatDialog.h
index 58216ef..1e155e4 100644
--- a/src/CatDialog.h
+++ b/src/CatDialog.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,8 +39,8 @@ class wxBitmap;
  * the user can add or change them.
  *
  * It is a self-contained entity, and does not rely on the categories staying
- * the same while the dialog is visble, though it will overwrite any changes 
- * made to the selected category in the mean time. Also, if the selected category 
+ * the same while the dialog is visble, though it will overwrite any changes
+ * made to the selected category in the mean time. Also, if the selected category
  * has been deleted then it will simply be readded.
  *
  * It does however rely on the Transferwnd keeping its own list of categories up-
@@ -56,16 +56,16 @@ public:
 	 * @param catindex The category to be edited.
 	 *
 	 * The parameter catindex can be a valid index, in which case that category
-	 * will be selected, or it can be less than zero, in which case a new 
+	 * will be selected, or it can be less than zero, in which case a new
 	 * category will be created.
 	 */
 	CCatDialog(wxWindow* parent, bool allowbrowse, int catindex = -1 );
-	
+
 	/**
 	 * Destructor.
 	 */
 	~CCatDialog();
-	
+
 private:
 	/**
 	 * Helper function for making the color-preview.
@@ -96,7 +96,7 @@ private:
 	 * Event-handler for selecting category color.
 	 */
 	void OnBnClickColor(wxCommandEvent& evt);
-	
+
 	DECLARE_EVENT_TABLE()
 };
 
diff --git a/src/ChatSelector.cpp b/src/ChatSelector.cpp
index 411af97..ff6935d 100644
--- a/src/ChatSelector.cpp
+++ b/src/ChatSelector.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,7 +42,7 @@
 #include <common/Format.h>		// Needed for CFormat
 
 
-// Default colors, 
+// Default colors,
 #define COLOR_BLACK wxTextAttr( wxColor(   0,   0,   0 ) )
 #define COLOR_BLUE  wxTextAttr( wxColor(   0,   0, 255 ) )
 #define COLOR_GREEN wxTextAttr( wxColor(   0, 102,   0 ) )
@@ -82,9 +82,9 @@ void CChatSession::AddText(const wxString& text, const wxTextAttr& style, bool n
 				AppendText( wxT(" [") + wxDateTime::Now().FormatISOTime() + wxT("] ") );
 			}
 		}
-		
+
 		SetDefaultStyle(style);
-	
+
 		AppendText( tokens.GetNextToken() );
 
 		// Only add newlines after the last line if it is desired
@@ -101,16 +101,16 @@ CChatSelector::CChatSelector(wxWindow* parent, wxWindowID id, const wxPoint& pos
 : CMuleNotebook(parent, id, pos, siz, style)
 {
 	wxImageList* imagelist = new wxImageList(16,16);
-	
+
 	// Chat icon -- default state
 	imagelist->Add(wxBitmap(chat_ico_xpm));
 	// Close icon -- on mouseover
 	imagelist->Add(amuleSpecial(4));
-	
+
 	AssignImageList(imagelist);
 }
 
-CChatSession* CChatSelector::StartSession(uint64 client_id, const wxString& client_name, bool show) 
+CChatSession* CChatSelector::StartSession(uint64 client_id, const wxString& client_name, bool show)
 {
 	// Check to see if we've already opened a session for this user
 	if ( GetPageByClientID( client_id ) ) {
@@ -126,13 +126,13 @@ CChatSession* CChatSelector::StartSession(uint64 client_id, const wxString& clie
 	chatsession->m_client_id = client_id;
 
 	wxString text;
-   	text = wxT(" *** ") + (CFormat(_("Chat-Session Started: %s (%s:%u) - %s %s")) 
-		 	% client_name
+	text = wxT(" *** ") + (CFormat(_("Chat-Session Started: %s (%s:%u) - %s %s"))
+			% client_name
 			% Uint32toStringIP(IP_FROM_GUI_ID(client_id))
 			% PORT_FROM_GUI_ID(client_id)
 			% wxDateTime::Now().FormatISODate()
 			% wxDateTime::Now().FormatISOTime());
-	
+
 	chatsession->AddText( text, COLOR_RED );
 	AddPage(chatsession, client_name, show, 0);
 
@@ -145,13 +145,13 @@ CChatSession* CChatSelector::StartSession(uint64 client_id, const wxString& clie
 CChatSession* CChatSelector::GetPageByClientID(uint64 client_id)
 {
 	for ( unsigned int i = 0; i < (unsigned int ) GetPageCount(); i++ ) {
-		CChatSession* page = (CChatSession*)GetPage( i );
-		
+		CChatSession* page = static_cast<CChatSession*>(GetPage(i));
+
 		if( page->m_client_id == client_id ) {
 			return page;
 		}
 	}
-	
+
 	return NULL;
 }
 
@@ -159,13 +159,13 @@ CChatSession* CChatSelector::GetPageByClientID(uint64 client_id)
 int CChatSelector::GetTabByClientID(uint64 client_id)
 {
 	for ( unsigned int i = 0; i < (unsigned int) GetPageCount(); i++ ) {
-		CChatSession* page = (CChatSession*)GetPage( i );
-		
+		CChatSession* page = static_cast<CChatSession*>(GetPage(i));
+
 		if( page->m_client_id == client_id ) {
 			return i;
 		}
 	}
-	
+
 	return -1;
 }
 
@@ -185,11 +185,11 @@ bool CChatSelector::ProcessMessage(uint64 sender_id, const wxString& message)
 		// No need to define client_name. If needed, will be build on tab creation.
 		client_message = message;
 	}
-	
+
 	bool newtab = !session;
-	
+
 	if ( !session ) {
-		// This must be a mesage from a client that is not already chatting 
+		// This must be a mesage from a client that is not already chatting
 		if (client_name.IsEmpty()) {
 			// Core did not send us the name.
 			// This must NOT happen.
@@ -197,21 +197,21 @@ bool CChatSelector::ProcessMessage(uint64 sender_id, const wxString& message)
 			uint32 ip = IP_FROM_GUI_ID(sender_id);
 			client_name = CFormat(wxT("IP: %s Port: %u")) % Uint32toStringIP(ip) % PORT_FROM_GUI_ID(sender_id);
 		}
-		
+
 		session = StartSession( sender_id, client_name, true );
 	}
 
 	// Other client connected after disconnection or a new session
 	if ( !session->m_active ) {
 		session->m_active = true;
-		
+
 		session->AddText( _("*** Connected to Client ***"), COLOR_RED );
 	}
-	
+
 	// Page text is client name
 	session->AddText( GetPageText(GetTabByClientID(sender_id)), COLOR_BLUE, false );
 	session->AddText( wxT(": ") + client_message, COLOR_BLACK );
-	
+
 	return newtab;
 }
 
@@ -222,13 +222,13 @@ bool CChatSelector::SendMessage( const wxString& message, const wxString& client
 	if ( message.IsEmpty() ) {
 		return false;
 	}
-	
+
 	if (to_id) {
 		// Checks if there's a page with this client, and selects it or creates it
 		StartSession(to_id, client_name, true);
 	}
-	
-	int usedtab = GetSelection();	
+
+	int usedtab = GetSelection();
 	// Workaround for a problem with wxNotebook, where an invalid selection is returned
 	if (usedtab >= (int)GetPageCount()) {
 		usedtab = GetPageCount() - 1;
@@ -236,13 +236,13 @@ bool CChatSelector::SendMessage( const wxString& message, const wxString& client
 	if (usedtab == -1) {
 		return false;
 	}
-	
-	CChatSession* ci = (CChatSession*)GetPage( usedtab );
+
+	CChatSession* ci = static_cast<CChatSession*>(GetPage(usedtab));
 
 	ci->m_active = true;
 
 	//#warning EC needed here.
-	
+
 	#ifndef CLIENT_GUI
 	if (theApp->clientlist->SendChatMessage(ci->m_client_id, message)) {
 		ci->AddText( thePrefs::GetUserNick(), COLOR_GREEN, false );
@@ -277,10 +277,10 @@ void CChatSelector::ConnectionResult(bool success, const wxString& message, uint
 	if ( !ci ) {
 		return;
 	}
-	
+
 	if ( !success ) {
 		ci->AddText( _("*** Failed to Connect to client / Connection lost ***"), COLOR_RED );
-	
+
 		ci->m_active = false;
 	} else {
 		// Kry - Woops, fix for the everlasting void message sending.
@@ -315,8 +315,8 @@ void CChatSelector::RefreshFriend(uint64 toupdate_id, const wxString& new_name)
 {
 	wxASSERT( toupdate_id );
 
-	int tab = GetTabByClientID(toupdate_id); 
-	
+	int tab = GetTabByClientID(toupdate_id);
+
 	if (tab != -1) {
 		// This client has a tab.
 		SetPageText(tab,new_name);
@@ -348,15 +348,17 @@ bool CChatSelector::GetCurrentClient(CClientRef&) const
 bool CChatSelector::GetCurrentClient(CClientRef& clientref) const
 {
 	// Get the chat session associated with the active tab
-	CChatSession* ci = (CChatSession*)GetPage(GetSelection());
-	
+	CChatSession* ci = static_cast<CChatSession*>(GetPage(GetSelection()));
+
 	// Get the client that the session is open to
 	if (ci) {
-		clientref.Link(theApp->clientlist->FindClientByIP(IP_FROM_GUI_ID(ci->m_client_id), PORT_FROM_GUI_ID(ci->m_client_id)) CLIENT_DEBUGSTRING("CChatSelector::GetCurrentClient"));
-		return true;
-	} else {
-		return false;
+		CUpDownClient * client = theApp->clientlist->FindClientByIP(IP_FROM_GUI_ID(ci->m_client_id), PORT_FROM_GUI_ID(ci->m_client_id));
+		if (client) {
+			clientref.Link(client CLIENT_DEBUGSTRING("CChatSelector::GetCurrentClient"));
+			return true;
+		}
 	}
+	return false;
 }
 #endif
 
diff --git a/src/ChatSelector.h b/src/ChatSelector.h
index cfe53ee..8d816d6 100644
--- a/src/ChatSelector.h
+++ b/src/ChatSelector.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -26,7 +26,7 @@
 #ifndef CHATSELECTOR_H
 #define CHATSELECTOR_H
 
-#include "MuleTextCtrl.h" 
+#include "MuleTextCtrl.h"
 #include "MuleNotebook.h"
 #include "Types.h"				// Needed for uint16
 
@@ -45,7 +45,7 @@ public:
 
 	uint64	m_client_id;
 	bool	m_active;
-	
+
 	/**
 	 * Appends the specified text.
 	 *
diff --git a/src/ChatWnd.cpp b/src/ChatWnd.cpp
index cd41838..213965c 100644
--- a/src/ChatWnd.cpp
+++ b/src/ChatWnd.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -80,7 +80,7 @@ void CChatWnd::StartSession(CFriend* friend_client, bool setfocus)
 	}
 
 	// Check to enable the window controls if needed
-	CheckNewButtonsState();	
+	CheckNewButtonsState();
 }
 
 
@@ -89,21 +89,21 @@ void CChatWnd::OnNMRclickChatTab(wxMouseEvent& evt)
 	// Only handle events from the chat-notebook
 	if (evt.GetEventObject() != (wxObject*)chatselector)
 		return;
-	
+
 	if (chatselector->GetSelection() == -1) {
 		return;
 	}
-	
+
 	// Avoid opening another menu when it's already open
-	if (m_menu == NULL) {  
+	if (m_menu == NULL) {
 		m_menu = new wxMenu(_("Chat"));
-		
+
 		m_menu->Append(MP_CLOSE_TAB, wxString(_("Close tab")));
 		m_menu->Append(MP_CLOSE_ALL_TABS, wxString(_("Close all tabs")));
 		m_menu->Append(MP_CLOSE_OTHER_TABS, wxString(_("Close other tabs")));
-		
+
 		m_menu->AppendSeparator();
-		
+
 		wxMenuItem * addFriend = m_menu->Append(MP_ADDFRIEND, _("Add to Friends"));
 
 		// Disable this client if it is already a friend
@@ -113,7 +113,7 @@ void CChatWnd::OnNMRclickChatTab(wxMouseEvent& evt)
 		}
 
 		PopupMenu(m_menu, evt.GetPosition());
-		
+
 		delete m_menu;
 		m_menu = NULL;
 	}
@@ -135,7 +135,7 @@ void CChatWnd::OnPopupCloseAll(wxCommandEvent& WXUNUSED(evt))
 void CChatWnd::OnPopupCloseOthers(wxCommandEvent& WXUNUSED(evt))
 {
 	wxNotebookPage* current = chatselector->GetPage(chatselector->GetSelection());
-	
+
 	for (int i = chatselector->GetPageCount() - 1; i >= 0; i--) {
 		if (current != chatselector->GetPage(i))
 			chatselector->DeletePage( i );
@@ -147,7 +147,7 @@ void CChatWnd::OnAddFriend(wxCommandEvent& WXUNUSED(evt))
 {
 	// Get the client that the session is open to
 	CClientRef client;
-	
+
 	// Add the client as friend unless it's already a friend
 	if (chatselector->GetCurrentClient(client) && !client.IsFriend()) {
 		theApp->friendlist->AddFriend(client);
@@ -158,7 +158,7 @@ void CChatWnd::OnAddFriend(wxCommandEvent& WXUNUSED(evt))
 void CChatWnd::OnBnClickedCsend(wxCommandEvent& WXUNUSED(evt))
 {
 	wxString message = CastChild(IDC_CMESSAGE, wxTextCtrl)->GetValue();
-	
+
 	SendMessage(message);
 }
 
@@ -216,7 +216,7 @@ void CChatWnd::ConnectionResult(bool success, const wxString& message, uint64 id
 
 void CChatWnd::SendMessage(const wxString& message, const wxString& client_name, uint64 to_id)
 {
-	
+
 	if (chatselector->SendMessage( message, client_name, to_id )) {
 		CastChild(IDC_CMESSAGE, wxTextCtrl)->Clear();
 	}
@@ -244,14 +244,14 @@ void CChatWnd::CheckNewButtonsState()
 				// Nothing to be done here. Keep current state, which should be enabled.
 				wxASSERT(GetParent()->FindWindow(IDC_CSEND)->IsEnabled());
 				wxASSERT(GetParent()->FindWindow(IDC_CCLOSE)->IsEnabled());
-				wxASSERT(GetParent()->FindWindow(IDC_CMESSAGE)->IsEnabled());			
+				wxASSERT(GetParent()->FindWindow(IDC_CMESSAGE)->IsEnabled());
 				break;
 	}
 }
 
 
 bool CChatWnd::IsIdValid(uint64 id)
-{ 
+{
 	return chatselector->GetTabByClientID(id) >= 0;
 }
 
diff --git a/src/ChatWnd.h b/src/ChatWnd.h
index 4f509d8..a59f5f3 100644
--- a/src/ChatWnd.h
+++ b/src/ChatWnd.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -35,10 +35,10 @@ class CChatSelector;
 class CFriendListCtrl;
 class CMD4Hash;
 
-class CChatWnd : public wxPanel 
+class CChatWnd : public wxPanel
 {
 public:
-	CChatWnd(wxWindow* pParent = NULL); 
+	CChatWnd(wxWindow* pParent = NULL);
 	~CChatWnd() {};
 
 	void StartSession(CFriend* friend_client, bool setfocus = true);
@@ -47,14 +47,14 @@ public:
 	void	RemoveFriend(CFriend* todel);
 
 	void	ProcessMessage(uint64 sender, const wxString& message);
-	void 	ConnectionResult(bool success, const wxString& message, uint64 id);
+	void	ConnectionResult(bool success, const wxString& message, uint64 id);
 
 	void	SendMessage(const wxString& message, const wxString& client_name = wxEmptyString, uint64 to_id = 0);
 
 	bool	IsIdValid(uint64 id);
 	void	ShowCaptchaResult(uint64 id, bool ok);
 	void	EndSession(uint64 id);
-		
+
 protected:
 	/**
 	 * Event-handler for displaying the chat-popup menu.
@@ -64,7 +64,7 @@ protected:
 	 * Event-handler fo the Close item on the popup-menu.
 	 */
 	void	OnPopupClose(wxCommandEvent& evt);
-	
+
 	/**
 	 * Event-handler fo the CloseAll item on the popup-menu.
 	 */
diff --git a/src/ClientCredits.cpp b/src/ClientCredits.cpp
index dd0c48b..2804292 100644
--- a/src/ClientCredits.cpp
+++ b/src/ClientCredits.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -55,7 +55,7 @@ CClientCredits::CClientCredits(const CMD4Hash& key)
 {
 	m_pCredits = new CreditStruct();
 	m_pCredits->key = key;
-	
+
 	InitalizeIdent();
 	m_dwUnSecureWaitTime = ::GetTickCount();
 	m_dwSecureWaitTime = ::GetTickCount();
@@ -79,11 +79,11 @@ void CClientCredits::AddDownloaded(uint32 bytes, uint32 dwForIP, bool cryptoavai
 				return;
 			}
 			break;
-	 	case IS_NOTAVAILABLE:
-	 	case IS_IDENTIFIED:
+		case IS_NOTAVAILABLE:
+		case IS_IDENTIFIED:
 			break;
 	}
-	
+
 	m_pCredits->downloaded += bytes;
 }
 
@@ -98,11 +98,11 @@ void CClientCredits::AddUploaded(uint32 bytes, uint32 dwForIP, bool cryptoavail)
 				return;
 			}
 			break;
-	 	case IS_NOTAVAILABLE:
-	 	case IS_IDENTIFIED:
+		case IS_NOTAVAILABLE:
+		case IS_IDENTIFIED:
 			break;
 	}
-	
+
 	m_pCredits->uploaded += bytes;
 }
 
@@ -131,22 +131,22 @@ float CClientCredits::GetScoreRatio(uint32 dwForIP, bool cryptoavail)
 				return 1.0f;
 			}
 			break;
-	 	case IS_NOTAVAILABLE:
-	 	case IS_IDENTIFIED:
+		case IS_NOTAVAILABLE:
+		case IS_IDENTIFIED:
 			break;
 	}
-	
+
 	if (GetDownloadedTotal() < 1000000) {
 		return 1.0f;
 	}
-	
+
 	float result = 0.0f;
 	if (!GetUploadedTotal()) {
 		result = 10.0f;
 	} else {
 		result = (GetDownloadedTotal() * 2.0f) / GetUploadedTotal();
 	}
-	
+
 	float result2 = sqrt((GetDownloadedTotal() / 1048576.0) + 2.0f);
 	if (result > result2) {
 		result = result2;
@@ -157,7 +157,7 @@ float CClientCredits::GetScoreRatio(uint32 dwForIP, bool cryptoavail)
 	} else if (result > 10.0f) {
 		return 10.0f;
 	}
-	
+
 	return result;
 }
 
@@ -191,13 +191,13 @@ void CClientCredits::Verified(uint32 dwForIP)
 	m_dwIdentIP = dwForIP;
 	// client was verified, copy the keyto store him if not done already
 	if (m_pCredits->nKeySize == 0){
-		m_pCredits->nKeySize = m_nPublicKeyLen; 
+		m_pCredits->nKeySize = m_nPublicKeyLen;
 		memcpy(m_pCredits->abySecureIdent, m_abyPublicKey, m_nPublicKeyLen);
 		if (GetDownloadedTotal() > 0){
 			// for security reason, we have to delete all prior credits here
 			// in order to save this client, set 1 byte
 			m_pCredits->downloaded = 1;
-			m_pCredits->uploaded = 1; 
+			m_pCredits->uploaded = 1;
 			AddDebugLogLineN( logCredits, wxT("Credits deleted due to new SecureIdent") );
 		}
 	}
@@ -225,7 +225,7 @@ EIdentState	CClientCredits::GetCurrentIdentState(uint32 dwForIP) const
 		if (dwForIP == m_dwIdentIP)
 			return IS_IDENTIFIED;
 		else
-			return IS_IDBADGUY; 
+			return IS_IDBADGUY;
 			// mod note: clients which just reconnected after an IP change and have to ident yet will also have this state for 1-2 seconds
 			//		 so don't try to spam such clients with "bad guy" messages (besides: spam messages are always bad)
 	}
@@ -247,11 +247,11 @@ uint32 CClientCredits::GetSecureWaitStartTime(uint32 dwForIP)
 			}
 			else{	// bad boy
 				// this can also happen if the client has not identified himself yet, but will do later - so maybe he is not a bad boy :) .
-				
+
 				m_dwUnSecureWaitTime = ::GetTickCount();
 				m_dwWaitTimeIP = dwForIP;
 				return m_dwUnSecureWaitTime;
-			}	
+			}
 		}
 	}
 	else{	// not a SecureHash Client - handle it like before for now (no security checks)
diff --git a/src/ClientCredits.h b/src/ClientCredits.h
index 98abca6..ae194c2 100644
--- a/src/ClientCredits.h
+++ b/src/ClientCredits.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,7 +38,7 @@ class CreditStruct
 {
 public:
 	CreditStruct();
-	
+
 	CMD4Hash	key;
 	uint64		uploaded;		// uploaded TO him
 	uint64		downloaded;	// downloaded from him
@@ -64,9 +64,9 @@ public:
 	CClientCredits(const CMD4Hash& key);
 	~CClientCredits();
 
-	const CMD4Hash& GetKey() const 			{return m_pCredits->key;}
+	const CMD4Hash& GetKey() const			{return m_pCredits->key;}
 	const byte*	GetSecureIdent() const	{return m_abyPublicKey;}
-	uint8	GetSecIDKeyLen() const 			{return m_nPublicKeyLen;}
+	uint8	GetSecIDKeyLen() const			{return m_nPublicKeyLen;}
 	const CreditStruct* GetDataStruct() const	{return m_pCredits;}
 	void	ClearWaitStartTime();
 	void	AddDownloaded(uint32 bytes, uint32 dwForIP, bool cryptoavail);
@@ -84,7 +84,7 @@ public:
 	void	Verified(uint32 dwForIP);
 	EIdentState GetIdentState() const { return m_identState; }
 	void	SetIdentState(EIdentState state) { m_identState = state; }
-	
+
 private:
 	EIdentState		m_identState;
 	void			InitalizeIdent();
@@ -92,7 +92,6 @@ private:
 	byte			m_abyPublicKey[80];			// even keys which are not verified will be stored here, and - if verified - copied into the struct
 	uint8			m_nPublicKeyLen;
 	uint32			m_dwIdentIP;
-	uint32			m_dwWaitTime;
 	uint32			m_dwSecureWaitTime;
 	uint32			m_dwUnSecureWaitTime;
 	uint32			m_dwWaitTimeIP;			   // client IP assigned to the waittime
diff --git a/src/ClientCreditsList.cpp b/src/ClientCreditsList.cpp
index eba19a6..b5ddba9 100644
--- a/src/ClientCreditsList.cpp
+++ b/src/ClientCreditsList.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -50,7 +50,7 @@ CClientCreditsList::CClientCreditsList()
 {
 	m_nLastSaved = ::GetTickCount();
 	LoadList();
-	
+
 	InitalizeCrypting();
 }
 
@@ -69,11 +69,11 @@ void CClientCreditsList::LoadList()
 
 	if (!fileName.FileExists()) {
 		return;
-	}	
-	
+	}
+
 	try {
 		file.Open(fileName, CFile::read);
-	
+
 		if (file.ReadUInt8() != CREDITFILE_VERSION) {
 			AddDebugLogLineC( logCredits, wxT("Creditfile is outdated and will be replaced") );
 			file.Close();
@@ -82,7 +82,7 @@ void CClientCreditsList::LoadList()
 
 		// everything is ok, lets see if the backup exist...
 		CPath bakFileName = CPath(theApp->ConfigDir + CLIENTS_MET_BAK_FILENAME);
-	
+
 		bool bCreateBackup = TRUE;
 		if (bakFileName.FileExists()) {
 			// Ok, the backup exist, get the size
@@ -96,7 +96,7 @@ void CClientCreditsList::LoadList()
 			// else: backup is smaller or the same size as org.
 			// file, proceed with copying of file
 		}
-	
+
 		//else: the backup doesn't exist, create it
 		if (bCreateBackup) {
 			file.Close(); // close the file before copying
@@ -112,9 +112,9 @@ void CClientCreditsList::LoadList()
 			}
 
 			file.Seek(1);
-		}	
-	
-	
+		}
+
+
 		uint32 count = file.ReadUInt32();
 
 		const uint32 dwExpired = time(NULL) - 12960000; // today - 150 day
@@ -131,20 +131,20 @@ void CClientCreditsList::LoadList()
 			newcstruct->nReserved3          = file.ReadUInt16();
 			newcstruct->nKeySize            = file.ReadUInt8();
 			file.Read(newcstruct->abySecureIdent, MAXPUBKEYSIZE);
-		
+
 			if ( newcstruct->nKeySize > MAXPUBKEYSIZE ) {
 				// Oh dear, this is bad mojo, the file is most likely corrupt
 				// We can no longer assume that any of the clients in the file are valid
 				// and will have to discard it.
 				delete newcstruct;
-				
+
 				DeleteContents(m_mapClients);
-				
+
 				AddDebugLogLineC( logCredits,
 					wxT("WARNING: Corruptions found while reading Creditfile!") );
-				return;	
+				return;
 			}
-		
+
 			if (newcstruct->nLastSeen < dwExpired){
 				cDeleted++;
 				delete newcstruct;
@@ -156,7 +156,7 @@ void CClientCreditsList::LoadList()
 		}
 
 		AddLogLineN(CFormat(wxPLURAL("Creditfile loaded, %u client is known", "Creditfile loaded, %u clients are known", count - cDeleted)) % (count - cDeleted));
-	
+
 		if (cDeleted) {
 			AddLogLineN(CFormat(wxPLURAL(" - Credits expired for %u client!", " - Credits expired for %u clients!", cDeleted)) % cDeleted);
 		}
@@ -178,7 +178,7 @@ void CClientCreditsList::SaveList()
 		AddDebugLogLineC( logCredits, wxT("Failed to create creditfile") );
 		return;
 	}
-	
+
 	if ( file.Open(name, CFile::write) ) {
 		try {
 			uint32 count = 0;
@@ -188,9 +188,9 @@ void CClientCreditsList::SaveList()
 			file.WriteUInt32( 0 );
 
 			ClientMap::iterator it = m_mapClients.begin();
-			for ( ; it != m_mapClients.end(); ++it ) {	
+			for ( ; it != m_mapClients.end(); ++it ) {
 				CClientCredits* cur_credit = it->second;
-		
+
 				if ( cur_credit->GetUploadedTotal() || cur_credit->GetDownloadedTotal() ) {
 					const CreditStruct* const cstruct = cur_credit->GetDataStruct();
 					file.WriteHash(cstruct->key);
@@ -206,7 +206,7 @@ void CClientCreditsList::SaveList()
 					count++;
 				}
 			}
-		
+
 			// Write the actual number of structs
 			file.Seek( 1 );
 			file.WriteUInt32( count );
@@ -225,16 +225,16 @@ CClientCredits* CClientCreditsList::GetCredit(const CMD4Hash& key)
 
 	ClientMap::iterator it = m_mapClients.find( key );
 
-	
+
 	if ( it == m_mapClients.end() ){
 		result = new CClientCredits(key);
 		m_mapClients[result->GetKey()] = result;
 	} else {
 		result = it->second;
 	}
-	
+
 	result->SetLastSeen();
-	
+
 	return result;
 }
 
@@ -272,10 +272,10 @@ bool CClientCreditsList::CreateKeyPair()
 			wxString(wxT("Failed to create new RSA keypair: ")) +
 			wxString(char2unicode(e.what())));
 		wxFAIL;
- 		return false;
- 	}
-	
- 	return true;
+		return false;
+	}
+
+	return true;
 }
 
 
@@ -291,43 +291,43 @@ void CClientCreditsList::InitalizeCrypting()
 
 	try {
 		// check if keyfile is there
- 		if (wxFileExists(theApp->ConfigDir + CRYPTKEY_FILENAME)) {
+		if (wxFileExists(theApp->ConfigDir + CRYPTKEY_FILENAME)) {
 			off_t keySize = CPath::GetFileSize(theApp->ConfigDir + CRYPTKEY_FILENAME);
-			
+
 			if (keySize == wxInvalidOffset) {
 				AddDebugLogLineC(logCredits, wxT("Cannot access 'cryptkey.dat', please check permissions."));
 				return;
 			} else if (keySize == 0) {
 				AddDebugLogLineC(logCredits, wxT("'cryptkey.dat' is empty, recreating keypair."));
 				CreateKeyPair();
- 			}
- 		} else {
+			}
+		} else {
 			AddLogLineN(_("No 'cryptkey.dat' file found, creating.") );
- 			CreateKeyPair();
- 		}
-			
- 		// load private key
- 		CryptoPP::FileSource filesource(filename2char(theApp->ConfigDir + CRYPTKEY_FILENAME), true, new CryptoPP::Base64Decoder);
- 		m_pSignkey = new CryptoPP::RSASSA_PKCS1v15_SHA_Signer(filesource);
- 		// calculate and store public key
+			CreateKeyPair();
+		}
+
+		// load private key
+		CryptoPP::FileSource filesource(filename2char(theApp->ConfigDir + CRYPTKEY_FILENAME), true, new CryptoPP::Base64Decoder);
+		m_pSignkey = new CryptoPP::RSASSA_PKCS1v15_SHA_Signer(filesource);
+		// calculate and store public key
 		CryptoPP::RSASSA_PKCS1v15_SHA_Verifier pubkey(*static_cast<CryptoPP::RSASSA_PKCS1v15_SHA_Signer *>(m_pSignkey));
 		CryptoPP::ArraySink asink(m_abyMyPublicKey, 80);
- 		pubkey.DEREncode(asink);
- 		m_nMyPublicKeyLen = asink.TotalPutLength();
- 		asink.MessageEnd();
+		pubkey.DEREncode(asink);
+		m_nMyPublicKeyLen = asink.TotalPutLength();
+		asink.MessageEnd();
 	} catch (const CryptoPP::Exception& e) {
 		delete static_cast<CryptoPP::RSASSA_PKCS1v15_SHA_Signer *>(m_pSignkey);
 		m_pSignkey = NULL;
-		
+
 		AddDebugLogLineC(logCredits,
 			wxString(wxT("Error while initializing encryption keys: ")) +
 			wxString(char2unicode(e.what())));
- 	}
+	}
 }
 
 
 uint8 CClientCreditsList::CreateSignature(CClientCredits* pTarget, byte* pachOutput, uint8 nMaxSize, uint32 ChallengeIP, uint8 byChaIPKind, void* sigkey)
-{	
+{
 	CryptoPP::RSASSA_PKCS1v15_SHA_Signer* signer =
 		static_cast<CryptoPP::RSASSA_PKCS1v15_SHA_Signer *>(sigkey);
 	// signer param is used for debug only
@@ -337,12 +337,12 @@ uint8 CClientCreditsList::CreateSignature(CClientCredits* pTarget, byte* pachOut
 	// create a signature of the public key from pTarget
 	wxASSERT( pTarget );
 	wxASSERT( pachOutput );
-	
+
 	if ( !CryptoAvailable() ) {
- 		return 0;
+		return 0;
 	}
-	
-	try {		
+
+	try {
 		CryptoPP::SecByteBlock sbbSignature(signer->SignatureLength());
 		CryptoPP::AutoSeededX917RNG<CryptoPP::DES_EDE3> rng;
 		byte abyBuffer[MAXPUBKEYSIZE+9];
@@ -350,26 +350,26 @@ uint8 CClientCreditsList::CreateSignature(CClientCredits* pTarget, byte* pachOut
 		memcpy(abyBuffer,pTarget->GetSecureIdent(),keylen);
 		// 4 additional bytes random data send from this client
 		uint32 challenge = pTarget->m_dwCryptRndChallengeFrom;
-		wxASSERT ( challenge != 0 );		
+		wxASSERT ( challenge != 0 );
 		PokeUInt32(abyBuffer+keylen,challenge);
-		
+
 		uint16 ChIpLen = 0;
 		if ( byChaIPKind != 0){
 			ChIpLen = 5;
 			PokeUInt32(abyBuffer+keylen+4, ChallengeIP);
 			PokeUInt8(abyBuffer+keylen+4+4,byChaIPKind);
 		}
- 		signer->SignMessage(rng, abyBuffer ,keylen+4+ChIpLen , sbbSignature.begin());
- 		CryptoPP::ArraySink asink(pachOutput, nMaxSize);
- 		asink.Put(sbbSignature.begin(), sbbSignature.size());
-		
-		return asink.TotalPutLength();			
+		signer->SignMessage(rng, abyBuffer ,keylen+4+ChIpLen , sbbSignature.begin());
+		CryptoPP::ArraySink asink(pachOutput, nMaxSize);
+		asink.Put(sbbSignature.begin(), sbbSignature.size());
+
+		return asink.TotalPutLength();
 	} catch (const CryptoPP::Exception& e) {
 		AddDebugLogLineC(logCredits, wxString(wxT("Error while creating signature: ")) + wxString(char2unicode(e.what())));
 		wxFAIL;
-		
+
 		return 0;
- 	}
+	}
 }
 
 
@@ -391,7 +391,7 @@ bool CClientCreditsList::VerifyIdent(CClientCredits* pTarget, const byte* pachSi
 		uint32 challenge = pTarget->m_dwCryptRndChallengeFor;
 		wxASSERT ( challenge != 0 );
 		PokeUInt32(abyBuffer+m_nMyPublicKeyLen, challenge);
-		
+
 		// v2 security improvments (not supported by 29b, not used as default by 29c)
 		uint8 nChIpSize = 0;
 		if (byChaIPKind != 0){
@@ -423,12 +423,12 @@ bool CClientCreditsList::VerifyIdent(CClientCredits* pTarget, const byte* pachSi
 			PokeUInt8(abyBuffer+m_nMyPublicKeyLen+4+4, byChaIPKind);
 		}
 		//v2 end
-		
- 		bResult = pubkey.VerifyMessage(abyBuffer, m_nMyPublicKeyLen+4+nChIpSize, pachSignature, nInputSize);
+
+		bResult = pubkey.VerifyMessage(abyBuffer, m_nMyPublicKeyLen+4+nChIpSize, pachSignature, nInputSize);
 	} catch (const CryptoPP::Exception& e) {
 		AddDebugLogLineC(logCredits, wxString(wxT("Error while verifying identity: ")) + wxString(char2unicode(e.what())));
- 		bResult = false;
- 	}
+		bResult = false;
+	}
 
 	if (!bResult){
 		if (pTarget->GetIdentState() == IS_IDNEEDED)
diff --git a/src/ClientCreditsList.h b/src/ClientCreditsList.h
index 637de28..3b3aa6c 100644
--- a/src/ClientCreditsList.h
+++ b/src/ClientCreditsList.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,14 +37,14 @@ class CClientCreditsList
 public:
 	CClientCreditsList();
 	~CClientCreditsList();
-	
+
 	// return signature size, 0 = Failed | use sigkey param for debug only
 	uint8	CreateSignature(CClientCredits* pTarget, byte* pachOutput, uint8 nMaxSize, uint32 ChallengeIP, uint8 byChaIPKind, void* sigkey = NULL);
-	bool	VerifyIdent(CClientCredits* pTarget, const byte* pachSignature, uint8 nInputSize, uint32 dwForIP, uint8 byChaIPKind);	
+	bool	VerifyIdent(CClientCredits* pTarget, const byte* pachSignature, uint8 nInputSize, uint32 dwForIP, uint8 byChaIPKind);
 
 	CClientCredits* GetCredit(const CMD4Hash& key);
 	void	Process();
-	uint8	GetPubKeyLen() const 			{return m_nMyPublicKeyLen;}
+	uint8	GetPubKeyLen() const			{return m_nMyPublicKeyLen;}
 	const byte*	GetPublicKey() const		{return m_abyMyPublicKey;}
 	bool	CryptoAvailable() const;
 	void	SaveList();
diff --git a/src/ClientDetailDialog.cpp b/src/ClientDetailDialog.cpp
index c894050..e2062fc 100644
--- a/src/ClientDetailDialog.cpp
+++ b/src/ClientDetailDialog.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -79,8 +79,8 @@ bool CClientDetailDialog::OnInitDialog() {
 	} else {
 		CastChild(ID_DNAME, wxStaticText)->SetLabel(_("Unknown"));
 		CastChild(ID_DHASH, wxStaticText)->SetLabel(_("Unknown"));
-	}	
-	
+	}
+
 	// Client Software
 	wxString OSInfo = m_client.GetClientOSInfo();
 	if (!OSInfo.IsEmpty()) {
@@ -94,7 +94,7 @@ bool CClientDetailDialog::OnInitDialog() {
 	// Client Version
 	CastChild(ID_DVERSION, wxStaticText)->SetLabel(
 		m_client.GetSoftVerStr());
-	
+
 	// User ID
 	CastChild(ID_DID, wxStaticText)->SetLabel(
 		CFormat(wxT("%u (%s)")) % m_client.GetUserIDHybrid() % (m_client.HasLowID() ? _("LowID") : _("HighID")));
@@ -102,7 +102,7 @@ bool CClientDetailDialog::OnInitDialog() {
 	// Client IP/Port
 	CastChild(ID_DIP, wxStaticText)->SetLabel(
 		CFormat(wxT("%s:%i")) % m_client.GetFullIP() % m_client.GetUserPort());
-	
+
 	// Server IP/Port/Name
 	if (m_client.GetServerIP()) {
 		wxString srvaddr = Uint32toStringIP(m_client.GetServerIP());
@@ -141,51 +141,51 @@ bool CClientDetailDialog::OnInitDialog() {
 	} else {
 		CastChild(ID_DDOWNLOADING, wxStaticText)->SetLabel(wxT("-"));
 	}
-	
+
 	// Upload
 	CastChild(ID_DDUP, wxStaticText)->SetLabel(
 		CastItoXBytes(m_client.GetTransferredDown()));
-	
+
 	// Download
 	CastChild(ID_DDOWN, wxStaticText)->SetLabel(
 		CastItoXBytes(m_client.GetTransferredUp()));
-	
+
 	// Average Upload Rate
 	CastChild(ID_DAVUR, wxStaticText)->SetLabel(
 		CFormat(_("%.1f kB/s")) % m_client.GetKBpsDown());
-	
+
 	// Average Download Rate
 	CastChild(ID_DAVDR, wxStaticText)->SetLabel(
 		CFormat(_("%.1f kB/s")) % (m_client.GetUploadDatarate() / 1024.0f));
-	
+
 	// Total Upload
 	CastChild(ID_DUPTOTAL, wxStaticText)->SetLabel(
 		CastItoXBytes(m_client.GetDownloadedTotal()));
-	
+
 	// Total Download
 	CastChild(ID_DDOWNTOTAL, wxStaticText)->SetLabel(
 		CastItoXBytes(m_client.GetUploadedTotal()));
-	
+
 	// DL/UP Modifier
 	CastChild(ID_DRATIO, wxStaticText)->SetLabel(
 		CFormat(wxT("%.1f")) % m_client.GetScoreRatio());
-	
+
 	// Secure Ident
 	CastChild(IDC_CDIDENT, wxStaticText)->SetLabel(
 		m_client.GetSecureIdentTextStatus());
-	
+
 	// Queue Score
 	if (m_client.GetUploadState() != US_NONE) {
 		CastChild(ID_QUEUERANK, wxStaticText)->SetLabel(
 			CFormat(wxT("%u")) % m_client.GetUploadQueueWaitingPosition());
 		CastChild(ID_DSCORE, wxStaticText)->SetLabel(
-			CFormat(wxT("%u")) % m_client.GetScore());		
+			CFormat(wxT("%u")) % m_client.GetScore());
 	} else {
 		CastChild(ID_QUEUERANK, wxStaticText)->SetLabel(wxT("-"));
 		CastChild(ID_DSCORE, wxStaticText)->SetLabel(wxT("-"));
 	}
 	Layout();
-	
+
 	return true;
 }
 // File_checked_for_headers
diff --git a/src/ClientDetailDialog.h b/src/ClientDetailDialog.h
index 85eb0c7..8b2622b 100644
--- a/src/ClientDetailDialog.h
+++ b/src/ClientDetailDialog.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -44,15 +44,15 @@ class CClientDetailDialog : public wxDialog
 {
 public:
 	/**
-	 * Constructor. 
+	 * Constructor.
 	 *
 	 * @param parent The window that created the dialog.
 	 * @param client The client whose details we're showing.
 	 */
-	CClientDetailDialog(wxWindow*parent, const CClientRef& client);   
-	
+	CClientDetailDialog(wxWindow*parent, const CClientRef& client);
+
 	/**
-	 * Destructor. 
+	 * Destructor.
 	 *
 	 * Does nothing currently.
 	 */
@@ -62,14 +62,14 @@ protected:
 
 	/**
 	 * Creates all the data objects in the dialog, filling them accordingly.
-	 * 
+	 *
 	 * Called when the dialog object is created.
 	 */
-	virtual bool OnInitDialog();	
-	
+	virtual bool OnInitDialog();
+
 	/**
 	 * Ends the dialog, calling EndModal with return value 0
-	 * 
+	 *
 	 * @param evt The close event, unused right now
 	 */
 	void OnBnClose(wxCommandEvent& evt);
@@ -77,7 +77,7 @@ protected:
 	DECLARE_EVENT_TABLE()
 
 private:
-	
+
 	//! The client whose data is drawn
 	CClientRef m_client;
 };
diff --git a/src/ClientList.cpp b/src/ClientList.cpp
index f9e8be7..f26cce4 100644
--- a/src/ClientList.cpp
+++ b/src/ClientList.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -69,7 +69,7 @@ public:
 		PortAndHash porthash = { pClient->GetUserPort(), pClient->GetCreditsHash()};
 		m_ItemsList.push_back(porthash);
 	}
-	
+
 	struct PortAndHash
 	{
 		uint16 nPort;
@@ -107,9 +107,9 @@ void CClientList::AddClient( CUpDownClient* toadd )
 	if ( toadd->GetClientState() == CS_NEW ) {
 		// Update the client-state
 		toadd->m_clientState = CS_LISTED;
-	
- 		//Notify_ClientCtrlAddClient( toadd );
-	
+
+		//Notify_ClientCtrlAddClient( toadd );
+
 		// We always add the ID/ptr pair, regardles of the actual ID value
 		m_clientList.insert( IDMapPair( toadd->GetUserIDHybrid(), CCLIENTREF(toadd, wxT("CClientList::AddClient m_clientList.insert"))) );
 
@@ -169,7 +169,7 @@ void CClientList::UpdateClientIP( CUpDownClient* client, uint32 newIP )
 	}
 }
 
-	
+
 void CClientList::UpdateClientHash( CUpDownClient* client, const CMD4Hash& newHash )
 {
 	// Sanity check
@@ -196,7 +196,7 @@ bool CClientList::RemoveIDFromList( CUpDownClient* client )
 
 	for ( ; range.first != range.second; ++range.first ) {
 		if ( client == range.first->second.GetClient() ) {
-			/* erase() will invalidate the iterator, but we're not using it anymore 
+			/* erase() will invalidate the iterator, but we're not using it anymore
 			    anyway (notice the break;) */
 			m_clientList.erase( range.first );
 			result = true;
@@ -204,7 +204,7 @@ bool CClientList::RemoveIDFromList( CUpDownClient* client )
 			break;
 		}
 	}
-	
+
 	return result;
 }
 
@@ -215,13 +215,13 @@ void CClientList::RemoveIPFromList( CUpDownClient* client )
 	if ( !client->GetIP() ) {
 		return;
 	}
-		
+
 	// Remove the IP entry
 	std::pair<IDMap::iterator, IDMap::iterator> range = m_ipList.equal_range( client->GetIP() );
 
 	for ( ; range.first != range.second; ++range.first ) {
 		if ( client == range.first->second.GetClient() ) {
-			/* erase() will invalidate the iterator, but we're not using it anymore 
+			/* erase() will invalidate the iterator, but we're not using it anymore
 			    anyway (notice the break;) */
 			m_ipList.erase( range.first );
 			break;
@@ -241,7 +241,7 @@ void CClientList::RemoveHashFromList( CUpDownClient* client )
 
 	for ( ; range.first != range.second; ++range.first ) {
 		if ( client == range.first->second.GetClient() ) {
-			/* erase() will invalidate the iterator, but we're not using it anymore 
+			/* erase() will invalidate the iterator, but we're not using it anymore
 			    anyway (notice the break;) */
 			m_hashList.erase( range.first );
 			break;
@@ -254,13 +254,13 @@ CUpDownClient* CClientList::FindMatchingClient( CUpDownClient* client )
 {
 	typedef std::pair<IDMap::const_iterator, IDMap::const_iterator> IDMapIteratorPair;
 	wxCHECK(client, NULL);
-	
+
 	const uint32 userIP = client->GetIP();
 	const uint32 userID = client->GetUserIDHybrid();
 	const uint16 userPort = client->GetUserPort();
 	const uint16 userKadPort = client->GetKadPort();
 
-	
+
 	// LowID clients need a different set of checks
 	if (client->HasLowID()) {
 		// User is firewalled ... Must do two checks.
@@ -270,7 +270,7 @@ CUpDownClient* CClientList::FindMatchingClient( CUpDownClient* client )
 			for ( ; range.first != range.second; ++range.first ) {
 				CUpDownClient* other = range.first->second.GetClient();
 				wxASSERT(userIP == other->GetIP());
-						
+
 				if (userPort && (userPort == other->GetUserPort())) {
 					return other;
 				  } else if (userKadPort && (userKadPort == other->GetKadPort())) {
@@ -280,8 +280,8 @@ CUpDownClient* CClientList::FindMatchingClient( CUpDownClient* client )
 		}
 
 		const uint32 serverIP = client->GetServerIP();
-		const uint32 serverPort = client->GetServerPort();		
-		if (userID && serverIP && serverPort) {		
+		const uint32 serverPort = client->GetServerPort();
+		if (userID && serverIP && serverPort) {
 			IDMapIteratorPair range = m_clientList.equal_range(userID);
 
 			for (; range.first != range.second; ++range.first) {
@@ -301,15 +301,15 @@ CUpDownClient* CClientList::FindMatchingClient( CUpDownClient* client )
 		struct { const IDMap& map; uint32 value; } toCheck[] = {
 			{ m_ipList, userIP }, { m_clientList, userID }
 		};
-		
+
 		for (size_t i = 0; i < itemsof(toCheck); ++i) {
 			if (toCheck[i].value == 0) {
 				// We may not have both (or any) of these values.
 				continue;
 			}
-			
+
 			IDMapIteratorPair range = toCheck[i].map.equal_range(toCheck[i].value);
-			
+
 			if (userPort) {
 				IDMap::const_iterator it = range.first;
 				for (; it != range.second; ++it) {
@@ -318,7 +318,7 @@ CUpDownClient* CClientList::FindMatchingClient( CUpDownClient* client )
 					}
 				}
 			}
-			
+
 			if (userKadPort) {
 				IDMap::const_iterator it = range.first;
 				for (; it != range.second; ++it) {
@@ -329,8 +329,8 @@ CUpDownClient* CClientList::FindMatchingClient( CUpDownClient* client )
 			}
 		}
 	}
-		
-		
+
+
 	// If anything else fails, then we look at hashes
 	if ( client->HasValidHash() ) {
 		// Find all items with the specified hash
@@ -349,7 +349,7 @@ CUpDownClient* CClientList::FindMatchingClient( CUpDownClient* client )
 
 uint32 CClientList::GetClientCount() const
 {
-	return m_clientList.size(); 
+	return m_clientList.size();
 }
 
 
@@ -357,11 +357,11 @@ void CClientList::DeleteAll()
 {
 	m_ipList.clear();
 	m_hashList.clear();
-	
+
 	while ( !m_clientList.empty() ) {
 		IDMap::iterator it = m_clientList.begin();
-		
-		// Will call the removal of the item on this same class 
+
+		// Will call the removal of the item on this same class
 		it->second.GetClient()->Disconnected(wxT("Removed while deleting all from ClientList."));
 		it->second.GetClient()->Safe_Delete();
 	}
@@ -371,18 +371,18 @@ void CClientList::DeleteAll()
 bool CClientList::AttachToAlreadyKnown(CUpDownClient** client, CClientTCPSocket* sender)
 {
 	CUpDownClient* tocheck = (*client);
-	
+
 	CUpDownClient* found_client = FindMatchingClient( tocheck );
 
 	if ( tocheck == found_client ) {
 		// We found the same client instance (client may have sent more than one OP_HELLO). do not delete that client!
 		return true;
 	}
-		
+
 	if (found_client != NULL){
 		if (sender) {
 			if (found_client->GetSocket()) {
-				if (found_client->IsConnected() 
+				if (found_client->IsConnected()
 					&& (found_client->GetIP() != tocheck->GetIP() || found_client->GetUserPort() != tocheck->GetUserPort() ) )
 				{
 					// if found_client is connected and has the IS_IDENTIFIED, it's safe to say that the other one is a bad guy
@@ -391,9 +391,9 @@ bool CClientList::AttachToAlreadyKnown(CUpDownClient** client, CClientTCPSocket*
 						tocheck->Ban();
 						return false;
 					}
-	
+
 					AddDebugLogLineN(logClient, wxT("WARNING! Found matching client, to a currently connected client: ")
-															+ tocheck->GetUserName() + wxT("(") +  tocheck->GetFullIP() 
+															+ tocheck->GetUserName() + wxT("(") +  tocheck->GetFullIP()
 															+ wxT(") and ") + found_client->GetUserName() + wxT("(") +  found_client->GetFullIP() + wxT(")"));
 					return false;
 				}
@@ -407,7 +407,7 @@ bool CClientList::AttachToAlreadyKnown(CUpDownClient** client, CClientTCPSocket*
 		*client = found_client;
 		return true;
 	}
-	
+
 	return false;
 }
 
@@ -440,7 +440,7 @@ CUpDownClient* CClientList::FindClientByIP( uint32 clientip )
 
 CUpDownClient* CClientList::FindClientByECID(uint32 ecid) const
 {
-	for (IDMap::const_iterator it =	m_clientList.begin(); it != m_clientList.end(); it++) {
+	for (IDMap::const_iterator it =	m_clientList.begin(); it != m_clientList.end(); ++it) {
 		if (it->second.ECID() == ecid) {
 			return it->second.GetClient();
 		}
@@ -461,10 +461,10 @@ bool CClientList::IsIPAlreadyKnown(uint32_t ip)
 bool CClientList::ComparePriorUserhash(uint32 dwIP, uint16 nPort, void* pNewHash)
 {
 	std::map<uint32, CDeletedClient*>::iterator it = m_trackedClientsList.find( dwIP );
-	
+
 	if ( it != m_trackedClientsList.end() ) {
 		CDeletedClient* pResult = it->second;
-	
+
 		CDeletedClient::PaHList::iterator it2 = pResult->m_ItemsList.begin();
 		for ( ; it2 != pResult->m_ItemsList.end(); ++it2 ) {
 			if ( it2->nPort == nPort ) {
@@ -483,10 +483,10 @@ bool CClientList::ComparePriorUserhash(uint32 dwIP, uint16 nPort, void* pNewHash
 void CClientList::AddTrackClient(CUpDownClient* toadd)
 {
 	std::map<uint32, CDeletedClient*>::iterator it = m_trackedClientsList.find( toadd->GetIP() );
-	
+
 	if ( it != m_trackedClientsList.end() ) {
 		CDeletedClient* pResult = it->second;
-	
+
 		pResult->m_dwInserted = ::GetTickCount();
 
 		CDeletedClient::PaHList::iterator it2 = pResult->m_ItemsList.begin();
@@ -497,7 +497,7 @@ void CClientList::AddTrackClient(CUpDownClient* toadd)
 				return;
 			}
 		}
-	
+
 		// New client for that IP, add an entry
 		CDeletedClient::PortAndHash porthash = { toadd->GetUserPort(), toadd->GetCreditsHash()};
 		pResult->m_ItemsList.push_back(porthash);
@@ -510,7 +510,7 @@ void CClientList::AddTrackClient(CUpDownClient* toadd)
 uint16 CClientList::GetClientsFromIP(uint32 dwIP)
 {
 	std::map<uint32, CDeletedClient*>::iterator it = m_trackedClientsList.find( dwIP );
-	
+
 	if ( it != m_trackedClientsList.end() ) {
 		return it->second->m_ItemsList.size();
 	} else {
@@ -525,11 +525,11 @@ void CClientList::Process()
 
 	if (m_dwLastBannCleanUp + BAN_CLEANUP_TIME < cur_tick) {
 		m_dwLastBannCleanUp = cur_tick;
-		
+
 		ClientMap::iterator it = m_bannedList.begin();
 		while ( it != m_bannedList.end() ) {
 			if ( it->second + CLIENTBANTIME < cur_tick ) {
-				ClientMap::iterator tmp = it++;		
+				ClientMap::iterator tmp = it++;
 
 				m_bannedList.erase( tmp );
 				theStats::RemoveBannedClient();
@@ -539,21 +539,21 @@ void CClientList::Process()
 		}
 	}
 
-	
+
 	if ( m_dwLastTrackedCleanUp + TRACKED_CLEANUP_TIME < cur_tick ) {
 		m_dwLastTrackedCleanUp = cur_tick;
-		
+
 		std::map<uint32, CDeletedClient*>::iterator it = m_trackedClientsList.begin();
 		while ( it != m_trackedClientsList.end() ) {
 			std::map<uint32, CDeletedClient*>::iterator cur_src = it++;
-			
+
 			if ( cur_src->second->m_dwInserted + KEEPTRACK_TIME < cur_tick ) {
 				delete cur_src->second;
 				m_trackedClientsList.erase( cur_src );
 			}
 		}
 	}
-	
+
 	//We need to try to connect to the clients in m_KadList
 	//If connected, remove them from the list and send a message back to Kad so we can send a ACK.
 	//If we don't connect, we need to remove the client..
@@ -561,11 +561,11 @@ void CClientList::Process()
 
 	// buddy is just a flag that is used to make sure we are still connected or connecting to a buddy.
 	buddyState buddy = Disconnected;
-	
+
 	CClientRefSet::iterator current_it = m_KadSources.begin();
 	while (current_it != m_KadSources.end()) {
 		CUpDownClient* cur_client = current_it->GetClient();
-		++current_it; // Won't be used anymore till while loop 
+		++current_it; // Won't be used anymore till while loop
 		if( !Kademlia::CKademlia::IsRunning() ) {
 			//Clear out this list if we stop running Kad.
 			//Setting the Kad state to KS_NONE causes it to be removed in the switch below.
@@ -637,7 +637,7 @@ void CClientList::Process()
 				//We are trying to connect to this client.
 				//Although it should NOT happen, we make sure we are not already connected to a buddy.
 				//If we are we set to KS_NONE and it's removed next cycle.
-				//But if we are not already connected, make sure we set the flag to connecting so we know 
+				//But if we are not already connected, make sure we set the flag to connecting so we know
 				//things are working correctly.
 				if( m_nBuddyStatus == Connected ) {
 					cur_client->SetKadState(KS_NONE);
@@ -694,7 +694,7 @@ void CClientList::Process()
 				AddDebugLogLineN(logKadMain, wxT("Starting BuddySearch"));
 				//We are a firewalled client with no buddy. We have also waited a set time
 				//to try to avoid a false firewalled status.. So lets look for a buddy..
-				if (!Kademlia::CSearchManager::PrepareLookup(Kademlia::CSearch::FINDBUDDY, true, Kademlia::CUInt128(true).XOR(Kademlia::CKademlia::GetPrefs()->GetKadID()))) {
+				if (!Kademlia::CSearchManager::PrepareLookup(Kademlia::CSearch::FINDBUDDY, true, Kademlia::CUInt128(true) ^ (Kademlia::CKademlia::GetPrefs()->GetKadID()))) {
 					//This search ID was already going. Most likely reason is that
 					//we found and lost our buddy very quickly and the last search hadn't
 					//had time to be removed yet. Go ahead and set this to happen again
@@ -705,7 +705,7 @@ void CClientList::Process()
 		} else {
 			if (m_pBuddy.IsLinked()) {
 				//Lets make sure that if we have a buddy, they are firewalled!
-				//If they are also not firewalled, then someone must have fixed their firewall or stopped saturating their line.. 
+				//If they are also not firewalled, then someone must have fixed their firewall or stopped saturating their line..
 				//We just set the state of this buddy to KS_NONE and things will be cleared up with the next cycle.
 				if( !m_pBuddy.HasLowID() ) {
 					m_pBuddy.GetClient()->SetKadState(KS_NONE);
@@ -718,7 +718,7 @@ void CClientList::Process()
 			m_pBuddy.GetClient()->SetKadState(KS_NONE);
 		}
 	}
-	
+
 	CleanUpClientList();
 	ProcessDirectCallbackList();
 }
@@ -734,7 +734,7 @@ void CClientList::AddBannedClient(uint32 dwIP)
 bool CClientList::IsBannedClient(uint32 dwIP)
 {
 	ClientMap::iterator it = m_bannedList.find( dwIP );
-		
+
 	if ( it != m_bannedList.end() ) {
 		if ( it->second + CLIENTBANTIME > ::GetTickCount() ) {
 			return true;
@@ -742,7 +742,7 @@ bool CClientList::IsBannedClient(uint32 dwIP)
 			RemoveBannedClient(dwIP);
 		}
 	}
-	return false; 
+	return false;
 }
 
 
@@ -757,7 +757,7 @@ void CClientList::FilterQueues()
 {
 	// Filter client list
 	for ( IDMap::iterator it = m_ipList.begin(); it != m_ipList.end(); ) {
-		IDMap::iterator tmp = it++; // Don't change this to a ++it! 
+		IDMap::iterator tmp = it++; // Don't change this to a ++it!
 		CUpDownClient* client = tmp->second.GetClient();
 		if ( theApp->ipfilter->IsFiltered(client->GetConnectIP())) {
 			client->Disconnected(wxT("Filtered by IPFilter"));
@@ -777,7 +777,7 @@ CClientList::SourceList	CClientList::GetClientsByHash( const CMD4Hash& hash )
 	for ( ; range.first != range.second; ++range.first)  {
 		results.push_back( range.first->second );
 	}
-	
+
 	return results;
 }
 
@@ -792,7 +792,7 @@ CClientList::SourceList	CClientList::GetClientsByIP( unsigned long ip )
 	for ( ; range.first != range.second; range.first++ )  {
 		results.push_back( range.first->second );
 	}
-	
+
 	return results;
 }
 
@@ -822,8 +822,8 @@ bool CClientList::SendChatMessage(uint64 client_id, const wxString& message)
 		AddDebugLogLineN( logClient, wxT("Sending.") );
 	} else {
 		AddDebugLogLineC( logClient,
-			CFormat( wxT("No client (GUI_ID %lli [%s:%llu]) found in CClientList::SendChatMessage(). Creating") ) 
-				% client_id 
+			CFormat( wxT("No client (GUI_ID %lli [%s:%llu]) found in CClientList::SendChatMessage(). Creating") )
+				% client_id
 				% Uint32toStringIP(IP_FROM_GUI_ID(client_id))
 				% PORT_FROM_GUI_ID(client_id) );
 		client = new CUpDownClient(PORT_FROM_GUI_ID(client_id),IP_FROM_GUI_ID(client_id),0,0,NULL, true, true);
@@ -1002,7 +1002,7 @@ void CClientList::CleanUpClientList()
 			{
 				DEBUG_ONLY( cDeleted++; )
 				pCurClient->Disconnected(wxT("Removed during ClientList cleanup."));
-				pCurClient->Safe_Delete(); 
+				pCurClient->Safe_Delete();
 #ifdef __DEBUG__
 			} else {
 				if (!(pCurClient->GetUploadState() == US_NONE || (pCurClient->GetUploadState() == US_BANNED && !pCurClient->IsBanned()))) {
@@ -1015,7 +1015,7 @@ void CClientList::CleanUpClientList()
 						CFormat(wxT("Debug: Not deleted client %x with down state: %i "))
 							% (long int)pCurClient % pCurClient->GetDownloadState());
 				}
-				if (!(pCurClient->GetChatState() == MS_NONE)) {	
+				if (!(pCurClient->GetChatState() == MS_NONE)) {
 					AddDebugLogLineN(logProxy,
 						CFormat(wxT("Debug: Not deleted client %x with chat state: %i "))
 							% (long int)pCurClient % pCurClient->GetChatState());
@@ -1028,10 +1028,10 @@ void CClientList::CleanUpClientList()
 				if (!(pCurClient->GetSocket() == NULL)) {
 					AddDebugLogLineN(logProxy,
 						CFormat(wxT("Debug: Not deleted client %x: has socket")) % (long int)pCurClient);
-				}	
+				}
 				AddDebugLogLineN(logProxy,
 					CFormat(wxT("Debug: Not deleted client %x with kad version: %i"))
-						% (long int)pCurClient % pCurClient->GetKadVersion());				
+						% (long int)pCurClient % pCurClient->GetKadVersion());
 #endif
 			}
 		}
diff --git a/src/ClientList.h b/src/ClientList.h
index 334b3d9..fc246ff 100644
--- a/src/ClientList.h
+++ b/src/ClientList.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -72,8 +72,8 @@ public:
 	 * Destructor.
 	 */
 	~CClientList();
-	
-	
+
+
 	/**
 	 * Adds a client to the global list of clients.
 	 *
@@ -98,11 +98,11 @@ public:
 	 * @param newIP The new IP adress of the client.
 	 *
 	 * This function is to be called before the client actually changes its
-	 * IP-address, and will update the old entry with the new value. There 
+	 * IP-address, and will update the old entry with the new value. There
 	 * will only be added an entry if the new IP isn't zero.
 	 */
 	void	UpdateClientIP( CUpDownClient* client, uint32 newIP );
-	
+
 	/**
 	 * Updates the recorded ID of the specified client.
 	 *
@@ -110,7 +110,7 @@ public:
 	 * @param newID The new ID of the client.
 	 *
 	 * This function is to be called before the client actually changes its
-	 * ID, and will update the old entry with the new value. Unlike the other 
+	 * ID, and will update the old entry with the new value. Unlike the other
 	 * two functions, this function will always ensure that there is an entry
 	 * for the client, regardless of the value of newID.
 	 */
@@ -123,7 +123,7 @@ public:
 	 * @param newHash The new user-hash.
 	 *
 	 * This function is to be called before the client actually changes its
-	 * user-hash, and will update the old entry with the new value. There will 
+	 * user-hash, and will update the old entry with the new value. There will
 	 * only be added an entry if the new hash is valid.
 	 */
 	void	UpdateClientHash( CUpDownClient* client, const CMD4Hash& newHash );
@@ -134,7 +134,7 @@ public:
 	 */
 	uint32	GetClientCount() const;
 
-	
+
 	/**
 	 * Deletes all tracked clients.
 	 */
@@ -147,8 +147,8 @@ public:
 	 * @param client A pointer to the pointer of the new instance.
 	 * @param sender The socket assosiated with the new instance.
 	 *
-	 * Call this function when a new client-instance has been created. This function will then 
-	 * compare it against all existing clients and see if we already have an instance matching 
+	 * Call this function when a new client-instance has been created. This function will then
+	 * compare it against all existing clients and see if we already have an instance matching
 	 * the new one. If that is the case, it will delete the new instance and set the pointer to
 	 * the existing one.
 	 */
@@ -185,14 +185,14 @@ public:
 
 	//! The list-type used to store clients IPs and other information
 	typedef std::map<uint32, uint32> ClientMap;
-	
+
 
 	/**
 	 * Adds a client to the list of tracked clients.
-	 * 
+	 *
 	 * @param toadd The client to track.
 	 *
-	 * This function is used to keep track of clients after they 
+	 * This function is used to keep track of clients after they
 	 * have been deleted and makes it possible to spot port or hash
 	 * changes.
 	 */
@@ -208,11 +208,11 @@ public:
 
 	/**
 	 * Checks if a client has changed its user-hash.
-	 * 
+	 *
 	 * @param dwIP The IP of the client.
 	 * @param nPort The port of the client.
 	 * @param pNewHash The userhash assosiated with the client.
-	 * 
+	 *
 	 */
 	bool	ComparePriorUserhash( uint32 dwIP, uint16 nPort, void* pNewHash );
 
@@ -243,7 +243,7 @@ public:
 	/**
 	 * Main loop.
 	 *
-	 * This function takes care of cleaning the various lists and deleting 
+	 * This function takes care of cleaning the various lists and deleting
 	 * pending clients on the deletion-queue.
 	 */
 	void	Process();
@@ -261,7 +261,7 @@ public:
 
 	//! The type of the list used to store client-pointers for a couple of tasks.
 	typedef std::deque<CClientRef> SourceList;
-	
+
 
 	/**
 	 * Returns a list of clients with the specified user-hash.
@@ -273,14 +273,14 @@ public:
 	 * simply result in nothing being found.
 	 */
 	SourceList	GetClientsByHash( const CMD4Hash& hash );
-	
+
 	/**
 	 * Returns a list of clients with the specified IP.
 	 *
 	 * @param ip The IP-address to search for.
 	 *
 	 * This function will return a list of clients with the specified IP,
-	 * provided that the IP is a non-zero value. A value of zero will not 
+	 * provided that the IP is a non-zero value. A value of zero will not
 	 * result in any results.
 	 */
 	SourceList	GetClientsByIP( unsigned long ip );
@@ -317,14 +317,14 @@ public:
 	 * sources and should not be added to partfiles.
 	 */
 	bool		IsDeadSource(const CUpDownClient* client);
-	
+
 	/**
 	 * Sends a message to a client, identified by a GUI_ID
 	 *
 	 * @return Success
 	 */
 	 bool	SendChatMessage(uint64 client_id, const wxString& message);
-	 
+
 	/**
 	 * Stops a chat session with a client.
 	 *
@@ -372,8 +372,8 @@ private:
 	 * using the same checks as CUpDownClient::Compare, but without the overhead.
 	 */
 	CUpDownClient* FindMatchingClient( CUpDownClient* client );
-	
-	
+
+
 	/**
 	 * Check if we already know this IP.
 	 *
@@ -407,10 +407,10 @@ private:
 
 	//! The map of clients with valid hashes
 	HashMap	m_hashList;
-	
+
 	//! The map of clients with valid IPs
 	IDMap	m_ipList;
-	
+
 	//! The full lists of clients
 	IDMap	m_clientList;
 
@@ -429,7 +429,7 @@ private:
 
 	//! List of unusable sources.
 	CDeadSourceList	m_deadSources;
-	
+
 	/* Kad Stuff */
 	CClientRefSet	m_KadSources;
 	CClientRef		m_pBuddy;
diff --git a/src/ClientRef.cpp b/src/ClientRef.cpp
index 53c7685..afd8d4a 100644
--- a/src/ClientRef.cpp
+++ b/src/ClientRef.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -141,7 +141,7 @@ const BitVector&	WRAPC(GetPartStatus)
 uint16				WRAPC(GetRemoteQueueRank)
 CPartFile*			WRAPC(GetRequestFile)
 uint32				WRAPC(GetScore)
-double 				WRAPC(GetScoreRatio)
+double				WRAPC(GetScoreRatio)
 uint32				WRAPC(GetServerIP)
 const wxString		WRAPC(GetServerName)
 uint16				WRAPC(GetServerPort)
@@ -198,7 +198,7 @@ wxString	CClientRef::GetSecureIdentTextStatus() const
 			ret = _("Bad Guy");
 		} else if (m_client->IsIdentified()) {
 			ret = _("Verified - OK");
-		}	
+		}
 	} else {
 		ret = _("Not Available");
 	}
diff --git a/src/ClientRef.h b/src/ClientRef.h
index 7e3ccb8..1ca508e 100644
--- a/src/ClientRef.h
+++ b/src/ClientRef.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,8 +28,8 @@
 
 //
 // Clients are stored in many places. To prevent problems when a client gets deleted
-// and later a pointer to a deleted client is referenced, clients are now stored in 
-// this class only. It uses reference counting in the client which deletes the client only 
+// and later a pointer to a deleted client is referenced, clients are now stored in
+// this class only. It uses reference counting in the client which deletes the client only
 // after the last reference has been unlinked.
 // Also the class is used as abstraction layer for the CUpDownClient class.
 //
@@ -70,17 +70,17 @@ public:
 	CClientRef()	{ m_client = NULL; }
 	CClientRef(const CClientRef&);
 	CClientRef(CUpDownClient * client LINKED_FROM);
-	CClientRef(class CEC_UpDownClient_Tag *);
+	CClientRef(const class CEC_UpDownClient_Tag *);
 	~CClientRef()	{ Unlink(); }
 	CClientRef& operator = (const CClientRef& ref)
 	{
 #ifdef DEBUG_ZOMBIE_CLIENTS
 		m_from = wxT("assigned from ") + ref.m_from;
-		Link(ref.m_client, m_from); 
+		Link(ref.m_client, m_from);
 #else
-		Link(ref.m_client); 
+		Link(ref.m_client);
 #endif
-		return *this; 
+		return *this;
 	}
 
 
@@ -138,7 +138,7 @@ public:
 	uint16				GetRemoteQueueRank() const;
 	CPartFile*			GetRequestFile() const;
 	uint32				GetScore() const;
-	double 				GetScoreRatio() const;
+	double				GetScoreRatio() const;
 	uint32				GetServerIP() const;
 	const wxString		GetServerName() const;
 	uint16				GetServerPort() const;
diff --git a/src/ClientTCPSocket.cpp b/src/ClientTCPSocket.cpp
index 3181216..c485ae8 100644
--- a/src/ClientTCPSocket.cpp
+++ b/src/ClientTCPSocket.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -88,11 +88,11 @@ void CClientTCPSocketHandler::ClientTCPSocketHandler(wxSocketEvent& event)
 	if (!socket) {
 		return;
 	}
-	
-	if (socket->OnDestroy() || socket->ForDeletion()) {
+
+	if (socket->IsDestroying()) {
 		return;
 	}
-	
+
 	switch(event.GetSocketEvent()) {
 		case wxSOCKET_LOST:
 			socket->OnError(0xFEFF /* SOCKET_LOST is not an error */);
@@ -105,7 +105,7 @@ void CClientTCPSocketHandler::ClientTCPSocketHandler(wxSocketEvent& event)
 			break;
 		case wxSOCKET_CONNECTION:
 			// connection stablished, nothing to do about it?
-			socket->OnConnect(socket->Error() ? socket->LastError() : 0);
+			socket->OnConnect(socket->LastError());
 			break;
 		default:
 			// Nothing should arrive here...
@@ -133,9 +133,8 @@ CClientTCPSocket::CClientTCPSocket(CUpDownClient* in_client, const CProxyData *P
 	} else {
 		m_remoteip = 0;
 	}
-	
+
 	ResetTimeOutTimer();
-	m_ForDeletion = false;
 
 	SetEventHandler(g_clientReqSocketHandler, ID_CLIENTTCPSOCKET_EVENT);
 	SetNotify(
@@ -169,20 +168,18 @@ bool CClientTCPSocket::InitNetworkData()
 {
 	wxASSERT(!m_remoteip);
 	wxASSERT(!m_client);
-	amuleIPV4Address addr;
-	GetPeer(addr);
-	m_remoteip = StringIPtoUint32(addr.IPAddress());
+	m_remoteip = GetPeerInt();
 
 	MULE_CHECK(m_remoteip, false);
 
 	if (theApp->ipfilter->IsFiltered(m_remoteip)) {
-		AddDebugLogLineN(logClient, wxT("Denied connection from ") + addr.IPAddress() + wxT("(Filtered IP)"));
+		AddDebugLogLineN(logClient, wxT("Denied connection from ") + GetPeer() + wxT("(Filtered IP)"));
 		return false;
 	} else if (theApp->clientlist->IsBannedClient(m_remoteip)) {
-		AddDebugLogLineN(logClient, wxT("Denied connection from ") + addr.IPAddress() + wxT("(Banned IP)"));
+		AddDebugLogLineN(logClient, wxT("Denied connection from ") + GetPeer() + wxT("(Banned IP)"));
 		return false;
 	} else {
-		AddDebugLogLineN(logClient, wxT("Accepted connection from ") + addr.IPAddress());
+		AddDebugLogLineN(logClient, wxT("Accepted connection from ") + GetPeer());
 		return true;
 	}
 }
@@ -209,22 +206,22 @@ bool CClientTCPSocket::CheckTimeOut()
 			if ( m_client->GetKadVersion() == 0 ) {
 				return false;
 			}
-			
-			uTimeout += MIN2MS(15);		
+
+			uTimeout += MIN2MS(15);
 		}
-		
+
 		if (m_client->GetChatState() != MS_NONE) {
-			uTimeout += CONNECTION_TIMEOUT;		
+			uTimeout += CONNECTION_TIMEOUT;
 		}
 	}
-	
+
 	if (::GetTickCount() - timeout_timer > uTimeout){
 		timeout_timer = ::GetTickCount();
 		Disconnect(wxT("Timeout"));
 		return true;
 	}
-	
-	return false;	
+
+	return false;
 }
 
 
@@ -262,10 +259,10 @@ void CClientTCPSocket::Disconnect(const wxString& strReason)
 				m_client->SetSocket( NULL );
 				m_client->Safe_Delete();
 			}
-		} 
+		}
 		m_client = NULL;
 	}
-	
+
 	Safe_Delete();
 }
 
@@ -278,17 +275,9 @@ void CClientTCPSocket::Safe_Delete()
 		m_client = NULL;
 	}
 
-	if ( !ForDeletion() && !OnDestroy() ) {
-		// Paranoia is back.
-		SetNotify(0);
-		Notify(false);
-		// lfroen: first of all - stop handler
-		m_ForDeletion = true;
-
-		byConnected = ES_DISCONNECTED;
-		Close(); // Destroy is suposed to call Close(), but.. it doesn't hurt.
-		Destroy();
-	}
+	// Destroy may be called several times
+	byConnected = ES_DISCONNECTED;
+	Destroy();
 }
 
 
@@ -312,7 +301,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 	} else if (m_client && opcode != OP_HELLO && opcode != OP_HELLOANSWER) {
 		m_client->CheckHandshakeFinished();
 	}
-	
+
 	switch(opcode) {
 		case OP_HELLOANSWER: {	// 0.43b
 			AddDebugLogLineN(logRemoteClient, wxT("Remote Client: OP_HELLOANSWER from ") + m_client->GetFullIP());
@@ -325,33 +314,33 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			if (m_client->GetInfoPacketsReceived() == IP_BOTH) {
 				m_client->InfoPacketsReceived();
 			}
-			
+
 			// Socket might die because of sending in InfoPacketsReceived, so check
 			if (m_client) {
 				m_client->ConnectionEstablished();
 			}
-			
+
 			// Socket might die on ConnectionEstablished somehow. Check it.
-			if (m_client) {					
+			if (m_client) {
 				Notify_SharedCtrlRefreshClient( m_client->ECID() , AVAILABLE_SOURCE);
 			}
-			
+
 			break;
 		}
 		case OP_HELLO: {	// 0.43b
-							
+
 			theStats::AddDownOverheadOther(size);
-			bool bNewClient = !m_client;				
+			bool bNewClient = !m_client;
 			if (bNewClient) {
 				// create new client to save standart informations
 				m_client = new CUpDownClient(this);
 			}
-			
+
 			// Do not move up!
 			AddDebugLogLineN(logRemoteClient, wxT("Remote Client: OP_HELLO from ") + m_client->GetFullIP() );
-			
+
 			bool bIsMuleHello = false;
-			
+
 			try{
 				bIsMuleHello = m_client->ProcessHelloPacket(buffer, size);
 			} catch(...) {
@@ -362,7 +351,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				}
 				throw;
 			}
-			
+
 			if (thePrefs::ParanoidFilter() && !IsLowID(m_client->GetUserIDHybrid()) && (GetRemoteIP() != wxUINT32_SWAP_ALWAYS(m_client->GetUserIDHybrid()))) {
 				wxString reason = wxT("Client claims a different IP from the one we received the hello packet from: ");
 				reason += Uint32toStringIP(wxUINT32_SWAP_ALWAYS(m_client->GetUserIDHybrid())) + wxT(" / ") + Uint32toStringIP(GetRemoteIP());
@@ -374,7 +363,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				Disconnect(wxT("Paranoid disconecting: ") + reason);
 				return false;
 			}
-			
+
 			// if IP is filtered, dont reply but disconnect...
 			if (theApp->ipfilter->IsFiltered(m_client->GetIP())) {
 				if (bNewClient) {
@@ -384,9 +373,9 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				Disconnect(wxT("IPFilter"));
 				return false;
 			}
-					
+
 			wxASSERT(m_client);
-			
+
 			// now we check if we know this client already. if yes this socket will
 			// be attached to the known client, the new client will be deleted
 			// and the var. "client" will point to the known client.
@@ -401,36 +390,36 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			Notify_SharedCtrlRefreshClient( m_client->ECID(), AVAILABLE_SOURCE );
 			// send a response packet with standart informations
 			if ((m_client->GetHashType() == SO_EMULE) && !bIsMuleHello) {
-				m_client->SendMuleInfoPacket(false);				
+				m_client->SendMuleInfoPacket(false);
 			}
-			
+
 			// Client might die from Sending in SendMuleInfoPacket, so check
 			if ( m_client ) {
 				m_client->SendHelloAnswer();
 			}
-						
+
 			// Kry - If the other side supports it, send OS_INFO
-			// Client might die from Sending in SendHelloAnswer, so check				
+			// Client might die from Sending in SendHelloAnswer, so check
 			if (m_client && m_client->GetOSInfoSupport()) {
 				m_client->SendMuleInfoPacket(false,true); // Send the OS Info tag on the recycled Mule Info
-			}				
-			
+			}
+
 			// Client might die from Sending in SendMuleInfoPacket, so check
 			if ( m_client ) {
 				m_client->ConnectionEstablished();
 			}
-			
+
 			// start secure identification, if
-			//	- we have received eMule-OP_HELLO (new eMule)				
+			//	- we have received eMule-OP_HELLO (new eMule)
 			if (m_client && m_client->GetInfoPacketsReceived() == IP_BOTH) {
-					m_client->InfoPacketsReceived();		
+					m_client->InfoPacketsReceived();
 			}
-			
+
 			break;
 		}
 		case OP_REQUESTFILENAME: {	// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_REQUESTFILENAME from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 			// IP banned, no answer for this request
 			if (m_client->IsBanned()) {
@@ -452,9 +441,8 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				// if we are downloading this file, this could be a new source
 				// no passive adding of files with only one part
 				if (reqfile->IsPartFile() && reqfile->GetFileSize() > PARTSIZE) {
-					if (thePrefs::GetMaxSourcePerFile() > 
-						((CPartFile*)reqfile)->GetSourceCount()) {
-						theApp->downloadqueue->CheckAndAddKnownSource((CPartFile*)reqfile, m_client);
+					if (thePrefs::GetMaxSourcePerFile() > static_cast<CPartFile*>(reqfile)->GetSourceCount()) {
+						theApp->downloadqueue->CheckAndAddKnownSource(static_cast<CPartFile*>(reqfile), m_client);
 					}
 				}
 
@@ -465,7 +453,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 
 				m_client->SetUploadFileID(reqfile);
 				m_client->ProcessExtendedInfo(&data_in, reqfile);
-				
+
 				// send filename etc
 				CMemFile data_out(128);
 				data_out.WriteHash(reqfile->GetFileHash());
@@ -473,7 +461,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				// Since it's for somebody else to see, we need to send the prettified
 				// filename, rather than the (possibly) mangled actual filename.
 				data_out.WriteString(reqfile->GetFileName().GetPrintable(), m_client->GetUnicodeSupport());
-				
+
 				CPacket* packet = new CPacket(data_out, OP_EDONKEYPROT, OP_REQFILENAMEANSWER);
 				theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 				AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_REQFILENAMEANSWER to ") + m_client->GetFullIP() );
@@ -486,17 +474,17 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				break;
 			}
 			throw wxString(wxT("Invalid OP_REQUESTFILENAME packet size"));
-			break;  
+			break;
 		}
 		case OP_SETREQFILEID: {	// 0.43b EXCEPT track of bad clients
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_SETREQFILEID from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
-			
+
 			if (m_client->IsBanned()) {
 				break;
 			}
-			
+
 			// DbT:FileRequest
 			if (size == 16) {
 				if (!m_client->GetWaitStartTime()) {
@@ -527,7 +515,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				CMemFile data(16+16);
 				data.WriteHash(reqfile->GetFileHash());
 				if (reqfile->IsPartFile()) {
-					((CPartFile*)reqfile)->WritePartStatus(&data);
+					static_cast<CPartFile*>(reqfile)->WritePartStatus(&data);
 				} else {
 					data.WriteUInt16(0);
 				}
@@ -540,11 +528,11 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			throw wxString(wxT("Invalid OP_FILEREQUEST packet size"));
 			break;
 			// DbT:End
-		}			
-		
+		}
+
 		case OP_FILEREQANSNOFIL: {	// 0.43b protocol, lacks ZZ's download manager on swap
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_FILEREQANSNOFIL from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 			if (size == 16) {
 				// if that client does not have my file maybe has another different
@@ -554,7 +542,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				} else {
 					break;
 				}
-					
+
 				// we try to swap to another file ignoring no needed parts files
 				switch (m_client->GetDownloadState()) {
 					case DS_CONNECTED:
@@ -570,10 +558,10 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			throw wxString(wxT("Invalid OP_FILEREQUEST packet size"));
 			break;
 		}
-		
+
 		case OP_REQFILENAMEANSWER: {	// 0.43b except check for bad clients
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_REQFILENAMEANSWER from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 			CMemFile data(buffer, size);
 			CMD4Hash hash = data.ReadHash();
@@ -581,10 +569,10 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			m_client->ProcessFileInfo(&data, file);
 			break;
 		}
-		
+
 		case OP_FILESTATUS: {		// 0.43b except check for bad clients
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_FILESTATUS from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 			CMemFile data(buffer, size);
 			CMD4Hash hash = data.ReadHash();
@@ -592,21 +580,21 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			m_client->ProcessFileStatus(false, &data, file);
 			break;
 		}
-		
+
 		case OP_STARTUPLOADREQ: {
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_STARTUPLOADREQ from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
-		
+
 			if (!m_client->CheckHandshakeFinished()) {
 				break;
 			}
-			
+
 			m_client->CheckForAggressive();
 			if ( m_client->IsBanned() ) {
 				break;
 			}
-			
+
 			if (size == 16) {
 				const CMD4Hash fileID(buffer);
 				CKnownFile* reqfile = theApp->sharedfiles->GetFileByID(fileID);
@@ -624,21 +612,21 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			}
 			break;
 		}
-		
+
 		case OP_QUEUERANK: {	// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_QUEUERANK from ") + m_client->GetFullIP() );
-			 
+
 			theStats::AddDownOverheadFileRequest(size);
 			CMemFile data(buffer, size);
 			uint32 rank = data.ReadUInt32();
-			
+
 			m_client->SetRemoteQueueRank(rank);
 			break;
 		}
-		
+
 		case OP_ACCEPTUPLOADREQ: {	// 0.42e (xcept khaos stats)
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_ACCEPTUPLOADREQ from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 			if (m_client->GetRequestFile() && !m_client->GetRequestFile()->IsStopped() && (m_client->GetRequestFile()->GetStatus()==PS_READY || m_client->GetRequestFile()->GetStatus()==PS_EMPTY)) {
 				if (m_client->GetDownloadState() == DS_ONQUEUE ) {
@@ -652,40 +640,40 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 					theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 					AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_CANCELTRANSFER to ") + m_client->GetFullIP() );
 					m_client->SendPacket(packet,true,true);
-					
+
 					// SendPacket can cause the socket to die, so check
 					if (m_client)
 						m_client->SetSentCancelTransfer(1);
 				}
-				
+
 				if (m_client)
 					m_client->SetDownloadState((m_client->GetRequestFile()==NULL || m_client->GetRequestFile()->IsStopped()) ? DS_NONE : DS_ONQUEUE);
 			}
 			break;
 		}
-		
+
 		case OP_REQUESTPARTS: {		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_REQUESTPARTS from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 
 			m_client->ProcessRequestPartsPacket(buffer, size, false);
-			
+
 			break;
 		}
-		
+
 		case OP_CANCELTRANSFER: {		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_CANCELTRANSFER from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 			theApp->uploadqueue->RemoveFromUploadQueue(m_client);
 			AddDebugLogLineN( logClient, m_client->GetUserName() + wxT(": Upload session ended due canceled transfer."));
 			break;
 		}
-		
+
 		case OP_END_OF_DOWNLOAD: { // 0.43b except check for bad clients
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_END_OF_DOWNLOAD from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 			if (size>=16 && m_client->GetUploadFileID() == CMD4Hash(buffer)) {
 				theApp->uploadqueue->RemoveFromUploadQueue(m_client);
@@ -693,11 +681,11 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			}
 			break;
 		}
-		
+
 		case OP_HASHSETREQUEST: {		// 0.43b except check for bad clients
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_HASHSETREQUEST from ") + m_client->GetFullIP() );
-			
-			
+
+
 			theStats::AddDownOverheadFileRequest(size);
 			if (size != 16) {
 				throw wxString(wxT("Invalid OP_HASHSETREQUEST packet size"));
@@ -705,34 +693,34 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			m_client->SendHashsetPacket(CMD4Hash(buffer));
 			break;
 		}
-		
+
 		case OP_HASHSETANSWER: {		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_HASHSETANSWER from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 			m_client->ProcessHashSet(buffer, size);
 			break;
 		}
-		
+
 		case OP_SENDINGPART: {		// 0.47a
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_SENDINGPART from ") + m_client->GetFullIP() );
-			
-			if (	 m_client->GetRequestFile() && 
-				!m_client->GetRequestFile()->IsStopped() && 
+
+			if (	 m_client->GetRequestFile() &&
+				!m_client->GetRequestFile()->IsStopped() &&
 				(m_client->GetRequestFile()->GetStatus() == PS_READY || m_client->GetRequestFile()->GetStatus()==PS_EMPTY)) {
-				
+
 				m_client->ProcessBlockPacket(buffer, size, false, false);
-					
-				if ( 	m_client && 
-					( m_client->GetRequestFile()->IsStopped() || 
-					  m_client->GetRequestFile()->GetStatus() == PS_PAUSED || 
+
+				if (	m_client &&
+					( m_client->GetRequestFile()->IsStopped() ||
+					  m_client->GetRequestFile()->GetStatus() == PS_PAUSED ||
 					  m_client->GetRequestFile()->GetStatus() == PS_ERROR) ) {
 					if (!m_client->GetSentCancelTransfer()) {
 						CPacket* packet = new CPacket(OP_CANCELTRANSFER, 0, OP_EDONKEYPROT);
 						theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 						AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_CANCELTRANSFER to ") + m_client->GetFullIP() );
 						m_client->SendPacket(packet,true,true);
-						
+
 						// Socket might die because of SendPacket, so check
 						if (m_client)
 							m_client->SetSentCancelTransfer(1);
@@ -747,7 +735,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 					theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 					AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_CANCELTRANSFER to ") + m_client->GetFullIP() );
 					m_client->SendPacket(packet,true,true);
-					
+
 					// Socket might die because of SendPacket, so check
 					m_client->SetSentCancelTransfer(1);
 				}
@@ -755,25 +743,25 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			}
 			break;
 		}
-		
+
 		case OP_OUTOFPARTREQS: {	// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_OUTOFPARTREQS from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 			if (m_client->GetDownloadState() == DS_DOWNLOADING) {
 				m_client->SetDownloadState(DS_ONQUEUE);
 			}
 			break;
 		}
-		
-		case OP_CHANGE_CLIENT_ID: { 	// Kad reviewed
+
+		case OP_CHANGE_CLIENT_ID: {	// Kad reviewed
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_CHANGE_CLIENT_ID from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadOther(size);
 			CMemFile data(buffer, size);
 			uint32 nNewUserID = data.ReadUInt32();
 			uint32 nNewServerIP = data.ReadUInt32();
-			
+
 			if (IsLowID(nNewUserID)) { // client changed server and gots a LowID
 				CServer* pNewServer = theApp->serverlist->GetServerByIP(nNewServerIP);
 				if (pNewServer != NULL){
@@ -788,24 +776,24 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 					m_client->SetServerIP(nNewServerIP);
 					m_client->SetServerPort(pNewServer->GetPort());
 				}
-			} 
-			
+			}
+
 			break;
-		}					
-		
+		}
+
 		case OP_CHANGE_SLOT:{	// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_CHANGE_SLOT from ") + m_client->GetFullIP() );
-			
+
 			// sometimes sent by Hybrid
 			theStats::AddDownOverheadOther(size);
 			break;
-		}			
-		
+		}
+
 		case OP_MESSAGE: {		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_MESSAGE from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadOther(size);
-			
+
 			if (size < 2) {
 				throw wxString(wxT("invalid message packet"));
 			}
@@ -822,29 +810,29 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				AddDebugLogLineN(logRemoteClient, CFormat(wxT("Message from '%s' (IP:%s) exceeds limit by %u chars, truncated."))
 					% m_client->GetUserName() % m_client->GetFullIP() % (length - MAX_CLIENT_MSG_LEN));
 				length = MAX_CLIENT_MSG_LEN;
-			}					
+			}
 
 			wxString message = message_file.ReadOnlyString((m_client->GetUnicodeSupport() != utf8strNone), length);
 			m_client->ProcessChatMessage(message);
 
 			break;
 		}
-		
+
 		case OP_ASKSHAREDFILES:	{	// 0.43b (well, er, it does the same, but in our own way)
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_ASKSHAREDFILES from ") + m_client->GetFullIP() );
-			
+
 			// client wants to know what we have in share, let's see if we allow him to know that
 			theStats::AddDownOverheadOther(size);
 			// IP banned, no answer for this request
 			if (m_client->IsBanned()) {
 				break;
 			}
-			
+
 			if (thePrefs::CanSeeShares() == vsfaEverybody || (thePrefs::CanSeeShares() == vsfaFriends && m_client->IsFriend())) {
 				AddLogLineC(CFormat( _("User %s (%u) requested your sharedfiles-list -> Accepted"))
-					% m_client->GetUserName() 
+					% m_client->GetUserName()
 					% m_client->GetUserIDHybrid() );
-				
+
 				std::vector<CKnownFile*> list;
 				theApp->sharedfiles->CopyFileList(list);
 
@@ -855,7 +843,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 						list[i]->CreateOfferedFilePacket(&tempfile, NULL, m_client);
 					}
 				}
-				
+
 				// create a packet and send it
 				CPacket* replypacket = new CPacket(tempfile, OP_EDONKEYPROT, OP_ASKSHAREDFILESANSWER);
 				AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_ASKSHAREDFILESANSWER to ") + m_client->GetFullIP() );
@@ -863,30 +851,30 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				SendPacket(replypacket, true, true);
 			} else {
 				AddLogLineC(CFormat( _("User %s (%u) requested your sharedfiles-list -> Denied"))
-					% m_client->GetUserName() 
+					% m_client->GetUserName()
 					% m_client->GetUserIDHybrid() );
-			
+
 				CPacket* replypacket = new CPacket(OP_ASKSHAREDDENIEDANS, 0, OP_EDONKEYPROT);
 				theStats::AddUpOverheadOther(replypacket->GetPacketSize());
 				AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_ASKSHAREDDENIEDANS to ") + m_client->GetFullIP() );
-				SendPacket(replypacket, true, true);				
+				SendPacket(replypacket, true, true);
 			}
 
 			break;
 		}
-		
+
 		case OP_ASKSHAREDFILESANSWER: {	// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_ASKSHAREDFILESANSWER from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadOther(size);
 			wxString EmptyStr;
 			m_client->ProcessSharedFileList(buffer, size, EmptyStr);
 			break;
 		}
-		
-		case OP_ASKSHAREDDIRS: { 		// 0.43b
+
+		case OP_ASKSHAREDDIRS: {		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_ASKSHAREDDIRS from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadOther(size);
 			wxASSERT( size == 0 );
 			// IP banned, no answer for this request
@@ -896,7 +884,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			if ((thePrefs::CanSeeShares()==vsfaEverybody) || ((thePrefs::CanSeeShares()==vsfaFriends) && m_client->IsFriend())) {
 				AddLogLineC(CFormat( _("User %s (%u) requested your shareddirectories-list -> Accepted") )
 					% m_client->GetUserName()
- 					% m_client->GetUserIDHybrid() );
+					% m_client->GetUserIDHybrid() );
 				// send the list of shared directories
 				m_client->SendSharedDirectories();
 			} else {
@@ -912,17 +900,17 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 
 			break;
 		}
-		
+
 		case OP_ASKSHAREDFILESDIR: {	// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_ASKSHAREDFILESDIR from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadOther(size);
 			// IP banned, no answer for this request
 			if (m_client->IsBanned()) {
 				break;
 			}
 			CMemFile data(buffer, size);
-										
+
 			wxString strReqDir = data.ReadString((m_client->GetUnicodeSupport() != utf8strNone));
 			if (thePrefs::CanSeeShares()==vsfaEverybody || (thePrefs::CanSeeShares()==vsfaFriends && m_client->IsFriend())) {
 				AddLogLineC(CFormat(_("User %s (%u) requested your sharedfiles-list for directory '%s' -> accepted")) % m_client->GetUserName() % m_client->GetUserIDHybrid() % strReqDir);
@@ -931,18 +919,18 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				m_client->SendSharedFilesOfDirectory(strReqDir);
 			} else {
 				AddLogLineC(CFormat(_("User %s (%u) requested your sharedfiles-list for directory '%s' -> denied")) % m_client->GetUserName() % m_client->GetUserIDHybrid() % strReqDir);
-				
+
 				CPacket* replypacket = new CPacket(OP_ASKSHAREDDENIEDANS, 0, OP_EDONKEYPROT);
 				theStats::AddUpOverheadOther(replypacket->GetPacketSize());
 				AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_ASKSHAREDDENIEDANS to ") + m_client->GetFullIP() );
 				SendPacket(replypacket, true, true);
 			}
 			break;
-		}		
-		
+		}
+
 		case OP_ASKSHAREDDIRSANS:{		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_ASKSHAREDDIRSANS from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadOther(size);
 			if (m_client->GetFileListRequested() == 1){
 				CMemFile data(buffer, size);
@@ -953,7 +941,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 						% m_client->GetUserName()
 						% m_client->GetUserIDHybrid()
 						% strDir );
-			
+
 					CMemFile tempfile(80);
 					tempfile.WriteString(strDir, m_client->GetUnicodeSupport());
 					CPacket* replypacket = new CPacket(tempfile, OP_EDONKEYPROT, OP_ASKSHAREDFILESDIR);
@@ -965,15 +953,15 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 				m_client->SetFileListRequested(uDirs);
 			} else {
 				AddLogLineC(CFormat( _("User %s (%u) sent unrequested shared dirs.") )
-					% m_client->GetUserName() 
+					% m_client->GetUserName()
 					% m_client->GetUserIDHybrid() );
 			}
 			break;
 		}
-  
+
 		case OP_ASKSHAREDFILESDIRANS: {		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_ASKSHAREDFILESDIRANS from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadOther(size);
 			CMemFile data(buffer, size);
 			wxString strDir = data.ReadString((m_client->GetUnicodeSupport() != utf8strNone));
@@ -983,7 +971,7 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 					% m_client->GetUserName()
 					% m_client->GetUserIDHybrid()
 					% strDir );
-				
+
 				m_client->ProcessSharedFileList(buffer + data.GetPosition(), size - data.GetPosition(), strDir);
 				if (m_client->GetFileListRequested() == 0) {
 					AddLogLineC(CFormat( _("User %s (%u) finished sending sharedfiles-list") )
@@ -997,25 +985,25 @@ bool CClientTCPSocket::ProcessPacket(const byte* buffer, uint32 size, uint8 opco
 			}
 			break;
 		}
-		
+
 		case OP_ASKSHAREDDENIEDANS:
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_ASKSHAREDDENIEDANS from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadOther(size);
 			wxASSERT( size == 0 );
 			AddLogLineC(CFormat( _("User %s (%u) denied access to shared directories/files list") )
 				% m_client->GetUserName()
 				% m_client->GetUserIDHybrid() );
-					
-			m_client->SetFileListRequested(0);			
+
+			m_client->SetFileListRequested(0);
 			break;
-		
+
 		default:
 			theStats::AddDownOverheadOther(size);
 			AddDebugLogLineN(logRemoteClient, CFormat(wxT("Edonkey packet: unknown opcode: %i %x from %s")) % opcode % opcode % m_client->GetFullIP());
 			return false;
 	}
-	
+
 	return true;
 }
 
@@ -1026,7 +1014,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 	//printf("Rec: OPCODE %x \n",opcode);
 	DumpMem(buffer,size);
 	#endif
-		
+
 	// 0.42e - except the catchs on mem exception and file exception
 	if (!m_client) {
 		throw wxString(wxT("Unknown clients sends extended protocol packet"));
@@ -1041,7 +1029,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 	switch(opcode) {
 		case OP_MULTIPACKET_EXT:
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_MULTIPACKET_EXT from ") + m_client->GetFullIP());
-		case OP_MULTIPACKET: {	
+		case OP_MULTIPACKET: {
 			if (opcode == OP_MULTIPACKET) AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_MULTIPACKET from ") + m_client->GetFullIP() );
 
 			theStats::AddDownOverheadFileRequest(size);
@@ -1059,7 +1047,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 			CMemFile data_in(buffer, size);
 			CMD4Hash reqfilehash = data_in.ReadHash();
 			uint64 nSize = (opcode == OP_MULTIPACKET_EXT) ? data_in.ReadUInt64() : 0;
-			
+
 			bool file_not_found = false;
 			CKnownFile* reqfile = theApp->sharedfiles->GetFileByID(reqfilehash);
 			if ( reqfile == NULL ){
@@ -1069,12 +1057,12 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 					file_not_found = true;
 				}
 			}
-			
+
 			if (!file_not_found && reqfile->IsLargeFile() && !m_client->SupportsLargeFiles()) {
 				AddDebugLogLineN(logRemoteClient, wxT("Remote client asked for a large file but doesn't support them"));
 				file_not_found = true;
-			}				
-			
+			}
+
 			if (!file_not_found && nSize && (reqfile->GetFileSize() != nSize)) {
 				AddDebugLogLineN(logRemoteClient, wxT("Remote client asked for a file but specified wrong size"));
 				file_not_found = true;
@@ -1086,17 +1074,17 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 				theStats::AddUpOverheadFileRequest(replypacket->GetPacketSize());
 				AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_FILEREQANSNOFIL to ") + m_client->GetFullIP() );
 				SendPacket(replypacket, true);
-				break;				
+				break;
 			}
-			
+
 			if (!m_client->GetWaitStartTime()) {
 				m_client->SetWaitStartTime();
 			}
 			// if we are downloading this file, this could be a new source
 			// no passive adding of files with only one part
 			if (reqfile->IsPartFile() && reqfile->GetFileSize() > PARTSIZE) {
-				if (thePrefs::GetMaxSourcePerFile() > ((CPartFile*)reqfile)->GetSourceCount()) {
-					theApp->downloadqueue->CheckAndAddKnownSource((CPartFile*)reqfile, m_client);
+				if (thePrefs::GetMaxSourcePerFile() > static_cast<CPartFile*>(reqfile)->GetSourceCount()) {
+					theApp->downloadqueue->CheckAndAddKnownSource(static_cast<CPartFile*>(reqfile), m_client);
 				}
 			}
 			// check to see if this is a new file they are asking for
@@ -1116,7 +1104,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 						AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_MULTIPACKET has OP_REQUESTFILENAME") );
 						m_client->ProcessExtendedInfo(&data_in, reqfile);
 						data_out.WriteUInt8(OP_REQFILENAMEANSWER);
-						
+
 						// Since it's for somebody else to see, we need to send the prettified
 						// filename, rather than the (possibly) mangled actual filename
 						data_out.WriteString(reqfile->GetFileName().GetPrintable(), m_client->GetUnicodeSupport());
@@ -1131,18 +1119,18 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 							reqfile->GetAICHHashset()->GetMasterHash().Write(&data_out);
 						}
 						break;
-					}						
+					}
 					case OP_SETREQFILEID: {
 						AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_MULTIPACKET has OP_SETREQFILEID") );
 						data_out.WriteUInt8(OP_FILESTATUS);
 						if (reqfile->IsPartFile()) {
-							((CPartFile*)reqfile)->WritePartStatus(&data_out);
+							static_cast<CPartFile*>(reqfile)->WritePartStatus(&data_out);
 						} else {
 							data_out.WriteUInt16(0);
 						}
 						break;
 					}
-					//We still send the source packet separately.. 
+					//We still send the source packet separately..
 					//We could send it within this packet.. If agreeded, I will fix it..
 					case OP_REQUESTSOURCES2:
 					case OP_REQUESTSOURCES: {
@@ -1152,22 +1140,22 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 						if (opcode_in == OP_REQUESTSOURCES2){ // SX2 requests contains additional data
 							byRequestedVersion = data_in.ReadUInt8();
 							byRequestedOptions = data_in.ReadUInt16();
-						}						
-						
+						}
+
 						//Although this shouldn't happen, it's a just in case to any Mods that mess with version numbers.
-						
+
 						if (byRequestedVersion > 0 || m_client->GetSourceExchange1Version() > 1) {
 							uint32 dwTimePassed = ::GetTickCount() - m_client->GetLastSrcReqTime() + CONNECTION_LATENCY;
 							bool bNeverAskedBefore = m_client->GetLastSrcReqTime() == 0;
-							if( 
+							if(
 									//if not complete and file is rare
 									(    reqfile->IsPartFile()
 									&& (bNeverAskedBefore || dwTimePassed > SOURCECLIENTREASKS)
-									&& ((CPartFile*)reqfile)->GetSourceCount() <= RARE_FILE
+									&& static_cast<CPartFile*>(reqfile)->GetSourceCount() <= RARE_FILE
 									) ||
 									//OR if file is not rare or if file is complete
 									( (bNeverAskedBefore || dwTimePassed > SOURCECLIENTREASKS * MINCOMMONPENALTY) )
-									) 
+									)
 							{
 								m_client->SetLastSrcReqTime();
 								CPacket* tosend = reqfile->CreateSrcInfoPacket(m_client, byRequestedVersion, byRequestedOptions);
@@ -1194,7 +1182,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 
 		case OP_MULTIPACKETANSWER: {	// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_MULTIPACKETANSWER from ") + m_client->GetFullIP() );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 
 			if (m_client->IsBanned()) {
@@ -1210,7 +1198,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 				// IMHO, we should disconnect the client.
 				throw wxString(wxT("Client send OP_MULTIPACKETANSWER before finishing handshake"));
 			}
-			
+
 			CMemFile data_in(buffer, size);
 			CMD4Hash reqfilehash = data_in.ReadHash();
 			const CPartFile *reqfile = theApp->downloadqueue->GetFileByID(reqfilehash);
@@ -1251,7 +1239,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 					case OP_AICHFILEHASHANS: {
 						if (!m_client) {
 							throw wxString(wxT("Client suddenly disconnected"));
-						} else {					
+						} else {
 							m_client->ProcessAICHFileHash(&data_in, reqfile);
 						}
 						break;
@@ -1261,17 +1249,17 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 
 			break;
 		}
-	
+
 		case OP_EMULEINFO: {	// 0.43b
 			theStats::AddDownOverheadOther(size);
 
-			if (!m_client->ProcessMuleInfoPacket(buffer, size)) { 
+			if (!m_client->ProcessMuleInfoPacket(buffer, size)) {
 				AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_EMULEINFO from ") + m_client->GetFullIP() );
-				
+
 				// If it's not a OS Info packet, is an old client
 				// start secure identification, if
 				//  - we have received eD2K and eMule info (old eMule)
-				if (m_client->GetInfoPacketsReceived() == IP_BOTH) {	
+				if (m_client->GetInfoPacketsReceived() == IP_BOTH) {
 					m_client->InfoPacketsReceived();
 				}
 				m_client->SendMuleInfoPacket(true);
@@ -1283,26 +1271,26 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 		case OP_EMULEINFOANSWER: {	// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_EMULEINFOANSWER from ") + m_client->GetFullIP() );
 			theStats::AddDownOverheadOther(size);
-			
+
 			m_client->ProcessMuleInfoPacket(buffer, size);
 			// start secure identification, if
 			//  - we have received eD2K and eMule info (old eMule)
-			
+
 			if (m_client->GetInfoPacketsReceived() == IP_BOTH) {
-				m_client->InfoPacketsReceived();				
+				m_client->InfoPacketsReceived();
 			}
-			
+
 			break;
 		}
-		
+
 		case OP_SECIDENTSTATE:{		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_SECIDENTSTATE from ") + m_client->GetFullIP() );
-			
+
 			if (!m_client->CheckHandshakeFinished()) {
 				// Here comes an extended packet without finishing the handshake.
 				// IMHO, we should disconnect the client.
 				throw wxString(wxT("Client send OP_SECIDENTSTATE before finishing handshake"));
-			}								
+			}
 			m_client->ProcessSecIdentStatePacket(buffer, size);
 			// ProcessSecIdentStatePacket() might cause the socket to die, so check
 			if (m_client) {
@@ -1319,32 +1307,32 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 			}
 			break;
 		}
-		
+
 		case OP_PUBLICKEY: {		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_PUBLICKEY from ") + m_client->GetFullIP() );
-			
+
 			if (m_client->IsBanned() ){
-				break;						
+				break;
 			}
-			
+
 			if (!m_client->CheckHandshakeFinished()) {
 				// Here comes an extended packet without finishing the handshake.
 				// IMHO, we should disconnect the client.
 				throw wxString(wxT("Client send OP_PUBLICKEY before finishing handshake"));
 			}
-											
+
 			m_client->ProcessPublicKeyPacket(buffer, size);
 			break;
 		}
 		case OP_SIGNATURE:{			// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_SIGNATURE from ") + m_client->GetFullIP() );
-			
+
 			if (!m_client->CheckHandshakeFinished()) {
 				// Here comes an extended packet without finishing the handshake.
 				// IMHO, we should disconnect the client.
 				throw wxString(wxT("Client send OP_COMPRESSEDPART before finishing handshake"));
 			}
-											
+
 			m_client->ProcessSignaturePacket(buffer, size);
 			break;
 		}
@@ -1354,17 +1342,17 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 			if (opcode == OP_COMPRESSEDPART_I64) AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_COMPRESSEDPART_I64 from ") + m_client->GetFullIP() );
 		case OP_COMPRESSEDPART: {	// 0.47a
 			if (opcode == OP_COMPRESSEDPART) AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_COMPRESSEDPART from ") + m_client->GetFullIP() );
-			
+
 			if (!m_client->CheckHandshakeFinished()) {
 				// Here comes an extended packet without finishing the handshake.
 				// IMHO, we should disconnect the client.
 				throw wxString(wxT("Client send OP_COMPRESSEDPART before finishing handshake"));
 			}
-											
+
 			if (m_client->GetRequestFile() && !m_client->GetRequestFile()->IsStopped() && (m_client->GetRequestFile()->GetStatus()==PS_READY || m_client->GetRequestFile()->GetStatus()==PS_EMPTY)) {
-				
+
 				m_client->ProcessBlockPacket(buffer, size, (opcode != OP_SENDINGPART_I64), (opcode == OP_COMPRESSEDPART_I64) || (opcode == OP_SENDINGPART_I64));
-				
+
 				if (m_client && (
 					m_client->GetRequestFile()->IsStopped() ||
 					m_client->GetRequestFile()->GetStatus() == PS_PAUSED ||
@@ -1373,15 +1361,15 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 						CPacket* packet = new CPacket(OP_CANCELTRANSFER, 0, OP_EDONKEYPROT);
 						theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 						AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_CANCELTRANSFER to ") + m_client->GetFullIP() );
-						m_client->SendPacket(packet,true,true);					
-						
+						m_client->SendPacket(packet,true,true);
+
 						if (m_client) {
 							m_client->SetSentCancelTransfer(1);
 						}
 					}
 
 					if ( m_client ) {
-						m_client->SetDownloadState(m_client->GetRequestFile()->IsStopped() ? DS_NONE : DS_ONQUEUE);	
+						m_client->SetDownloadState(m_client->GetRequestFile()->IsStopped() ? DS_NONE : DS_ONQUEUE);
 					}
 				}
 			} else {
@@ -1390,38 +1378,38 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 					theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 					AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_CANCELTRANSFER to ") + m_client->GetFullIP() );
 					m_client->SendPacket(packet,true,true);
-					
+
 					if ( m_client ) {
 						m_client->SetSentCancelTransfer(1);
 					}
 				}
-			
+
 				if ( m_client ) {
 					m_client->SetDownloadState((m_client->GetRequestFile()==NULL || m_client->GetRequestFile()->IsStopped()) ? DS_NONE : DS_ONQUEUE);
 				}
 			}
 			break;
 		}
-		case OP_REQUESTPARTS_I64: {	
+		case OP_REQUESTPARTS_I64: {
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_REQUESTPARTS_I64 from ") + m_client->GetFullIP()  );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 
 			m_client->ProcessRequestPartsPacket(buffer, size, true);
-			
+
 			break;
-		}		
+		}
 		case OP_QUEUERANKING: {		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_QUEUERANKING from ") + m_client->GetFullIP()  );
-			
+
 			theStats::AddDownOverheadOther(size);
-			
+
 			if (!m_client->CheckHandshakeFinished()) {
 				// Here comes an extended packet without finishing the handshake.
 				// IMHO, we should disconnect the client.
 				throw wxString(wxT("Client send OP_QUEUERANKING before finishing handshake"));
 			}
-			
+
 			if (size != 12) {
 				throw wxString(wxT("Invalid size (OP_QUEUERANKING)"));
 			}
@@ -1434,7 +1422,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 		case OP_REQUESTSOURCES2:
 		case OP_REQUESTSOURCES:{
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_REQUESTSOURCES from ") + m_client->GetFullIP()  );
-			
+
 			theStats::AddDownOverheadSourceExchange(size);
 
 			if (!m_client->CheckHandshakeFinished()) {
@@ -1450,7 +1438,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 				byRequestedVersion = data_in.ReadUInt8();
 				byRequestedOptions = data_in.ReadUInt16();
 			}
-					
+
 			if (byRequestedVersion > 0 || m_client->GetSourceExchange1Version() >= 1) {
 				if(size != 16) {
 					throw wxString(wxT("Invalid size (OP_QUEUERANKING)"));
@@ -1469,13 +1457,13 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 					// or they will get just a random set of sources because we do not know their download
 					// part status which may get cleared with the call of 'SetUploadFileID'.
 					m_client->SetUploadFileID(file);
-					
+
 					uint32 dwTimePassed = ::GetTickCount() - m_client->GetLastSrcReqTime() + CONNECTION_LATENCY;
 					bool bNeverAskedBefore = m_client->GetLastSrcReqTime() == 0;
-					if( 
+					if(
 					//if not complete and file is rare, allow once every 40 minutes
 					( file->IsPartFile() &&
-					((CPartFile*)file)->GetSourceCount() <= RARE_FILE &&
+					static_cast<CPartFile*>(file)->GetSourceCount() <= RARE_FILE &&
 					(bNeverAskedBefore || dwTimePassed > SOURCECLIENTREASKS)
 					) ||
 					//OR if file is not rare or if file is complete, allow every 90 minutes
@@ -1496,7 +1484,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 		}
 		case OP_ANSWERSOURCES: {
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_ANSWERSOURCES from ") + m_client->GetFullIP()  );
-			
+
 			theStats::AddDownOverheadSourceExchange(size);
 
 			if (!m_client->CheckHandshakeFinished()) {
@@ -1504,18 +1492,17 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 				// IMHO, we should disconnect the client.
 				throw wxString(wxT("Client send OP_ANSWERSOURCES before finishing handshake"));
 			}
-			
+
 			CMemFile data(buffer, size);
 			CMD4Hash hash = data.ReadHash();
-			const CKnownFile* file = theApp->downloadqueue->GetFileByID(hash);
+			CKnownFile* file = theApp->downloadqueue->GetFileByID(hash);
 			if(file){
 				if (file->IsPartFile()){
 					//set the client's answer time
 					m_client->SetLastSrcAnswerTime();
 					//and set the file's last answer time
-					((CPartFile*)file)->SetLastAnsweredTime();
-
-					((CPartFile*)file)->AddClientSources(&data, SF_SOURCE_EXCHANGE, m_client->GetSourceExchange1Version(), false, m_client);
+					static_cast<CPartFile*>(file)->SetLastAnsweredTime();
+					static_cast<CPartFile*>(file)->AddClientSources(&data, SF_SOURCE_EXCHANGE, m_client->GetSourceExchange1Version(), false, m_client);
 				}
 			}
 			break;
@@ -1529,25 +1516,25 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 				// IMHO, we should disconnect the client.
 				throw wxString(wxT("Client send OP_ANSWERSOURCES2 before finishing handshake"));
 			}
-			
+
 			CMemFile data(buffer, size);
 			uint8 byVersion = data.ReadUInt8();
 			CMD4Hash hash = data.ReadHash();
-			const CKnownFile* file = theApp->downloadqueue->GetFileByID(hash);
+			CKnownFile* file = theApp->downloadqueue->GetFileByID(hash);
 			if (file){
 				if (file->IsPartFile()){
 					//set the client's answer time
 					m_client->SetLastSrcAnswerTime();
 					//and set the file's last answer time
-					((CPartFile*)file)->SetLastAnsweredTime();
-					((CPartFile*)file)->AddClientSources(&data, SF_SOURCE_EXCHANGE, byVersion, true, m_client);
+					static_cast<CPartFile*>(file)->SetLastAnsweredTime();
+					static_cast<CPartFile*>(file)->AddClientSources(&data, SF_SOURCE_EXCHANGE, byVersion, true, m_client);
 				}
 			}
 			break;
-		}		
+		}
 		case OP_FILEDESC: {		// 0.43b
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_FILEDESC from ") + m_client->GetFullIP()  );
-			
+
 			theStats::AddDownOverheadFileRequest(size);
 
 			if (!m_client->CheckHandshakeFinished()) {
@@ -1555,7 +1542,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 				// IMHO, we should disconnect the client.
 				throw wxString(wxT("Client send OP_FILEDESC before finishing handshake"));
 			}
-			
+
 			m_client->ProcessMuleCommentPacket(buffer, size);
 			break;
 		}
@@ -1586,7 +1573,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 			AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_PUBLICIP_ANSWER to") + m_client->GetFullIP());
 			SendPacket(pPacket);
 			break;
-		}			
+		}
 		case OP_AICHANSWER: {
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_AICHANSWER from ") + m_client->GetFullIP()  );
 			theStats::AddDownOverheadOther(size);
@@ -1616,7 +1603,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 			if (pPartFile == NULL){
 				break;
 			}
-			
+
 			if (m_client->IsSupportingAICH() && pPartFile->GetAICHHashset()->GetStatus() == AICH_HASHSETCOMPLETE
 				&& pPartFile->GetAICHHashset()->HasValidMasterHash()) {
 				CMemFile data_out;
@@ -1637,8 +1624,8 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 			}
 			CMemFile data(buffer, size);
 			CUInt128 check = data.ReadUInt128();
-			check.XOR(Kademlia::CUInt128(true));
-			if( check.CompareTo(Kademlia::CKademlia::GetPrefs()->GetKadID())) {
+			check ^= Kademlia::CUInt128(true);
+			if (check != Kademlia::CKademlia::GetPrefs()->GetKadID()) {
 				break;
 			}
 			CUInt128 fileid = data.ReadUInt128();
@@ -1663,7 +1650,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 			callback->TryToConnect(true);
 			break;
 		}
-		
+
 		case OP_BUDDYPING: {
 			AddDebugLogLineN( logRemoteClient, wxT("Remote Client: OP_BUDDYPING from ") + m_client->GetFullIP()  );
 			theStats::AddDownOverheadKad(size);
@@ -1673,7 +1660,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 				//This ping was not from our buddy or wrong version or packet sent to fast. Ignore
 				break;
 			}
-			
+
 			m_client->SetLastBuddyPingPongTime();
 			CPacket* replypacket = new CPacket(OP_BUDDYPONG, 0, OP_EMULEPROT);
 			theStats::AddUpOverheadKad(replypacket->GetPacketSize());
@@ -1708,7 +1695,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 			uint16 destport = data_in.ReadUInt16();
 			CMD4Hash hash = data_in.ReadHash();
 			CKnownFile* reqfile = theApp->sharedfiles->GetFileByID(hash);
-			
+
 			bool bSenderMultipleIpUnknown = false;
 			CUpDownClient* sender = theApp->uploadqueue->GetWaitingClientByIP_UDP(destip, destport, true, &bSenderMultipleIpUnknown);
 			if (!reqfile) {
@@ -1722,7 +1709,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 				}
 				break;
 			}
-			
+
 			if (sender) {
 				//Make sure we are still thinking about the same file
 				if (hash == sender->GetUploadFileID()) {
@@ -1733,11 +1720,11 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 					//So now I am forced to check UDPVersion to see if we are sending all the extended info.
 					//For now on, we should not have to change anything here if we change
 					//anything to the extended info data as this will be taken care of in ProcessExtendedInfo()
-					//Update extended info. 
+					//Update extended info.
 					if (sender->GetUDPVersion() > 3) {
 						sender->ProcessExtendedInfo(&data_in, reqfile);
 					} else if (sender->GetUDPVersion() > 2) {
-						//Update our complete source counts.			
+						//Update our complete source counts.
 						uint16 nCompleteCountLast= sender->GetUpCompleteSourcesCount();
 						uint16 nCompleteCountNew = data_in.ReadUInt16();
 						sender->SetUpCompleteSourcesCount(nCompleteCountNew);
@@ -1745,16 +1732,16 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 							reqfile->UpdatePartsInfo();
 						}
 					}
-					
+
 					CMemFile data_out(128);
 					if(sender->GetUDPVersion() > 3) {
 						if (reqfile->IsPartFile()) {
-							((CPartFile*)reqfile)->WritePartStatus(&data_out);
+							static_cast<CPartFile*>(reqfile)->WritePartStatus(&data_out);
 						} else {
 							data_out.WriteUInt16(0);
 						}
 					}
-					
+
 					data_out.WriteUInt16(sender->GetUploadQueueWaitingPosition());
 					CPacket* response = new CPacket(data_out, OP_EMULEPROT, OP_REASKACK);
 					theStats::AddUpOverheadFileRequest(response->GetPacketSize());
@@ -1817,7 +1804,7 @@ bool CClientTCPSocket::ProcessExtPacket(const byte* buffer, uint32 size, uint8 o
 			AddDebugLogLineN(logRemoteClient, CFormat(wxT("eMule packet : unknown opcode: %i %x from %s")) % opcode % opcode % m_client->GetFullIP());
 			break;
 	}
-	
+
 	return true;
 }
 
@@ -1827,7 +1814,7 @@ bool CClientTCPSocket::ProcessED2Kv2Packet(const byte* buffer, uint32 size, uint
 	//printf("Rec: OPCODE %x ED2Kv2\n",opcode);
 	DumpMem(buffer,size);
 	#endif
-		
+
 	if (!m_client) {
 		throw wxString(wxT("Unknown clients sends extended ED2Kv2 protocol packet"));
 	}
@@ -1835,24 +1822,24 @@ bool CClientTCPSocket::ProcessED2Kv2Packet(const byte* buffer, uint32 size, uint
 	CMemFile data(buffer, size);
 	try {
 		switch(opcode) {
-			case OP_QUEUERANK: {	
+			case OP_QUEUERANK: {
 				AddDebugLogLineN( logRemoteClient, wxT("Remote Client: ED2Kv2 OP_QUEUERANK from ") + m_client->GetFullIP() );
-				
+
 				uint8 numtags = data.ReadUInt8();
 				wxASSERT(numtags == 1);
 				if(numtags){}	// prevent GCC warning
-				
+
 				m_client->SetRemoteQueueRank(data.GetIntTagValue());
-				
+
 				theStats::AddDownOverheadFileRequest(size);
 				break;
 			}
-			
+
 			case OP_REQUESTPARTS: {
 				AddDebugLogLineN( logRemoteClient, wxT("Remote Client: ED2Kv2 OP_REQUESTPARTS from ") + m_client->GetFullIP() );
-					
+
 				m_client->ProcessRequestPartsPacketv2(data);
-				
+
 				theStats::AddDownOverheadFileRequest(size);
 				break;
 			}
@@ -1865,7 +1852,7 @@ bool CClientTCPSocket::ProcessED2Kv2Packet(const byte* buffer, uint32 size, uint
 		AddDebugLogLineN(logRemoteClient, CFormat(wxT("ED2Kv2 packet is corrupt at pos %i! opcode: %i %x from %s")) % data.GetPosition() % opcode % opcode % m_client->GetFullIP());
 		throw;
 	}
-	
+
 	return true;
 }
 
@@ -1874,10 +1861,10 @@ void CClientTCPSocket::OnConnect(int nErrorCode)
 	if (nErrorCode) {
 		OnError(nErrorCode);
 	} else if (!m_client) {
-		// and now? Disconnect? not?			
+		// and now? Disconnect? not?
 		AddDebugLogLineN( logClient, wxT("Couldn't send hello packet (Client deleted!)") );
-	} else if (!m_client->SendHelloPacket()) {	
-		// and now? Disconnect? not?				
+	} else if (!m_client->SendHelloPacket()) {
+		// and now? Disconnect? not?
 		AddDebugLogLineN( logClient, wxT("Couldn't send hello packet (Client deleted by SendHelloPacket!)") );
 	} else {
 		ResetTimeOutTimer();
@@ -1897,7 +1884,7 @@ void CClientTCPSocket::OnReceive(int nErrorCode)
 	ResetTimeOutTimer();
 	// We might have updated ipfilter
 	wxASSERT(m_remoteip);
-	
+
 	if (theApp->ipfilter->IsFiltered(m_remoteip)) {
 		if (m_client) {
 			m_client->Safe_Delete();
@@ -1915,8 +1902,8 @@ void CClientTCPSocket::OnError(int nErrorCode)
 	//printf("* Called OnError for %p\n",this);
 	// 0.42e + Kry changes for handling of socket lost events
 	wxString strError;
-	
-	if ((nErrorCode == 0) || (nErrorCode == 7) || (nErrorCode == 0xFEFF)) {	
+
+	if ((nErrorCode == 0) || (nErrorCode == 7) || (nErrorCode == 0xFEFF)) {
 		if (m_client) {
 			if (!m_client->GetUserName().IsEmpty()) {
 				strError = wxT("Client '") + m_client->GetUserName() + wxT("'");
@@ -1952,9 +1939,9 @@ void CClientTCPSocket::OnError(int nErrorCode)
 			}
 		} else {
 			strError = wxT("Error 107 (Transport endpoint is not connected)");
-		}	
+		}
 	}
-	
+
 	Disconnect(strError);
 }
 
@@ -1974,35 +1961,35 @@ bool CClientTCPSocket::PacketReceived(CPacket* packet)
 	);
 
 	wxString exception;
-	
+
 	try {
 		bool process = true;
-		
-		if ((packet->GetProtocol() == OP_PACKEDPROT) || 
+
+		if ((packet->GetProtocol() == OP_PACKEDPROT) ||
 			(packet->GetProtocol() == OP_ED2KV2PACKEDPROT)) {
-				
+
 			if (!packet->UnPackPacket()) {
 				AddDebugLogLineN(logZLib, wxT("Failed to decompress client TCP packet."));
 				bResult = false;
 				process = false;
 			} else {
-				AddDebugLogLineN(logRemoteClient, CFormat(wxT("Packet unpacked, new protocol %x, opcode %x, size %u")) 
+				AddDebugLogLineN(logRemoteClient, CFormat(wxT("Packet unpacked, new protocol %x, opcode %x, size %u"))
 					% packet->GetProtocol() % packet->GetOpCode() % packet->GetPacketSize());
 			}
 		}
-		
+
 		if (process) {
 			switch (packet->GetProtocol()) {
-				case OP_EDONKEYPROT:		
+				case OP_EDONKEYPROT:
 					bResult = ProcessPacket(packet->GetDataBuffer(),uRawSize,packet->GetOpCode());
-					break;		
+					break;
 				case OP_EMULEPROT:
 					bResult = ProcessExtPacket(packet->GetDataBuffer(), packet->GetPacketSize(), packet->GetOpCode());
 					break;
 				case OP_ED2KV2HEADER:
 					bResult = ProcessED2Kv2Packet(packet->GetDataBuffer(), packet->GetPacketSize(), packet->GetOpCode());
 					break;
-				case OP_ED2KV2PACKEDPROT:				
+				case OP_ED2KV2PACKEDPROT:
 				case OP_PACKEDPROT:
 					// Packed inside packed?
 					wxFAIL;
@@ -2034,18 +2021,18 @@ bool CClientTCPSocket::PacketReceived(CPacket* packet)
 				% packet->GetPacketSize()
 				% ( m_client ? m_client->GetClientFullInfo() : wxT("Unknown") )
 		);
-		
+
 		if (m_client) {
 			m_client->SetDownloadState(DS_ERROR);
 		}
-		
+
 		AddDebugLogLineN( logClient,
 			CFormat( wxT("Client '%s' (IP: %s) caused an error (%s). Disconnecting client!" ) )
 				% ( m_client ? m_client->GetUserName() : wxString(wxT("Unknown")) )
 				% ( m_client ? m_client->GetFullIP() : wxString(wxT("Unknown")) )
 				% exception
 		);
-		
+
 		Disconnect(wxT("Caught exception on CClientTCPSocket::ProcessPacket\n"));
 	}
 
diff --git a/src/ClientTCPSocket.h b/src/ClientTCPSocket.h
index 63f64ae..ba65265 100644
--- a/src/ClientTCPSocket.h
+++ b/src/ClientTCPSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -45,9 +45,9 @@ class CTimerWnd;
 class CClientTCPSocket : public CEMSocket
 {
 public:
-	CClientTCPSocket(CUpDownClient* in_client = NULL, const CProxyData *ProxyData = NULL);	
+	CClientTCPSocket(CUpDownClient* in_client = NULL, const CProxyData *ProxyData = NULL);
 	virtual ~CClientTCPSocket();
-	
+
 	void		Disconnect(const wxString& strReason);
 
 	bool		InitNetworkData();
@@ -57,19 +57,17 @@ public:
 	void		Safe_Delete();
 	void		Safe_Delete_Client();
 
-	bool		ForDeletion() const { return m_ForDeletion; }
-
 	void		OnConnect(int nErrorCode);
 	void		OnSend(int nErrorCode);
 	void		OnReceive(int nErrorCode);
-	
+
 	void		OnClose(int nErrorCode);
 	void		OnError(int nErrorCode);
-	
+
 	uint32		GetRemoteIP() const { return m_remoteip; }
-		
+
 	CUpDownClient* GetClient() { return m_client; }
-	
+
 	virtual void SendPacket(CPacket* packet, bool delpacket = true, bool controlpacket = true, uint32 actualPayloadSize = 0);
     virtual SocketSentBytes SendControlData(uint32 maxNumberOfBytesToSend, uint32 overchargeMaxBytesToSend);
     virtual SocketSentBytes SendFileAndControlData(uint32 maxNumberOfBytesToSend, uint32 overchargeMaxBytesToSend);
@@ -86,7 +84,6 @@ private:
 	void	ResetTimeOutTimer();
 	void	SetClient(CUpDownClient* client);
 
-	bool	m_ForDeletion; // 0.30c (Creteil), set as bool
 	uint32	timeout_timer;
 	uint32	m_remoteip;
 };
diff --git a/src/ClientUDPSocket.cpp b/src/ClientUDPSocket.cpp
index 0bd5f06..924363a 100644
--- a/src/ClientUDPSocket.cpp
+++ b/src/ClientUDPSocket.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,7 +48,7 @@
 #include "Logger.h"
 #include "kademlia/kademlia/Kademlia.h"
 #include "kademlia/utils/KadUDPKey.h"
-#include "zlib.h"
+#include <zlib.h>
 #include "EncryptedDatagramSocket.h"
 
 //
@@ -78,7 +78,7 @@ void CClientUDPSocket::OnReceive(int errorCode)
 void CClientUDPSocket::OnPacketReceived(uint32 ip, uint16 port, byte* buffer, size_t length)
 {
 	wxCHECK_RET(length >= 2, wxT("Invalid packet."));
-	
+
 	uint8_t *decryptedBuffer;
 	uint32_t receiverVerifyKey;
 	uint32_t senderVerifyKey;
@@ -151,8 +151,8 @@ void CClientUDPSocket::ProcessPacket(byte* packet, int16 size, int8 opcode, uint
 				if (!md4cmp(packet, buddy->GetBuddyID())) {
 					/*
 						The packet has an initial 16 bytes key for the buddy.
-						This is currently unused, so to make the transformation 
-						we discard the first 10 bytes below and then overwrite 
+						This is currently unused, so to make the transformation
+						we discard the first 10 bytes below and then overwrite
 						the other 6 with ip/port.
 					*/
 					CMemFile mem_packet(packet+10,size-10);
@@ -171,13 +171,13 @@ void CClientUDPSocket::ProcessPacket(byte* packet, int16 size, int8 opcode, uint
 		case OP_REASKFILEPING: {
 			AddDebugLogLineN( logClientUDP, wxT("Client UDP socket: OP_REASKFILEPING") );
 			theStats::AddDownOverheadFileRequest(size);
-			
+
 			CMemFile data_in(packet, size);
 			CMD4Hash reqfilehash = data_in.ReadHash();
 			CKnownFile* reqfile = theApp->sharedfiles->GetFileByID(reqfilehash);
 			bool bSenderMultipleIpUnknown = false;
 			CUpDownClient* sender = theApp->uploadqueue->GetWaitingClientByIP_UDP(host, port, true, &bSenderMultipleIpUnknown);
-			
+
 			if (!reqfile) {
 				CPacket* response = new CPacket(OP_FILENOTFOUND,0,OP_EMULEPROT);
 				theStats::AddUpOverheadFileRequest(response->GetPacketSize());
@@ -186,13 +186,13 @@ void CClientUDPSocket::ProcessPacket(byte* packet, int16 size, int8 opcode, uint
 				} else {
 					SendPacket(response, host, port, false, NULL, false, 0);
 				}
-				
+
 				break;
 			}
-			
+
 			if (sender){
 				sender->CheckForAggressive();
-				
+
 				//Make sure we are still thinking about the same file
 				if (reqfilehash == sender->GetUploadFileID()) {
 					sender->AddAskedCount();
@@ -204,21 +204,21 @@ void CClientUDPSocket::ProcessPacket(byte* packet, int16 size, int8 opcode, uint
 					} else  if (sender->GetUDPVersion() > 2) {
 						uint16 nCompleteCountLast = sender->GetUpCompleteSourcesCount();
 						uint16 nCompleteCountNew = data_in.ReadUInt16();
-						sender->SetUpCompleteSourcesCount(nCompleteCountNew);							
+						sender->SetUpCompleteSourcesCount(nCompleteCountNew);
 						if (nCompleteCountLast != nCompleteCountNew) {
 							reqfile->UpdatePartsInfo();
 						}
 					}
-					
+
 					CMemFile data_out(128);
 					if(sender->GetUDPVersion() > 3) {
 						if (reqfile->IsPartFile()) {
-							((CPartFile*)reqfile)->WritePartStatus(&data_out);
+							static_cast<CPartFile*>(reqfile)->WritePartStatus(&data_out);
 						} else {
 							data_out.WriteUInt16(0);
 						}
 					}
-					
+
 					data_out.WriteUInt16(sender->GetUploadQueueWaitingPosition());
 					CPacket* response = new CPacket(data_out, OP_EMULEPROT, OP_REASKACK);
 					theStats::AddUpOverheadFileRequest(response->GetPacketSize());
@@ -226,7 +226,7 @@ void CClientUDPSocket::ProcessPacket(byte* packet, int16 size, int8 opcode, uint
 					SendPacket(response, host, port, sender->ShouldReceiveCryptUDPPackets(), sender->GetUserHash().GetHash(), false, 0);
 				} else {
 					AddDebugLogLineN( logClientUDP, wxT("Client UDP socket; ReaskFilePing; reqfile does not match") );
-				}						
+				}
 			} else {
 				if (!bSenderMultipleIpUnknown) {
 					if ((theStats::GetWaitingUserCount() + 50) > thePrefs::GetQueueSize()) {
@@ -250,7 +250,7 @@ void CClientUDPSocket::ProcessPacket(byte* packet, int16 size, int8 opcode, uint
 			}
 			break;
 		}
-		case OP_REASKACK: {				
+		case OP_REASKACK: {
 			theStats::AddDownOverheadFileRequest(size);
 			CUpDownClient* sender = theApp->downloadqueue->GetDownloadClientByIP_UDP(host,port);
 			if (sender) {
@@ -314,7 +314,7 @@ void CClientUDPSocket::ProcessPacket(byte* packet, int16 size, int8 opcode, uint
 			break;
 		}
 		default:
-			theStats::AddDownOverheadOther(size);				
+			theStats::AddDownOverheadOther(size);
 	}
 }
 // File_checked_for_headers
diff --git a/src/ClientUDPSocket.h b/src/ClientUDPSocket.h
index c94b19c..162acaa 100644
--- a/src/ClientUDPSocket.h
+++ b/src/ClientUDPSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -35,7 +35,7 @@ public:
 
 protected:
 	void	OnReceive(int errorCode);
-	
+
 private:
 	void	OnPacketReceived(uint32 ip, uint16 port, byte* buffer, size_t length);
 	void	ProcessPacket(byte* packet, int16 size, int8 opcode, uint32 host, uint16 port);
diff --git a/src/ColorFrameCtrl.cpp b/src/ColorFrameCtrl.cpp
index b13634d..2bcd0ad 100644
--- a/src/ColorFrameCtrl.cpp
+++ b/src/ColorFrameCtrl.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -76,9 +76,9 @@ void CColorFrameCtrl::SetBackgroundBrushColour(const wxColour& colour)
 	Refresh(FALSE);
 }  // SetBackgroundColor
 
- 
+
 ////////////////////////////////////////////////////////////////////////////
-void CColorFrameCtrl::OnPaint(wxPaintEvent& WXUNUSED(evt)) 
+void CColorFrameCtrl::OnPaint(wxPaintEvent& WXUNUSED(evt))
 {
   wxPaintDC dc(this);
 
@@ -101,7 +101,7 @@ void CColorFrameCtrl::OnPaint(wxPaintEvent& WXUNUSED(evt))
   dc.SetPen(*wxWHITE_PEN);
   dc.DrawLine(rc.x+rc.width-1,rc.y,rc.x+rc.width-1,rc.y+rc.height-1);
   dc.DrawLine(rc.x+rc.width-1,rc.y+rc.height-1,rc.x,rc.y+rc.height-1);
-  
+
   dc.SetPen(*wxGREY_PEN);
   dc.DrawLine(rc.x+rc.width,rc.y,rc.x,rc.y);
   dc.DrawLine(rc.x,rc.y,rc.x,rc.y+rc.height);
@@ -109,7 +109,7 @@ void CColorFrameCtrl::OnPaint(wxPaintEvent& WXUNUSED(evt))
 } // OnPaint
 
 /////////////////////////////////////////////////////////////////////////////
-void CColorFrameCtrl::OnSize(wxSizeEvent& WXUNUSED(evt)) 
+void CColorFrameCtrl::OnSize(wxSizeEvent& WXUNUSED(evt))
 {
 
 	// NOTE: OnSize automatically gets called during the setup of the control
diff --git a/src/ColorFrameCtrl.h b/src/ColorFrameCtrl.h
index e45e558..4334613 100644
--- a/src/ColorFrameCtrl.h
+++ b/src/ColorFrameCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/CommentDialog.cpp b/src/CommentDialog.cpp
index e5294bf..7b51cbc 100644
--- a/src/CommentDialog.cpp
+++ b/src/CommentDialog.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,10 +28,10 @@
 #include "GuiEvents.h"
 #include "KnownFile.h"		// Needed for CKnownFile
 #include "muuli_wdr.h"		// Needed for commentDlg
-// CommentDialog dialog 
+// CommentDialog dialog
 
 //IMPLEMENT_DYNAMIC(CCommentDialog, CDialog)
-CCommentDialog::CCommentDialog(wxWindow* parent,CKnownFile* file) 
+CCommentDialog::CCommentDialog(wxWindow* parent,CKnownFile* file)
 : wxDialog(parent,-1,_("File Comments"),
 wxDefaultPosition,wxDefaultSize,wxDEFAULT_DIALOG_STYLE|wxSYSTEM_MENU)
 {
@@ -65,12 +65,12 @@ void CCommentDialog::OnBnClickedApply(wxCommandEvent& WXUNUSED(evt))
 void CCommentDialog::OnBnClickedClear(wxCommandEvent& WXUNUSED(evt))
 {
 	CastChild(IDC_CMT_TEXT, wxTextCtrl)->SetValue(wxEmptyString);
-} 
+}
 
 void CCommentDialog::OnBnClickedCancel(wxCommandEvent& WXUNUSED(evt))
 {
 	EndModal(0);
-} 
+}
 
 bool CCommentDialog::OnInitDialog()
 {
diff --git a/src/CommentDialog.h b/src/CommentDialog.h
index 61d9985..d37070d 100644
--- a/src/CommentDialog.h
+++ b/src/CommentDialog.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -31,10 +31,10 @@
 
 class CKnownFile;
 
-// CCommentDialog dialog 
+// CCommentDialog dialog
 
 class CCommentDialog : public wxDialog
-{ 
+{
 public:
 	CCommentDialog(wxWindow* pParent, CKnownFile* file);   // standard constructor
 	virtual ~CCommentDialog();
@@ -44,7 +44,7 @@ protected:
 public:
 	void OnBnClickedApply(wxCommandEvent& evt);
 	void OnBnClickedClear(wxCommandEvent& evt);
-	void OnBnClickedCancel(wxCommandEvent& evt); 
+	void OnBnClickedCancel(wxCommandEvent& evt);
 private:
 	wxChoice* ratebox;
 	CKnownFile* m_file;
diff --git a/src/CommentDialogLst.cpp b/src/CommentDialogLst.cpp
index c048692..ff2cf5b 100644
--- a/src/CommentDialogLst.cpp
+++ b/src/CommentDialogLst.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -44,7 +44,7 @@ END_EVENT_TABLE()
  */
 CCommentDialogLst::CCommentDialogLst(wxWindow*parent, CPartFile* file)
 :
-wxDialog(parent, -1, wxString(_("File Comments")), 
+wxDialog(parent, -1, wxString(_("File Comments")),
 	wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER),
 m_file(file)
 {
@@ -57,7 +57,7 @@ m_file(file)
 	m_list->InsertColumn(2, _("Rating"), wxLIST_FORMAT_LEFT, 80);
 	m_list->InsertColumn(3, _("Comment"), wxLIST_FORMAT_LEFT, 340);
 	m_list->SetSortFunc(SortProc);
-	
+
 	UpdateList();
 }
 
@@ -84,7 +84,7 @@ void CCommentDialogLst::UpdateList()
 {
 	int count = 0;
 	ClearList();
- 
+
 	FileRatingList list;
 	m_file->GetRatingAndComments(list);
 	for (FileRatingList::const_iterator it = list.begin(); it != list.end(); ++it) {
@@ -104,10 +104,10 @@ void CCommentDialogLst::UpdateList()
 	} else {
 		info = CFormat(wxPLURAL("%u comment", "%u comments", count)) % count;
 	}
-	
+
 	FindWindow(IDC_CMSTATUS)->SetLabel(info);
 	FindWindow(IDC_CMSTATUS)->GetParent()->Layout();
-	
+
 	m_file->UpdateFileRatingCommentAvail();
 }
 
@@ -116,7 +116,7 @@ void CCommentDialogLst::ClearList()
 {
 	size_t count = m_list->GetItemCount();
 	for (size_t i = 0; i < count; ++i) {
-		delete (SFileRating*)m_list->GetItemData(i);
+		delete reinterpret_cast<SFileRating*>(m_list->GetItemData(i));
 	}
 
 	m_list->DeleteAllItems();
@@ -125,11 +125,11 @@ void CCommentDialogLst::ClearList()
 
 int CCommentDialogLst::SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData)
 {
-	SFileRating* file1 = (SFileRating*)item1;
-	SFileRating* file2 = (SFileRating*)item2;
-	
+	SFileRating* file1 = reinterpret_cast<SFileRating*>(item1);
+	SFileRating* file2 = reinterpret_cast<SFileRating*>(item2);
+
 	int mod = (sortData & CMuleListCtrl::SORT_DES) ? -1 : 1;
-	
+
 	switch (sortData & CMuleListCtrl::COLUMN_MASK) {
 		case 0:		return mod * file1->UserName.Cmp(file2->UserName);
 		case 1:		return mod * file1->FileName.Cmp(file2->FileName);
diff --git a/src/CommentDialogLst.h b/src/CommentDialogLst.h
index 342be15..2ffb20e 100644
--- a/src/CommentDialogLst.h
+++ b/src/CommentDialogLst.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,9 +37,9 @@ class CPartFile;
  * This dialog is used to display file-comments received from other clients.
  */
 class CCommentDialogLst : public wxDialog
-{ 
-public: 
-	CCommentDialogLst(wxWindow* pParent, CPartFile* file); 
+{
+public:
+	CCommentDialogLst(wxWindow* pParent, CPartFile* file);
 	~CCommentDialogLst();
 
 	/**
@@ -48,13 +48,13 @@ public:
 	static int wxCALLBACK SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData);
 
 private:
-	void OnBnClickedApply(wxCommandEvent& evt); 
-	void OnBnClickedRefresh(wxCommandEvent& evt); 
+	void OnBnClickedApply(wxCommandEvent& evt);
+	void OnBnClickedRefresh(wxCommandEvent& evt);
 
 	/**
 	 * Updates the contents of the comments/ratings list.
 	 */
-	void UpdateList(); 
+	void UpdateList();
 
 	/**
 	 * Clears the contents of the comments/ratings list.
@@ -66,7 +66,7 @@ private:
 
 	//! The list containing comments/ratings.
 	CMuleListCtrl* m_list;
-	
+
 
 	DECLARE_EVENT_TABLE()
 };
diff --git a/src/CompilerSpecific.h b/src/CompilerSpecific.h
new file mode 100644
index 0000000..8621158
--- /dev/null
+++ b/src/CompilerSpecific.h
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the aMule Project.
+ *
+ * Copyright (c) 2011 aMule Team ( admin at amule.org / http://www.amule.org )
+ * Copyright (c) 2011 Dévai Tamás ( gonosztopi at amule.org )
+ *
+ * Any parts of this program derived from the xMule, lMule or eMule project,
+ * or contributed by third-party developers are copyrighted by their
+ * respective authors.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+
+/**
+ * @file
+ *
+ * @brief Tests for compiler-specific features.
+ *
+ * This file helps aMule be compiled with various compilers.
+ */
+
+#ifndef COMPILERSPECIFIC_H
+#define COMPILERSPECIFIC_H
+
+#if defined(__SUNPRO_CC)
+#	define	__FUNCTION__	__FILE__+__LINE__
+#endif
+
+#endif /* COMPILERSPECIFIC_H */
diff --git a/src/Constants.h b/src/Constants.h
index bd745a8..727afcc 100644
--- a/src/Constants.h
+++ b/src/Constants.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -27,16 +27,16 @@
 
 //! This enum lists the views currently supported by the CClientListCtrl class.
 enum ViewType
-{ 
+{
 	//! The "neutral" state, where nothing is displayed.
 	vtNone = 0,
-	
+
 	//! Clients which are received files are displayed.
 	vtUploading = 1,
-	
+
 	//! Clients which are queued for files are displayed.
 	vtQueued = 2,
-	
+
 	//! All clients are displayed.
 	vtClients = 3
 };
@@ -44,10 +44,10 @@ enum ViewType
 
 // lfroen : custom events for core internal messages
 // 'cause - there's no wxCommand etc in wxBase
-enum Core_Event_ID 
+enum Core_Event_ID
 {
 	HTTP_DOWNLOAD_FINISHED = 1,
-	
+
 	SOURCE_DNS_DONE,
 	UDP_DNS_DONE,
 	SERVER_DNS_DONE
@@ -55,7 +55,7 @@ enum Core_Event_ID
 
 
 //! These IDs are used when a download is initiated via the HTTPThread.
-enum HTTP_Download_File 
+enum HTTP_Download_File
 {
 	//! The download is a ipfilter.dat file (possibly compressed).
 	HTTP_IPFilter = 1,
diff --git a/src/CorruptionBlackBox.cpp b/src/CorruptionBlackBox.cpp
index 3aeb423..81ee616 100644
--- a/src/CorruptionBlackBox.cpp
+++ b/src/CorruptionBlackBox.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -35,7 +35,7 @@
 #include <common/Format.h>		// needed for CFormat
 #include <common/Macros.h>
 
-#define	 CBB_BANTHRESHOLD	32 //% max corrupted data	
+#define	 CBB_BANTHRESHOLD	32 //% max corrupted data
 
 // Record to store information which piece of data was downloaded from which client
 
@@ -81,7 +81,7 @@ void CCorruptionBlackBox::TransferredData(uint64 nStartPos, uint64 nEndPos, uint
 		wxFAIL;
 		return;
 	}
-	
+
 	// convert pos to relative block pos
 	uint16 nPart = (uint16)(nStartPos / PARTSIZE);
 	uint32 nRelStartPos = nStartPos - nPart*PARTSIZE;
@@ -106,7 +106,7 @@ void CCorruptionBlackBox::TransferredData(uint64 nStartPos, uint64 nEndPos, uint
 	}
 	if (!merged) {
 		list.push_back(CCBBRecord(nRelStartPos, nRelEndPos, senderIP));
-		AddDebugLogLineN(logPartFile, CFormat(wxT("CorruptionBlackBox(%s): transferred: new record for part %d (%d - %d, %s)")) 
+		AddDebugLogLineN(logPartFile, CFormat(wxT("CorruptionBlackBox(%s): transferred: new record for part %d (%d - %d, %s)"))
 			% m_partNumber % nPart % nRelStartPos % nRelEndPos % Uint32toStringIP(senderIP));
 	}
 }
@@ -224,7 +224,7 @@ void CCorruptionBlackBox::EvaluateData()
 				clientName = Uint32toStringIP(ip);
 				theApp->clientlist->AddBannedClient(ip);
 			}
-			AddLogLineN(CFormat(_("Banned client %s for sending %s corrupt data of %s total for the file '%s'")) 
+			AddLogLineN(CFormat(_("Banned client %s for sending %s corrupt data of %s total for the file '%s'"))
 				% clientName % CastItoXBytes(bad) % CastItoXBytes(good + bad) % m_fileName);
 		} else {
 			CUpDownClient* pSuspectClient = theApp->clientlist->FindClientByIP(ip);
diff --git a/src/CorruptionBlackBox.h b/src/CorruptionBlackBox.h
index d2138b8..5079de3 100644
--- a/src/CorruptionBlackBox.h
+++ b/src/CorruptionBlackBox.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/CryptoPP_Inc.h b/src/CryptoPP_Inc.h
index 3e28fd7..be0757d 100644
--- a/src/CryptoPP_Inc.h
+++ b/src/CryptoPP_Inc.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/DataToText.cpp b/src/DataToText.cpp
index 2d92a65..00d2563 100644
--- a/src/DataToText.cpp
+++ b/src/DataToText.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -68,13 +68,13 @@ wxString DownloadStateToStr( int state, bool queueFull )
 		case DS_LOWTOLOWIP:		return _("Cannot connect LowID to LowID");
 		case DS_TOOMANYCONNS:		return _("Too many connections");
 		case DS_NONE:			return _("Unknown");
-		case DS_WAITCALLBACKKAD: 	return _("Connecting via Kad");
+		case DS_WAITCALLBACKKAD:	return _("Connecting via Kad");
 		case DS_TOOMANYCONNSKAD:	return _("Too many Kad connections");
 		case DS_BANNED:			return _("Banned");
 		case DS_ERROR:			return _("Connection Error");
 		case DS_REMOTEQUEUEFULL:	return _("Remote Queue Full");
 	}
-	
+
 	wxFAIL;
 
 	return _("Unknown");
@@ -128,7 +128,7 @@ wxString OriginToText(unsigned int source_from)
 		case SF_LOCAL_SERVER:		return wxTRANSLATE("Local Server");
 		case SF_REMOTE_SERVER:		return wxTRANSLATE("Remote Server");
 		case SF_KADEMLIA:		return wxTRANSLATE("Kad");
-		case SF_SOURCE_EXCHANGE: 	return wxTRANSLATE("Source Exchange");
+		case SF_SOURCE_EXCHANGE:	return wxTRANSLATE("Source Exchange");
 		case SF_PASSIVE:		return wxTRANSLATE("Passive");
 		case SF_LINK:			return wxTRANSLATE("Link");
 		case SF_SOURCE_SEEDS:		return wxTRANSLATE("Source Seeds");
diff --git a/src/DataToText.h b/src/DataToText.h
index d421411..1f39144 100644
--- a/src/DataToText.h
+++ b/src/DataToText.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/DeadSourceList.cpp b/src/DeadSourceList.cpp
index 61edbcf..f1c1535 100644
--- a/src/DeadSourceList.cpp
+++ b/src/DeadSourceList.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -100,15 +100,15 @@ bool CDeadSourceList::IsDeadSource(const CUpDownClient* client)
 		client->GetServerIP(),
 		client->GetKadPort()
 	);
-	
-	
+
+
 	DeadSourcePair range = m_sources.equal_range( client->GetUserIDHybrid() );
 	for ( ; range.first != range.second; range.first++ ) {
 		if ( range.first->second == source ) {
 			// Check if the entry is still valid
 			if ( range.first->second.GetTimeout() > GetTickCount() ) {
 				return true;
-			} 
+			}
 
 			// The source is no longer dead, so remove it to reduce the size of the list
 			m_sources.erase( range.first );
@@ -131,12 +131,12 @@ void CDeadSourceList::AddDeadSource( const CUpDownClient* client )
 
 	// Set the timeout for the new source
 	source.SetTimeout( client->HasLowID() ? BLOCKTIMEFW : BLOCKTIME );
-	
+
 	// Check if the source is already listed
 	DeadSourcePair range = m_sources.equal_range( client->GetUserIDHybrid() );
 	for ( ; range.first != range.second; range.first++ ) {
 		if ( range.first->second == source ) {
-			range.first->second = source;			
+			range.first->second = source;
 			return;
 		}
 	}
diff --git a/src/DeadSourceList.h b/src/DeadSourceList.h
index 7feda99..a2c803d 100644
--- a/src/DeadSourceList.h
+++ b/src/DeadSourceList.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -47,17 +47,17 @@ class CUpDownClient;
  * This is important, since these sources would be removed and readded
  * repeatedly, causing extra overhead with no gain.
  */
-class CDeadSourceList 
+class CDeadSourceList
 {
 public:
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @param isGlobal Specifies if the list is global or not, used for debugging.
 	 */
 	CDeadSourceList(bool isGlobal = false);
 
-	
+
 	/**
 	 * Adds a client to the list of dead sources.
 	 */
@@ -67,7 +67,7 @@ public:
 	 * Returns true if the client object is a dead source.
 	 */
 	bool		IsDeadSource(const CUpDownClient* client);
-	
+
 
 	/**
 	 * Returns the number of sources.
@@ -95,7 +95,7 @@ private:
 		 * @param ServerIP The ip of the connected server.
 		 * @param KadPort The Kad port used by the client.
 		 *
-		 * Notes: 
+		 * Notes:
 		 *  * ID must be specified.
 		 *  * Either KadPort or Port must be specified.
 		 *  * For lowid sources, ServerIP must be specified.
@@ -103,13 +103,13 @@ private:
 		 */
 		CDeadSource(uint32 ID, uint16 Port, uint32 ServerIP, uint16 KadPort);
 
-		
+
 		/**
 		 * Equality operator.
 		 */
 		bool operator==(const CDeadSource& other) const;
 
-		
+
 		/**
 		 * Sets the timestamp for the time where this entry will expire.
 		 */
@@ -119,7 +119,7 @@ private:
 		 * Returns the timestamp of this entry.
 		 */
 		uint32	GetTimeout() const;
-		
+
 	private:
 		//! The ID/IP of the client.
 		uint32			m_ID;
@@ -133,14 +133,14 @@ private:
 		uint32			m_TimeStamp;
 	};
 
-	
+
 	typedef std::multimap< uint32, CDeadSource > DeadSourceMap;
 	typedef DeadSourceMap::iterator DeadSourceIterator;
 	typedef std::pair<DeadSourceIterator, DeadSourceIterator> DeadSourcePair;
 	//! List of currently dead sources.
 	DeadSourceMap m_sources;
 
-	
+
 	//! The timestamp of when the last cleanup was performed.
 	uint32	m_dwLastCleanUp;
 	//! Specifies if the list is global or not.
diff --git a/src/DirectoryTreeCtrl.cpp b/src/DirectoryTreeCtrl.cpp
index 005aab2..d4f1cba 100644
--- a/src/DirectoryTreeCtrl.cpp
+++ b/src/DirectoryTreeCtrl.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -97,14 +97,14 @@ void CDirectoryTreeCtrl::Init()
 	// Gives wxTreeCtrl ownership of the list
 	AssignImageList(images);
 
-	
+
 	// Create an empty root item, which we can
 	// safely append when creating a full path.
 	m_root = AddRoot(wxEmptyString, IMAGE_FOLDER, -1,
 					new CItemData(CPath()));
-	
+
 	if (!m_IsRemote) {
-	#ifndef __WXMSW__
+	#ifndef __WINDOWS__ 
 		AddChildItem(m_root, CPath(wxT("/")));
 	#else
 		// this might take awhile, so change the cursor
@@ -118,7 +118,7 @@ void CDirectoryTreeCtrl::Init()
 				continue;
 			}
 			wxString driveStr = CFormat(wxT("%c:")) % drive;
-			uint32 type = GetDriveType(driveStr + wxT("\\"));
+			uint32 type = GetDriveType((driveStr + wxT("\\")).wc_str());
 
 			// skip removable/undefined drives, share only fixed or remote drives
 			if ((type == 3 || type == 4)   // fixed drive / remote drive
@@ -179,7 +179,7 @@ void CDirectoryTreeCtrl::MarkChildren(wxTreeItemId hChild, bool mark, bool recur
 		AddSubdirectories(hChild, GetFullPath(hChild));
 		SortChildren(hChild);
 	}
-	
+
 	wxTreeItemIdValue cookie;
 	wxTreeItemId hChild2 = GetFirstChild(hChild, cookie);
 	if (hChild2.IsOk()) {
@@ -198,24 +198,24 @@ void CDirectoryTreeCtrl::MarkChildren(wxTreeItemId hChild, bool mark, bool recur
 void CDirectoryTreeCtrl::AddChildItem(wxTreeItemId hBranch, const CPath& item)
 {
 	wxCHECK_RET(hBranch.IsOk(), wxT("Attempted to add children to invalid item"));
-	
+
 	CPath fullPath = GetFullPath(hBranch).JoinPaths(item);
 	wxTreeItemId treeItem = AppendItem(hBranch, item.GetPrintable(),
 						IMAGE_FOLDER, -1,
 						new CItemData(item));
-	
+
 	// BUG: wxGenericTreeControl won't set text calculated sizes when the item is created in AppendItem.
 	// This causes asserts on Mac and possibly other systems, so we have to repeat setting the string here.
-	SetItemText(treeItem, item.GetPrintable()); 
+	SetItemText(treeItem, item.GetPrintable());
 
 	if (IsShared(fullPath)) {
 		SetItemBold(treeItem, true);
 	}
-	
+
 	if (HasSharedSubdirectory(fullPath)) {
 		SetHasSharedSubdirectory(treeItem, true);
 	}
-	
+
 	if (HasSubdirectories(fullPath)) {
 		// Trick. will show + if it has subdirs
 		AppendItem(treeItem, wxT("."));
@@ -226,7 +226,7 @@ void CDirectoryTreeCtrl::AddChildItem(wxTreeItemId hBranch, const CPath& item)
 CPath CDirectoryTreeCtrl::GetFullPath(wxTreeItemId hItem)
 {
 	{ wxCHECK_MSG(hItem.IsOk(), CPath(), wxT("Invalid item in GetFullPath")); }
-	
+
 	CPath result;
 	for (; hItem.IsOk(); hItem = GetItemParent(hItem)) {
 		CItemData* data = dynamic_cast<CItemData*>(GetItemData(hItem));
@@ -244,11 +244,11 @@ void CDirectoryTreeCtrl::AddSubdirectories(wxTreeItemId hBranch, const CPath& pa
 	wxCHECK_RET(path.IsOk(), wxT("Invalid path in AddSubdirectories"));
 
 	CDirIterator sharedDir(path);
-	
-	CPath dirName = sharedDir.GetFirstFile(CDirIterator::Dir); 
+
+	CPath dirName = sharedDir.GetFirstFile(CDirIterator::Dir);
 	while (dirName.IsOk()) {
 		AddChildItem(hBranch, dirName);
-		
+
 		dirName = sharedDir.GetNextFile();
 	}
 }
@@ -266,8 +266,8 @@ bool CDirectoryTreeCtrl::HasSubdirectories(const CPath& folder)
 void CDirectoryTreeCtrl::GetSharedDirectories(PathList* list)
 {
 	wxCHECK_RET(list, wxT("Invalid list in GetSharedDirectories"));
-	
-	for (SharedMap::iterator it = m_lstShared.begin(); it != m_lstShared.end(); it++) {
+
+	for (SharedMap::iterator it = m_lstShared.begin(); it != m_lstShared.end(); ++it) {
 		list->push_back(it->second);
 	}
 }
@@ -276,9 +276,9 @@ void CDirectoryTreeCtrl::GetSharedDirectories(PathList* list)
 void CDirectoryTreeCtrl::SetSharedDirectories(PathList* list)
 {
 	wxCHECK_RET(list, wxT("Invalid list in SetSharedDirectories"));
-	
+
 	m_lstShared.clear();
-	for (PathList::iterator it = list->begin(); it != list->end(); it++) {
+	for (PathList::iterator it = list->begin(); it != list->end(); ++it) {
 		m_lstShared.insert(SharedMapItem(GetKey(*it), *it));
 	}
 
@@ -308,7 +308,7 @@ void CDirectoryTreeCtrl::UpdateSharedDirectories()
 	// ugly hack to at least show shared dirs in remote gui
 	if (m_IsRemote) {
 		DeleteChildren(m_root);
-		for (SharedMap::iterator it = m_lstShared.begin(); it != m_lstShared.end(); it++) {
+		for (SharedMap::iterator it = m_lstShared.begin(); it != m_lstShared.end(); ++it) {
 			AppendItem(m_root, it->second.GetPrintable(), IMAGE_FOLDER, -1, new CItemData(it->second));
 		}
 		return;
@@ -318,13 +318,13 @@ void CDirectoryTreeCtrl::UpdateSharedDirectories()
 	// drives, on unix there is only the root dir).
 	wxTreeItemIdValue cookie;
 	wxTreeItemId hChild = GetFirstChild(GetRootItem(), cookie);
-	
+
 	while (hChild.IsOk()) {
 		// Does this drive have shared subfolders?
-		if (HasSharedSubdirectory(GetFullPath(hChild))) { 
+		if (HasSharedSubdirectory(GetFullPath(hChild))) {
 			SetHasSharedSubdirectory(hChild, true);
 		}
-		
+
 		// Is this drive shared?
 		if (IsShared(GetFullPath(hChild))) {
 			SetItemBold(hChild, true);
@@ -358,7 +358,7 @@ void CDirectoryTreeCtrl::CheckChanged(wxTreeItemId hItem, bool bChecked, bool re
 		SetItemBold(hItem, bChecked);
 
 		if (bChecked) {
-			AddShare(GetFullPath(hItem)); 
+			AddShare(GetFullPath(hItem));
 		} else {
 			DelShare(GetFullPath(hItem));
 		}
@@ -381,11 +381,11 @@ bool CDirectoryTreeCtrl::IsShared(const CPath& path)
 void CDirectoryTreeCtrl::AddShare(const CPath& path)
 {
 	wxCHECK_RET(path.IsOk(), wxT("Invalid path in AddShare"));
-	
+
 	if (IsShared(path)) {
 		return;
 	}
-	
+
 	m_lstShared.insert(SharedMapItem(GetKey(path), path));
 }
 
@@ -393,7 +393,7 @@ void CDirectoryTreeCtrl::AddShare(const CPath& path)
 void CDirectoryTreeCtrl::DelShare(const CPath& path)
 {
 	wxCHECK_RET(path.IsOk(), wxT("Invalid path in DelShare"));
-	
+
 	m_lstShared.erase(GetKey(path));
 }
 
diff --git a/src/DirectoryTreeCtrl.h b/src/DirectoryTreeCtrl.h
index d3b404c..aba01c5 100644
--- a/src/DirectoryTreeCtrl.h
+++ b/src/DirectoryTreeCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,7 +37,7 @@ class CDirectoryTreeCtrl : public wxTreeCtrl
 {
 public:
 	typedef std::vector<CPath> PathList;
-	
+
 	CDirectoryTreeCtrl(wxWindow* parent, int id, const wxPoint& pos, wxSize siz, int flags);
 	virtual ~CDirectoryTreeCtrl();
 
@@ -45,7 +45,7 @@ public:
 	void GetSharedDirectories(PathList* list);
 	// set list of shared directories
 	void SetSharedDirectories(PathList* list);
-	
+
 	// User made any changes to list?
 	bool HasChanged;
 
@@ -77,7 +77,7 @@ private:
 	void AddShare(const CPath& path);
 	void DelShare(const CPath& path);
 	void MarkChildren(wxTreeItemId hChild, bool mark, bool recursed);
-	
+
 	void OnItemExpanding(wxTreeEvent& evt);
 	void OnRButtonDown(wxTreeEvent& evt);
 	void OnItemActivated(wxTreeEvent& evt);
@@ -91,9 +91,9 @@ private:
 	bool m_IsInit;
 	// Are we running the remote GUI, and from a remote location?
 	bool m_IsRemote;
-	
+
 	wxTreeItemId m_root;
-	
+
 	DECLARE_EVENT_TABLE()
 };
 
diff --git a/src/DownloadClient.cpp b/src/DownloadClient.cpp
index bf3e8a0..fd673bf 100644
--- a/src/DownloadClient.cpp
+++ b/src/DownloadClient.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -27,7 +27,7 @@
 
 #include <protocol/Protocols.h>
 #include <protocol/ed2k/Client2Client/TCP.h>
-#include <protocol/ed2k/Client2Client/UDP.h> 
+#include <protocol/ed2k/Client2Client/UDP.h>
 #include <common/EventIDs.h>
 #include <common/Macros.h>
 #include <common/Constants.h>
@@ -60,7 +60,7 @@ bool CUpDownClient::Compare(const CUpDownClient* tocomp, bool bIgnoreUserhash) c
 	if (!tocomp) {
 		// should we wxASSERT here?
 		return false;
-	}	
+	}
 
 	//Compare only the user hash..
 	if(!bIgnoreUserhash && HasValidHash() && tocomp->HasValidHash()) {
@@ -74,19 +74,19 @@ bool CUpDownClient::Compare(const CUpDownClient* tocomp, bool bIgnoreUserhash) c
 			if (GetUserPort()!=0 && GetUserPort() == tocomp->GetUserPort()) {
 				//IP-UserPort matches
 				return true;
-		  	}
+			}
 			if (GetKadPort()!=0	&& GetKadPort() == tocomp->GetKadPort()) {
 				//IP-KadPort Matches
 				return true;
 			}
 		}
-		
+
 		if (GetUserIDHybrid()!=0
 						&& GetUserIDHybrid() == tocomp->GetUserIDHybrid()
 						&& GetServerIP()!=0
 						&& GetServerIP() == tocomp->GetServerIP()
 						&& GetServerPort()!=0
-						&& GetServerPort() == tocomp->GetServerPort()) {				
+						&& GetServerPort() == tocomp->GetServerPort()) {
 			//Both have the same lowID, Same serverIP and Port..
 			return true;
 		}
@@ -112,7 +112,7 @@ bool CUpDownClient::Compare(const CUpDownClient* tocomp, bool bIgnoreUserhash) c
 			}
 		}
     }
-    
+
 	if(GetKadPort()!=0) {
 		//User has a Kad Port.
 		if(GetIP() != 0 && tocomp->GetIP() != 0) {
@@ -129,7 +129,7 @@ bool CUpDownClient::Compare(const CUpDownClient* tocomp, bool bIgnoreUserhash) c
 			}
 		}
 	}
-	
+
 	//No Matches..
 	return false;
 }
@@ -205,7 +205,7 @@ bool CUpDownClient::IsSourceRequestAllowed()
 			&& (nTimePassedFile > SOURCECLIENTREASKF)
 			) ||
 			// OR if file is not rare
-			( (bNeverAskedBefore || nTimePassedClient > (unsigned)(SOURCECLIENTREASKS * MINCOMMONPENALTY)) 
+			( (bNeverAskedBefore || nTimePassedClient > (unsigned)(SOURCECLIENTREASKS * MINCOMMONPENALTY))
 			&& (nTimePassedFile > (unsigned)(SOURCECLIENTREASKF * MINCOMMONPENALTY))
 			)
 		)
@@ -215,20 +215,20 @@ bool CUpDownClient::IsSourceRequestAllowed()
 
 void CUpDownClient::SendFileRequest()
 {
-	wxCHECK_RET(m_reqfile, wxT("Cannot request file when no reqfile is set"));	
-	
+	wxCHECK_RET(m_reqfile, wxT("Cannot request file when no reqfile is set"));
+
 	CMemFile dataFileReq(16+16);
 	dataFileReq.WriteHash(m_reqfile->GetFileHash());
 
 	if (SupportMultiPacket()) {
 		DEBUG_ONLY( wxString sent_opcodes; )
-		
+
 		if (SupportExtMultiPacket()) {
 			dataFileReq.WriteUInt64(m_reqfile->GetFileSize());
 		}
-		
+
 		AddDebugLogLineN(logClient, wxT("Sending file request to client"));
-		
+
 		dataFileReq.WriteUInt8(OP_REQUESTFILENAME);
 		DEBUG_ONLY( sent_opcodes += wxT("|RFNM|"); )
 		// Extended information
@@ -263,7 +263,7 @@ void CUpDownClient::SendFileRequest()
 		if (IsSupportingAICH()) {
 			DEBUG_ONLY( sent_opcodes += wxT("|AFHR|"); )
 			dataFileReq.WriteUInt8(OP_AICHFILEHASHREQ);
-		}		
+		}
 		CPacket* packet = new CPacket(dataFileReq, OP_EMULEPROT, (SupportExtMultiPacket() ? OP_MULTIPACKET_EXT : OP_MULTIPACKET));
 		theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 		AddDebugLogLineN(logLocalClient, CFormat(wxT("Local Client: %s (%s) to %s"))
@@ -281,12 +281,12 @@ void CUpDownClient::SendFileRequest()
 		theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 		AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_REQUESTFILENAME to ") + GetFullIP() );
 		SendPacket(packet, true);
-	
+
 		// 26-Jul-2003: removed requesting the file status for files <= PARTSIZE for better compatibility with ed2k protocol (eDonkeyHybrid).
 		// if the remote client answers the OP_REQUESTFILENAME with OP_REQFILENAMEANSWER the file is shared by the remote client. if we
 		// know that the file is shared, we know also that the file is complete and don't need to request the file status.
-		
-		// Sending the packet could have deleted the client, check m_reqfile		
+
+		// Sending the packet could have deleted the client, check m_reqfile
 		if (m_reqfile && (m_reqfile->GetPartCount() > 1)) {
 			CMemFile dataSetReqFileID(16);
 			dataSetReqFileID.WriteHash(m_reqfile->GetFileHash());
@@ -295,34 +295,34 @@ void CUpDownClient::SendFileRequest()
 			AddDebugLogLineN(logLocalClient, wxT("Local Client: OP_SETREQFILEID to ") + GetFullIP());
 			SendPacket(packet, true);
 		}
-	
+
 		if (IsEmuleClient()) {
 			SetRemoteQueueFull( true );
 			SetRemoteQueueRank(0);
-		}	
-		
-		// Sending the packet could have deleted the client, check m_reqfile		
+		}
+
+		// Sending the packet could have deleted the client, check m_reqfile
 		if (m_reqfile && IsSourceRequestAllowed()) {
 			m_reqfile->SetLastAnsweredTimeTimeout();
-			
+
 			CMemFile packetdata;
-			
+
 			if (SupportsSourceExchange2()) {
 				packetdata.WriteUInt8(SOURCEEXCHANGE2_VERSION);
 				packetdata.WriteUInt16(0 /* Reserved */);
-			} 
-			
+			}
+
 			packetdata.WriteHash(m_reqfile->GetFileHash());
-			
+
 			packet = new CPacket(packetdata, OP_EMULEPROT, SupportsSourceExchange2() ? OP_REQUESTSOURCES2 : OP_REQUESTSOURCES);
-			
+
 			theStats::AddUpOverheadSourceExchange(packet->GetPacketSize());
 			AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_REQUESTSOURCES to ") + GetFullIP() );
 			SendPacket(packet,true,true);
 			SetLastAskedForSources();
 		}
-		
-		// Sending the packet could have deleted the client, check m_reqfile		
+
+		// Sending the packet could have deleted the client, check m_reqfile
 		if (m_reqfile && IsSupportingAICH()) {
 			packet = new CPacket(OP_AICHFILEHASHREQ,16,OP_EMULEPROT);
 			packet->Copy16ToDataBuffer((const char *)m_reqfile->GetFileHash().GetHash());
@@ -345,20 +345,20 @@ void CUpDownClient::ProcessFileInfo(const CMemFile* data, const CPartFile* file)
 	}
 	if (file != m_reqfile) {
 		throw wxString(wxT("ERROR: Wrong file ID (ProcessFileInfo; m_reqfile!=file)"));
-	}	
+	}
 
 	m_clientFilename = data->ReadString((GetUnicodeSupport() != utf8strNone));
-			
+
 	// 26-Jul-2003: removed requesting the file status for files <= PARTSIZE for better compatibility with ed2k protocol (eDonkeyHybrid).
 	// if the remote client answers the OP_REQUESTFILENAME with OP_REQFILENAMEANSWER the file is shared by the remote client. if we
 	// know that the file is shared, we know also that the file is complete and don't need to request the file status.
 	if (m_reqfile->GetPartCount() == 1) {
 		m_nPartCount = m_reqfile->GetPartCount();
-		
+
 		m_reqfile->UpdatePartsFrequency( this, false );	// Decrement
 		m_downPartStatus.setsize( m_nPartCount, 1 );
 		m_reqfile->UpdatePartsFrequency( this, true );	// Increment
-		
+
 		m_bCompleteSource = true;
 
 		UpdateDisplayedInfo();
@@ -387,21 +387,20 @@ void CUpDownClient::ProcessFileStatus(bool bUdpPacket, const CMemFile* data, con
 {
 	// 0.42e
 	wxString strReqFileNull(wxT("ERROR: Wrong file ID (ProcessFileStatus; m_reqfile==NULL)"));
-	
+
 	if ( !m_reqfile || file != m_reqfile ){
 		if (!m_reqfile) {
 			throw strReqFileNull;
 		}
 		throw wxString(wxT("ERROR: Wrong file ID (ProcessFileStatus; m_reqfile!=file)"));
 	}
-	
+
 	uint16 nED2KPartCount = data->ReadUInt16();
-	
+
 	m_reqfile->UpdatePartsFrequency( this, false );	// Decrement
 	m_downPartStatus.clear();
-	
+
 	bool bPartsNeeded = false;
-	int iNeeded = 0;
 	if (!nED2KPartCount)
 	{
 		m_nPartCount = m_reqfile->GetPartCount();
@@ -429,19 +428,18 @@ void CUpDownClient::ProcessFileStatus(bool bUdpPacket, const CMemFile* data, con
 		m_bCompleteSource = false;
 		m_downPartStatus.setsize( m_nPartCount, 0 );
 		uint16 done = 0;
-	
+
 		try {
 			while (done != m_nPartCount) {
 				uint8 toread = data->ReadUInt8();
-			
+
 				for ( uint8 i = 0;i < 8; i++ ) {
 					bool status = ((toread>>i)&1)? 1:0;
 					m_downPartStatus.set(done, status);
-				
+
 					if (status) {
 						if (!m_reqfile->IsComplete(done)){
 							bPartsNeeded = true;
-							iNeeded++;
 						}
 					}
 					done++;
@@ -453,11 +451,11 @@ void CUpDownClient::ProcessFileStatus(bool bUdpPacket, const CMemFile* data, con
 		} catch( ... ) {
 			// We want the counts to be updated, even if we fail to read everything
 			m_reqfile->UpdatePartsFrequency( this, true );	// Increment
-			
+
 			throw;
 		}
 	}
-	
+
 	m_reqfile->UpdatePartsFrequency( this, true );	// Increment
 
 	UpdateDisplayedInfo();
@@ -498,7 +496,7 @@ void CUpDownClient::ProcessFileStatus(bool bUdpPacket, const CMemFile* data, con
 bool CUpDownClient::AddRequestForAnotherFile(CPartFile* file)
 {
 	if ( m_A4AF_list.find( file ) == m_A4AF_list.end() ) {
-		// When we access a non-existing entry entry, it will be zeroed by default, 
+		// When we access a non-existing entry entry, it will be zeroed by default,
 		// so we have to set NeededParts. All in one go.
 		m_A4AF_list[file].NeededParts = true;
 		file->AddA4AFSource( this );
@@ -526,7 +524,7 @@ void CUpDownClient::SetDownloadState(uint8 byNewState)
 		if (m_reqfile) {
 			// Notify the client that this source has changed its state
 			m_reqfile->ClientStateChanged( m_nDownloadState, byNewState );
-		
+
 			if (byNewState == DS_DOWNLOADING) {
 				m_reqfile->AddDownloadingSource(this);
 			} else if (m_nDownloadState == DS_DOWNLOADING) {
@@ -539,11 +537,11 @@ void CUpDownClient::SetDownloadState(uint8 byNewState)
 		} else if (m_nDownloadState == DS_DOWNLOADING) {
 			theStats::RemoveDownloadingSource();
 		}
-		
+
 		if (m_nDownloadState == DS_DOWNLOADING) {
 			m_nDownloadState = byNewState;
 			ClearDownloadBlockRequests();
-			
+
 			kBpsDown = 0.0;
 			bytesReceivedCycle = 0;
 			msReceivedPrev = 0;
@@ -592,12 +590,12 @@ void CUpDownClient::SendBlockRequests()
 {
 	uint32 current_time = ::GetTickCount();
 	if (GetVBTTags()) {
-		
+
 		// Ask new blocks only when all completed
-		if (m_PendingBlocks_list.size()) {
+		if (!m_PendingBlocks_list.empty()) {
 			return;
 		}
-		
+
 		if ((m_dwLastBlockReceived + SEC2MS(5)) > current_time) {
 			// We received last block in less than 5 secs? Let's request faster.
 			m_MaxBlockRequests = m_MaxBlockRequests << 1;
@@ -608,18 +606,18 @@ void CUpDownClient::SendBlockRequests()
 			m_MaxBlockRequests = m_MaxBlockRequests >> 1;
 			if ( m_MaxBlockRequests < STANDARD_BLOCKS_REQUEST) {
 				m_MaxBlockRequests = STANDARD_BLOCKS_REQUEST;
-			}		
+			}
 		}
 	}
-	
+
 	m_dwLastBlockReceived = current_time;
-	
+
 	if (!m_reqfile) {
 		return;
 	}
-	
+
 	uint8 version = GetVBTTags() ? 2 : 1;
-		
+
 	if (m_DownloadBlocks_list.empty()) {
 		// Barry - instead of getting 3, just get how many is needed
 		uint16 count = m_MaxBlockRequests - m_PendingBlocks_list.size();
@@ -643,16 +641,16 @@ void CUpDownClient::SendBlockRequests()
 		m_PendingBlocks_list.push_back(pblock);
 		m_DownloadBlocks_list.pop_front();
 	}
-	
-	
+
+
 	if (m_PendingBlocks_list.empty()) {
 
 		CUpDownClient* slower_client = NULL;
-		
-		if (thePrefs::GetDropSlowSources()) {		
+
+		if (thePrefs::GetDropSlowSources()) {
 			slower_client = m_reqfile->GetSlowerDownloadingClient(m_lastaverage, this);
 		}
-		
+
 		if (slower_client == NULL) {
 			slower_client = this;
 		}
@@ -660,16 +658,16 @@ void CUpDownClient::SendBlockRequests()
 		if (!slower_client->GetSentCancelTransfer()) {
 			CPacket* packet = new CPacket(OP_CANCELTRANSFER, 0, OP_EDONKEYPROT);
 			theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
-			if (slower_client != this) {
+//			if (slower_client != this) {
 //				printf("Dropped client %p to allow client %p to download\n",slower_client, this);
-			}
+//			}
 			slower_client->ClearDownloadBlockRequests();
 			slower_client->SendPacket(packet,true,true);
-			slower_client->SetSentCancelTransfer(1);			
+			slower_client->SetSentCancelTransfer(1);
 		}
-		
-		slower_client->SetDownloadState(DS_NONEEDEDPARTS);		
-		
+
+		slower_client->SetDownloadState(DS_NONEEDEDPARTS);
+
 		if (slower_client != this) {
 			// Re-request freed blocks.
 			AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_CANCELTRANSFER (faster source eager to transfer) to ") + slower_client->GetFullIP() );
@@ -695,30 +693,30 @@ void CUpDownClient::SendBlockRequests()
 		} else {
 			// Drop this one.
 			AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_CANCELTRANSFER (no free blocks) to ") + GetFullIP() );
-			//#warning Kry - Would be nice to swap A4AF here.		
+			//#warning Kry - Would be nice to swap A4AF here.
 			return;
 		}
 	}
-	
+
 	CPacket* packet = NULL;
-	
+
 	switch (version) {
 		case 2: {
 			// ED2Kv2 packet...
-			// Most common scenario: hash + blocks to request + every one 
+			// Most common scenario: hash + blocks to request + every one
 			// having 2 uint32 tags
-			
+
 			uint8 nBlocks = m_PendingBlocks_list.size();
 			if (nBlocks > m_MaxBlockRequests) {
 				nBlocks = m_MaxBlockRequests;
 			}
 
-			CMemFile data(16 + 1 + nBlocks*((2+4)*2)); 
-			
+			CMemFile data(16 + 1 + nBlocks*((2+4)*2));
+
 			data.WriteHash(m_reqfile->GetFileHash());
-			
+
 			data.WriteUInt8(nBlocks);
-			
+
 			std::list<Pending_Block_Struct*>::iterator it = m_PendingBlocks_list.begin();
 			while (nBlocks) {
 				wxASSERT(it != m_PendingBlocks_list.end());
@@ -730,7 +728,7 @@ void CUpDownClient::SendBlockRequests()
 				++it;
 				nBlocks--;
 			}
-			
+
 			packet = new CPacket(data, OP_ED2KV2HEADER, OP_REQUESTPARTS);
 			AddDebugLogLineN( logLocalClient, CFormat(wxT("Local Client ED2Kv2: OP_REQUESTPARTS(%i) to %s"))
 				% (m_PendingBlocks_list.size()<m_MaxBlockRequests ? m_PendingBlocks_list.size() : m_MaxBlockRequests) % GetFullIP() );
@@ -739,11 +737,11 @@ void CUpDownClient::SendBlockRequests()
 		}
 		case 1: {
 			wxASSERT(m_MaxBlockRequests == STANDARD_BLOCKS_REQUEST);
-			
+
 			//#warning Kry - I dont specially like this approach, we iterate one time too many
-			
+
 			bool bHasLongBlocks =  false;
-		
+
 			std::list<Pending_Block_Struct*>::iterator it = m_PendingBlocks_list.begin();
 			for (uint32 i = 0; i != m_MaxBlockRequests; i++){
 				if (it != m_PendingBlocks_list.end()) {
@@ -760,17 +758,17 @@ void CUpDownClient::SendBlockRequests()
 								AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_CANCELTRANSFER to ") + GetFullIP() );
 								SendPacket(cancel_packet,true,true);
 								SetSentCancelTransfer(1);
-							}					
+							}
 							SetDownloadState(DS_ERROR);
 						}
 						break;
 					}
 				}
 			}
-			
+
 			CMemFile data(16 /*Hash*/ + (m_MaxBlockRequests*(bHasLongBlocks ? 8 : 4) /* uint32/64 start*/) + (3*(bHasLongBlocks ? 8 : 4)/* uint32/64 end*/));
 			data.WriteHash(m_reqfile->GetFileHash());
-			
+
 			it = m_PendingBlocks_list.begin();
 			for (uint32 i = 0; i != m_MaxBlockRequests; i++) {
 				if (it != m_PendingBlocks_list.end()) {
@@ -791,7 +789,7 @@ void CUpDownClient::SendBlockRequests()
 					}
 				}
 			}
-			
+
 			it = m_PendingBlocks_list.begin();
 			for (uint32 i = 0; i != m_MaxBlockRequests; i++) {
 				if (it != m_PendingBlocks_list.end()) {
@@ -799,16 +797,16 @@ void CUpDownClient::SendBlockRequests()
 					if (bHasLongBlocks) {
 						data.WriteUInt64(block->EndOffset+1);
 					} else {
-						data.WriteUInt32(block->EndOffset+1);		
+						data.WriteUInt32(block->EndOffset+1);
 					}
 				} else {
-					if (bHasLongBlocks) {			
+					if (bHasLongBlocks) {
 						data.WriteUInt64(0);
 					} else {
 						data.WriteUInt32(0);
 					}
 				}
-			}	
+			}
 			packet = new CPacket(data, (bHasLongBlocks ? OP_EMULEPROT : OP_EDONKEYPROT), (bHasLongBlocks ? (uint8)OP_REQUESTPARTS_I64 : (uint8)OP_REQUESTPARTS));
 			AddDebugLogLineN(logLocalClient, CFormat(wxT("Local Client: %s to %s")) % (bHasLongBlocks ? wxT("OP_REQUESTPARTS_I64") : wxT("OP_REQUESTPARTS")) % GetFullIP());
 			break;
@@ -816,7 +814,7 @@ void CUpDownClient::SendBlockRequests()
 		default:
 			wxFAIL;
 	}
-	
+
 	if (packet) {
 		theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 		SendPacket(packet, true, true);
@@ -856,22 +854,22 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 	uint64 nEndPos = 0;
 	uint32 nBlockSize = 0;
 	uint32 lenUnzipped = 0;
-	
+
 	// Update stats
 	m_dwLastBlockReceived = ::GetTickCount();
 
 	try {
-		
+
 		// Read data from packet
 		const CMemFile data(packet, size);
-	
+
 		// Check that this data is for the correct file
 		if ((!m_reqfile) || data.ReadHash() != m_reqfile->GetFileHash()) {
 			throw wxString(wxT("Wrong fileid sent (ProcessBlockPacket)"));
 		}
-	
+
 		// Find the start & end positions, and size of this chunk of data
-	
+
 		if (largeblocks) {
 			nStartPos = data.ReadUInt64();
 			header_size += 8;
@@ -879,7 +877,7 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 			nStartPos = data.ReadUInt32();
 			header_size += 4;
 		}
-		
+
 		if (packed) {
 			nBlockSize = data.ReadUInt32();
 			header_size += 4;
@@ -893,32 +891,32 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 				header_size += 4;
 			}
 		}
-	
+
 		// Check that packet size matches the declared data size + header size
 		if ( nEndPos == nStartPos || size != ((nEndPos - nStartPos) + header_size)) {
 			throw wxString(wxT("Corrupted or invalid DataBlock received (ProcessBlockPacket)"));
 		}
 		theStats::AddDownloadFromSoft(GetClientSoft(),size - header_size);
 		bytesReceivedCycle += size - header_size;
-	
+
 		credits->AddDownloaded(size - header_size, GetIP(), theApp->CryptoAvailable());
-		
+
 		// Move end back one, should be inclusive
 		nEndPos--;
-		
+
 		// Loop through to find the reserved block that this is within
 		std::list<Pending_Block_Struct*>::iterator it = m_PendingBlocks_list.begin();
 		for (; it != m_PendingBlocks_list.end(); ++it) {
 			Pending_Block_Struct* cur_block = *it;
-			
+
 			if ((cur_block->block->StartOffset <= nStartPos) && (cur_block->block->EndOffset >= nStartPos)) {
 				// Found reserved block
-	
+
 				if (cur_block->block->StartOffset == nStartPos) {
 					// This block just started transfering. Set the start time.
 					m_last_block_start = ::GetTickCountFullRes();
 				}
-				
+
 				if (cur_block->fZStreamError){
 					AddDebugLogLineN(logZLib,
 						CFormat(wxT("Ignoring %u bytes of block %u-%u because of erroneous zstream state for file: %s"))
@@ -926,14 +924,14 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 					m_reqfile->RemoveBlockFromList(cur_block->block->StartOffset, cur_block->block->EndOffset);
 					return;
 				}
-		   
+
 				// Remember this start pos, used to draw part downloading in list
 				m_lastDownloadingPart = nStartPos / PARTSIZE;
-	
+
 				// Occasionally packets are duplicated, no point writing it twice
 				// This will be 0 in these cases, or the length written otherwise
 				uint32 lenWritten = 0;
-	
+
 				// Handle differently depending on whether packed or not
 				if (!packed) {
 					// security sanitize check
@@ -956,21 +954,21 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 						lenUnzipped = (BLOCKSIZE + 300);
 					}
 					byte *unzipped = new byte[lenUnzipped];
-	
+
 					// Try to unzip the packet
 					int result = unzip(cur_block, (byte*)(packet + header_size), (size - header_size), &unzipped, &lenUnzipped);
-					
+
 					// no block can be uncompressed to >2GB, 'lenUnzipped' is obviously erroneous.
 					if (result == Z_OK && ((int)lenUnzipped >= 0)) {
-						
+
 						// Write any unzipped data to disk
 						if (lenUnzipped > 0) {
 							wxASSERT( (int)lenUnzipped > 0 );
-							
+
 							// Use the current start and end positions for the uncompressed data
 							nStartPos = cur_block->block->StartOffset + cur_block->totalUnzipped - lenUnzipped;
 							nEndPos = cur_block->block->StartOffset + cur_block->totalUnzipped - 1;
-	
+
 							if (nStartPos > cur_block->block->EndOffset || nEndPos > cur_block->block->EndOffset) {
 								AddDebugLogLineN(logZLib,
 									CFormat(wxT("Corrupted compressed packet for '%s' received (error 666)")) % m_reqfile->GetFileName());
@@ -989,14 +987,14 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 						wxString strZipError;
 						if (cur_block->zStream && cur_block->zStream->msg) {
 							strZipError = wxT(" - ") + wxString::FromAscii(cur_block->zStream->msg);
-						} 
-						
+						}
+
 						AddDebugLogLineN(logZLib,
 							CFormat(wxT("Corrupted compressed packet for '%s' received (error %i): %s"))
 								% m_reqfile->GetFileName() % result % strZipError);
-						
+
 						m_reqfile->RemoveBlockFromList(cur_block->block->StartOffset, cur_block->block->EndOffset);
-	
+
 						// If we had an zstream error, there is no chance that we could recover from it nor that we
 						// could use the current zstream (which is in error state) any longer.
 						if (cur_block->zStream){
@@ -1004,8 +1002,8 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 							delete cur_block->zStream;
 							cur_block->zStream = NULL;
 						}
-	
-						// Although we can't further use the current zstream, there is no need to disconnect the sending 
+
+						// Although we can't further use the current zstream, there is no need to disconnect the sending
 						// client because the next zstream (a series of 10K-blocks which build a 180K-block) could be
 						// valid again. Just ignore all further blocks for the current zstream.
 						cur_block->fZStreamError = 1;
@@ -1016,21 +1014,21 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 				// These checks only need to be done if any data was written
 				if (lenWritten > 0) {
 					m_nTransferredDown += lenWritten;
-	
+
 					// If finished reserved block
 					if (nEndPos == cur_block->block->EndOffset) {
-						
+
 						// Save last average speed based on data and time.
 						// This should do bytes/sec.
 						uint32 average_time = (::GetTickCountFullRes() - m_last_block_start);
-						
+
 						// Avoid divide by 0.
 						if (average_time == 0) {
 							average_time++;
 						}
-						
+
 						m_lastaverage = ((cur_block->block->EndOffset - cur_block->block->StartOffset) * 1000) / average_time;
-						
+
 						m_reqfile->RemoveBlockFromList(cur_block->block->StartOffset, cur_block->block->EndOffset);
 						delete cur_block->block;
 						// Not always allocated
@@ -1040,7 +1038,7 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 						}
 						delete cur_block;
 						m_PendingBlocks_list.erase(it);
-	
+
 						// Request next block
 						SendBlockRequests();
 					}
@@ -1062,7 +1060,7 @@ void CUpDownClient::ProcessBlockPacket(const byte* packet, uint32 size, bool pac
 int CUpDownClient::unzip(Pending_Block_Struct *block, byte *zipped, uint32 lenZipped, byte **unzipped, uint32 *lenUnzipped, int iRecursion)
 {
 	int err = Z_DATA_ERROR;
-	
+
 	// Save some typing
 	z_stream *zS = block->zStream;
 
@@ -1115,7 +1113,7 @@ int CUpDownClient::unzip(Pending_Block_Struct *block, byte *zipped, uint32 lenZi
 		(*lenUnzipped) = (zS->total_out - block->totalUnzipped);
 		block->totalUnzipped = zS->total_out;
 	} else if ((err == Z_OK) && (zS->avail_out == 0) && (zS->avail_in != 0)) {
-		
+
 		// Output array was not big enough,
 		// call recursively until there is enough space
 
@@ -1147,13 +1145,13 @@ int CUpDownClient::unzip(Pending_Block_Struct *block, byte *zipped, uint32 lenZi
 	} else {
 		// Should not get here unless input data is corrupt
 		wxString strZipError;
-		
+
 		if ( zS->msg ) {
 			strZipError = CFormat(wxT(" %d '%s'")) % err % wxString::FromAscii(zS->msg);
 		} else if (err != Z_OK) {
 			strZipError = CFormat(wxT(" %d")) % err;
 		}
-		
+
 		AddDebugLogLineN(logZLib,
 			CFormat(wxT("Unexpected zip error %s in file '%s'"))
 				% strZipError % (m_reqfile ? m_reqfile->GetFileName() : CPath(wxT("?"))));
@@ -1162,7 +1160,7 @@ int CUpDownClient::unzip(Pending_Block_Struct *block, byte *zipped, uint32 lenZi
 	if (err != Z_OK) {
 		(*lenUnzipped) = 0;
 	}
-	
+
 	return err;
 }
 
@@ -1188,10 +1186,10 @@ float CUpDownClient::CalculateKBpsDown()
 		} else {
 			kBpsDown = (kBpsDown * (tAverage - dt) + kBpsDownCur * dt) / tAverage;
 		}
-		//AddDebugLogLineN(logLocalClient, CFormat(wxT("CalculateKBpsDown %p kbps %.1f kbpsCur %.1f dt %.3f rcv %d ")) 
+		//AddDebugLogLineN(logLocalClient, CFormat(wxT("CalculateKBpsDown %p kbps %.1f kbpsCur %.1f dt %.3f rcv %d "))
 		//			% this % kBpsDown  % kBpsDownCur % dt % bytesReceivedCycle);
 		bytesReceivedCycle = 0;
-		msReceivedPrev = msCur;	
+		msReceivedPrev = msCur;
 	}
 
 	m_cShowDR++;
@@ -1207,9 +1205,9 @@ float CUpDownClient::CalculateKBpsDown()
 			SendPacket(packet,true,true);
 			SetSentCancelTransfer(1);
 		}
-		SetDownloadState(DS_ONQUEUE);		
+		SetDownloadState(DS_ONQUEUE);
 	}
-		
+
 	return kBpsDown;
 }
 
@@ -1241,13 +1239,13 @@ void CUpDownClient::UDPReaskACK(uint16 nNewQR)
 void CUpDownClient::UDPReaskFNF()
 {
 	m_bUDPPending = false;
-	
+
 	// avoid premature deletion of 'this' client
 	if (GetDownloadState() != DS_DOWNLOADING){
 		if (m_reqfile) {
 			m_reqfile->AddDeadSource(this);
 		}
-		
+
 		theApp->downloadqueue->RemoveSource(this);
 		if (!m_socket) {
 			if (Disconnected(wxT("UDPReaskFNF m_socket=NULL"))) {
@@ -1261,13 +1259,13 @@ void CUpDownClient::UDPReaskFNF()
 
 void CUpDownClient::UDPReaskForDownload()
 {
-	
+
 	wxASSERT(m_reqfile);
-	
+
 	if(!m_reqfile || m_bUDPPending ) {
 		return;
 	}
-	
+
 	//#warning We should implement the quality tests for udp reliability
 	/*
 	if( m_nTotalUDPPackets > 3 && ((float)(m_nFailedUDPPackets/m_nTotalUDPPackets) > .3)) {
@@ -1278,31 +1276,31 @@ void CUpDownClient::UDPReaskForDownload()
 	if (thePrefs::GetEffectiveUDPPort() == 0) {
 		return;
 	}
-		
+
 	if (m_nUDPPort != 0 && !theApp->IsFirewalled() && !IsConnected()) {
 		//don't use udp to ask for sources
 		if(IsSourceRequestAllowed()) {
 			return;
 		}
-		
+
 		m_bUDPPending = true;
-		
+
 		CMemFile data(128);
 		data.WriteHash(m_reqfile->GetFileHash());
-		
+
 		if (GetUDPVersion() > 3) {
 			if (m_reqfile->IsPartFile()) {
-				((CPartFile*)m_reqfile)->WritePartStatus(&data);
+				static_cast<CPartFile*>(m_reqfile)->WritePartStatus(&data);
 			}
 			else {
 				data.WriteUInt16(0);
 			}
 		}
-		
+
 		if (GetUDPVersion() > 2) {
 			data.WriteUInt16(m_reqfile->m_nCompleteSourcesCount);
 		}
-		
+
 		CPacket* response = new CPacket(data, OP_EMULEPROT, OP_REASKFILEPING);
 		AddDebugLogLineN( logClientUDP, wxT("Client UDP socket: send OP_REASKFILEPING") );
 		theStats::AddUpOverheadFileRequest(response->GetPacketSize());
@@ -1310,24 +1308,24 @@ void CUpDownClient::UDPReaskForDownload()
 	} else  if (HasLowID() && GetBuddyIP() && GetBuddyPort() && HasValidBuddyID()) {
 
 		m_bUDPPending = true;
-		
+
 		CMemFile data(128);
-		
+
 		data.WriteHash(CMD4Hash(GetBuddyID()));
 		data.WriteHash(m_reqfile->GetFileHash());
-		
+
 		if (GetUDPVersion() > 3) {
 			if (m_reqfile->IsPartFile()) {
-				((CPartFile*)m_reqfile)->WritePartStatus(&data);
+				static_cast<CPartFile*>(m_reqfile)->WritePartStatus(&data);
 			} else {
 				data.WriteUInt16(0);
 			}
 		}
-		
+
 		if (GetUDPVersion() > 2) {
 			data.WriteUInt16(m_reqfile->m_nCompleteSourcesCount);
 		}
-		
+
 		CPacket* response = new CPacket(data, OP_EMULEPROT, OP_REASKCALLBACKUDP);
 		AddDebugLogLineN( logClientUDP, wxT("Client UDP socket: send OP_REASKCALLBACKUDP") );
 		theStats::AddUpOverheadFileRequest(response->GetPacketSize());
@@ -1348,7 +1346,7 @@ uint16 CUpDownClient::GetNextRequestedPart() const
 			break;
 		}
 	}
-	
+
 	return part;
 }
 
@@ -1359,7 +1357,7 @@ void CUpDownClient::UpdateDisplayedInfo(bool force)
 	if (force || curTick-m_lastRefreshedDLDisplay > MINWAIT_BEFORE_DLDISPLAY_WINDOWUPDATE) {
 		// Check if we actually need to notify of changes
 		bool update = m_reqfile && m_reqfile->ShowSources();
-		
+
 		// Check A4AF files only if needed
 		if ( !update ) {
 			A4AFList::iterator it = m_A4AF_list.begin();
@@ -1370,7 +1368,7 @@ void CUpDownClient::UpdateDisplayedInfo(bool force)
 				}
 			}
 		}
-	
+
 		// And finnaly trigger an event if there's any reason
 		if ( update ) {
 			SourceItemType type;
@@ -1384,7 +1382,7 @@ void CUpDownClient::UpdateDisplayedInfo(bool force)
 					type = UNAVAILABLE_SOURCE;
 					break;
 			}
-			
+
 			Notify_SourceCtrlUpdateSource(ECID(), type );
 		}
 
@@ -1392,7 +1390,7 @@ void CUpDownClient::UpdateDisplayedInfo(bool force)
 		if (m_uploadingfile && m_uploadingfile->ShowPeers()) {
 			Notify_SharedCtrlRefreshClient(ECID(), AVAILABLE_SOURCE);
 		}
-				
+
 		m_lastRefreshedDLDisplay = curTick;
 	}
 }
@@ -1427,7 +1425,7 @@ bool CUpDownClient::SwapToAnotherFile(bool bIgnoreNoNeeded, bool ignoreSuspensio
 	if ( m_reqfile == NULL ) {
 		return false;
 	}
-	
+
 	// It would be stupid to swap away a downloading source
 	if (GetDownloadState() == DS_DOWNLOADING) {
 		return false;
@@ -1435,7 +1433,7 @@ bool CUpDownClient::SwapToAnotherFile(bool bIgnoreNoNeeded, bool ignoreSuspensio
 
 	// The iterator of the final target
 	A4AFList::iterator target = m_A4AF_list.end();
-	
+
 	// Do we want to swap to a specific file?
 	if ( toFile != NULL ) {
 		A4AFList::iterator it = m_A4AF_list.find( toFile );
@@ -1447,11 +1445,11 @@ bool CUpDownClient::SwapToAnotherFile(bool bIgnoreNoNeeded, bool ignoreSuspensio
 				target = it;
 			}
 		}
-	} else { 
-		// We want highest priority possible, but need to start with 
+	} else {
+		// We want highest priority possible, but need to start with
 		// a value less than any other priority
 		char priority = -1;
-		
+
 		A4AFList::iterator it = m_A4AF_list.begin();
 		for ( ; it != m_A4AF_list.end(); ++it ) {
 			if ( IsValidSwapTarget( it, bIgnoreNoNeeded, ignoreSuspensions ) ) {
@@ -1461,11 +1459,11 @@ bool CUpDownClient::SwapToAnotherFile(bool bIgnoreNoNeeded, bool ignoreSuspensio
 				// However, this really only matters if bIgnoreNoNeeded is true.
 				if ( it->second.NeededParts )
 						cur_priority += 10;
-				
+
 				// Change target if the current file has a higher rate than the previous
 				if ( cur_priority > priority ) {
 					priority = cur_priority;
-			
+
 					// Set the new target
 					target = it;
 
@@ -1480,12 +1478,12 @@ bool CUpDownClient::SwapToAnotherFile(bool bIgnoreNoNeeded, bool ignoreSuspensio
 
 	// Try to swap if we found a valid target
 	if ( target != m_A4AF_list.end() ) {
-		
+
 		// Sanity check, if reqfile doesn't own the source, then something
 		// is wrong and the swap cannot proceed.
 		if ( m_reqfile->DelSource( this ) ) {
 			CPartFile* SwapTo = target->first;
-			
+
 			// remove this client from the A4AF list of our new m_reqfile
 			if ( SwapTo->RemoveA4AFSource( this ) ) {
 				Notify_SourceCtrlRemoveSource(ECID(), SwapTo);
@@ -1496,18 +1494,18 @@ bool CUpDownClient::SwapToAnotherFile(bool bIgnoreNoNeeded, bool ignoreSuspensio
 			// Do we want to remove it completly? Say if the old file is getting deleted
 			if ( !bRemoveCompletely ) {
 				m_reqfile->AddA4AFSource( this );
-				
+
 				// Set the status of the old file
 				m_A4AF_list[m_reqfile].NeededParts = (GetDownloadState() != DS_NONEEDEDPARTS);
-				
+
 				// Avoid swapping to this file for a while
-				m_A4AF_list[m_reqfile].timestamp = ::GetTickCount(); 
-							
+				m_A4AF_list[m_reqfile].timestamp = ::GetTickCount();
+
 				Notify_SourceCtrlAddSource(m_reqfile, CCLIENTREF(this, wxT("CUpDownClient::SwapToAnotherFile Notify_SourceCtrlAddSource 1")), A4AF_SOURCE);
 			} else {
 				Notify_SourceCtrlRemoveSource(ECID(), m_reqfile);
 			}
-		
+
 			SetDownloadState(DS_NONE);
 			ResetFileStatusInfo();
 
@@ -1515,16 +1513,16 @@ bool CUpDownClient::SwapToAnotherFile(bool bIgnoreNoNeeded, bool ignoreSuspensio
 			m_nOldRemoteQueueRank = 0;
 
 			m_reqfile->UpdatePartsInfo();
-	
+
 			SetRequestFile( SwapTo );
 
 			SwapTo->AddSource( this );
-		
+
 			Notify_SourceCtrlAddSource(SwapTo, CCLIENTREF(this, wxT("CUpDownClient::SwapToAnotherFile Notify_SourceCtrlAddSource 2")), UNAVAILABLE_SOURCE);
 
 			// Remove the new reqfile from the list of other files
 			m_A4AF_list.erase( target );
-			
+
 			return true;
 		}
 	}
@@ -1536,7 +1534,7 @@ bool CUpDownClient::SwapToAnotherFile(bool bIgnoreNoNeeded, bool ignoreSuspensio
 bool CUpDownClient::IsValidSwapTarget( A4AFList::iterator it, bool ignorenoneeded, bool ignoresuspended )
 {
 	wxASSERT( it != m_A4AF_list.end() && it->first );
-		
+
 	// Check if this file has been suspended
 	if ( !ignoresuspended ) {
 		if ( ::GetTickCount() - it->second.timestamp >= PURGESOURCESWAPSTOP ) {
@@ -1547,17 +1545,17 @@ bool CUpDownClient::IsValidSwapTarget( A4AFList::iterator it, bool ignorenoneede
 			return false;
 		}
 	}
-	
+
 	// Check if the client has needed parts
 	if ( !ignorenoneeded ) {
 		if ( !it->second.NeededParts ) {
 			return false;
 		}
 	}
-	
+
 	// Final checks to see if the client is a valid target
 	CPartFile* cur_file = it->first;
-	if ( ( cur_file != m_reqfile && !cur_file->IsStopped() ) && 
+	if ( ( cur_file != m_reqfile && !cur_file->IsStopped() ) &&
 	     ( cur_file->GetStatus() == PS_READY || cur_file->GetStatus() == PS_EMPTY ) &&
 		 ( cur_file->IsPartFile() ) )
 	{
@@ -1579,11 +1577,11 @@ void CUpDownClient::SetRequestFile(CPartFile* reqfile)
 
 		m_nPartCount = 0;
 		m_downPartStatus.clear();
-		
+
 		m_reqfile = reqfile;
-		
+
 		if ( reqfile ) {
-			// Increment the source-count of the new request-file	
+			// Increment the source-count of the new request-file
 			m_reqfile->ClientStateChanged( -1, GetDownloadState() );
 
 			m_nPartCount = reqfile->GetPartCount();
@@ -1609,7 +1607,7 @@ void CUpDownClient::SendAICHRequest(CPartFile* pForFile, uint16 nPart){
 	data.WriteUInt16(nPart);
 	pForFile->GetAICHHashset()->GetMasterHash().Write(&data);
 	CPacket* packet = new CPacket(data, OP_EMULEPROT, OP_AICHREQUEST);
-	theStats::AddUpOverheadOther(packet->GetPacketSize());	
+	theStats::AddUpOverheadOther(packet->GetPacketSize());
 	AddDebugLogLineN(logLocalClient, wxT("Local Client: OP_AICHREQUEST to") + GetFullIP());
 	SafeSendPacket(packet);
 }
@@ -1622,7 +1620,7 @@ void CUpDownClient::ProcessAICHAnswer(const byte* packet, uint32 size)
 	m_fAICHRequested = FALSE;
 
 	CMemFile data(packet, size);
-	if (size <= 16){	
+	if (size <= 16){
 		CAICHHashSet::ClientAICHRequestFailed(this);
 		return;
 	}
@@ -1661,7 +1659,7 @@ void CUpDownClient::ProcessAICHRequest(const byte* packet, uint32 size)
 	if (size != 16 + 2 + CAICHHash::GetHashSize()) {
 		throw wxString(wxT("Received AICH Request Packet with wrong size"));
 	}
-	
+
 	CMemFile data(packet, size);
 
 	CMD4Hash hash = data.ReadHash();
@@ -1681,8 +1679,8 @@ void CUpDownClient::ProcessAICHRequest(const byte* packet, uint32 size)
 				AddDebugLogLineN(logAICHTransfer,
 					CFormat(wxT("AICH Packet Request: Sucessfully created and send recoverydata for '%s' to %s"))
 						% pKnownFile->GetFileName() % GetClientFullInfo());
-				
-				CPacket* packAnswer = new CPacket(fileResponse, OP_EMULEPROT, OP_AICHANSWER);			
+
+				CPacket* packAnswer = new CPacket(fileResponse, OP_EMULEPROT, OP_AICHANSWER);
 				theStats::AddUpOverheadOther(packAnswer->GetPacketSize());
 				AddDebugLogLineN(logLocalClient, wxT("Local Client: OP_AICHANSWER to") + GetFullIP());
 				SafeSendPacket(packAnswer);
@@ -1700,7 +1698,7 @@ void CUpDownClient::ProcessAICHRequest(const byte* packet, uint32 size)
 	} else {
 		AddDebugLogLineN( logAICHTransfer, wxT("AICH Packet Request: Failed to find requested shared file - ") + GetClientFullInfo() );
 	}
-		
+
 	CPacket* packAnswer = new CPacket(OP_AICHANSWER, 16, OP_EMULEPROT);
 	packAnswer->Copy16ToDataBuffer(hash.GetHash());
 	theStats::AddUpOverheadOther(packAnswer->GetPacketSize());
@@ -1713,10 +1711,10 @@ void CUpDownClient::ProcessAICHFileHash(CMemFile* data, const CPartFile* file){
 	if (file == NULL){
 		pPartFile = theApp->downloadqueue->GetFileByID(data->ReadHash());
 	} else {
-		pPartFile = (CPartFile*)file;
+		pPartFile = const_cast<CPartFile*>(file);
 	}
 	CAICHHash ahMasterHash(data);
-	
+
 	if(pPartFile != NULL && pPartFile == GetRequestFile()){
 		SetReqFileAICHHash(new CAICHHash(ahMasterHash));
 		pPartFile->GetAICHHashset()->UntrustedHashReceived(ahMasterHash, GetConnectIP());
diff --git a/src/DownloadListCtrl.cpp b/src/DownloadListCtrl.cpp
index b953ead..612cae3 100644
--- a/src/DownloadListCtrl.cpp
+++ b/src/DownloadListCtrl.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -56,7 +56,7 @@ struct FileCtrlItem_Struct
 		  status(NULL),
 		  m_fileValue(NULL)
 	{ }
-	
+
 	~FileCtrlItem_Struct() {
 		delete status;
 	}
@@ -68,7 +68,7 @@ struct FileCtrlItem_Struct
 	void SetContents(CPartFile* file) {
 		m_fileValue = file;
 	}
-	
+
 	uint32		dwUpdated;
 	wxBitmap*	status;
 
@@ -94,7 +94,7 @@ enum ColumnEnum {
 	ColumnLastReception,
 	ColumnNumberOfColumns
 };
-	
+
 BEGIN_EVENT_TABLE(CDownloadListCtrl, CMuleListCtrl)
 	EVT_LIST_ITEM_ACTIVATED(ID_DLOADLIST,	CDownloadListCtrl::OnItemActivated)
 	EVT_LIST_ITEM_RIGHT_CLICK(ID_DLOADLIST, CDownloadListCtrl::OnMouseRightClick)
@@ -104,12 +104,12 @@ BEGIN_EVENT_TABLE(CDownloadListCtrl, CMuleListCtrl)
 
 	EVT_CHAR( CDownloadListCtrl::OnKeyPressed )
 
-	EVT_MENU( MP_CANCEL, 			CDownloadListCtrl::OnCancelFile )
-	
+	EVT_MENU( MP_CANCEL,			CDownloadListCtrl::OnCancelFile )
+
 	EVT_MENU( MP_PAUSE,			CDownloadListCtrl::OnSetStatus )
 	EVT_MENU( MP_STOP,			CDownloadListCtrl::OnSetStatus )
 	EVT_MENU( MP_RESUME,			CDownloadListCtrl::OnSetStatus )
-	
+
 	EVT_MENU( MP_PRIOLOW,			CDownloadListCtrl::OnSetPriority )
 	EVT_MENU( MP_PRIONORMAL,		CDownloadListCtrl::OnSetPriority )
 	EVT_MENU( MP_PRIOHIGH,			CDownloadListCtrl::OnSetPriority )
@@ -173,7 +173,7 @@ CMuleListCtrl( parent, winid, pos, size, style | wxLC_OWNERDRAW, validator, name
 	m_filecount = 0;
 	m_ItemSelectionChangePending = false;
 	LoadSettings();
-	
+
 	//m_ready = true;
 }
 
@@ -195,14 +195,14 @@ CDownloadListCtrl::~CDownloadListCtrl()
 void CDownloadListCtrl::AddFile( CPartFile* file )
 {
 	wxASSERT( file );
-	
+
 	// Avoid duplicate entries of files
 	if ( m_ListItems.find( file ) == m_ListItems.end() ) {
 		FileCtrlItem_Struct* newitem = new FileCtrlItem_Struct;
 		newitem->SetContents(file);
-	
+
 		m_ListItems.insert( ListItemsPair( file, newitem ) );
-		
+
 		// Check if the new file is visible in the current category
 		if ( file->CheckShowItemInGivenCat( m_category ) ) {
 			ShowFile( file, true );
@@ -217,7 +217,7 @@ void CDownloadListCtrl::AddFile( CPartFile* file )
 void CDownloadListCtrl::RemoveFile( CPartFile* file )
 {
 	wxASSERT( file );
-	
+
 	// Ensure that any list-entries are removed
 	ShowFile( file, false );
 
@@ -241,13 +241,13 @@ void CDownloadListCtrl::UpdateItem(const void* toupdate)
 	// support the GetVisibleLines function
 	long first = 0, last = GetItemCount();
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	// Get visible lines if we need them
 	if ( rangeIt.first != rangeIt.second ) {
 		GetVisibleLines( &first, &last );
 	}
 #endif
-	
+
 	for ( ListItems::iterator it = rangeIt.first; it != rangeIt.second; ++it ) {
 		FileCtrlItem_Struct* item = it->second;
 
@@ -256,7 +256,7 @@ void CDownloadListCtrl::UpdateItem(const void* toupdate)
 		// Determine if the file should be shown in the current category
 
 		CPartFile* file = item->GetFile();
-	
+
 		bool show = file->CheckShowItemInGivenCat( m_category );
 
 		if ( index > -1 ) {
@@ -289,26 +289,26 @@ void CDownloadListCtrl::UpdateItem(const void* toupdate)
 void CDownloadListCtrl::ShowFile( CPartFile* file, bool show )
 {
 	wxASSERT( file );
-	
+
 	ListItems::iterator it = m_ListItems.find( file );
-	
-	if ( it != m_ListItems.end() ) { 
+
+	if ( it != m_ListItems.end() ) {
 		FileCtrlItem_Struct* item = it->second;
-	
+
 		if ( show ) {
 			// Check if the file is already being displayed
 			long index = FindItem( -1, reinterpret_cast<wxUIntPtr>(item) );
-			if ( index == -1 ) {	
+			if ( index == -1 ) {
 				long newitem = InsertItem( GetItemCount(), wxEmptyString );
-				
+
 				SetItemPtrData( newitem, reinterpret_cast<wxUIntPtr>(item) );
 
 				wxListItem myitem;
 				myitem.m_itemId = newitem;
 				myitem.SetBackgroundColour( GetBackgroundColour() );
-				
-				SetItem(myitem);	
-			
+
+				SetItem(myitem);
+
 				RefreshItem( newitem );
 
 				ShowFilesCount( 1 );
@@ -331,8 +331,8 @@ void CDownloadListCtrl::ChangeCategory( int newCategory )
 	bool hasCompletedDownloads = false;
 
 	// remove all displayed files with a different cat and show the correct ones
-	for (ListItems::const_iterator it = m_ListItems.begin(); it != m_ListItems.end(); it++) {
-		
+	for (ListItems::const_iterator it = m_ListItems.begin(); it != m_ListItems.end(); ++it) {
+
 		CPartFile* file =  it->second->GetFile();
 
 		bool curVisibility = file->CheckShowItemInGivenCat( m_category );
@@ -341,7 +341,7 @@ void CDownloadListCtrl::ChangeCategory( int newCategory )
 		if (newVisibility && file->IsCompleted()) {
 			hasCompletedDownloads = true;
 		}
-	
+
 		// Check if the visibility of the file has changed. However, if the
 		// current category is the default (0) category, then we can't use
 		// curVisiblity to see if the visibility has changed but instead
@@ -350,7 +350,7 @@ void CDownloadListCtrl::ChangeCategory( int newCategory )
 			ShowFile( file, newVisibility );
 		}
 	}
-	
+
 	CastByID(ID_BTNCLRCOMPL, GetParent(), wxButton)->Enable(hasCompletedDownloads);
 
 	Thaw();
@@ -376,11 +376,11 @@ ItemList GetSelectedItems( CDownloadListCtrl* list)
 	ItemList results;
 
 	long index = list->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	while ( index > -1 ) {
-		FileCtrlItem_Struct* item = (FileCtrlItem_Struct*)list->GetItemData( index );
+		FileCtrlItem_Struct* item = reinterpret_cast<FileCtrlItem_Struct*>(list->GetItemData( index ));
 		results.push_back( item );
-		
+
 		index = list->GetNextItem( index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	}
 
@@ -405,7 +405,7 @@ void CDownloadListCtrl::OnCancelFile(wxCommandEvent& WXUNUSED(event))
 			}
 		}
 	}
-	if (files.size()) {	
+	if (!files.empty()) {
 		wxString question;
 		if (files.size() == 1) {
 			question = _("Are you sure that you wish to delete the selected file?");
@@ -440,7 +440,7 @@ void CDownloadListCtrl::OnSetPriority( wxCommandEvent& event )
 
 	for ( ItemList::iterator it = files.begin(); it != files.end(); ++it ) {
 		CPartFile* file = (*it)->GetFile();
-	
+
 		if ( priority == PR_AUTO ) {
 			CoreNotify_PartFile_PrioAuto( file, true );
 		} else {
@@ -463,11 +463,11 @@ void CDownloadListCtrl::OnSwapSources( wxCommandEvent& event )
 			case MP_SWAP_A4AF_TO_THIS:
 				CoreNotify_PartFile_Swap_A4AF( file );
 				break;
-				
+
 			case MP_SWAP_A4AF_TO_THIS_AUTO:
 				CoreNotify_PartFile_Swap_A4AF_Auto( file );
 				break;
-				
+
 			case MP_SWAP_A4AF_TO_ANY_OTHER:
 				CoreNotify_PartFile_Swap_A4AF_Others( file );
 				break;
@@ -499,11 +499,11 @@ void CDownloadListCtrl::OnSetStatus( wxCommandEvent& event )
 	for ( ItemList::iterator it = files.begin(); it != files.end(); ++it ) {
 		CPartFile* file = (*it)->GetFile();
 
-		switch ( event.GetId() ) {	
+		switch ( event.GetId() ) {
 			case MP_PAUSE:
 				CoreNotify_PartFile_Pause( file );
 				break;
-				
+
 			case MP_RESUME:
 				CoreNotify_PartFile_Resume( file );
 				break;
@@ -593,16 +593,16 @@ void CDownloadListCtrl::OnPreviewFile( wxCommandEvent& WXUNUSED(event) )
 }
 
 void CDownloadListCtrl::OnItemActivated( wxListEvent& evt )
-{	
-	CPartFile* file = ((FileCtrlItem_Struct*)GetItemData( evt.GetIndex()))->GetFile();
+{
+	CPartFile* file = reinterpret_cast<FileCtrlItem_Struct*>(GetItemData(evt.GetIndex()))->GetFile();
 
 	if ((!file->IsPartFile() || file->IsCompleted()) && file->PreviewAvailable()) {
 		PreviewFile( file );
-	}	
+	}
 }
 
 void CDownloadListCtrl::OnItemSelectionChanged( wxListEvent& )
-{	
+{
 	if (!m_ItemSelectionChangePending && !IsSorting()) {
 		m_ItemSelectionChangePending = true;
 		Notify_DownloadCtrlDoItemSelectionChanged();
@@ -610,21 +610,21 @@ void CDownloadListCtrl::OnItemSelectionChanged( wxListEvent& )
 }
 
 void CDownloadListCtrl::DoItemSelectionChanged()
-{	
+{
 	m_ItemSelectionChangePending = false;
 	CKnownFileVector filesVector;
 	filesVector.reserve(GetSelectedItemCount());
 
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-		
+
 	while ( index > -1 ) {
-		CPartFile* file = ((FileCtrlItem_Struct*)GetItemData( index ))->GetFile();
+		CPartFile* file = reinterpret_cast<FileCtrlItem_Struct*>(GetItemData( index ))->GetFile();
 		if (file->IsPartFile()) {
 			filesVector.push_back(file);
 		}
 		index = GetNextItem( index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	}
-		
+
 	std::sort(filesVector.begin(), filesVector.end());
 	theApp->amuledlg->m_transferwnd->clientlistctrl->ShowSources(filesVector);
 }
@@ -634,12 +634,12 @@ void CDownloadListCtrl::OnMouseRightClick(wxListEvent& evt)
 	long index = CheckSelection(evt);
 	if (index < 0) {
 		return;
-	}	
-	
+	}
+
 	delete m_menu;
 	m_menu = NULL;
 
-	FileCtrlItem_Struct* item = (FileCtrlItem_Struct*)GetItemData( index );
+	FileCtrlItem_Struct* item = reinterpret_cast<FileCtrlItem_Struct*>(GetItemData( index ));
 	m_menu = new wxMenu( _("Downloads") );
 
 	wxMenu* priomenu = new wxMenu();
@@ -688,7 +688,7 @@ void CDownloadListCtrl::OnMouseRightClick(wxListEvent& evt)
 		_("Copy feedback to clipboard"));
 	//-----------------------------------------------------
 	m_menu->AppendSeparator();
-	//-----------------------------------------------------	
+	//-----------------------------------------------------
 	// Add dynamic entries
 	wxMenu *cats = new wxMenu(_("Category"));
 	if (theApp->glob_prefs->GetCatCount() > 1) {
@@ -729,7 +729,7 @@ void CDownloadListCtrl::OnMouseRightClick(wxListEvent& evt)
 	m_menu->Enable( MP_CANCEL,	canCancel );
 	m_menu->Enable( MP_PAUSE,	canPause );
 	m_menu->Enable( MP_STOP,	canStop );
-	m_menu->Enable( MP_RESUME, 	fileResumable );
+	m_menu->Enable( MP_RESUME,	fileResumable );
 	m_menu->Enable( MP_CLEARCOMPLETED, CastByID(ID_BTNCLRCOMPL, GetParent(), wxButton)->IsEnabled() );
 
 	wxString view;
@@ -746,10 +746,10 @@ void CDownloadListCtrl::OnMouseRightClick(wxListEvent& evt)
 	item->GetFile()->GetRatingAndComments(ratingList);
 	m_menu->Enable(MP_VIEWFILECOMMENTS, !ratingList.empty());
 
-	m_menu->Check(  MP_SWAP_A4AF_TO_THIS_AUTO, 	file->IsA4AFAuto() );
+	m_menu->Check(  MP_SWAP_A4AF_TO_THIS_AUTO,	file->IsA4AFAuto() );
 
 	int priority = file->IsAutoDownPriority() ? PR_AUTO : file->GetDownPriority();
-	
+
 	priomenu->Check( MP_PRIOHIGH,	priority == PR_HIGH );
 	priomenu->Check( MP_PRIONORMAL, priority == PR_NORMAL );
 	priomenu->Check( MP_PRIOLOW,	priority == PR_LOW );
@@ -783,7 +783,7 @@ void CDownloadListCtrl::ShowFileDetailDialog(long index)
 	int nrItems = GetItemCount();
 	files.reserve(nrItems);
 	for (int i = 0; i < nrItems; i++) {
-		files.push_back(((FileCtrlItem_Struct*)GetItemData(i))->GetFile());
+		files.push_back(reinterpret_cast<FileCtrlItem_Struct*>(GetItemData(i))->GetFile());
 	}
 	bool autosort = thePrefs::AutoSortDownload(false);
 	CFileDetailDialog(this, files, index).ShowModal();
@@ -803,15 +803,15 @@ void CDownloadListCtrl::OnKeyPressed( wxKeyEvent& event )
 		}
 		case WXK_F2: {
 			ItemList files = ::GetSelectedItems( this );
-			if (files.size() == 1) {	
+			if (files.size() == 1) {
 				CPartFile* file = files.front()->GetFile();
-				
+
 				// Currently renaming of completed files causes problem with kad
 				if (file->IsPartFile()) {
 					wxString strNewName = ::wxGetTextFromUser(
 						_("Enter new name for this file:"),
 						_("File rename"), file->GetFileName().GetPrintable());
-				
+
 					CPath newName = CPath(strNewName);
 					if (newName.IsOk() && (newName != file->GetFileName())) {
 						theApp->sharedfiles->RenameFile(file, newName);
@@ -834,7 +834,7 @@ void CDownloadListCtrl::OnDrawItem(
 		return;
 	}
 
-	FileCtrlItem_Struct* content = (FileCtrlItem_Struct *)GetItemData(item);
+	FileCtrlItem_Struct* content = reinterpret_cast<FileCtrlItem_Struct *>(GetItemData(item));
 
 	// Define text-color and background
 	// and the border of the drawn area
@@ -855,7 +855,7 @@ void CDownloadListCtrl::OnDrawItem(
 		dc->SetPen(*wxTRANSPARENT_PEN);
 	}
 	dc->SetBrush( dc->GetBackground() );
-	
+
 	dc->DrawRectangle( rectHL.x, rectHL.y, rectHL.width, rectHL.height );
 
 	dc->SetPen(*wxTRANSPARENT_PEN);
@@ -894,7 +894,7 @@ void CDownloadListCtrl::OnDrawItem(
 			// Draw the item
 			DrawFileItem(dc, i, target_rec, content);
 		}
-		
+
 		// Increment to the next column
 		cur_rec.x += listitem.GetWidth();
 	}
@@ -921,18 +921,18 @@ void CDownloadListCtrl::DrawFileItem( wxDC* dc, int nColumn, const wxRect& rect,
 		// Filename
 		case ColumnFileName: {
 			wxString filename = file->GetFileName().GetPrintable();
-	
+
 			if (file->HasRating() || file->HasComment()) {
 				int image = Client_CommentOnly_Smiley;
 				if (file->HasRating()) {
 					image = Client_InvalidRating_Smiley + file->UserRating() - 1;
-				}	
-					
+				}
+
 				wxASSERT(image >= Client_InvalidRating_Smiley);
 				wxASSERT(image <= Client_CommentOnly_Smiley);
-				
+
 				int imgWidth = 16;
-				
+
 				// it's already centered by OnDrawItem() ...
 				m_ImageList.Draw(image, *dc, rect.GetX(), rect.GetY() - 1,
 					wxIMAGELIST_DRAW_TRANSPARENT);
@@ -942,85 +942,90 @@ void CDownloadListCtrl::DrawFileItem( wxDC* dc, int nColumn, const wxRect& rect,
 			}
 			break;
 		}
-		
+
 		// Filesize
 		case ColumnSize:
 			text = CastItoXBytes( file->GetFileSize() );
 			break;
-	
+
 		// Transferred
 		case ColumnTransferred:
 			text = CastItoXBytes( file->GetTransferred() );
 			break;
-		
+
 		// Completed
 		case ColumnCompleted:
 			text = CastItoXBytes( file->GetCompletedSize() );
 			break;
-		
+
 		// Speed
 		case ColumnSpeed:
 			if ( file->GetTransferingSrcCount() ) {
 				text = CFormat(_("%.1f kB/s")) % file->GetKBpsDown();
 			}
 			break;
-	
-		// Progress	
+
+		// Progress
 		case ColumnProgress:{
 			if (thePrefs::ShowProgBar()) {
 				int iWidth  = rect.GetWidth() - 2;
 				int iHeight = rect.GetHeight() - 2;
-	
+
 				// DO NOT DRAW IT ALL THE TIME
 				uint32 dwTicks = GetTickCount();
-				
+
 				wxMemoryDC cdcStatus;
-				
-				if ( item->dwUpdated < dwTicks || !item->status || iWidth != item->status->GetWidth() ) {
+
+				if (item->dwUpdated < dwTicks || file->GetHashingProgress() > 0
+						|| !item->status || iWidth != item->status->GetWidth()) {
 					if ( item->status == NULL) {
 						item->status = new wxBitmap(iWidth, iHeight);
 					} else if ( item->status->GetWidth() != iWidth ) {
 						// Only recreate if the size has changed
 						item->status->Create(iWidth, iHeight);
 					}
-							
+
 					cdcStatus.SelectObject( *item->status );
-					
+
 					if ( thePrefs::UseFlatBar() ) {
 						DrawFileStatusBar( file, &cdcStatus,
 							wxRect(0, 0, iWidth, iHeight), true);
 					} else {
 						DrawFileStatusBar( file, &cdcStatus,
 							wxRect(1, 1, iWidth - 2, iHeight - 2), false);
-			
+
 						// Draw black border
 						cdcStatus.SetPen( *wxBLACK_PEN );
 						cdcStatus.SetBrush( *wxTRANSPARENT_BRUSH );
 						cdcStatus.DrawRectangle( 0, 0, iWidth, iHeight );
 					}
-				
+
 					item->dwUpdated = dwTicks + 5000; // Plus five seconds
 				} else {
 					cdcStatus.SelectObject( *item->status );
 				}
-				
+
 				dc->Blit( rect.GetX(), rect.GetY() + 1, iWidth, iHeight, &cdcStatus, 0, 0);
-				
+
 				if (thePrefs::ShowPercent()) {
-					// Percentage of completing
-					// We strip anything below the first decimal point,
-					// to avoid Format doing roundings
-					float percent = floor( file->GetPercentCompleted() * 10.0f ) / 10.0f;
-				
+					// Percentage of completing or hashing
+					uint16	hashingProgress = file->GetHashingProgress();
+					double	percent = hashingProgress == 0 ? file->GetPercentCompleted()
+										: 100.0 * hashingProgress * PARTSIZE / file->GetFileSize();
+					if (percent > 100.0) {
+						percent = 100.0;
+					}
 					wxString buffer = CFormat(wxT("%.1f%%")) % percent;
 					int middlex = (2*rect.GetX() + rect.GetWidth()) >> 1;
 					int middley = (2*rect.GetY() + rect.GetHeight()) >> 1;
-					
+
 					wxCoord textwidth, textheight;
-					
+
 					dc->GetTextExtent(buffer, &textwidth, &textheight);
 					wxColour AktColor = dc->GetTextForeground();
-					if (thePrefs::ShowProgBar()) {
+					// Ordinary progress bar: white percentage
+					// Hashing progressbar (green/yellow): black percentage
+					if (thePrefs::ShowProgBar() && hashingProgress == 0) {
 						dc->SetTextForeground(*wxWHITE);
 					} else {
 						dc->SetTextForeground(*wxBLACK);
@@ -1042,45 +1047,45 @@ void CDownloadListCtrl::DrawFileItem( wxDC* dc, int nColumn, const wxRect& rect,
 			} else {
 				text = CFormat(wxT("%i")) % sc;
 			}
-	
+
 			if ( file->GetSrcA4AFCount() ) {
 				text += CFormat(wxT("+%i")) % file->GetSrcA4AFCount();
 			}
-	
+
 			if ( file->GetTransferingSrcCount() ) {
 				text += CFormat(wxT(" (%i)")) % file->GetTransferingSrcCount();
 			}
-	
+
 			break;
 		}
-	
+
 		// Priority
 		case ColumnPriority:
 			text = PriorityToStr( file->GetDownPriority(), file->IsAutoDownPriority() );
 			break;
-				
+
 		// File-status
 		case ColumnStatus:
 			text = file->getPartfileStatus();
 			break;
-		
+
 		// Remaining
 		case ColumnTimeRemaining: {
 			if ((file->GetStatus() != PS_COMPLETING) && file->IsPartFile()) {
 				uint64 remainSize = file->GetFileSize() - file->GetCompletedSize();
 				sint32 remainTime = file->getTimeRemaining();
-				
+
 				if (remainTime >= 0) {
 					text = CastSecondsToHM(remainTime);
 				} else {
 					text = _("Unknown");
 				}
-	
+
 				text += wxT(" (") + CastItoXBytes(remainSize) + wxT(")");
 			}
 			break;
 		}
-		
+
 		// Last seen completed
 		case ColumnLastSeenComplete: {
 			if ( file->lastseencomplete ) {
@@ -1090,7 +1095,7 @@ void CDownloadListCtrl::DrawFileItem( wxDC* dc, int nColumn, const wxRect& rect,
 			}
 			break;
 		}
-		
+
 		// Last received
 		case ColumnLastReception: {
 			const time_t lastReceived = file->GetLastChangeDatetime();
@@ -1100,7 +1105,7 @@ void CDownloadListCtrl::DrawFileItem( wxDC* dc, int nColumn, const wxRect& rect,
 				text = _("Unknown");
 			}
 		}
-	} 
+	}
 
 	if ( !text.IsEmpty() ) {
 		dc->DrawText( text, rect.GetX(), rect.GetY() );
@@ -1109,14 +1114,14 @@ void CDownloadListCtrl::DrawFileItem( wxDC* dc, int nColumn, const wxRect& rect,
 
 wxString CDownloadListCtrl::GetTTSText(unsigned item) const
 {
-	return ((FileCtrlItem_Struct*)GetItemData(item))->GetFile()->GetFileName().GetPrintable();
+	return reinterpret_cast<FileCtrlItem_Struct*>(GetItemData(item))->GetFile()->GetFileName().GetPrintable();
 }
 
 
 int CDownloadListCtrl::SortProc(wxUIntPtr param1, wxUIntPtr param2, long sortData)
 {
-	FileCtrlItem_Struct* item1 = (FileCtrlItem_Struct*)param1;
-	FileCtrlItem_Struct* item2 = (FileCtrlItem_Struct*)param2;
+	FileCtrlItem_Struct* item1 = reinterpret_cast<FileCtrlItem_Struct*>(param1);
+	FileCtrlItem_Struct* item2 = reinterpret_cast<FileCtrlItem_Struct*>(param2);
 
 	int sortMod = (sortData & CMuleListCtrl::SORT_DES) ? -1 : 1;
 	sortData &= CMuleListCtrl::COLUMN_MASK;
@@ -1241,14 +1246,14 @@ int CDownloadListCtrl::Compare( const CPartFile* file1, const CPartFile* file2,
 void CDownloadListCtrl::ClearCompleted()
 {
 	CastByID(ID_BTNCLRCOMPL, GetParent(), wxButton)->Enable(false);
-	
+
 	// Search for completed files
 	ListOfUInts32 toClear;
 	for ( ListItems::iterator it = m_ListItems.begin(); it != m_ListItems.end(); ) {
 		FileCtrlItem_Struct* item = it->second; ++it;
-		
+
 		CPartFile* file = item->GetFile();
-		
+
 		if (file->IsCompleted() && file->CheckShowItemInGivenCat(m_category)) {
 			toClear.push_back(file->ECID());
 		}
@@ -1262,7 +1267,7 @@ void CDownloadListCtrl::ClearCompleted()
 void CDownloadListCtrl::ShowFilesCount( int diff )
 {
 	m_filecount += diff;
-	
+
 	wxStaticText* label = CastByName( wxT("downloadsLabel"), GetParent(), wxStaticText );
 
 	label->SetLabel(CFormat(_("Downloads (%i)")) % m_filecount);
@@ -1285,26 +1290,37 @@ void CDownloadListCtrl::DrawFileStatusBar(
 	const CPartFile* file, wxDC* dc, const wxRect& rect, bool bFlat ) const
 {
 	static CBarShader s_ChunkBar(16);
-	
+
 	s_ChunkBar.SetHeight(rect.height);
-	s_ChunkBar.SetWidth(rect.width); 
+	s_ChunkBar.SetWidth(rect.width);
 	s_ChunkBar.SetFileSize( file->GetFileSize() );
 	s_ChunkBar.Set3dDepth( thePrefs::Get3DDepth() );
 
 	if ( file->IsCompleted() || file->GetStatus() == PS_COMPLETING ) {
 		s_ChunkBar.Fill( bFlat ? crFlatProgress : crProgress );
-		s_ChunkBar.Draw(dc, rect.x, rect.y, bFlat); 
+		s_ChunkBar.Draw(dc, rect.x, rect.y, bFlat);
+		return;
+	} else if (file->GetHashingProgress() > 0) {
+		uint64 left = file->GetHashingProgress() * PARTSIZE;
+		if (left < file->GetFileSize() - 1) {
+			// Fill the amount not yet hashed with yellow
+			s_ChunkBar.FillRange(left + 1, file->GetFileSize() - 1, bFlat ? crFlatPending : crPending);
+		} else {
+			left = file->GetFileSize() - 1;
+		}
+	    // Fill the amount already hashed with green
+	    s_ChunkBar.FillRange(0, left, bFlat ? crFlatProgress : crProgress);
+		s_ChunkBar.Draw(dc, rect.x, rect.y, bFlat);
 		return;
 	}
-	
 	// Part availability ( of missing parts )
 	const CGapList& gaplist = file->GetGapList();
 	CGapList::const_iterator it = gaplist.begin();
 	uint64 lastGapEnd = 0;
 	CMuleColour colour;
-	
+
 	for (; it != gaplist.end(); ++it) {
-		
+
 		// Start position
 		uint32 start = ( it.start() / PARTSIZE );
 		// fill the Have-Part (between this gap and the last)
@@ -1332,33 +1348,33 @@ void CDownloadListCtrl::DrawFileStatusBar(
 			if ( file->IsStopped() ) {
 				colour.Blend(50);
 			}
-			
+
 			uint64 gap_begin = ( i == start   ? it.start() : PARTSIZE * i );
 			uint64 gap_end   = ( i == end - 1 ? it.end()   : PARTSIZE * ( i + 1 ) - 1 );
-		
+
 			s_ChunkBar.FillRange( gap_begin, gap_end,  colour);
 		}
 	}
-	
+
 	// fill the last Have-Part (between this gap and the last)
 	s_ChunkBar.FillRange(lastGapEnd + 1, file->GetFileSize() - 1,  bFlat ? crFlatHave : crHave);
-	
+
 	// Pending parts
 	const CPartFile::CReqBlockPtrList& requestedblocks_list = file->GetRequestedBlockList();
 	CPartFile::CReqBlockPtrList::const_iterator it2 = requestedblocks_list.begin();
 	// adjacing pending parts must be joined to avoid bright lines between them
 	uint64 lastStartOffset = 0;
 	uint64 lastEndOffset = 0;
-	
+
 	colour = bFlat ? crFlatPending : crPending;
-	
+
 	if ( file->IsStopped() ) {
 		colour.Blend(50);
 	}
 
 	for (; it2 != requestedblocks_list.end(); ++it2) {
-		
-		if ((*it2)->StartOffset > lastEndOffset + 1) { 
+
+		if ((*it2)->StartOffset > lastEndOffset + 1) {
 			// not adjacing, draw last block
 			s_ChunkBar.FillRange(lastStartOffset, lastEndOffset, colour);
 			lastStartOffset = (*it2)->StartOffset;
@@ -1368,35 +1384,35 @@ void CDownloadListCtrl::DrawFileStatusBar(
 			lastEndOffset   = (*it2)->EndOffset;
 		}
 	}
-	
+
 	s_ChunkBar.FillRange(lastStartOffset, lastEndOffset, colour);
 
 
 	// Draw the progress-bar
 	s_ChunkBar.Draw( dc, rect.x, rect.y, bFlat );
 
-	
+
 	// Green progressbar width
 	int width = (int)(( (float)rect.width / (float)file->GetFileSize() ) *
 			file->GetCompletedSize() );
 
 	if ( bFlat ) {
 		dc->SetBrush( crFlatProgress.GetBrush() );
-		
+
 		dc->DrawRectangle( rect.x, rect.y, width, 3 );
 	} else {
 		// Draw the two black lines for 3d-effect
 		dc->SetPen( *wxBLACK_PEN );
 		dc->DrawLine( rect.x, rect.y + 0, rect.x + width, rect.y + 0 );
 		dc->DrawLine( rect.x, rect.y + 2, rect.x + width, rect.y + 2 );
-		
+
 		// Draw the green line
 		dc->SetPen( *(wxThePenList->FindOrCreatePen( crProgress , 1, wxSOLID ) ));
 		dc->DrawLine( rect.x, rect.y + 1, rect.x + width, rect.y + 1 );
 	}
 }
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 #	define QUOTE	wxT("\"")
 #else
 #	define QUOTE	wxT("\'")
@@ -1442,7 +1458,7 @@ void CDownloadListCtrl::PreviewFile(CPartFile* file)
 		}
 	}
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	// We have to escape quote characters in the file name, otherwise arbitrary
 	// options could be passed to the player.
 	partFile.Replace(QUOTE, wxT("\\") QUOTE);
diff --git a/src/DownloadListCtrl.h b/src/DownloadListCtrl.h
index 0abe87e..43e16f9 100644
--- a/src/DownloadListCtrl.h
+++ b/src/DownloadListCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -45,7 +45,7 @@ struct FileCtrlItem_Struct;
  * This class is responsible for representing the download queue.
  *
  * The CDownlodListCtrl class is responsible for drawing files being downloaded.
- * It is in many ways primary widget within the application, since it is here that 
+ * It is in many ways primary widget within the application, since it is here that
  * users can inspect and manipulate their current downloads.
  *
  */
@@ -54,7 +54,7 @@ class CDownloadListCtrl : public CMuleListCtrl
 public:
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @see CMuleListCtrl::CMuleListCtrl for documentation of parameters.
 	 */
 	 CDownloadListCtrl(
@@ -65,11 +65,11 @@ public:
                 long style = wxLC_ICON,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString &name = wxT("downloadlistctrl") );
-				
+
 	/**
 	 * Destructor.
-	 */	 
-	virtual	~CDownloadListCtrl();	
+	 */
+	virtual	~CDownloadListCtrl();
 
 
 	/**
@@ -80,16 +80,16 @@ public:
 	 * Please note that duplicates wont be added.
 	 */
 	void AddFile( CPartFile* file );
-	
+
 	/**
 	 * Removes the specified file from the list.
 	 *
 	 * @param file A valid pointer of the file to be removed.
 	 *
-	 * This function also removes any sources assosiated with the file. 
+	 * This function also removes any sources assosiated with the file.
 	 */
 	void RemoveFile( CPartFile* file );
-	
+
 	/**
 	 * Shows or hides the sources of a specific file.
 	 *
@@ -106,7 +106,7 @@ public:
 	 *
 	 * @param toupdate The source or file to be updated.
 	 *
-	 * Calling this function with a file as the argument will ensure that the 
+	 * Calling this function with a file as the argument will ensure that the
 	 * file is hidden/shown depending on its state and the currently selected
 	 * category.
 	 */
@@ -116,15 +116,15 @@ public:
 	 * Returns the current category.
 	 */
 	uint8 GetCategory() const;
-	
+
 	/**
 	 * Changes the displayed category and updates the list of shown files.
-	 * 
+	 *
 	 * @param newCategory The new category to display.
 	 */
 	void ChangeCategory( int newCategory );
 
-	
+
 	/**
 	 * Clears all completed files from the list.
 	 */
@@ -145,13 +145,13 @@ private:
 	 */
 	void ShowFilesCount( int diff );
 
-	
+
 	/**
 	 * @see CMuleListCtrl::GetTTSText
 	 */
-	virtual wxString GetTTSText(unsigned item) const;	
-	
-	
+	virtual wxString GetTTSText(unsigned item) const;
+
+
 	/**
 	 * Overloaded function needed for custom drawing of items.
 	 */
@@ -168,13 +168,13 @@ private:
 	void	DrawFileStatusBar( const CPartFile* file, wxDC* dc, const wxRect& rect, bool bFlat ) const;
 
 	static int wxCALLBACK SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData);
-	static int Compare( const CPartFile* file1, const CPartFile* file2, long lParamSort );	
+	static int Compare( const CPartFile* file1, const CPartFile* file2, long lParamSort );
 
 	// Event-handlers for files
 	void	OnCancelFile( wxCommandEvent& event );
 	void	OnSetPriority( wxCommandEvent& event );
 	void	OnSwapSources( wxCommandEvent& event );
-	void	OnSetCategory( wxCommandEvent& event );	
+	void	OnSetCategory( wxCommandEvent& event );
 	void	OnSetStatus( wxCommandEvent& event );
 	void	OnClearCompleted( wxCommandEvent& event );
 	void	OnGetLink( wxCommandEvent& event );
@@ -182,11 +182,11 @@ private:
 	void	OnViewFileInfo( wxCommandEvent& event );
 	void	OnViewFileComments( wxCommandEvent& event );
 	void	OnPreviewFile( wxCommandEvent& event );
-	
+
 	// Misc event-handlers
 	void	OnItemActivated( wxListEvent& event );
-	void 	OnMouseRightClick( wxListEvent& event );
-	void 	OnMouseMiddleClick( wxListEvent& event );
+	void	OnMouseRightClick( wxListEvent& event );
+	void	OnMouseMiddleClick( wxListEvent& event );
 	void	OnKeyPressed( wxKeyEvent& event );
 	void	OnItemSelectionChanged( wxListEvent& event );
 
@@ -215,14 +215,14 @@ private:
 	//! always be found on this list, even if they are currently hidden.
 	ListItems	m_ListItems;
 
-	
+
 	//! Pointer to the current menu object, used to avoid multiple menus.
 	wxMenu*		m_menu;
 	//! Cached brush object.
 	wxBrush	m_hilightBrush;
 	//! Cached brush object.
-	wxBrush	m_hilightUnfocusBrush;	
-	
+	wxBrush	m_hilightUnfocusBrush;
+
 	//! The currently displayed category
 	uint8 m_category;
 
diff --git a/src/DownloadQueue.cpp b/src/DownloadQueue.cpp
index d094c96..7033cd1 100644
--- a/src/DownloadQueue.cpp
+++ b/src/DownloadQueue.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -87,7 +87,7 @@ CDownloadQueue::CDownloadQueue()
 	m_dwNextTCPSrcReq = 0;
 	m_cRequestsSentToServer = 0;
 	m_lastDiskCheck = 0;
-	
+
 	// Static thresholds until dynamic kicks in.
 	m_rareFileThreshold = RARE_FILE;
 	m_commonFileThreshold = 100;
@@ -111,7 +111,7 @@ CDownloadQueue::~CDownloadQueue()
 void CDownloadQueue::LoadMetFiles(const CPath& path)
 {
 	AddLogLineNS(CFormat(_("Loading temp files from %s.")) % path.GetPrintable());
-	
+
 	std::vector<CPath> files;
 
 	// Locate part-files to be loaded
@@ -127,7 +127,7 @@ void CDownloadQueue::LoadMetFiles(const CPath& path)
 	// file is broken in case of crashes, or the like.
 	std::sort(files.begin(), files.end());
 
-	// Load part-files	
+	// Load part-files
 	for ( size_t i = 0; i < files.size(); i++ ) {
 		AddLogLineNS(CFormat(_("Loading PartFile %u of %u")) % (i + 1) % files.size());
 		fileName = files[i].GetFullName();
@@ -161,7 +161,7 @@ void CDownloadQueue::LoadMetFiles(const CPath& path)
 		}
 	}
 	AddLogLineNS(_("All PartFiles Loaded."));
-	
+
 	if ( GetFileCount() == 0 ) {
 		AddLogLineN(_("No part files found"));
 	} else {
@@ -177,7 +177,7 @@ void CDownloadQueue::LoadMetFiles(const CPath& path)
 uint16 CDownloadQueue::GetFileCount() const
 {
 	wxMutexLocker lock( m_mutex );
-	
+
 	return m_filelist.size();
 }
 
@@ -185,8 +185,11 @@ uint16 CDownloadQueue::GetFileCount() const
 void CDownloadQueue::CopyFileList(std::vector<CPartFile*>& out_list, bool includeCompleted) const
 {
 	wxMutexLocker lock(m_mutex);
-
-	out_list.reserve(m_filelist.size() + includeCompleted ? m_completedDownloads.size() : 0);
+	uint32 reserve = m_filelist.size();
+	if (includeCompleted) {
+		reserve += m_completedDownloads.size();
+	}
+	out_list.reserve(reserve);
 	for (FileQueue::const_iterator it = m_filelist.begin(); it != m_filelist.end(); ++it) {
 		out_list.push_back(*it);
 	}
@@ -213,7 +216,7 @@ void CDownloadQueue::SetUDPServer( CServer* server )
 	m_udpserver = server;
 }
 
-	
+
 void CDownloadQueue::SaveSourceSeeds()
 {
 	for ( uint16 i = 0; i < GetFileCount(); i++ ) {
@@ -252,7 +255,7 @@ void CDownloadQueue::AddSearchToDownload(CSearchFile* toadd, uint8 category)
 	} catch (const CInvalidPacket& WXUNUSED(e)) {
 		AddDebugLogLineC(logDownloadQueue, wxT("Search-result contained invalid tags, could not add"));
 	}
-	
+
 	if ( newfile && newfile->GetStatus() != PS_ERROR ) {
 		AddDownload( newfile, thePrefs::AddNewFilesPaused(), category );
 		// Add any possible sources
@@ -319,10 +322,10 @@ void CDownloadQueue::StartNextFile(CPartFile* oldfile)
 {
 	if ( thePrefs::StartNextFile() ) {
 		SFindBestPF visitor = { -1, NULL, thePrefs::StartNextFileAlpha() };
-		
+
 		{
 			wxMutexLocker lock(m_mutex);
-			
+
 			if (thePrefs::StartNextFileSame()) {
 				// Get a download in the same category
 				visitor.m_category = oldfile->GetCategory();
@@ -333,13 +336,13 @@ void CDownloadQueue::StartNextFile(CPartFile* oldfile)
 			if (visitor.m_result == NULL) {
 				// Get a download, regardless of category
 				visitor.m_category = -1;
-				
+
 				visitor = std::for_each(m_filelist.begin(), m_filelist.end(), visitor);
-			}	
+			}
 
 			// Alpha doesn't need special cases
 		}
-		
+
 		if (visitor.m_result) {
 			visitor.m_result->ResumeFile();
 		}
@@ -370,36 +373,36 @@ void CDownloadQueue::AddDownload(CPartFile* file, bool paused, uint8 category)
 		AddDebugLogLineN( logDownloadQueue, wxT("Tried to add download into invalid category.") );
 	}
 	Notify_DownloadCtrlAddFile( file );
-	theApp->searchlist->UpdateSearchFileByHash(file->GetFileHash()); 	// Update file in the search dialog if it's still open
+	theApp->searchlist->UpdateSearchFileByHash(file->GetFileHash());	// Update file in the search dialog if it's still open
 	AddLogLineC(CFormat(_("Downloading %s")) % file->GetFileName() );
 }
 
 
-bool CDownloadQueue::IsFileExisting( const CMD4Hash& fileid ) const 
+bool CDownloadQueue::IsFileExisting( const CMD4Hash& fileid ) const
 {
 	if (CKnownFile* file = theApp->sharedfiles->GetFileByID(fileid)) {
 		if (file->IsPartFile()) {
 			AddLogLineC(CFormat( _("You are already trying to download the file '%s'") ) % file->GetFileName());
 		} else {
-			// Check if the file exists, since otherwise the user is forced to 
+			// Check if the file exists, since otherwise the user is forced to
 			// manually reload the shares to download a file again.
 			CPath fullpath = file->GetFilePath().JoinPaths(file->GetFileName());
 			if (!fullpath.FileExists()) {
 				// The file is no longer available, unshare it
 				theApp->sharedfiles->RemoveFile(file);
-				
+
 				return false;
 			}
-			
+
 			AddLogLineC(CFormat( _("You already have the file '%s'") ) % file->GetFileName());
 		}
-		
+
 		return true;
 	} else if ((file = GetFileByID(fileid))) {
 		AddLogLineC(CFormat( _("You are already trying to download the file %s") ) % file->GetFileName());
 		return true;
 	}
-	
+
 	return false;
 }
 
@@ -411,34 +414,34 @@ void CDownloadQueue::Process()
 {
 	// send src requests to local server
 	ProcessLocalRequests();
-	
+
 	{
 		wxMutexLocker lock(m_mutex);
 
 		uint32 downspeed = 0;
 		if (thePrefs::GetMaxDownload() != UNLIMITED && m_datarate > 1500) {
-			downspeed = (((uint32)thePrefs::GetMaxDownload())*1024*100)/(m_datarate+1); 
+			downspeed = (((uint32)thePrefs::GetMaxDownload())*1024*100)/(m_datarate+1);
 			if (downspeed < 50) {
 				downspeed = 50;
 			} else if (downspeed > 200) {
 				downspeed = 200;
 			}
 		}
-	
+
 		m_datarate = 0;
 		m_udcounter++;
 		uint32 cur_datarate = 0;
 		uint32 cur_udcounter = m_udcounter;
-		
+
 		std::list<int> m_sourcecountlist;
 
 		bool mustPreventSleep = false;
 
 		for ( uint16 i = 0; i < m_filelist.size(); i++ ) {
 			CPartFile* file = m_filelist[i];
-	
+
 			CMutexUnlocker unlocker(m_mutex);
-			
+
 			uint8 status = file->GetStatus();
 			mustPreventSleep |= !(status == PS_ERROR || status == PS_INSUFFICIENT || status == PS_PAUSED || status == PS_COMPLETE);
 
@@ -487,7 +490,7 @@ void CDownloadQueue::Process()
 				// More than two, time to do some math.
 
 				// Lower 25% with the current #define values.
-				int rarecutpoint = (nSourceGroups / RARITY_FACTOR); 
+				int rarecutpoint = (nSourceGroups / RARITY_FACTOR);
 				for (int i = 0; i < rarecutpoint; ++ i) {
 					m_sourcecountlist.pop_front();
 				}
@@ -504,20 +507,20 @@ void CDownloadQueue::Process()
 			m_rareFileThreshold = RARE_FILE;
 			m_commonFileThreshold = 100;
 		}
-	
+
 		m_datarate += cur_datarate;
 
 		if (m_udcounter == 5) {
 			if (theApp->serverconnect->IsUDPSocketAvailable()) {
 				if( (::GetTickCount() - m_lastudpstattime) > UDPSERVERSTATTIME) {
 					m_lastudpstattime = ::GetTickCount();
-					
+
 					CMutexUnlocker unlocker(m_mutex);
 					theApp->serverlist->ServerStats();
 				}
 			}
 		}
-	
+
 		if (m_udcounter == 10) {
 			m_udcounter = 0;
 			if (theApp->serverconnect->IsUDPSocketAvailable()) {
@@ -526,16 +529,16 @@ void CDownloadQueue::Process()
 				}
 			}
 		}
-	
+
 		if ( (::GetTickCount() - m_lastsorttime) > 10000 ) {
 			DoSortByPriority();
 		}
 		// Check if any paused files can be resumed
-			
+
 		CheckDiskspace(thePrefs::GetTempDir());
 	}
-	
-	
+
+
 	// Check for new links once per second.
 	if ((::GetTickCount() - m_nLastED2KLinkCheck) >= 1000) {
 		theApp->AddLinksFromFile();
@@ -547,7 +550,7 @@ void CDownloadQueue::Process()
 CPartFile* CDownloadQueue::GetFileByID(const CMD4Hash& filehash) const
 {
 	wxMutexLocker lock( m_mutex );
-	
+
 	for ( uint16 i = 0; i < m_filelist.size(); ++i ) {
 		if ( filehash == m_filelist[i]->GetFileHash()) {
 			return m_filelist[ i ];
@@ -559,7 +562,7 @@ CPartFile* CDownloadQueue::GetFileByID(const CMD4Hash& filehash) const
 			return *it;
 		}
 	}
-	
+
 	return NULL;
 }
 
@@ -567,11 +570,11 @@ CPartFile* CDownloadQueue::GetFileByID(const CMD4Hash& filehash) const
 CPartFile* CDownloadQueue::GetFileByIndex(unsigned int index)  const
 {
 	wxMutexLocker lock( m_mutex );
-	
+
 	if ( index < m_filelist.size() ) {
 		return m_filelist[ index ];
 	}
-	
+
 	wxFAIL;
 	return NULL;
 }
@@ -586,7 +589,7 @@ bool CDownloadQueue::IsPartFile(const CKnownFile* file) const
 			return true;
 		}
 	}
-	
+
 	return false;
 }
 
@@ -630,14 +633,14 @@ void CDownloadQueue::CheckAndAddSource(CPartFile* sender, CUpDownClient* source)
 	if ( (source->RequiresCryptLayer() && (!thePrefs::IsClientCryptLayerSupported() || !source->HasValidHash())) || (thePrefs::IsClientCryptLayerRequired() && (!source->SupportsCryptLayer() || !source->HasValidHash()))) {
 		source->Safe_Delete();
 		return;
-	}	
-	
+	}
+
 	// Find all clients with the same hash
 	if ( source->HasValidHash() ) {
 		CClientList::SourceList found = theApp->clientlist->GetClientsByHash( source->GetUserHash() );
 
 		CClientList::SourceList::iterator it = found.begin();
-		for ( ; it != found.end(); it++ ) {
+		for ( ; it != found.end(); ++it ) {
 			CKnownFile* file = it->GetRequestFile();
 
 			// Only check files on the download-queue
@@ -650,7 +653,7 @@ void CDownloadQueue::CheckAndAddSource(CPartFile* sender, CUpDownClient* source)
 						Notify_SourceCtrlAddSource(sender, *it, A4AF_SOURCE);
 					}
 				}
-				
+
 				source->Safe_Delete();
 				return;
 			}
@@ -661,7 +664,7 @@ void CDownloadQueue::CheckAndAddSource(CPartFile* sender, CUpDownClient* source)
 
 	// Our new source is real new but maybe it is already uploading to us?
 	// If yes the known client will be attached to the var "source" and the old
-	// source-client will be deleted. However, if the request file of the known 
+	// source-client will be deleted. However, if the request file of the known
 	// source is NULL, then we have to treat it almost like a new source and if
 	// it isn't NULL and not "sender", then we shouldn't move it, but rather add
 	// a request for the new file.
@@ -670,7 +673,7 @@ void CDownloadQueue::CheckAndAddSource(CPartFile* sender, CUpDownClient* source)
 		// Already queued for another file?
 		if ( source->GetRequestFile() ) {
 			// If we're already queued for the right file, then there's nothing to do
-			if ( sender != source->GetRequestFile() ) {	
+			if ( sender != source->GetRequestFile() ) {
 				// Add the new file to the request list
 				source->AddRequestForAnotherFile( sender );
 			}
@@ -682,7 +685,7 @@ void CDownloadQueue::CheckAndAddSource(CPartFile* sender, CUpDownClient* source)
 			if ( source->GetFileRating() || !source->GetFileComment().IsEmpty() ) {
 				sender->UpdateFileRatingCommentAvail();
 			}
-			
+
 			Notify_SourceCtrlAddSource(sender, CCLIENTREF(source, wxT("CDownloadQueue::CheckAndAddSource Notify_SourceCtrlAddSource 1")), UNAVAILABLE_SOURCE);
 		}
 	} else {
@@ -690,12 +693,12 @@ void CDownloadQueue::CheckAndAddSource(CPartFile* sender, CUpDownClient* source)
 		source->SetRequestFile( sender );
 
 		theApp->clientlist->AddClient(source);
-	
+
 		sender->AddSource( source );
 		if ( source->GetFileRating() || !source->GetFileComment().IsEmpty() ) {
 			sender->UpdateFileRatingCommentAvail();
 		}
-	
+
 		Notify_SourceCtrlAddSource(sender, CCLIENTREF(source, wxT("CDownloadQueue::CheckAndAddSource Notify_SourceCtrlAddSource 2")), UNAVAILABLE_SOURCE);
 	}
 }
@@ -704,7 +707,7 @@ void CDownloadQueue::CheckAndAddSource(CPartFile* sender, CUpDownClient* source)
 void CDownloadQueue::CheckAndAddKnownSource(CPartFile* sender,CUpDownClient* source)
 {
 	// Kad reviewed
-	
+
 	if (sender->IsStopped()) {
 		return;
 	}
@@ -726,16 +729,16 @@ void CDownloadQueue::CheckAndAddKnownSource(CPartFile* sender,CUpDownClient* sou
 			AddDebugLogLineN(logIPFilter, wxT("Ignored already known source with IP=%s") + Uint32toStringIP(nClientIP));
 			return;
 		}
-	}	
-	
+	}
+
 	// Filter sources which are incompatible with our encryption setting (one requires it, and the other one doesn't supports it)
-	if ( (source->RequiresCryptLayer() && (!thePrefs::IsClientCryptLayerSupported() || !source->HasValidHash())) 
+	if ( (source->RequiresCryptLayer() && (!thePrefs::IsClientCryptLayerSupported() || !source->HasValidHash()))
 		|| (thePrefs::IsClientCryptLayerRequired() && (!source->SupportsCryptLayer() || !source->HasValidHash()))) {
 		return;
-	}		
-	
+	}
+
 	CPartFile* file = source->GetRequestFile();
-	
+
 	// Check if the file is already queued for something else
 	if ( file ) {
 		if ( file != sender ) {
@@ -761,16 +764,16 @@ bool CDownloadQueue::RemoveSource(CUpDownClient* toremove, bool	WXUNUSED(updatew
 {
 	bool removed = false;
 	toremove->DeleteAllFileRequests();
-	
+
 	for ( uint16 i = 0; i < GetFileCount(); i++ ) {
 		CPartFile* cur_file = GetFileByIndex( i );
-		
+
 		// Remove from source-list
 		if ( cur_file->DelSource( toremove ) ) {
-			
+
 			// Remove from sourcelist widget
 			Notify_SourceCtrlRemoveSource(toremove->ECID(), cur_file);
-			
+
 			cur_file->RemoveDownloadingSource(toremove);
 			removed = true;
 			if ( bDoStatsUpdate ) {
@@ -786,7 +789,7 @@ bool CDownloadQueue::RemoveSource(CUpDownClient* toremove, bool	WXUNUSED(updatew
 	if ( !toremove->GetFileComment().IsEmpty() || toremove->GetFileRating()>0) {
 		toremove->GetRequestFile()->UpdateFileRatingCommentAvail();
 	}
-	
+
 	toremove->SetRequestFile( NULL );
 	toremove->SetDownloadState(DS_NONE);
 	toremove->ResetFileStatusInfo();
@@ -813,9 +816,9 @@ void CDownloadQueue::RemoveFile(CPartFile* file, bool keepAsCompleted)
 
 void CDownloadQueue::ClearCompleted(const ListOfUInts32 & ecids)
 {
-	for (ListOfUInts32::const_iterator it1 = ecids.begin(); it1 != ecids.end(); it1++) {
+	for (ListOfUInts32::const_iterator it1 = ecids.begin(); it1 != ecids.end(); ++it1) {
 		uint32 ecid = *it1;
-		for (FileList::iterator it = m_completedDownloads.begin(); it != m_completedDownloads.end(); it++) {
+		for (FileList::iterator it = m_completedDownloads.begin(); it != m_completedDownloads.end(); ++it) {
 			CPartFile * file = *it;
 			if (file->ECID() == ecid) {
 				m_completedDownloads.erase(it);
@@ -835,8 +838,8 @@ CUpDownClient* CDownloadQueue::GetDownloadClientByIP_UDP(uint32 dwIP, uint16 nUD
 
 	for ( unsigned int i = 0; i < m_filelist.size(); i++ ) {
 		const CKnownFile::SourceSet& set = m_filelist[i]->GetSourceList();
-		
-		for ( CKnownFile::SourceSet::const_iterator it = set.begin(); it != set.end(); it++ ) {
+
+		for ( CKnownFile::SourceSet::const_iterator it = set.begin(); it != set.end(); ++it ) {
 			if ( it->GetIP() == dwIP && it->GetUDPPort() == nUDPPort ) {
 				return it->GetClient();
 			}
@@ -871,43 +874,43 @@ bool CDownloadQueue::SendNextUDPPacket()
 	// Start monitoring the server and the files list
 	if ( !m_queueServers.IsActive() ) {
 		AddObserver( &m_queueFiles );
-		
+
 		theApp->serverlist->AddObserver( &m_queueServers );
 	}
-	
 
- 	bool packetSent = false;
- 	while ( !packetSent ) {
- 		// Get max files ids per packet for current server
- 		int filesAllowed = GetMaxFilesPerUDPServerPacket();
- 
- 		if (filesAllowed < 1 || !m_udpserver || IsConnectedServer(m_udpserver)) {
- 			// Select the next server to ask, must not be the connected server
- 			do {
+
+	bool packetSent = false;
+	while ( !packetSent ) {
+		// Get max files ids per packet for current server
+		int filesAllowed = GetMaxFilesPerUDPServerPacket();
+
+		if (filesAllowed < 1 || !m_udpserver || IsConnectedServer(m_udpserver)) {
+			// Select the next server to ask, must not be the connected server
+			do {
 				m_udpserver = m_queueServers.GetNext();
 			} while (IsConnectedServer(m_udpserver));
-	
- 			m_cRequestsSentToServer = 0;
- 			filesAllowed = GetMaxFilesPerUDPServerPacket();
-  		}
- 
- 		
- 		// Check if we have asked all servers, in which case we are done
- 		if (m_udpserver == NULL) {
- 			DoStopUDPRequests();
- 			
- 			return false;
-  		}
-  
- 		// Memoryfile containing the hash of every file to request
+
+			m_cRequestsSentToServer = 0;
+			filesAllowed = GetMaxFilesPerUDPServerPacket();
+		}
+
+
+		// Check if we have asked all servers, in which case we are done
+		if (m_udpserver == NULL) {
+			DoStopUDPRequests();
+
+			return false;
+		}
+
+		// Memoryfile containing the hash of every file to request
 		// 28bytes allocation because 16b + 4b + 8b is the worse case scenario.
- 		CMemFile hashlist( 28 );
- 		
+		CMemFile hashlist( 28 );
+
 		CPartFile* file = m_queueFiles.GetNext();
-		
+
 		while ( file && filesAllowed ) {
- 			uint8 status = file->GetStatus();
- 			
+			uint8 status = file->GetStatus();
+
 			if ( ( status == PS_READY || status == PS_EMPTY ) && file->GetSourceCount() < thePrefs::GetMaxSourcePerFileUDP() ) {
 				if (file->IsLargeFile() && !m_udpserver->SupportsLargeFilesUDP()) {
 					AddDebugLogLineN(logDownloadQueue, wxT("UDP Request for sources on a large file ignored: server doesn't support it"));
@@ -926,29 +929,29 @@ bool CDownloadQueue::SendNextUDPPacket()
 					}
 					--filesAllowed;
 				}
-  			}
-		
+			}
+
 			// Avoid skipping a file if we can't send any more currently
 			if ( filesAllowed ) {
 				file = m_queueFiles.GetNext();
 			}
 		}
-		
+
 		// See if we have anything to send
- 		if ( hashlist.GetLength() ) {
- 			packetSent = SendGlobGetSourcesUDPPacket(hashlist);
+		if ( hashlist.GetLength() ) {
+			packetSent = SendGlobGetSourcesUDPPacket(hashlist);
 		}
- 		
- 		// Check if we've covered every file
+
+		// Check if we've covered every file
 		if ( file == NULL ) {
- 			// Reset the list of asked files so that the loop will start over
+			// Reset the list of asked files so that the loop will start over
 			m_queueFiles.Reset();
-			
- 			// Unset the server so that the next server will be used
- 			m_udpserver = NULL;
-  		}
-  	}
-	
+
+			// Unset the server so that the next server will be used
+			m_udpserver = NULL;
+		}
+	}
+
 	return true;
 }
 
@@ -966,7 +969,7 @@ void CDownloadQueue::DoStopUDPRequests()
 	// No need to observe when we wont be using the results
 	theApp->serverlist->RemoveObserver( &m_queueServers );
 	RemoveObserver( &m_queueFiles );
-	
+
 	m_udpserver = 0;
 	m_lastudpsearchtime = ::GetTickCount();
 }
@@ -975,18 +978,18 @@ void CDownloadQueue::DoStopUDPRequests()
 // Comparison function needed by sort. Returns true if file1 preceeds file2
 bool ComparePartFiles(const CPartFile* file1, const CPartFile* file2) {
 	if (file1->GetDownPriority() != file2->GetDownPriority()) {
-		// To place high-priority files before low priority files we have to 
-		// invert this test, since PR_LOW is lower than PR_HIGH, and since 
+		// To place high-priority files before low priority files we have to
+		// invert this test, since PR_LOW is lower than PR_HIGH, and since
 		// placing a PR_LOW file before a PR_HIGH file would mean that
 		// the PR_LOW file gets sources before the PR_HIGH file ...
 		return (file1->GetDownPriority() > file2->GetDownPriority());
 	} else {
 		int sourcesA = file1->GetSourceCount();
 		int sourcesB = file2->GetSourceCount();
-		
+
 		int notSourcesA = file1->GetNotCurrentSourcesCount();
 		int notSourcesB = file2->GetNotCurrentSourcesCount();
-		
+
 		int cmp = CmpAny( sourcesA - notSourcesA, sourcesB - notSourcesB );
 
 		if ( cmp == 0 ) {
@@ -1021,7 +1024,7 @@ void CDownloadQueue::ResetLocalServerRequests()
 void CDownloadQueue::RemoveLocalServerRequest( CPartFile* file )
 {
 	wxMutexLocker lock( m_mutex );
-	
+
 	EraseValue( m_localServerReqQueue, file );
 
 	file->SetLocalSrcRequestQueued(false);
@@ -1031,11 +1034,11 @@ void CDownloadQueue::RemoveLocalServerRequest( CPartFile* file )
 void CDownloadQueue::ProcessLocalRequests()
 {
 	wxMutexLocker lock( m_mutex );
-	
-	bool bServerSupportsLargeFiles = theApp->serverconnect 
+
+	bool bServerSupportsLargeFiles = theApp->serverconnect
 									&& theApp->serverconnect->GetCurrentServer()
 									&& theApp->serverconnect->GetCurrentServer()->SupportsLargeFilesTCP();
-	
+
 	if ( (!m_localServerReqQueue.empty()) && (m_dwNextTCPSrcReq < ::GetTickCount()) ) {
 		CMemFile dataTcpFrame(22);
 		const int iMaxFilesPerTcpFrame = 15;
@@ -1060,7 +1063,7 @@ void CDownloadQueue::ProcessLocalRequests()
 						posNextRequest = it;
 					}
 
-					it++;
+					++it;
 				} else {
 					it = m_localServerReqQueue.erase(it);
 					cur_file->SetLocalSrcRequestQueued(false);
@@ -1130,18 +1133,18 @@ void CDownloadQueue::ProcessLocalRequests()
 void CDownloadQueue::SendLocalSrcRequest(CPartFile* sender)
 {
 	wxMutexLocker lock( m_mutex );
-	
+
 	m_localServerReqQueue.push_back(sender);
 }
 
 
 void CDownloadQueue::ResetCatParts(uint8 cat)
 {
-	for (FileQueue::iterator it = m_filelist.begin(); it != m_filelist.end(); it++) {
+	for (FileQueue::iterator it = m_filelist.begin(); it != m_filelist.end(); ++it) {
 		CPartFile* file = *it;
 		file->RemoveCategory(cat);
 	}
-	for (FileList::iterator it = m_completedDownloads.begin(); it != m_completedDownloads.end(); it++) {
+	for (FileList::iterator it = m_completedDownloads.begin(); it != m_completedDownloads.end(); ++it) {
 		CPartFile* file = *it;
 		file->RemoveCategory(cat);
 	}
@@ -1152,7 +1155,7 @@ void CDownloadQueue::SetCatPrio(uint8 cat, uint8 newprio)
 {
 	for ( uint16 i = 0; i < GetFileCount(); i++ ) {
 		CPartFile* file = GetFileByIndex( i );
-		
+
 		if ( !cat || file->GetCategory() == cat ) {
 			if ( newprio == PR_AUTO ) {
 				file->SetAutoDownPriority(true);
@@ -1171,19 +1174,19 @@ void CDownloadQueue::SetCatStatus(uint8 cat, int newstatus)
 
 	{
 		wxMutexLocker lock(m_mutex);
-	
+
 		for ( uint16 i = 0; i < m_filelist.size(); i++ ) {
 			if ( m_filelist[i]->CheckShowItemInGivenCat(cat) ) {
 				files.push_back( m_filelist[i] );
 			}
 		}
 	}
-	
+
 	std::list<CPartFile*>::iterator it = files.begin();
-		
-	for ( ; it != files.end(); it++ ) {
+
+	for ( ; it != files.end(); ++it ) {
 		switch ( newstatus ) {
-			case MP_CANCEL:	(*it)->Delete(); 	break;
+			case MP_CANCEL:	(*it)->Delete();	break;
 			case MP_PAUSE:	(*it)->PauseFile();	break;
 			case MP_STOP:	(*it)->StopFile();	break;
 			case MP_RESUME:	(*it)->ResumeFile();	break;
@@ -1195,7 +1198,7 @@ void CDownloadQueue::SetCatStatus(uint8 cat, int newstatus)
 uint16 CDownloadQueue::GetDownloadingFileCount() const
 {
 	wxMutexLocker lock( m_mutex );
-	
+
 	uint16 count = 0;
 	for ( uint16 i = 0; i < m_filelist.size(); i++ ) {
 		uint8 status = m_filelist[i]->GetStatus();
@@ -1203,7 +1206,7 @@ uint16 CDownloadQueue::GetDownloadingFileCount() const
 			count++;
 		}
 	}
-	
+
 	return count;
 }
 
@@ -1218,7 +1221,7 @@ uint16 CDownloadQueue::GetPausedFileCount() const
 			count++;
 		}
 	}
-	
+
 	return count;
 }
 
@@ -1228,7 +1231,7 @@ void CDownloadQueue::CheckDiskspace( const CPath& path )
 	if ( ::GetTickCount() - m_lastDiskCheck < DISKSPACERECHECKTIME ) {
 		return;
 	}
-	
+
 	m_lastDiskCheck = ::GetTickCount();
 
 	uint64 min = 0;
@@ -1250,17 +1253,17 @@ void CDownloadQueue::CheckDiskspace( const CPath& path )
 			CUserEvents::OutOfDiskSpace,
 			wxT("Temporary partition"));
 	}
-	
+
 	for (unsigned int i = 0; i < m_filelist.size(); ++i) {
 		CPartFile* file = m_filelist[i];
-		
+
 		switch ( file->GetStatus() ) {
 			case PS_ERROR:
 			case PS_COMPLETING:
 			case PS_COMPLETE:
 				continue;
 		}
-	
+
 		if ( free >= min && file->GetInsufficient() ) {
 			// We'll try to resume files if there is enough free space
 			if ( free - file->GetNeededSpace() > min ) {
@@ -1299,7 +1302,7 @@ bool CDownloadQueue::SendGlobGetSourcesUDPPacket(CMemFile& data)
 	if (!m_udpserver) {
 		return false;
 	}
-	
+
 	CPacket packet(data, OP_EDONKEYPROT, ((m_udpserver->GetUDPFlags() & SRV_UDPFLG_EXT_GETSOURCES2) ? OP_GLOBGETSOURCES2 : OP_GLOBGETSOURCES));
 
 	theStats::AddUpOverheadServer(packet.GetPacketSize());
@@ -1317,7 +1320,7 @@ void CDownloadQueue::AddToResolve(const CMD4Hash& fileid, const wxString& pszHos
 	}
 
 	wxMutexLocker lock( m_mutex );
-		
+
 	Hostname_Entry entry = { fileid, pszHostname, port, hash, cryptoptions };
 	m_toresolve.push_front(entry);
 
@@ -1345,7 +1348,7 @@ void CDownloadQueue::OnHostnameResolved(uint32 ip)
 	wxMutexLocker lock( m_mutex );
 
 	wxASSERT( m_toresolve.size() );
-	
+
 	Hostname_Entry resolved = m_toresolve.front();
 	m_toresolve.pop_front();
 
@@ -1364,12 +1367,12 @@ void CDownloadQueue::OnHostnameResolved(uint32 ip)
 				sources.WriteHash(sourcehash);
 			}
 			sources.Seek(0,wxFromStart);
-			
+
 			file->AddSources(sources, 0, 0, SF_LINK, true);
 		}
 	}
-	
-	while (m_toresolve.size()) {
+
+	while (!m_toresolve.empty()) {
 		Hostname_Entry entry = m_toresolve.front();
 
 		// Check if it is a simple dot address
@@ -1416,12 +1419,12 @@ bool CDownloadQueue::AddED2KLink( const wxString& link, uint8 category )
 {
 	wxASSERT( !link.IsEmpty() );
 	wxString URI = link;
-	
+
 	// Need the links to end with /, otherwise CreateLinkFromUrl crashes us.
 	if ( URI.Last() != wxT('/') ) {
 		URI += wxT("/");
 	}
-	
+
 	try {
 		CScopedPtr<CED2KLink> uri(CED2KLink::CreateLinkFromUrl(URI));
 
@@ -1429,7 +1432,7 @@ bool CDownloadQueue::AddED2KLink( const wxString& link, uint8 category )
 	} catch ( const wxString& err ) {
 		AddLogLineC(CFormat( _("Invalid eD2k link! ERROR: %s")) % err);
 	}
-	
+
 	return false;
 }
 
@@ -1439,13 +1442,13 @@ bool CDownloadQueue::AddED2KLink( const CED2KLink* link, uint8 category )
 	switch ( link->GetKind() ) {
 		case CED2KLink::kFile:
 			return AddED2KLink( dynamic_cast<const CED2KFileLink*>( link ), category );
-			
+
 		case CED2KLink::kServer:
 			return AddED2KLink( dynamic_cast<const CED2KServerLink*>( link ) );
-			
+
 		case CED2KLink::kServerList:
 			return AddED2KLink( dynamic_cast<const CED2KServerListLink*>( link ) );
-			
+
 		default:
 			return false;
 	}
@@ -1473,42 +1476,42 @@ bool CDownloadQueue::AddED2KLink( const CED2KFileLink* link, uint8 category )
 		}
 
 		file = new CPartFile(link);
-	
+
 		if (file->GetStatus() == PS_ERROR) {
 			delete file;
 			return false;
 		}
-		
+
 		AddDownload(file, thePrefs::AddNewFilesPaused(), category);
 	}
-	
+
 	if (link->HasValidAICHHash()) {
 		CAICHHashSet* hashset = file->GetAICHHashset();
-		
+
 		if (!hashset->HasValidMasterHash() || (hashset->GetMasterHash() != link->GetAICHHash())) {
 			hashset->SetMasterHash(link->GetAICHHash(), AICH_VERIFIED);
 			hashset->FreeHashSet();
 		}
 	}
-	
+
 	const CED2KFileLink::CED2KLinkSourceList& list = link->m_sources;
 	CED2KFileLink::CED2KLinkSourceList::const_iterator it = list.begin();
 	for (; it != list.end(); ++it) {
 		AddToResolve(link->GetHashKey(), it->addr, it->port, it->hash, it->cryptoptions);
 	}
 
-	return true;	
+	return true;
 }
 
 
 bool CDownloadQueue::AddED2KLink( const CED2KServerLink* link )
 {
 	CServer *server = new CServer( link->GetPort(), Uint32toStringIP( link->GetIP() ) );
-	
+
 	server->SetListName( Uint32toStringIP( link->GetIP() ) );
-	
+
 	theApp->serverlist->AddServer(server);
-	
+
 	Notify_ServerAdd(server);
 
 	return true;
@@ -1526,7 +1529,7 @@ bool CDownloadQueue::AddED2KLink( const CED2KServerListLink* link )
 void CDownloadQueue::ObserverAdded( ObserverType* o )
 {
 	CObservableQueue<CPartFile*>::ObserverAdded( o );
-	
+
 	EventType::ValueList list;
 
 	{
@@ -1568,7 +1571,7 @@ void CDownloadQueue::KademliaSearchFile(uint32_t searchID, const Kademlia::CUInt
 		return;
 	}
 
-	CUpDownClient* ctemp = NULL; 
+	CUpDownClient* ctemp = NULL;
 	switch (type) {
 		case 4:
 		case 1: {
diff --git a/src/DownloadQueue.h b/src/DownloadQueue.h
index d9746c1..5013bd2 100644
--- a/src/DownloadQueue.h
+++ b/src/DownloadQueue.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,7 +28,7 @@
 
 #include "MD4Hash.h"		// Needed for CMD4Hash
 #include "ObservableQueue.h"	// Needed for CObservableQueue
-#include "GetTickCount.h" 	// Needed fot GetTickCount
+#include "GetTickCount.h"	// Needed fot GetTickCount
 
 
 #include <deque>
@@ -54,7 +54,7 @@ namespace Kademlia {
 /**
  * The download queue houses all active downloads.
  *
- * 
+ *
  * This class should be thread-safe.
  */
 class CDownloadQueue : public CObservableQueue<CPartFile*>
@@ -81,12 +81,12 @@ public:
 
 	/**
 	 * Returns a pointer to the file with the specified hash, or NULL.
-	 * 
+	 *
 	 * @param filehash The hash to search for.
 	 * @return The corresponding file or NULL.
 	 */
 	CPartFile* GetFileByID(const CMD4Hash& filehash) const;
-	
+
 	/**
 	 * Returns the file at the specified position in the file-list, or NULL if invalid.
 	 *
@@ -94,23 +94,23 @@ public:
 	 * @return A valid pointer or NULL if the index was invalid.
 	 */
 	CPartFile* GetFileByIndex(unsigned int idx) const;
-	
-	
+
+
 	/**
-	 * Returns true if the file is currently being shared or downloaded 
+	 * Returns true if the file is currently being shared or downloaded
 	 */
 	bool	IsFileExisting(const CMD4Hash& fileid) const;
-	
+
 	/**
 	 * Returns true if the specified file is on the download-queue.
 	 */
 	bool	IsPartFile(const CKnownFile* file) const;
-	
+
 	/**
 	 * Updates the file's download active time
 	 */
 	void OnConnectionState(bool bConnected);
-	
+
 	/**
 	 * Starts a new download based on the specified search-result.
 	 *
@@ -121,8 +121,8 @@ public:
 	 * being downloaded or shared currently.
 	 */
 	void	AddSearchToDownload(CSearchFile* toadd, uint8 category);
-	
-	
+
+
 	/**
 	 * Adds an existing partfile to the queue.
 	 *
@@ -140,19 +140,19 @@ public:
 	 * @param keepAsCompleted If true add the removed file to the list of completed files.
 	 */
 	void	RemoveFile(CPartFile* toremove, bool keepAsCompleted = false);
-	
-	
+
+
 	/**
 	 * Saves the source-seeds of every file on the queue.
 	 */
 	void	SaveSourceSeeds();
-	
+
 	/**
 	 * Loads the source-seeds of every file on the queue.
 	 */
 	void	LoadSourceSeeds();
 
-	
+
 	/**
 	 * Adds a potiential new client to the specified file.
 	 *
@@ -164,7 +164,7 @@ public:
 	 * if it is duplicate of an existing client.
 	 */
 	void    CheckAndAddSource(CPartFile* sender, CUpDownClient* source);
-	
+
 	/**
 	 * This function adds already known source to the specified file.
 	 *
@@ -176,8 +176,8 @@ public:
 	 * it is in fact a valid client.
 	 */
 	void    CheckAndAddKnownSource(CPartFile* sender, CUpDownClient* source);
-	
-	
+
+
 	/**
 	 * Removes the specified client completly.
 	 *
@@ -185,7 +185,7 @@ public:
 	 * @param updatewindow NOT USED!
 	 * @param bDoStatsUdpate Specifies if the affected files should update their statistics.
 	 * @return True if the sources was found and removed.
-	 * 
+	 *
 	 * This function will remove the specified source from both normal source
 	 * lists, A4AF lists and the downloadqueue-widget. The requestfile of the
 	 * source is also reset.
@@ -201,7 +201,7 @@ public:
 	 * @return The matching client or NULL if none was found.
 	 */
 	CUpDownClient* GetDownloadClientByIP_UDP(uint32 dwIP, uint16 nUDPPort) const;
-	
+
 
 	/**
 	 * Queues the specified file for source-requestion from the connected server.
@@ -212,7 +212,7 @@ public:
 	 * Removes the specified server from the request-queue.
 	 */
 	void	RemoveLocalServerRequest(CPartFile* pFile);
-	
+
 	/**
 	 * Resets all queued server-requests.
 	 */
@@ -289,26 +289,26 @@ public:
 	 * Set the server to query through UDP packest.
 	 */
 	void	SetUDPServer( CServer* server );
-	
+
 
 	/**
 	 * Stop the source-requests from non-connected servers.
 	 */
 	void	StopUDPRequests();
-	
+
 	/* Kad Stuff */
-	
+
 	/**
 	 * Add a Kad source to a download
 	 */
 	 void	KademliaSearchFile(uint32_t searchID, const Kademlia::CUInt128* pcontactID, const Kademlia::CUInt128* pkadID, uint8_t type, uint32_t ip, uint16_t tcp, uint16_t udp, uint32_t buddyip, uint16_t buddyport, uint8_t byCryptOptions);
-	
+
 	CPartFile* GetFileByKadFileSearchID(uint32 id) const;
-	
+
 	bool	DoKademliaFileRequest();
-	
+
 	void	SetLastKademliaFileRequest()	{lastkademliafilerequest = ::GetTickCount();}
-	
+
 	uint32	GetRareFileThreshold() const { return m_rareFileThreshold; }
 	uint32	GetCommonFileThreshold() const { return m_commonFileThreshold; }
 
@@ -316,19 +316,19 @@ public:
 	 * Remove a file from the list of completed downloads.
 	 */
 	void	ClearCompleted(const ListOfUInts32 & ecids);
-	
+
 private:
 	/**
 	 * This function initializes new observers with the current contents of the queue.
 	 */
 	virtual void ObserverAdded( ObserverType* o );
-	
+
 
 	/**
 	 * Helper-function, sorts the filelist so that high-priority files are first.
 	 */
 	void	DoSortByPriority();
-	
+
 	/** Checks that there is enough free spaces for temp-files at that specified path. */
 	void	CheckDiskspace(const CPath& path);
 
@@ -337,14 +337,14 @@ private:
 	 */
 	void	DoStopUDPRequests();
 
-	
+
 	void	ProcessLocalRequests();
-	
+
 	bool	SendNextUDPPacket();
 	int		GetMaxFilesPerUDPServerPacket() const;
 	bool	SendGlobGetSourcesUDPPacket(CMemFile& data);
-	
-	void 	AddToResolve(const CMD4Hash& fileid, const wxString& pszHostname, uint16 port, const wxString& hash, uint8 cryptoptions);
+
+	void	AddToResolve(const CMD4Hash& fileid, const wxString& pszHostname, uint16 port, const wxString& hash, uint8 cryptoptions);
 
 	//! The mutex assosiated with this class, mutable to allow for const functions.
 	mutable wxMutex m_mutex;
@@ -361,7 +361,7 @@ private:
 	uint8		m_udcounter;
 	CServer*	m_udpserver;
 
-	
+
 	/**
 	 * Structure used to store sources with dynamic hostnames.
 	 */
@@ -380,10 +380,10 @@ private:
 	};
 
 	std::deque<Hostname_Entry>	m_toresolve;
-	
+
 	typedef std::deque<CPartFile*> FileQueue;
 	FileQueue m_filelist;
-	
+
 	typedef std::list<CPartFile*> FileList;
 	FileList		m_localServerReqQueue;
 
@@ -392,16 +392,16 @@ private:
 
 	//! Observer used to keep track of which servers have yet to be asked for sources
 	CQueueObserver<CServer*>	m_queueServers;
-	
+
 	//! Observer used to keep track of which file to send UDP requests for
 	CQueueObserver<CPartFile*>	m_queueFiles;
-	
+
 	/* Kad Stuff */
 	uint32		lastkademliafilerequest;
 
 	//! Threshold for rare files, dynamically based on the sources for each.
 	uint32		m_rareFileThreshold;
-	
+
 	//! Threshold for common files, dynamically based on the sources for each.
 	uint32		m_commonFileThreshold;
 };
diff --git a/src/ECSpecialCoreTags.cpp b/src/ECSpecialCoreTags.cpp
index 62982fc..fc378ef 100644
--- a/src/ECSpecialCoreTags.cpp
+++ b/src/ECSpecialCoreTags.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -129,7 +129,7 @@ CEC_ConnState_Tag::CEC_ConnState_Tag(EC_DETAIL_LEVEL detail_level) : CECTag(EC_T
 			(theApp->IsConnectedKad() ? 0x04 : 0x00)
 			|
 			(Kademlia::CKademlia::IsFirewalled() ? 0x08 : 0x00)
-			| 
+			|
 			(Kademlia::CKademlia::IsRunning() ? 0x10 : 0x00)
 		))
 {
@@ -147,7 +147,7 @@ CEC_ConnState_Tag::CEC_ConnState_Tag(EC_DETAIL_LEVEL detail_level) : CECTag(EC_T
 		AddTag(CECTag(EC_TAG_ED2K_ID, 0xffffffff));
 	}
 
-	AddTag(CECTag(EC_TAG_CLIENT_ID, theApp->GetID()));	
+	AddTag(CECTag(EC_TAG_CLIENT_ID, theApp->GetID()));
 }
 
 CEC_PartFile_Tag::CEC_PartFile_Tag(const CPartFile *file, EC_DETAIL_LEVEL detail_level, CValueMap *valuemap)
@@ -161,15 +161,15 @@ CEC_SharedFile_Tag(file, detail_level, valuemap, EC_TAG_PARTFILE)
 	AddTag(EC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT, file->GetNotCurrentSourcesCount(), valuemap);
 	AddTag(EC_TAG_PARTFILE_SOURCE_COUNT_XFER, file->GetTransferingSrcCount(), valuemap);
 	AddTag(EC_TAG_PARTFILE_SOURCE_COUNT_A4AF, file->GetSrcA4AFCount(), valuemap);
-		
+
 	if ( (file->GetTransferingSrcCount() > 0) || (detail_level != EC_DETAIL_UPDATE) || valuemap) {
-		
+
 		AddTag(EC_TAG_PARTFILE_SIZE_XFER, file->GetTransferred(), valuemap);
 		AddTag(EC_TAG_PARTFILE_SIZE_DONE, file->GetCompletedSize(), valuemap);
 		AddTag(EC_TAG_PARTFILE_SPEED, (uint64_t)(file->GetKBpsDown()*1024), valuemap);
 	}
-	
-	AddTag(EC_TAG_PARTFILE_PRIO, (file->IsAutoDownPriority() ? 
+
+	AddTag(EC_TAG_PARTFILE_PRIO, (file->IsAutoDownPriority() ?
 		file->GetDownPriority() + 10 : file->GetDownPriority()), valuemap);
 
 	AddTag(EC_TAG_PARTFILE_CAT, file->GetCategory(), valuemap);
@@ -177,6 +177,7 @@ CEC_SharedFile_Tag(file, detail_level, valuemap, EC_TAG_PARTFILE)
 	AddTag(EC_TAG_PARTFILE_LAST_RECV, file->GetLastChangeDatetime(), valuemap);
 	AddTag(EC_TAG_PARTFILE_DOWNLOAD_ACTIVE, file->GetDlActiveTime(), valuemap);
 	AddTag(EC_TAG_PARTFILE_AVAILABLE_PARTS, file->GetAvailablePartCount(), valuemap);
+	AddTag(EC_TAG_PARTFILE_HASHED_PART_COUNT, file->GetHashingProgress(), valuemap);
 
 	AddTag(EC_TAG_PARTFILE_LOST_CORRUPTION, file->GetLostDueToCorruption(), valuemap);
 	AddTag(EC_TAG_PARTFILE_GAINED_COMPRESSION, file->GetGainDueToCompression(), valuemap);
@@ -206,26 +207,26 @@ CEC_SharedFile_Tag(file, detail_level, valuemap, EC_TAG_PARTFILE)
 	// A4AF sources
 	CECEmptyTag a4afTag(EC_TAG_PARTFILE_A4AF_SOURCES);
 	const CKnownFile::SourceSet& a4afSources = file->GetA4AFList();
-	for (CKnownFile::SourceSet::const_iterator it = a4afSources.begin(); it != a4afSources.end(); it++) {
+	for (CKnownFile::SourceSet::const_iterator it = a4afSources.begin(); it != a4afSources.end(); ++it) {
 		a4afTag.AddTag(CECTag(EC_TAG_ECID, it->ECID()));
 	}
 	AddTag(a4afTag, valuemap);
 }
 
-CEC_SharedFile_Tag::CEC_SharedFile_Tag(const CKnownFile *file, EC_DETAIL_LEVEL detail_level, 
+CEC_SharedFile_Tag::CEC_SharedFile_Tag(const CKnownFile *file, EC_DETAIL_LEVEL detail_level,
 									   CValueMap *valuemap, ec_tagname_t name)
 : CECTag(name, file->ECID())
 {
 	AddTag(EC_TAG_KNOWNFILE_REQ_COUNT, file->statistic.GetRequests(), valuemap);
 	AddTag(EC_TAG_KNOWNFILE_REQ_COUNT_ALL, file->statistic.GetAllTimeRequests(), valuemap);
-	
+
 	AddTag(EC_TAG_KNOWNFILE_ACCEPT_COUNT, file->statistic.GetAccepts(), valuemap);
 	AddTag(EC_TAG_KNOWNFILE_ACCEPT_COUNT_ALL, file->statistic.GetAllTimeAccepts(), valuemap);
 
 	AddTag(EC_TAG_KNOWNFILE_XFERRED, file->statistic.GetTransferred(), valuemap);
 	AddTag(EC_TAG_KNOWNFILE_XFERRED_ALL, file->statistic.GetAllTimeTransferred(), valuemap);
 	AddTag(EC_TAG_KNOWNFILE_AICH_MASTERHASH, file->GetAICHMasterHash(), valuemap);
-	
+
 	AddTag(EC_TAG_KNOWNFILE_PRIO,
 		(uint8)(file->IsAutoUpPriority() ? file->GetUpPriority() + 10 : file->GetUpPriority()), valuemap);
 
@@ -238,11 +239,11 @@ CEC_SharedFile_Tag::CEC_SharedFile_Tag(const CKnownFile *file, EC_DETAIL_LEVEL d
 	if (detail_level == EC_DETAIL_UPDATE) {
 			return;
 	}
-	
+
 	AddTag(EC_TAG_PARTFILE_NAME,file->GetFileName().GetPrintable(), valuemap);
 	AddTag(EC_TAG_PARTFILE_HASH, file->GetFileHash(), valuemap);
-	AddTag(EC_TAG_KNOWNFILE_FILENAME, 
-		file->IsPartFile()	? wxString(CFormat(wxT("%s")) % ((CPartFile*)file)->GetPartMetFileName().RemoveExt())
+	AddTag(EC_TAG_KNOWNFILE_FILENAME,
+		file->IsPartFile()	? wxString(CFormat(wxT("%s")) % static_cast<const CPartFile*>(file)->GetPartMetFileName().RemoveExt())
 							: file->GetFilePath().GetPrintable(),
 		valuemap);
 
@@ -271,7 +272,7 @@ CEC_UpDownClient_Tag::CEC_UpDownClient_Tag(const CUpDownClient* client, EC_DETAI
 	AddTag(CECTag(EC_TAG_CLIENT_SERVER_IP, client->GetServerIP()), valuemap);
 	AddTag(CECTag(EC_TAG_CLIENT_SERVER_PORT, client->GetServerPort()), valuemap);
 	AddTag(CECTag(EC_TAG_CLIENT_SERVER_NAME, client->GetServerName()), valuemap);
-	
+
 	// Transfers to Client
 	AddTag(CECTag(EC_TAG_CLIENT_UP_SPEED, client->GetUploadDatarate()), valuemap);
 	if (client->GetDownloadState() == DS_DOWNLOADING || valuemap) {
@@ -281,7 +282,7 @@ CEC_UpDownClient_Tag::CEC_UpDownClient_Tag(const CUpDownClient* client, EC_DETAI
 	AddTag(CECTag(EC_TAG_PARTFILE_SIZE_XFER, client->GetTransferredDown()), valuemap);
 	AddTag(CECTag(EC_TAG_CLIENT_UPLOAD_TOTAL, client->GetUploadedTotal()), valuemap);
 	AddTag(CECTag(EC_TAG_CLIENT_DOWNLOAD_TOTAL, client->GetDownloadedTotal()), valuemap);
-	
+
 	AddTag(CECTag(EC_TAG_CLIENT_UPLOAD_STATE, client->GetUploadState()), valuemap);
 	AddTag(CECTag(EC_TAG_CLIENT_DOWNLOAD_STATE, client->GetDownloadState()), valuemap);
 	AddTag(CECTag(EC_TAG_CLIENT_IDENT_STATE, (uint64) client->GetCurrentIdentState()), valuemap);
@@ -297,7 +298,7 @@ CEC_UpDownClient_Tag::CEC_UpDownClient_Tag(const CUpDownClient* client, EC_DETAI
 	AddTag(CECTag(EC_TAG_CLIENT_OBFUSCATION_STATUS, client->GetObfuscationStatus()), valuemap);
 	AddTag(CECTag(EC_TAG_CLIENT_KAD_PORT, client->GetKadPort()), valuemap);
 	AddTag(CECTag(EC_TAG_CLIENT_FRIEND_SLOT, client->GetFriendSlot()), valuemap);
-	
+
 	if (detail_level == EC_DETAIL_UPDATE) {
 		return;
 	}
@@ -344,7 +345,7 @@ CEC_UpDownClient_Tag::CEC_UpDownClient_Tag(const CUpDownClient* client, EC_DETAI
 //
 // Search reply
 //
-CEC_SearchFile_Tag::CEC_SearchFile_Tag(CSearchFile *file, EC_DETAIL_LEVEL detail_level, CValueMap *valuemap) : CECTag(EC_TAG_SEARCHFILE, file->ECID())
+CEC_SearchFile_Tag::CEC_SearchFile_Tag(const CSearchFile *file, EC_DETAIL_LEVEL detail_level, CValueMap *valuemap) : CECTag(EC_TAG_SEARCHFILE, file->ECID())
 {
 	AddTag(CECTag(EC_TAG_PARTFILE_SOURCE_COUNT, file->GetSourceCount()), valuemap);
 	AddTag(CECTag(EC_TAG_PARTFILE_SOURCE_COUNT_XFER, file->GetCompleteSourceCount()), valuemap);
diff --git a/src/ECSpecialMuleTags.cpp b/src/ECSpecialMuleTags.cpp
index 208bfeb..661455c 100644
--- a/src/ECSpecialMuleTags.cpp
+++ b/src/ECSpecialMuleTags.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -315,7 +315,7 @@ CEC_Prefs_Packet::CEC_Prefs_Packet(uint32 selection, EC_DETAIL_LEVEL pref_detail
 		if (thePrefs::IsSecureIdentEnabled()) {
 			secPrefs.AddTag(CECEmptyTag(EC_TAG_SECURITY_USE_SECIDENT));
 		}
-		
+
 		if (thePrefs::IsClientCryptLayerSupported()) {
 			secPrefs.AddTag(CECEmptyTag(EC_TAG_SECURITY_OBFUSCATION_SUPPORTED));
 		}
@@ -373,7 +373,7 @@ void ApplyBoolean(bool use_tag, const CECTag *thisTab, void (applyFunc)(bool), i
  *  -> On remote gui they are loaded on startup, and then changed on-command
  *  -> Webserver doesn't supposed to change it.
  */
-void CEC_Prefs_Packet::Apply()
+void CEC_Prefs_Packet::Apply() const
 {
 	const CECTag *thisTab = NULL;
 	const CECTag *oneTag = NULL;
@@ -397,7 +397,7 @@ void CEC_Prefs_Packet::Apply()
 	// webserver doesn't transmit all boolean values
 	//
 	bool use_tag = (GetDetailLevel() == EC_DETAIL_FULL);
-	
+
 	if ((thisTab = GetTagByName(EC_TAG_PREFS_CONNECTIONS)) != NULL) {
 		if ((oneTag = thisTab->GetTagByName(EC_TAG_CONN_UL_CAP)) != NULL) {
 			thePrefs::SetMaxGraphUploadRate(oneTag->GetInt());
@@ -487,7 +487,7 @@ void CEC_Prefs_Packet::Apply()
 		ApplyBoolean(use_tag, thisTab, thePrefs::SetManualHighPrio, EC_TAG_SERVERS_MANUAL_HIGH_PRIO);
 		if ((oneTag = thisTab->GetTagByName(EC_TAG_SERVERS_UPDATE_URL)) != NULL) {
 			thePrefs::SetEd2kServersUrl(oneTag->GetStringData());
-		}		
+		}
 	}
 
 	if ((thisTab = GetTagByName(EC_TAG_PREFS_FILES)) != NULL) {
@@ -531,7 +531,7 @@ void CEC_Prefs_Packet::Apply()
 		}
 		if ((oneTag = thisTab->GetTagByName(EC_TAG_DIRECTORIES_SHARED)) != NULL) {
 			theApp->glob_prefs->shareddir_list.clear();
-			for (CECTag::const_iterator it = oneTag->begin(); it != oneTag->end(); it++) {
+			for (CECTag::const_iterator it = oneTag->begin(); it != oneTag->end(); ++it) {
 				theApp->glob_prefs->shareddir_list.push_back(CPath(it->GetStringData()));
 			}
 		}
@@ -578,7 +578,7 @@ void CEC_Prefs_Packet::Apply()
 			thePrefs::SetServerKeepAliveTimeout(oneTag->GetInt());
 		}
 	}
-	
+
 	if ((thisTab = GetTagByName(EC_TAG_PREFS_KADEMLIA)) != NULL) {
 		if ((oneTag = thisTab->GetTagByName(EC_TAG_KADEMLIA_UPDATE_URL)) != NULL) {
 			thePrefs::SetKadNodesUrl(oneTag->GetStringData());
diff --git a/src/ED2KLink.cpp b/src/ED2KLink.cpp
index 57beba8..3ec3b37 100644
--- a/src/ED2KLink.cpp
+++ b/src/ED2KLink.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -66,22 +66,22 @@ CED2KLink* CED2KLink::CreateLinkFromUrl(const wxString& link)
 
 	wxString type = re_type.GetMatch(link, 1).MakeLower();
 	{ wxCHECK(type.Length(), NULL); }
-	
+
 	if (type == wxT("file")) {
 		return new CED2KFileLink(link);
 	} else if (type == wxT("server")) {
-		return new CED2KServerLink(link);	
+		return new CED2KServerLink(link);
 	} else if (type == wxT("serverlist")) {
 		return new CED2KServerListLink(link);
 	} else {
 		wxCHECK(false, NULL);
 	}
 }
-	
+
 
 /////////////////////////////////////////////
-// CED2KServerListLink implementation 
-///////////////////////////////////////////// 
+// CED2KServerListLink implementation
+/////////////////////////////////////////////
 CED2KServerListLink::CED2KServerListLink(const wxString& link)
 	: CED2KLink( kServerList )
 {
@@ -89,7 +89,7 @@ CED2KServerListLink::CED2KServerListLink(const wxString& link)
 	if (!re.Matches(link)) {
 		throw wxString(wxT("Not a valid server-list link."));
 	}
-	
+
 	m_address = UnescapeHTML(re.GetMatch(link, 1));
 }
 
@@ -116,10 +116,10 @@ CED2KServerLink::CED2KServerLink(const wxString& link)
 	if (!re.Matches(link)) {
 		throw wxString(wxT("Not a valid server link."));
 	}
-	
+
 	wxString ip = UnescapeHTML(re.GetMatch(link, 1));
 	wxString port = re.GetMatch(link, 2);
-	
+
 	unsigned long ul = StrToULong(port);
 	if (ul > 0xFFFF || ul == 0) {
 		throw wxString( wxT("Bad port number") );
@@ -161,7 +161,7 @@ CED2KFileLink::CED2KFileLink(const wxString& link)
 	wxStringTokenizer tokens(link, wxT("|"), wxTOKEN_RET_EMPTY_ALL);
 
 	// Must at least be ed2k://|file|NAME|SIZE|HASH|/
-	if (tokens.CountTokens() < 5 
+	if (tokens.CountTokens() < 5
 		|| tokens.GetNextToken() != wxT("ed2k://")
 		|| tokens.GetNextToken() != wxT("file")) {
 		throw wxString(wxT("Not a valid file link"));
@@ -170,7 +170,7 @@ CED2KFileLink::CED2KFileLink(const wxString& link)
 	m_name = UnescapeHTML(tokens.GetNextToken().Strip(wxString::both));
 	// We don't want a path in the name.
 	m_name.Replace(wxT("/"), wxT("_"));
-	
+
 	// Note that StrToULong returns ULONG_MAX if the value is
 	// too large to be contained in a unsigned long, which means
 	// that this check is valid, as odd as it seems
@@ -179,7 +179,7 @@ CED2KFileLink::CED2KFileLink(const wxString& link)
 	if ((m_size == 0) || (m_size > MAX_FILE_SIZE)) {
 		throw wxString(CFormat(wxT("Invalid file size %i")) % m_size);
 	}
-	
+
 	if (!m_hash.Decode(tokens.GetNextToken().Strip(wxString::both))) {
 		throw wxString(wxT("Invalid hash"));
 	}
@@ -194,25 +194,25 @@ CED2KFileLink::CED2KFileLink(const wxString& link)
 			wxString token = srcTokens.GetNextToken();
 			while (srcTokens.HasMoreTokens()) {
 				token = srcTokens.GetNextToken().Strip(wxString::both);
-				
+
 				wxStringTokenizer sourceTokens(token, wxT(":"));
 				wxString addr = sourceTokens.GetNextToken();
 				if (addr.IsEmpty()) {
 					throw wxString( wxT("Empty address" ) );
 				}
-				
+
 				wxString strport = sourceTokens.GetNextToken();
 				if (strport.IsEmpty()) {
 					throw wxString( wxT("Empty port" ) );
-				}				
-				
+				}
+
 				unsigned port = StrToULong(strport);
 
 				// Sanity checking
 				if ((port == 0) || (port > 0xFFFF)) {
 					throw wxString( wxT("Invalid Port" ) );
 				}
-				
+
 				wxString sourcehash;
 				uint8 cryptoptions =0;
 				wxString strcryptoptions = sourceTokens.GetNextToken();
@@ -226,14 +226,14 @@ CED2KFileLink::CED2KFileLink(const wxString& link)
 						}
 					}
 				}
-				
-				SED2KLinkSource entry = { addr, port, sourcehash, cryptoptions };
+
+				SED2KLinkSource entry = { addr, (uint16) port, sourcehash, cryptoptions };
 
 				m_sources.push_back(entry);
 			}
 		} else if (field.StartsWith(wxT("p="))) {
 			wxStringTokenizer hashTokens(field.AfterFirst(wxT('=')), wxT(":"), wxTOKEN_RET_EMPTY_ALL);
-		
+
 			m_hashset = new CMemFile();
 			m_hashset->WriteHash(m_hash);
 			m_hashset->WriteUInt16(0);
@@ -246,7 +246,7 @@ CED2KFileLink::CED2KFileLink(const wxString& link)
 
 				m_hashset->WriteHash(hash);
 			}
-			
+
 			unsigned count = m_hashset->GetLength() / 16u - 1u;
 
 			if (count) {
@@ -259,7 +259,7 @@ CED2KFileLink::CED2KFileLink(const wxString& link)
 			}
 		} else if (field.StartsWith(wxT("h="))) {
 			wxString hash = field.AfterFirst(wxT('=')).MakeUpper();
-			
+
 			size_t decodedSize = DecodeBase32(hash, CAICHHash::GetHashSize(), m_AICHHash.GetRawHash());
 			if ((decodedSize != CAICHHash::GetHashSize()) || m_AICHHash.GetString() != hash) {
 				throw wxString(wxT("Invalid master-hash"));
diff --git a/src/ED2KLink.h b/src/ED2KLink.h
index c1d7e06..52915a4 100644
--- a/src/ED2KLink.h
+++ b/src/ED2KLink.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,7 +39,7 @@ class CED2KLink
 {
 public:
 	typedef enum { kServerList, kServer , kFile , kInvalid } LinkType;
-	
+
 	static CED2KLink* CreateLinkFromUrl(const wxString& link);
 
 	LinkType GetKind() const;
@@ -59,7 +59,7 @@ class CED2KFileLink : public CED2KLink
 {
 	friend class CED2KLink;
 	CED2KFileLink(const wxString& link);
-	
+
 public:
 	virtual ~CED2KFileLink();
 
@@ -87,12 +87,12 @@ public:
 		//! Client hash for encryption
 		wxString hash;
 		//! Client cryptoptions
-		uint8 cryptoptions;		
+		uint8 cryptoptions;
 	};
 
-	typedef std::deque<SED2KLinkSource> CED2KLinkSourceList;	
+	typedef std::deque<SED2KLinkSource> CED2KLinkSourceList;
 	CED2KLinkSourceList m_sources;
-	
+
 private:
 	CED2KFileLink(); // Not defined
 	CED2KFileLink(const CED2KFileLink&); // Not defined
@@ -129,7 +129,7 @@ private:
 
 class CED2KServerListLink : public CED2KLink
 {
-	friend class CED2KLink;	
+	friend class CED2KLink;
 	CED2KServerListLink(const wxString& link);
 
 public:
diff --git a/src/ED2KLinkParser.cpp b/src/ED2KLinkParser.cpp
index c98ce64..10a8be0 100644
--- a/src/ED2KLinkParser.cpp
+++ b/src/ED2KLinkParser.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -70,7 +70,7 @@ string GetLinksFilePath(const string& configDir)
 #ifdef __APPLE__
 
 	std::string strDir;
-	
+
 	FSRef fsRef;
 	if (FSFindFolder(kUserDomain, kApplicationSupportFolderType, kCreateFolder, &fsRef) == noErr) {
 		CFURLRef urlRef = CFURLCreateFromFSRef(NULL, &fsRef);
@@ -128,11 +128,11 @@ string GetLinksFilePath(const string& configDir)
 char HexToDec( const string& hex )
 {
 	char result = 0;
-	
+
 	for ( size_t i = 0; i < hex.length(); ++i ) {
 		char cur = toupper( hex.at(i) );
 		result *= 16;
-		
+
 		if ( isdigit( cur ) ) {
 			result += cur - '0';
 		} else if ( cur >= 'A' && cur <= 'F' ) {
@@ -156,7 +156,7 @@ string Unescape( const string& str )
 {
 	string result;
 	result.reserve( str.length() );
-	
+
 	for ( size_t i = 0; i < str.length(); ++i ) {
 		if ( str.at(i) == '%' && ( i + 2 < str.length() ) ) {
 			char unesc = HexToDec( str.substr( i + 1, 2 ) );
@@ -187,7 +187,7 @@ string strip( const string& str )
 	int first = 0;
 	int last  = str.length() - 1;
 
-	// A simple but no very optimized way to narrow down the 
+	// A simple but no very optimized way to narrow down the
 	// usable text within the string.
 	while ( first <= last ) {
 		if ( isspace( str.at(first) ) ) {
@@ -198,8 +198,8 @@ string strip( const string& str )
 			break;
 		}
 	};
-	
-	return str.substr( first, 1 + last - first );	
+
+	return str.substr( first, 1 + last - first );
 }
 
 
@@ -225,7 +225,7 @@ bool isMD4Hash( const string& str )
 {
 	for ( size_t i = 0; i < str.length(); i++ ) {
 		const char c = toupper( str.at(i) );
-		
+
 		if ( !isdigit( c ) && ( c < 'A' || c > 'F' ) ) {
 			return false;
 		}
@@ -240,8 +240,8 @@ bool isMD4Hash( const string& str )
  */
 string getVersion()
 {
-  	std::ostringstream v;
-	
+	std::ostringstream v;
+
 	v << "aMule ED2k link parser v"
 		<< versionMajor << "."
 		<< versionMinor << "."
@@ -262,7 +262,7 @@ void badLink( const string& type, const string& err, const string& uri )
 
 
 /**
- * Writes a string to the ED2KLinks file. 
+ * Writes a string to the ED2KLinks file.
  *
  * If errors are detected, it will terminate the program.
  */
@@ -271,7 +271,7 @@ void writeLink( const string& uri, const string& config_dir )
 	// Attempt to lock the ED2KLinks file
 	static CFileLock lock(GetLinksFilePath(config_dir));
 	static std::ofstream file;
-	
+
 	if (!file.is_open()) {
 		string path = GetLinksFilePath(config_dir);
 		file.open( path.c_str(), std::ofstream::out | std::ofstream::app );
@@ -307,12 +307,12 @@ bool checkFileLink( const string& uri )
 		valid &= ( name_off < size_off );
 		valid &= ( size_off < hash_off );
 		valid &= ( hash_off != string::npos );
-	
+
 		if ( !valid ) {
 			badLink( "file", "invalid link format", uri );
 			return false;
 		}
-		
+
 		string name = uri.substr( base_off + 1, name_off - base_off - 1 );
 		string size = uri.substr( name_off + 1, size_off - name_off - 1 );
 		string hash = uri.substr( size_off + 1, hash_off - size_off - 1 );
@@ -356,12 +356,12 @@ bool checkServerLink( const string& uri )
 		valid &= ( base_off < host_off );
 		valid &= ( host_off < port_off );
 		valid &= ( port_off != string::npos );
-	
+
 		if ( !valid || uri.at( port_off + 1 ) != '/' ) {
 			badLink( "server", "invalid link format", uri );
 			return false;
 		}
-		
+
 		string host = uri.substr( base_off + 1, host_off - base_off - 1 );
 		string port = uri.substr( host_off + 1, port_off - host_off - 1 );
 
@@ -397,12 +397,12 @@ bool checkServerListLink( const string& uri )
 		bool valid = true;
 		valid &= ( base_off < path_off );
 		valid &= ( path_off != string::npos );
-	
+
 		if ( !valid ) {
 			badLink( "serverlist", "invalid link format", uri );
 			return false;
 		}
-		
+
 		string path = uri.substr( base_off + 1, path_off - base_off - 1 );
 
 		if ( path.empty() ) {
@@ -441,9 +441,9 @@ int main(int argc, char *argv[])
 			if ( arg.at( arg.length() - 1 ) != '/' ) {
 				arg += '/';
 			}
-			
+
 			string type = arg.substr( 8, arg.find( '|', 9 ) - 8 );
-		
+
 			if ( (type == "file") && checkFileLink( arg ) ) {
 				arg += category;
 				writeLink( arg, config_path );
@@ -482,7 +482,7 @@ int main(int argc, char *argv[])
 				<< "    --emulecollection, -e   Loads all links of an emulecollection\n\n"
 				<< "*** NOTE: Option order is important! ***\n"
 				<< std::endl;
-			
+
 		} else if (arg == "-v" || arg == "--version") {
 			std::cout << getVersion() << std::endl;
 		} else if (arg == "-t" || arg == "--category") {
@@ -501,11 +501,11 @@ int main(int argc, char *argv[])
 				CMuleCollection my_collection;
 				if (my_collection.Open( /* emulecollection file */ argv[++i] ))
 				{
-					for(size_t e = 0;e < my_collection.GetFileCount();e++)
+					for(size_t e = 0; e < my_collection.size(); e++)
 						if (listOnly)
-							std::cout << my_collection.GetEd2kLink(e) << std::endl;
+							std::cout << my_collection[e] << std::endl;
 						else
-							writeLink( my_collection.GetEd2kLink(e), config_path );
+							writeLink( my_collection[e], config_path );
 				} else {
 					std::cerr << "Invalid emulecollection file: " << argv[i] << std::endl;
 					errors = true;
diff --git a/src/EMSocket.cpp b/src/EMSocket.cpp
index 20e7ca8..3a9dc26 100644
--- a/src/EMSocket.cpp
+++ b/src/EMSocket.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -40,6 +40,7 @@
 
 const uint32 MAX_PACKET_SIZE = 2000000;
 
+// cppcheck-suppress uninitMemberVar CEMSocket::pendingHeader
 CEMSocket::CEMSocket(const CProxyData *ProxyData)
 	: CEncryptedStreamSocket(wxSOCKET_NOWAIT, ProxyData)
 {
@@ -47,7 +48,7 @@ CEMSocket::CEMSocket(const CProxyData *ProxyData)
 	// then we need to bind to it.
 	if (!thePrefs::GetAddress().IsEmpty()) {
 		amuleIPV4Address host;
-		
+
 		// No need to warn here, in case of failure to
 		// assign the hostname. That is already done
 		// in amule.cpp when starting ...
@@ -59,7 +60,7 @@ CEMSocket::CEMSocket(const CProxyData *ProxyData)
 	byConnected = ES_NOTCONNECTED;
 	m_uTimeOut = CONNECTION_TIMEOUT; // default timeout for ed2k sockets
 
-	// Download (pseudo) rate control	
+	// Download (pseudo) rate control
 	downloadLimit = 0;
 	downloadLimitEnable = false;
 	pendingOnReceive = false;
@@ -95,9 +96,6 @@ CEMSocket::CEMSocket(const CProxyData *ProxyData)
     m_hasSent = false;
 
 	lastFinishedStandard = 0;
-
-	DoingDestroy = false;
-	
 }
 
 CEMSocket::~CEMSocket()
@@ -105,7 +103,7 @@ CEMSocket::~CEMSocket()
     // need to be locked here to know that the other methods
     // won't be in the middle of things
     {
-    	wxMutexLocker lock(m_sendLocker);
+	wxMutexLocker lock(m_sendLocker);
 		byConnected = ES_DISCONNECTED;
 	}
 
@@ -116,16 +114,9 @@ CEMSocket::~CEMSocket()
 	}
 
     ClearQueues();
-	
-	SetNotify(0);
-	Notify(FALSE);
-}
 
-void CEMSocket::Destroy() {
-	if (!DoingDestroy) {		
-		DoingDestroy = true;
-		wxSocketClient::Destroy();
-	}	
+	SetNotify(0);	// this is already done in Destroy()
+	Notify(FALSE);
 }
 
 
@@ -142,8 +133,8 @@ void CEMSocket::ClearQueues()
 		}
 		m_standard_queue.clear();
 	}
-	
-	// Download (pseudo) rate control	
+
+	// Download (pseudo) rate control
 	downloadLimit = 0;
 	downloadLimitEnable = false;
 	pendingOnReceive = false;
@@ -169,14 +160,14 @@ void CEMSocket::OnClose(int WXUNUSED(nErrorCode))
     // need to be locked here to know that the other methods
     // won't be in the middle of things
     {
-    	wxMutexLocker lock(m_sendLocker);
+	wxMutexLocker lock(m_sendLocker);
 		byConnected = ES_DISCONNECTED;
 	}
 
     // now that we know no other method will keep adding to the queue
     // we can remove ourself from the queue
     theApp->uploadBandwidthThrottler->RemoveFromAllQueues(this);
-	
+
 	ClearQueues();
 }
 
@@ -184,17 +175,16 @@ void CEMSocket::OnClose(int WXUNUSED(nErrorCode))
 void CEMSocket::OnReceive(int nErrorCode)
 {
 	if(nErrorCode) {
-		uint32 error = LastError(); 
-		if (error != wxSOCKET_WOULDBLOCK) {
+		if (LastError()) {
 			OnError(nErrorCode);
 			return;
 		}
 	}
-	
+
 	// Check current connection state
 	if (byConnected == ES_DISCONNECTED) {
 		return;
-	} else {	
+	} else {
 		byConnected = ES_CONNECTED; // ES_DISCONNECTED, ES_NOTCONNECTED, ES_CONNECTED
 	}
 
@@ -236,10 +226,11 @@ void CEMSocket::OnReceive(int nErrorCode)
 		if (readMax) {
 			wxMutexLocker lock(m_sendLocker);
 			ret = Read(buf, readMax);
-			if (Error() || (ret == 0)) {
-				if (LastError() == wxSOCKET_WOULDBLOCK) {
-					pendingOnReceive = true;
-				}
+			if (BlocksRead()) {
+				pendingOnReceive = true;
+				return;
+			}
+			if (LastError() || ret == 0) {
 				return;
 			}
 		}
@@ -293,8 +284,8 @@ void CEMSocket::OnReceive(int nErrorCode)
 void CEMSocket::SetDownloadLimit(uint32 limit)
 {
 	downloadLimit = limit;
-	downloadLimitEnable = true;	
-	
+	downloadLimitEnable = true;
+
 	// CPU load improvement
 	if(limit > 0 && pendingOnReceive == true){
 		OnReceive(0);
@@ -420,8 +411,8 @@ void CEMSocket::OnSend(int nErrorCode)
 		return;
 	}
 
-	CEncryptedStreamSocket::OnSend(0);	
-	
+	CEncryptedStreamSocket::OnSend(0);
+
 	wxMutexLocker lock( m_sendLocker );
     m_bBusy = false;
 
@@ -430,7 +421,7 @@ void CEMSocket::OnSend(int nErrorCode)
 
 	    if (m_currentPacket_is_controlpacket) {
 	        // queue up for control packet
-    	    theApp->uploadBandwidthThrottler->QueueForSendingControlPacket(this, HasSent());
+	    theApp->uploadBandwidthThrottler->QueueForSendingControlPacket(this, HasSent());
 		}
     }
 }
@@ -461,7 +452,7 @@ SocketSentBytes CEMSocket::Send(uint32 maxNumberOfBytesToSend, uint32 minFragSiz
 	wxMutexLocker lock(m_sendLocker);
 
 	//printf("* Attempt to send a packet on socket %p\n", this);
-	
+
 	if (byConnected == ES_DISCONNECTED) {
 		//printf("* Disconnected socket %p\n", this);
         SocketSentBytes returnVal = { false, 0, 0 };
@@ -470,27 +461,27 @@ SocketSentBytes CEMSocket::Send(uint32 maxNumberOfBytesToSend, uint32 minFragSiz
 		//printf("* Busy socket %p\n", this);
         SocketSentBytes returnVal = { true, 0, 0 };
         return returnVal;
-    }	
+    }
 
     bool anErrorHasOccured = false;
     uint32 sentStandardPacketBytesThisCall = 0;
     uint32 sentControlPacketBytesThisCall = 0;
-	
+
     if (byConnected == ES_CONNECTED && IsEncryptionLayerReady() && (!m_bBusy || onlyAllowedToSendControlPacket)) {
 
 		//printf("* Internal attemptto send on %p\n", this);
-		
+
 		if(minFragSize < 1) {
 			minFragSize = 1;
 		}
-	
+
 		maxNumberOfBytesToSend = GetNextFragSize(maxNumberOfBytesToSend, minFragSize);
-	
+
 		bool bWasLongTimeSinceSend = (::GetTickCount() - lastSent) > 1000;
-	
+
 		lastCalledSend = ::GetTickCount();
-	
-			
+
+
 		while(sentStandardPacketBytesThisCall + sentControlPacketBytesThisCall < maxNumberOfBytesToSend && anErrorHasOccured == false && // don't send more than allowed. Also, there should have been no error in earlier loop
 			  (!m_control_queue.empty() || !m_standard_queue.empty() || sendbuffer != NULL) && // there must exist something to send
 			  (onlyAllowedToSendControlPacket == false || // this means we are allowed to send both types of packets, so proceed
@@ -500,7 +491,7 @@ SocketSentBytes CEMSocket::Send(uint32 maxNumberOfBytesToSend, uint32 minFragSiz
 			   (sendbuffer != NULL && m_currentPacket_is_controlpacket == false && bWasLongTimeSinceSend && !m_control_queue.empty() && m_standard_queue.empty() && (sentStandardPacketBytesThisCall + sentControlPacketBytesThisCall) < minFragSize) // We have waited to long to clean the current packet (which may be a standard packet that is in the way). Proceed no matter what the value of onlyAllowedToSendControlPacket.
 			  )
 			 ) {
-	
+
 			// If we are currently not in the progress of sending a packet, we will need to find the next one to send
 			if(sendbuffer == NULL) {
 				CPacket* curPacket = NULL;
@@ -516,7 +507,7 @@ SocketSentBytes CEMSocket::Send(uint32 maxNumberOfBytesToSend, uint32 minFragSiz
 					m_standard_queue.pop_front();
 					curPacket = queueEntry.packet;
 					m_actualPayloadSize = queueEntry.actualPayloadSize;
-	
+
 					// remember this for statistics purposes.
 					m_currentPackageIsFromPartFile = curPacket->IsFromPF();
 				} else {
@@ -524,21 +515,21 @@ SocketSentBytes CEMSocket::Send(uint32 maxNumberOfBytesToSend, uint32 minFragSiz
 					// if we reach this point, then there's something wrong with the while condition above!
 					wxFAIL;
 					AddDebugLogLineC(logGeneral, wxT("EMSocket: Couldn't get a new packet! There's an error in the first while condition in EMSocket::Send()"));
-	
+
 					SocketSentBytes returnVal = { true, sentStandardPacketBytesThisCall, sentControlPacketBytesThisCall };
 					return returnVal;
 				}
-	
+
 				// We found a packet to send. Get the data to send from the
 				// package container and dispose of the container.
 				sendblen = curPacket->GetRealPacketSize();
 				sendbuffer = curPacket->DetachPacket();
 				sent = 0;
 				delete curPacket;
-				
+
 				CryptPrepareSendData((byte*)sendbuffer, sendblen);
 			}
-	
+
 			// At this point we've got a packet to send in sendbuffer. Try to send it. Loop until entire packet
 			// is sent, or until we reach maximum bytes to send for this call, or until we get an error.
 			// NOTE! If send would block (returns WOULDBLOCK), we will return from this method INSIDE this loop.
@@ -564,37 +555,31 @@ SocketSentBytes CEMSocket::Send(uint32 maxNumberOfBytesToSend, uint32 minFragSiz
 						tosend = nextFragMaxBytesToSent-(sentStandardPacketBytesThisCall + sentControlPacketBytesThisCall);
 				}
 				wxASSERT(tosend != 0 && tosend <= sendblen-sent);
-				
+
 				//DWORD tempStartSendTick = ::GetTickCount();
-	
+
 				lastSent = ::GetTickCount();
-	
+
 				uint32 result = CEncryptedStreamSocket::Write(sendbuffer+sent,tosend);
-				
-				if (Error()){
-					
-					uint32 error = LastError();
-					if (error == wxSOCKET_WOULDBLOCK){
-						m_bBusy = true;
-	
-						SocketSentBytes returnVal = { true, sentStandardPacketBytesThisCall, sentControlPacketBytesThisCall };
-						
-						return returnVal; // Send() blocked, onsend will be called when ready to send again
-					} else{
-						// Send() gave an error
-						anErrorHasOccured = true;
-					}
+
+				if (BlocksWrite()) {
+					m_bBusy = true;
+					SocketSentBytes returnVal = { true, sentStandardPacketBytesThisCall, sentControlPacketBytesThisCall };
+					return returnVal; // Send() blocked, onsend will be called when ready to send again
+				} else if (LastError()) {
+					// Send() gave an error
+					anErrorHasOccured = true;
 				} else {
 					// we managed to send some bytes. Perform bookkeeping.
 					m_bBusy = false;
 					m_hasSent = true;
-	
+
 					sent += result;
-	
+
 					// Log send bytes in correct class
 					if(m_currentPacket_is_controlpacket == false) {
 						sentStandardPacketBytesThisCall += result;
-	
+
 						if(m_currentPackageIsFromPartFile == true) {
 							m_numberOfSentBytesPartFile += result;
 						} else {
@@ -606,27 +591,27 @@ SocketSentBytes CEMSocket::Send(uint32 maxNumberOfBytesToSend, uint32 minFragSiz
 					}
 				}
 			}
-	
+
 			if (sent == sendblen){
 				// we are done sending the current packet. Delete it and set
 				// sendbuffer to NULL so a new packet can be fetched.
 				delete[] sendbuffer;
 				sendbuffer = NULL;
 				sendblen = 0;
-	
+
 				if(!m_currentPacket_is_controlpacket) {
 					m_actualPayloadSizeSent += m_actualPayloadSize;
 					m_actualPayloadSize = 0;
-	
+
 					lastFinishedStandard = ::GetTickCount(); // reset timeout
 					m_bAccelerateUpload = false; // Safe until told otherwise
 				}
-	
+
 				sent = 0;
 			}
 		}
 	}
-	
+
 	if(onlyAllowedToSendControlPacket && (!m_control_queue.empty() || (sendbuffer != NULL && m_currentPacket_is_controlpacket))) {
 		// enter control packet send queue
 		// we might enter control packet queue several times for the same package,
@@ -637,9 +622,9 @@ SocketSentBytes CEMSocket::Send(uint32 maxNumberOfBytesToSend, uint32 minFragSiz
 	}
 
 	//printf("* Finishing send debug on %p\n",this);
-	
+
 	SocketSentBytes returnVal = { !anErrorHasOccured, sentStandardPacketBytesThisCall, sentControlPacketBytesThisCall };
-	
+
     return returnVal;
 }
 
@@ -656,7 +641,7 @@ uint32 CEMSocket::GetNextFragSize(uint32 current, uint32 minFragSize)
 
 /**
  * Decides the (minimum) amount the socket needs to send to prevent timeout.
- * 
+ *
  * @author SlugFiller
  */
 uint32 CEMSocket::GetNeededBytes()
@@ -673,17 +658,17 @@ uint32 CEMSocket::GetNeededBytes()
 		if (byConnected == ES_DISCONNECTED) {
 			return 0;
 		}
-	
+
 		if (!((sendbuffer && !m_currentPacket_is_controlpacket) || !m_standard_queue.empty())) {
 			// No standard packet to send. Even if data needs to be sent to prevent timout, there's nothing to send.
 			return 0;
 		}
-	
+
 		if (((sendbuffer && !m_currentPacket_is_controlpacket)) && !m_control_queue.empty())
 			m_bAccelerateUpload = true;	// We might be trying to send a block request, accelerate packet
-	
+
 		sendgap = ::GetTickCount() - lastCalledSend;
-	
+
 		timetotal = m_bAccelerateUpload?45000:90000;
 		timeleft = ::GetTickCount() - lastFinishedStandard;
 		if (sendbuffer && !m_currentPacket_is_controlpacket) {
@@ -732,7 +717,7 @@ void CEMSocket::TruncateQueues()
 	for (; it != m_standard_queue.end(); ++it) {
 		delete it->packet;
 	}
-	
+
 	m_standard_queue.clear();
 }
 
diff --git a/src/EMSocket.h b/src/EMSocket.h
index a637503..4d00361 100644
--- a/src/EMSocket.h
+++ b/src/EMSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,8 +48,8 @@ class CEMSocket : public CEncryptedStreamSocket, public ThrottledFileSocket
 public:
 	CEMSocket(const CProxyData *ProxyData = NULL);
 	virtual ~CEMSocket();
-	
-	virtual void 	SendPacket(CPacket* packet, bool delpacket = true, bool controlpacket = true, uint32 actualPayloadSize = 0);
+
+	virtual void	SendPacket(CPacket* packet, bool delpacket = true, bool controlpacket = true, uint32 actualPayloadSize = 0);
 	bool	IsConnected() { return byConnected==ES_CONNECTED;};
 	uint8	GetConState()	{return byConnected;}
 	void	SetDownloadLimit(uint32 limit);
@@ -57,7 +57,7 @@ public:
 
 	virtual uint32	GetTimeOut() const;
 	virtual void	SetTimeOut(uint32 uTimeOut);
-	
+
     uint32	GetLastCalledSend() { return lastCalledSend; }
 
     uint64	GetSentBytesCompleteFileSinceLastCallAndReset();
@@ -70,32 +70,30 @@ public:
     virtual SocketSentBytes SendFileAndControlData(uint32 maxNumberOfBytesToSend, uint32 minFragSize) { return Send(maxNumberOfBytesToSend, minFragSize, false); };
 
     uint32	GetNeededBytes();
-	
-	void	Destroy();
-	bool OnDestroy() { return DoingDestroy; };
-	
+
 	//protected:
 	// these functions are public on our code because of the amuleDlg::socketHandler
 	virtual void	OnError(int WXUNUSED(nErrorCode)) { };
-	virtual void	OnSend(int nErrorCode);	
+	virtual void	OnSend(int nErrorCode);
 	virtual void	OnReceive(int nErrorCode);
-	
+	virtual void	OnConnect(int nErrorCode) = 0;
+
 protected:
 
 	virtual bool	PacketReceived(CPacket* WXUNUSED(packet)) { return false; };
 	virtual void	OnClose(int nErrorCode);
-	
+
 	uint8	byConnected;
 	uint32	m_uTimeOut;
 
 private:
     virtual SocketSentBytes Send(uint32 maxNumberOfBytesToSend, uint32 minFragSize, bool onlyAllowedToSendControlPacket);
-	void	ClearQueues();	
+	void	ClearQueues();
 
     uint32	GetNextFragSize(uint32 current, uint32 minFragSize);
     bool    HasSent() { return m_hasSent; }
-	
-	// Download (pseudo) rate control	
+
+	// Download (pseudo) rate control
 	uint32	downloadLimit;
 	bool	downloadLimitEnable;
 	bool	pendingOnReceive;
@@ -124,7 +122,7 @@ private:
 
 	typedef	std::list<StandardPacketQueueEntry> CStdPacketQueue;
 	CStdPacketQueue m_standard_queue;
-	
+
     bool m_currentPacket_is_controlpacket;
 
 	wxMutex	m_sendLocker;
@@ -144,8 +142,6 @@ private:
 
     bool m_bBusy;
     bool m_hasSent;
-
-	bool DoingDestroy;
 };
 
 
diff --git a/src/EditServerListDlg.cpp b/src/EditServerListDlg.cpp
index 43f78d6..2aec281 100644
--- a/src/EditServerListDlg.cpp
+++ b/src/EditServerListDlg.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,8 +39,8 @@ END_EVENT_TABLE()
 EditServerListDlg::EditServerListDlg(wxWindow *parent,
                                      const wxString& caption,
                                      const wxString& message,
-				     const wxString& filename) : wxDialog(parent, -1, caption, 
-					     			      wxDefaultPosition, wxSize(400,200),
+				     const wxString& filename) : wxDialog(parent, -1, caption,
+								      wxDefaultPosition, wxSize(400,200),
 								      wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
 {
   m_file = filename;
@@ -52,7 +52,7 @@ EditServerListDlg::EditServerListDlg(wxWindow *parent,
   topsizer->Add( CreateTextSizer( message ), 0, wxALL, 10 );
 
   m_textctrl = new wxTextCtrl(this, -1, wxEmptyString,
-			      wxDefaultPosition, 
+			      wxDefaultPosition,
 			      wxDefaultSize,
 			      wxTE_MULTILINE);
   topsizer->Add( m_textctrl, 1, wxEXPAND | wxLEFT|wxRIGHT, 15 );
@@ -65,8 +65,8 @@ EditServerListDlg::EditServerListDlg(wxWindow *parent,
   Centre( wxBOTH );
 
   if (wxFile::Exists(filename))
-  	m_textctrl->LoadFile(filename);
-  
+	m_textctrl->LoadFile(filename);
+
   m_textctrl->SetFocus();
 
   wxEndBusyCursor();
diff --git a/src/EditServerListDlg.h b/src/EditServerListDlg.h
index 9c8be04..d720b0c 100644
--- a/src/EditServerListDlg.h
+++ b/src/EditServerListDlg.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,7 +36,7 @@ public:
                       const wxString& caption,
                       const wxString& message,
                       const wxString& filename);
-    
+
     virtual ~EditServerListDlg();
 
     void OnOK(wxCommandEvent& event);
diff --git a/src/EncryptedDatagramSocket.cpp b/src/EncryptedDatagramSocket.cpp
index 33cc35f..aa898c3 100644
--- a/src/EncryptedDatagramSocket.cpp
+++ b/src/EncryptedDatagramSocket.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,7 +38,7 @@
 	- Handshake
 		-> The handshake is encrypted - except otherwise noted - by the Keys created above
 		-> Padding is currently not used for UDP meaning that PaddingLen will be 0, using PaddingLens up to 16 Bytes is acceptable however
-		Client A: <SemiRandomNotProtocolMarker 7 Bits[Unencrypted]><ED2K Marker 1Bit = 1><RandomKeyPart 2[Unencrypted]><MagicValue 4><PaddingLen 1><RandomBytes PaddingLen%16>	
+		Client A: <SemiRandomNotProtocolMarker 7 Bits[Unencrypted]><ED2K Marker 1Bit = 1><RandomKeyPart 2[Unencrypted]><MagicValue 4><PaddingLen 1><RandomBytes PaddingLen%16>
 
 	- Additional Comments:
 		- For obvious reasons the UDP handshake is actually no handshake. If a different Encryption method (or better a different Key) is to be used this has to be negotiated in a TCP connection
@@ -57,7 +57,7 @@
 	- Handshake
 		-> The handshake is encrypted - except otherwise noted - by the Keys created above
 		-> Padding is currently not used for UDP meaning that PaddingLen will be 0, using PaddingLens up to 16 Bytes is acceptable however
-		Client A: <SemiRandomNotProtocolMarker 1[Unencrypted]><RandomKeyPart 2[Unencrypted]><MagicValue 4><PaddingLen 1><RandomBytes PaddingLen%16>	
+		Client A: <SemiRandomNotProtocolMarker 1[Unencrypted]><RandomKeyPart 2[Unencrypted]><MagicValue 4><PaddingLen 1><RandomBytes PaddingLen%16>
 
 	- Overhead: 8 Bytes per UDP Packet
 
@@ -69,7 +69,7 @@
 		- SemiRandomNotProtocolMarker is a Byte which has a value unequal any Protocol header byte. This is a compromise, turning in complete randomness (and nice design) but gaining a lower CPU usage
 
 ****************************** KAD Packets
-			  
+
 - Keycreation Client <-> Client:
 	- Client A (Outgoing connection):
 		Sendkey: Md5(<KadID 16><RandomKeyPartClientA 2>)  18
@@ -113,7 +113,7 @@
 #define	MAGICVALUE_UDP_SERVERCLIENT			0xA5
 #define	MAGICVALUE_UDP_CLIENTSERVER			0x6B
 
-CEncryptedDatagramSocket::CEncryptedDatagramSocket(wxIPaddress &address, wxSocketFlags flags,	const CProxyData *proxyData)
+CEncryptedDatagramSocket::CEncryptedDatagramSocket(amuleIPV4Address &address, wxSocketFlags flags,	const CProxyData *proxyData)
 	: CDatagramSocketProxy(address, flags, proxyData)
 {}
 
@@ -209,14 +209,14 @@ int CEncryptedDatagramSocket::DecryptReceivedClient(uint8_t *bufIn, int bufLen,
 
 	if (value == MAGICVALUE_UDP_SYNC_CLIENT) {
 		// yup this is an encrypted packet
-// 		// debugoutput notices
-// 		// the following cases are "allowed" but shouldn't happen given that there is only our implementation yet
-// 		if (bKad && (pbyBufIn[0] & 0x01) != 0)
-// 			DebugLog(_T("Received obfuscated UDP packet from clientIP: %s with wrong key marker bits (kad packet, ed2k bit)"), ipstr(dwIP));
-// 		else if (bKad && !bKadRecvKeyUsed && (pbyBufIn[0] & 0x02) != 0)
-// 			DebugLog(_T("Received obfuscated UDP packet from clientIP: %s with wrong key marker bits (kad packet, nodeid key, recvkey bit)"), ipstr(dwIP));
-// 		else if (bKad && bKadRecvKeyUsed && (pbyBufIn[0] & 0x02) == 0)
-// 			DebugLog(_T("Received obfuscated UDP packet from clientIP: %s with wrong key marker bits (kad packet, recvkey key, nodeid bit)"), ipstr(dwIP));
+//		// debugoutput notices
+//		// the following cases are "allowed" but shouldn't happen given that there is only our implementation yet
+//		if (bKad && (pbyBufIn[0] & 0x01) != 0)
+//			DebugLog(_T("Received obfuscated UDP packet from clientIP: %s with wrong key marker bits (kad packet, ed2k bit)"), ipstr(dwIP));
+//		else if (bKad && !bKadRecvKeyUsed && (pbyBufIn[0] & 0x02) != 0)
+//			DebugLog(_T("Received obfuscated UDP packet from clientIP: %s with wrong key marker bits (kad packet, nodeid key, recvkey bit)"), ipstr(dwIP));
+//		else if (bKad && bKadRecvKeyUsed && (pbyBufIn[0] & 0x02) == 0)
+//			DebugLog(_T("Received obfuscated UDP packet from clientIP: %s with wrong key marker bits (kad packet, recvkey key, nodeid bit)"), ipstr(dwIP));
 
 		uint8_t padLen;
 		receivebuffer.RC4Crypt(bufIn + 7, (uint8_t*)&padLen, 1);
@@ -284,16 +284,17 @@ int CEncryptedDatagramSocket::EncryptSendClient(uint8_t **buf, int bufLen, const
 			PokeUInt32(keyData, receiverVerifyKey);
 			PokeUInt16(keyData+4, randomKeyPart);
 			md5.Calculate(keyData, sizeof(keyData));
-			//DEBUG_ONLY( DebugLog(_T("Creating obfuscated Kad packet encrypted by ReceiverKey (%u)"), nReceiverVerifyKey) );  
+			//DEBUG_ONLY( DebugLog(_T("Creating obfuscated Kad packet encrypted by ReceiverKey (%u)"), nReceiverVerifyKey) );
 		}
 		else if (clientHashOrKadID != NULL && !CMD4Hash(clientHashOrKadID).IsEmpty()) {
 			uint8_t keyData[18];
 			md4cpy(keyData, clientHashOrKadID);
 			PokeUInt16(keyData+16, randomKeyPart);
 			md5.Calculate(keyData, sizeof(keyData));
-			//DEBUG_ONLY( DebugLog(_T("Creating obfuscated Kad packet encrypted by Hash/NodeID %s"), md4str(pachClientHashOrKadID)) );  
+			//DEBUG_ONLY( DebugLog(_T("Creating obfuscated Kad packet encrypted by Hash/NodeID %s"), md4str(pachClientHashOrKadID)) );
 		}
 		else {
+			delete [] cryptedBuffer;
 			wxFAIL;
 			return bufLen;
 		}
diff --git a/src/EncryptedDatagramSocket.h b/src/EncryptedDatagramSocket.h
index 86d7873..b99f7d3 100644
--- a/src/EncryptedDatagramSocket.h
+++ b/src/EncryptedDatagramSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -32,7 +32,7 @@
 class CEncryptedDatagramSocket : public CDatagramSocketProxy
 {
 public:
-	CEncryptedDatagramSocket(wxIPaddress &address, wxSocketFlags flags = wxSOCKET_NONE, const CProxyData *proxyData = NULL);
+	CEncryptedDatagramSocket(amuleIPV4Address &address, wxSocketFlags flags = wxSOCKET_NONE, const CProxyData *proxyData = NULL);
 	virtual ~CEncryptedDatagramSocket();
 
 // TODO: Make protected once the UDP socket is again its own class.
diff --git a/src/EncryptedStreamSocket.cpp b/src/EncryptedStreamSocket.cpp
index de490fa..3c4b3bd 100644
--- a/src/EncryptedStreamSocket.cpp
+++ b/src/EncryptedStreamSocket.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,7 +37,7 @@
 			-> The handshake is encrypted - except otherwise noted - by the Keys created above
 			-> Handshake is blocking - do not start sending an answer before the request is completely received (this includes the random bytes)
 			-> EncryptionMethod = 0 is Obfuscation and the only supported method right now
-		Client A: <SemiRandomNotProtocolMarker 1[Unencrypted]><RandomKeyPart 4[Unencrypted]><MagicValue 4><EncryptionMethodsSupported 1><EncryptionMethodPreferred 1><PaddingLen 1><RandomBytes PaddingLen%max256>	
+		Client A: <SemiRandomNotProtocolMarker 1[Unencrypted]><RandomKeyPart 4[Unencrypted]><MagicValue 4><EncryptionMethodsSupported 1><EncryptionMethodPreferred 1><PaddingLen 1><RandomBytes PaddingLen%max256>
 		Client B: <MagicValue 4><EncryptionMethodsSelected 1><PaddingLen 1><RandomBytes PaddingLen%max256>
 			-> The basic handshake is finished here, if an additional/different EncryptionMethod was selected it may continue negotiating details for this one
 
@@ -183,7 +183,7 @@ void CEncryptedStreamSocket::SetConnectionEncryption(bool bEnabled, const uint8_
 // together with the fact that each byte must pass the keystream only once
 int CEncryptedStreamSocket::Write(const void* lpBuf, uint32_t nBufLen)
 {
-	//printf("Starting write for %s\n", (const char*) unicode2char(DbgGetIPString()));	
+	//printf("Starting write for %s\n", (const char*) unicode2char(GetPeer()));
 	if (!IsEncryptionLayerReady()) {
 		wxFAIL;
 		return 0;
@@ -203,26 +203,24 @@ int CEncryptedStreamSocket::Write(const void* lpBuf, uint32_t nBufLen)
 		//this happens when the encryption option was not set on an outgoing connection
 		//or if we try to send before receiving on an incoming connection - both shouldn't happen
 		m_StreamCryptState = ECS_NONE;
-		//DebugLogError(_T("CEncryptedStreamSocket: Overwriting State ECS_UNKNOWN with ECS_NONE because of premature Send() (%s)"), DbgGetIPString());
+		//DebugLogError(_T("CEncryptedStreamSocket: Overwriting State ECS_UNKNOWN with ECS_NONE because of premature Send() (%s)"), GetPeer());
 	}
 
 	//printf("Writing %i bytes of data\n", nBufLen);
-	CSocketClientProxy::Write(lpBuf, nBufLen);
-	return CSocketClientProxy::LastCount();
+	return CSocketClientProxy::Write(lpBuf, nBufLen);
 }
 
 int CEncryptedStreamSocket::Read(void* lpBuf, uint32_t nBufLen)
 {
-	CSocketClientProxy::Read(lpBuf, nBufLen);
-	m_nObfusicationBytesReceived = CSocketClientProxy::LastCount();
+	m_nObfusicationBytesReceived = CSocketClientProxy::Read(lpBuf, nBufLen);
 	m_bFullReceive = m_nObfusicationBytesReceived == (uint32)nBufLen;
 
-	//printf("Read %i bytes on %s, socket %p\n", m_nObfusicationBytesReceived, (const char*) unicode2char(DbgGetIPString()), this);
-	
+	//printf("Read %i bytes on %s, socket %p\n", m_nObfusicationBytesReceived, (const char*) unicode2char(GetPeer()), this);
+
 	if (m_nObfusicationBytesReceived == (uint32_t)SOCKET_ERROR || m_nObfusicationBytesReceived <= 0) {
 		return m_nObfusicationBytesReceived;
 	}
-	
+
 	switch (m_StreamCryptState) {
 		case ECS_NONE: // disabled, just pass it through
 			return m_nObfusicationBytesReceived;
@@ -244,7 +242,7 @@ int CEncryptedStreamSocket::Read(void* lpBuf, uint32_t nBufLen)
 					bNormalHeader = true;
 					break;
 			}
-			
+
 			if (!bNormalHeader) {
 				//printf("Not a normal header, negotiating encryption\n");
 				StartNegotiation(false);
@@ -256,7 +254,7 @@ int CEncryptedStreamSocket::Read(void* lpBuf, uint32_t nBufLen)
 				if (nRead != (uint32_t)m_nObfusicationBytesReceived) {
 					// this means we have more data then the current negotiation step required (or there is a bug) and this should never happen
 					// (note: even if it just finished the handshake here, there still can be no data left, since the other client didn't receive our response yet)
-					//DebugLogError(_T("CEncryptedStreamSocket: Client %s sent more data then expected while negotiating, disconnecting (1)"), DbgGetIPString());
+					//DebugLogError(_T("CEncryptedStreamSocket: Client %s sent more data then expected while negotiating, disconnecting (1)"), GetPeer());
 					//printf("On error: encryption\n");
 					OnError(ERR_ENCRYPTION);
 				}
@@ -265,7 +263,7 @@ int CEncryptedStreamSocket::Read(void* lpBuf, uint32_t nBufLen)
 				// doesn't seem to be encrypted
 				//printf("Encrypted data doesn't seem to be encrypted\n");
 				m_StreamCryptState = ECS_NONE;
-				
+
 				// if we require an encrypted connection, cut the connection here. This shouldn't happen that often
 				// at least with other up-to-date eMule clients because they check for incompability before connecting if possible
 				if (thePrefs::IsClientCryptLayerRequired()) {
@@ -276,16 +274,14 @@ int CEncryptedStreamSocket::Read(void* lpBuf, uint32_t nBufLen)
 					// until servers and kad completely support encryption too, which will at least for kad take a bit
 					// only exception is the .ini option ClientCryptLayerRequiredStrict which will even ignore test connections
 					// Update: New server now support encrypted callbacks
-					amuleIPV4Address address;
-					GetPeer(address);
-					uint32_t ip = StringIPtoUint32(address.IPAddress());
+					uint32_t ip = GetPeerInt();
 					if (thePrefs::IsClientCryptLayerRequiredStrict() || (!theApp->serverconnect->AwaitingTestFromIP(ip)
 						&& !theApp->clientlist->IsKadFirewallCheckIP(ip)) )
 					{
 						OnError(ERR_ENCRYPTION_NOTALLOWED);
 						return 0;
 					} else {
-						//AddDebugLogLine(DLP_DEFAULT, false, _T("Incoming unencrypted firewallcheck connection permitted despite RequireEncryption setting  - %s"), DbgGetIPString() );
+						//AddDebugLogLine(DLP_DEFAULT, false, _T("Incoming unencrypted firewallcheck connection permitted despite RequireEncryption setting  - %s"), GetPeer() );
 					}
 				}
 				return m_nObfusicationBytesReceived; // buffer was unchanged, we can just pass it through
@@ -306,13 +302,13 @@ int CEncryptedStreamSocket::Read(void* lpBuf, uint32_t nBufLen)
 			} else if (nRead != (uint32_t)m_nObfusicationBytesReceived && m_StreamCryptState != ECS_ENCRYPTING) {
 				//printf("-> Too much data, bailing out of negotiation step\n");
 				// this means we have more data then the current negotiation step required (or there is a bug) and this should never happen
-				//DebugLogError(_T("CEncryptedStreamSocket: Client %s sent more data then expected while negotiating, disconnecting (2)"), DbgGetIPString());
+				//DebugLogError(_T("CEncryptedStreamSocket: Client %s sent more data then expected while negotiating, disconnecting (2)"), GetPeer());
 				OnError(ERR_ENCRYPTION);
 				return 0;
 			} else if (nRead != (uint32_t)m_nObfusicationBytesReceived && m_StreamCryptState == ECS_ENCRYPTING) {
 				//printf("-> Handshake negotiation finished\n");
 				// we finished the handshake and if we this was an outgoing connection it is allowed (but strange and unlikely) that the client sent payload
-				//DebugLogWarning(_T("CEncryptedStreamSocket: Client %s has finished the handshake but also sent payload on a outgoing connection"), DbgGetIPString());
+				//DebugLogWarning(_T("CEncryptedStreamSocket: Client %s has finished the handshake but also sent payload on a outgoing connection"), GetPeer());
 				memmove(lpBuf, (uint8_t*)lpBuf + nRead, m_nObfusicationBytesReceived - nRead);
 				return m_nObfusicationBytesReceived - nRead;
 			} else {
@@ -330,7 +326,7 @@ void CEncryptedStreamSocket::OnSend(int)
 {
 	// if the socket just connected and this is outgoing, we might want to start the handshake here
 	if (m_StreamCryptState == ECS_PENDING || m_StreamCryptState == ECS_PENDING_SERVER){
-		//printf("Starting connection negotiation on OnSend for %s\n", (const char*) unicode2char(DbgGetIPString()));
+		//printf("Starting connection negotiation on OnSend for %s\n", (const char*) unicode2char(GetPeer()));
 		StartNegotiation(true);
 		return;
 	}
@@ -352,10 +348,10 @@ void CEncryptedStreamSocket::CryptPrepareSendData(uint8* pBuffer, uint32 nLen)
 		//this happens when the encryption option was not set on an outgoing connection
 		//or if we try to send before receiving on an incoming connection - both shouldn't happen
 		m_StreamCryptState = ECS_NONE;
-		//DebugLogError(_T("CEncryptedStreamSocket: Overwriting State ECS_UNKNOWN with ECS_NONE because of premature Send() (%s)"), DbgGetIPString());
+		//DebugLogError(_T("CEncryptedStreamSocket: Overwriting State ECS_UNKNOWN with ECS_NONE because of premature Send() (%s)"), GetPeer());
 	}
 	if (m_StreamCryptState == ECS_ENCRYPTING) {
-		//printf("Preparing crypt data on %s\n", (const char*) unicode2char(DbgGetIPString()));
+		//printf("Preparing crypt data on %s\n", (const char*) unicode2char(GetPeer()));
 		//DumpMem(pBuffer, nLen, wxT("Before crypt prepare:\n"));
 		m_pfiSendBuffer.RC4Crypt(pBuffer, pBuffer, nLen);
 		//DumpMem(pBuffer, nLen, wxT("After crypt prepare:\n"));
@@ -374,7 +370,7 @@ void CEncryptedStreamSocket::StartNegotiation(bool bOutgoing)
 {
 	//printf("Starting socket negotiation\n");
 	if (!bOutgoing) {
-		//printf("Incoming connection negotiation on %s\n", (const char*) unicode2char(DbgGetIPString()));
+		//printf("Incoming connection negotiation on %s\n", (const char*) unicode2char(GetPeer()));
 		m_NegotiatingState = ONS_BASIC_CLIENTA_RANDOMPART;
 		m_StreamCryptState = ECS_NEGOTIATING;
 		m_nReceiveBytesWanted = 4;
@@ -461,7 +457,7 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 
 			if (m_NegotiatingState != ONS_BASIC_CLIENTA_RANDOMPART && m_NegotiatingState != ONS_BASIC_SERVER_DHANSWER) {
 				// We have the keys, decrypt
-				//printf("We have the keys, so decrypt away on %s\n", (const char*) unicode2char(DbgGetIPString()));
+				//printf("We have the keys, so decrypt away on %s\n", (const char*) unicode2char(GetPeer()));
 				m_pfiReceiveBuffer.Encrypt();
 			}
 
@@ -472,7 +468,7 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 					wxFAIL;
 					return 0;
 				case ONS_BASIC_CLIENTA_RANDOMPART: {
-					//printf("We are on ONS_BASIC_CLIENTA_RANDOMPART, create the keys on %s\n", (const char*) unicode2char(DbgGetIPString()));
+					//printf("We are on ONS_BASIC_CLIENTA_RANDOMPART, create the keys on %s\n", (const char*) unicode2char(GetPeer()));
 					// This creates the send/receive keys.
 
 					uint8_t achKeyData[21];
@@ -497,20 +493,20 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 				}
 				case ONS_BASIC_CLIENTA_MAGICVALUE: {
 					// Check the magic value to confirm encryption works.
-					//printf("Creating magic value on negotiate on %s\n", (const char*) unicode2char(DbgGetIPString()));
+					//printf("Creating magic value on negotiate on %s\n", (const char*) unicode2char(GetPeer()));
 
 					uint32_t dwValue = m_pfiReceiveBuffer.ReadUInt32();
 
 					if (dwValue == MAGICVALUE_SYNC) {
 						// yup, the one or the other way it worked, this is an encrypted stream
-						//DEBUG_ONLY( DebugLog(_T("Received proper magic value, clientIP: %s"), DbgGetIPString()) );
+						//DEBUG_ONLY( DebugLog(_T("Received proper magic value, clientIP: %s"), GetPeer()) );
 						// set the receiver key
-						//printf("Magic value works on %s\n", (const char*) unicode2char(DbgGetIPString()));
+						//printf("Magic value works on %s\n", (const char*) unicode2char(GetPeer()));
 						m_NegotiatingState = ONS_BASIC_CLIENTA_METHODTAGSPADLEN;
 						m_nReceiveBytesWanted = 3;
 					} else {
-						//printf("Wrong magic value: 0x%x != 0x%x on %s\n",dwValue, MAGICVALUE_SYNC, (const char*)unicode2char(DbgGetIPString()));
-						//DebugLogError(_T("CEncryptedStreamSocket: Received wrong magic value from clientIP %s on a supposly encrytped stream / Wrong Header"), DbgGetIPString());
+						//printf("Wrong magic value: 0x%x != 0x%x on %s\n",dwValue, MAGICVALUE_SYNC, (const char*)unicode2char(GetPeer()));
+						//DebugLogError(_T("CEncryptedStreamSocket: Received wrong magic value from clientIP %s on a supposly encrytped stream / Wrong Header"), GetPeer());
 						OnError(ERR_ENCRYPTION);
 						return (-1);
 					}
@@ -526,7 +522,7 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 
 					if (m_dbgbyEncryptionRequested != ENM_OBFUSCATION) {
 						//printf("Unsupported encryption method!\n");
-//						AddDebugLogLine(DLP_LOW, false, _T("CEncryptedStreamSocket: Client %s preffered unsupported encryption method (%i)"), DbgGetIPString(), m_dbgbyEncryptionRequested);
+//						AddDebugLogLine(DLP_LOW, false, _T("CEncryptedStreamSocket: Client %s preffered unsupported encryption method (%i)"), GetPeer(), m_dbgbyEncryptionRequested);
 					}
 
 					m_nReceiveBytesWanted = m_pfiReceiveBuffer.ReadUInt8();
@@ -545,9 +541,7 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 					const uint8_t bySelectedEncryptionMethod = ENM_OBFUSCATION; // we do not support any further encryption in this version, so no need to look which the other client preferred
 					fileResponse.WriteUInt8(bySelectedEncryptionMethod);
 
-					amuleIPV4Address address;
-					GetPeer(address);
-					const uint8_t byPaddingLen = theApp->serverconnect->AwaitingTestFromIP(StringIPtoUint32(address.IPAddress())) ? 16 : (thePrefs::GetCryptTCPPaddingLength() + 1);
+					const uint8_t byPaddingLen = theApp->serverconnect->AwaitingTestFromIP(GetPeerInt()) ? 16 : (thePrefs::GetCryptTCPPaddingLength() + 1);
 					uint8_t byPadding = (uint8_t)(GetRandomUint8() % byPaddingLen);
 
 					fileResponse.WriteUInt8(byPadding);
@@ -557,13 +551,13 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 					SendNegotiatingData(fileResponse.GetRawBuffer(), (uint32_t)fileResponse.GetLength());
 					m_NegotiatingState = ONS_COMPLETE;
 					m_StreamCryptState = ECS_ENCRYPTING;
-					//DEBUG_ONLY( DebugLog(_T("CEncryptedStreamSocket: Finished Obufscation handshake with client %s (incoming)"), DbgGetIPString()) );
+					//DEBUG_ONLY( DebugLog(_T("CEncryptedStreamSocket: Finished Obufscation handshake with client %s (incoming)"), GetPeer()) );
 					break;
 				}
 				case ONS_BASIC_CLIENTB_MAGICVALUE: {
 					//printf("Negotiating on magic value\n");
 					if (m_pfiReceiveBuffer.ReadUInt32() != MAGICVALUE_SYNC) {
-						//DebugLogError(_T("CEncryptedStreamSocket: EncryptedstreamSyncError: Client sent wrong Magic Value as answer, cannot complete handshake (%s)"), DbgGetIPString());
+						//DebugLogError(_T("CEncryptedStreamSocket: EncryptedstreamSyncError: Client sent wrong Magic Value as answer, cannot complete handshake (%s)"), GetPeer());
 						OnError(ERR_ENCRYPTION);
 						return (-1);
 					}
@@ -575,7 +569,7 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 					//printf("Negotiating on client B pad length\n");
 					m_dbgbyEncryptionMethodSet = m_pfiReceiveBuffer.ReadUInt8();
 					if (m_dbgbyEncryptionMethodSet != ENM_OBFUSCATION) {
-						//DebugLogError( _T("CEncryptedStreamSocket: Client %s set unsupported encryption method (%i), handshake failed"), DbgGetIPString(), m_dbgbyEncryptionMethodSet);
+						//DebugLogError( _T("CEncryptedStreamSocket: Client %s set unsupported encryption method (%i), handshake failed"), GetPeer(), m_dbgbyEncryptionMethodSet);
 						OnError(ERR_ENCRYPTION);
 						return (-1);
 					}
@@ -590,7 +584,7 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 					// ignore the random bytes, the handshake is complete
 					m_NegotiatingState = ONS_COMPLETE;
 					m_StreamCryptState = ECS_ENCRYPTING;
-					//DEBUG_ONLY( DebugLog(_T("CEncryptedStreamSocket: Finished Obufscation handshake with client %s (outgoing)"), DbgGetIPString()) );
+					//DEBUG_ONLY( DebugLog(_T("CEncryptedStreamSocket: Finished Obufscation handshake with client %s (outgoing)"), GetPeer()) );
 					break;
 				case ONS_BASIC_SERVER_DHANSWER: {
 					wxASSERT( !m_cryptDHA.IsZero() );
@@ -621,12 +615,12 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 					uint32_t dwValue = m_pfiReceiveBuffer.ReadUInt32();
 					if (dwValue == MAGICVALUE_SYNC) {
 						// yup, the one or the other way it worked, this is an encrypted stream
-						//DebugLog(_T("Received proper magic value after DH-Agreement from Serverconnection IP: %s"), DbgGetIPString());
+						//DebugLog(_T("Received proper magic value after DH-Agreement from Serverconnection IP: %s"), GetPeer());
 						// set the receiver key
 						m_NegotiatingState = ONS_BASIC_SERVER_METHODTAGSPADLEN;
 						m_nReceiveBytesWanted = 3;
 					} else {
-						//DebugLogError(_T("CEncryptedStreamSocket: Received wrong magic value after DH-Agreement from Serverconnection"), DbgGetIPString());
+						//DebugLogError(_T("CEncryptedStreamSocket: Received wrong magic value after DH-Agreement from Serverconnection"), GetPeer());
 						OnError(ERR_ENCRYPTION);
 						return (-1);
 					}
@@ -636,7 +630,7 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 					m_dbgbyEncryptionSupported = m_pfiReceiveBuffer.ReadUInt8();
 					m_dbgbyEncryptionRequested = m_pfiReceiveBuffer.ReadUInt8();
 					if (m_dbgbyEncryptionRequested != ENM_OBFUSCATION) {
-	//					AddDebugLogLine(DLP_LOW, false, _T("CEncryptedStreamSocket: Server %s preffered unsupported encryption method (%i)"), DbgGetIPString(), m_dbgbyEncryptionRequested);
+	//					AddDebugLogLine(DLP_LOW, false, _T("CEncryptedStreamSocket: Server %s preffered unsupported encryption method (%i)"), GetPeer(), m_dbgbyEncryptionRequested);
 					}
 					m_nReceiveBytesWanted = m_pfiReceiveBuffer.ReadUInt8();
 					m_NegotiatingState = ONS_BASIC_SERVER_PADDING;
@@ -661,7 +655,7 @@ int CEncryptedStreamSocket::Negotiate(const uint8* pBuffer, uint32 nLen)
 					m_NegotiatingState = ONS_BASIC_SERVER_DELAYEDSENDING;
 					SendNegotiatingData(fileResponse.GetRawBuffer(), (uint32_t)fileResponse.GetLength(), 0, true); // don't actually send it right now, store it in our sendbuffer
 					m_StreamCryptState = ECS_ENCRYPTING;
-					//DEBUG_ONLY( DebugLog(_T("CEncryptedStreamSocket: Finished DH Obufscation handshake with Server %s"), DbgGetIPString()) );
+					//DEBUG_ONLY( DebugLog(_T("CEncryptedStreamSocket: Finished DH Obufscation handshake with Server %s"), GetPeer()) );
 					break;
 				}
 				default:
@@ -686,7 +680,7 @@ int CEncryptedStreamSocket::SendNegotiatingData(const void* lpBuf, uint32_t nBuf
 	wxASSERT( m_StreamCryptState == ECS_NEGOTIATING || m_StreamCryptState == ECS_ENCRYPTING );
 	wxASSERT( nStartCryptFromByte <= nBufLen );
 	wxASSERT( m_NegotiatingState == ONS_BASIC_SERVER_DELAYEDSENDING || !bDelaySend );
-	//printf("Send negotiation data on %s\n", (const char*) unicode2char(DbgGetIPString()));
+	//printf("Send negotiation data on %s\n", (const char*) unicode2char(GetPeer()));
 	uint8_t* pBuffer = NULL;
 	bool bProcess = false;
 	if (lpBuf != NULL) {
@@ -700,7 +694,7 @@ int CEncryptedStreamSocket::SendNegotiatingData(const void* lpBuf, uint32_t nBuf
 		}
 
 		if (nBufLen - nStartCryptFromByte > 0) {
-			//printf("Crypting negotiation data on %s starting on byte %i\n", (const char*) unicode2char(DbgGetIPString()), nStartCryptFromByte);
+			//printf("Crypting negotiation data on %s starting on byte %i\n", (const char*) unicode2char(GetPeer()), nStartCryptFromByte);
 			//DumpMem(lpBuf, nBufLen, wxT("Pre-encryption:"));
 			m_pfiSendBuffer.RC4Crypt((uint8*)lpBuf + nStartCryptFromByte, pBuffer + nStartCryptFromByte, nBufLen - nStartCryptFromByte);
 			//DumpMem(pBuffer, nBufLen, wxT("Post-encryption:"));
@@ -735,9 +729,8 @@ int CEncryptedStreamSocket::SendNegotiatingData(const void* lpBuf, uint32_t nBuf
 
 	uint32_t result = 0;
 	if (!bDelaySend) {
-		//printf("Writing negotiation data on %s: ", (const char*) unicode2char(DbgGetIPString()));					
-		CSocketClientProxy::Write(pBuffer, nBufLen);
-		result = CSocketClientProxy::LastCount();
+		//printf("Writing negotiation data on %s: ", (const char*) unicode2char(GetPeer()));
+		result = CSocketClientProxy::Write(pBuffer, nBufLen);
 		//printf("Wrote %i bytes\n",result);
 	}
 
@@ -748,7 +741,7 @@ int CEncryptedStreamSocket::SendNegotiatingData(const void* lpBuf, uint32_t nBuf
 	} else {
 		if (result < nBufLen) {
 			// Store the partial data pending
-			//printf("Partial negotiation pending on %s\n", (const char*) unicode2char(DbgGetIPString()));
+			//printf("Partial negotiation pending on %s\n", (const char*) unicode2char(GetPeer()));
 			m_pfiSendBuffer.Write(pBuffer + result, nBufLen - result);
 		}
 		delete[] pBuffer;
@@ -756,12 +749,6 @@ int CEncryptedStreamSocket::SendNegotiatingData(const void* lpBuf, uint32_t nBuf
 	}
 }
 
-wxString CEncryptedStreamSocket::DbgGetIPString()
-{
-	amuleIPV4Address address;
-	GetPeer(address);
-	return address.IPAddress();
-}
 
 uint8_t CEncryptedStreamSocket::GetSemiRandomNotProtocolMarker() const
 {
diff --git a/src/EncryptedStreamSocket.h b/src/EncryptedStreamSocket.h
index dc0a750..2e2d7ec 100644
--- a/src/EncryptedStreamSocket.h
+++ b/src/EncryptedStreamSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -110,7 +110,6 @@ protected:
 	virtual void OnError(int /*nErrorCode*/) {};
 	virtual void OnSend(int nErrorCode);
 
-	wxString	DbgGetIPString();
 	void		CryptPrepareSendData(uint8_t* pBuffer, uint32_t nLen);
 	bool		IsEncryptionLayerReady();
 	uint8_t		GetSemiRandomNotProtocolMarker() const;
diff --git a/src/ExternalConn.cpp b/src/ExternalConn.cpp
index f6764a6..cad7c80 100644
--- a/src/ExternalConn.cpp
+++ b/src/ExternalConn.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -55,6 +55,7 @@
 #include "RandomFunctions.h"
 #include "kademlia/kademlia/Kademlia.h"
 #include "kademlia/kademlia/UDPFirewallTester.h"
+#include "Statistics.h"
 
 
 //-------------------- File_Encoder --------------------
@@ -88,7 +89,7 @@ public:
 
 /*!
  * PartStatus strings and gap lists are quite long - RLE encoding will help.
- * 
+ *
  * Instead of sending each time full part-status string, send
  * RLE encoded difference from previous one.
  *
@@ -108,17 +109,17 @@ class CPartFile_Encoder : public CKnownFile_Encoder {
 	bool m_shared;
 
 	// cast inherited member to CPartFile
-	CPartFile * m_PartFile() { wxASSERT(m_file->IsCPartFile()); return (CPartFile *)m_file; }
+	const CPartFile * m_PartFile() { wxCHECK(m_file->IsCPartFile(), NULL); return static_cast<const CPartFile *>(m_file); }
 public:
 	// encoder side
 	CPartFile_Encoder(const CPartFile *file = 0) : CKnownFile_Encoder(file)
-	{ 
+	{
 		m_sourcenameID = 0;
 		m_shared = false;
 	}
 
 	virtual ~CPartFile_Encoder() {}
-	
+
 	// encode - take data from m_file
 	virtual void Encode(CECTag *parent_tag);
 
@@ -140,7 +141,7 @@ public:
 CFileEncoderMap::~CFileEncoderMap()
 {
 	// DeleteContents() causes infinite recursion here!
-	for (iterator it = begin(); it != end(); it++) {
+	for (iterator it = begin(); it != end(); ++it) {
 		delete it->second;
 	}
 }
@@ -180,13 +181,13 @@ void CFileEncoderMap::UpdateEncoders()
 	// (std::map documentation is unclear if a construct like
 	//		iterator to_del = it++; erase(to_del) ;
 	// works or invalidates it too.)
-	for (iterator it = begin(); it != end(); it++) {
+	for (iterator it = begin(); it != end(); ++it) {
 		if (!curr_files.count(it->first)) {
 			dead_files.insert(it->first);
 		}
 	}
 	// then delete them
-	for (IDSet::iterator it = dead_files.begin(); it != dead_files.end(); it++) {
+	for (IDSet::iterator it = dead_files.begin(); it != dead_files.end(); ++it) {
 		iterator it2 = find(*it);
 		delete it2->second;
 		erase(it2);
@@ -317,16 +318,16 @@ ExternalConn::ExternalConn(amuleIPV4Address addr, wxString *msg)
 			AddLogLineC(_("External connections disabled due to empty password!"));
 			return;
 		}
-		
+
 		// Create the socket
-		m_ECServer = new wxSocketServer(addr, wxSOCKET_REUSEADDR);
+		m_ECServer = new CExternalConnListener(addr, wxSOCKET_REUSEADDR, this);
 		m_ECServer->SetEventHandler(*this, SERVER_ID);
 		m_ECServer->SetNotify(wxSOCKET_CONNECTION_FLAG);
 		m_ECServer->Notify(true);
 
 		int port = addr.Service();
 		wxString ip = addr.IPAddress();
-		if (m_ECServer->Ok()) {
+		if (m_ECServer->IsOk()) {
 			msgLocal = CFormat(wxT("*** TCP socket (ECServer) listening on %s:%d")) % ip % port;
 			*msg += msgLocal + wxT("\n");
 			AddLogLineN(msgLocal);
@@ -376,6 +377,7 @@ void ExternalConn::KillAllSockets()
 		s->Close();
 		s->Destroy();
 	}
+	socket_list.clear();
 }
 
 
@@ -391,18 +393,24 @@ void ExternalConn::ResetAllLogs()
 
 void ExternalConn::OnServerEvent(wxSocketEvent& WXUNUSED(event))
 {
-	CECServerSocket *sock = new CECServerSocket(m_ec_notifier);
+	m_ECServer->OnAccept();
+}
+
+
+void CExternalConnListener::OnAccept()
+{
+	CECServerSocket *sock = new CECServerSocket(m_conn->m_ec_notifier);
 	// Accept new connection if there is one in the pending
 	// connections queue, else exit. We use Accept(FALSE) for
 	// non-blocking accept (although if we got here, there
 	// should ALWAYS be a pending connection).
-	if ( m_ECServer->AcceptWith(*sock, false) ) {
+	if (AcceptWith(*sock, false)) {
 		AddLogLineN(_("New external connection accepted"));
 	} else {
 		delete sock;
 		AddLogLineN(_("ERROR: couldn't accept a new external connection"));
 	}
-	
+
 }
 
 //
@@ -411,22 +419,24 @@ void ExternalConn::OnServerEvent(wxSocketEvent& WXUNUSED(event))
 const CECPacket *CECServerSocket::Authenticate(const CECPacket *request)
 {
 	CECPacket *response;
-	
+
 	if (request == NULL) {
 		return new CECPacket(EC_OP_AUTH_FAIL);
 	}
 
 	// Password must be specified if we are to allow remote connections
 	if ( thePrefs::ECPassword().IsEmpty() ) {
-		AddLogLineC(_("External connection refused due to empty password in preferences!"));	
-		
+		AddLogLineC(_("External connection refused due to empty password in preferences!"));
+
 		return new CECPacket(EC_OP_AUTH_FAIL);
 	}
-		
+
 	if ((m_conn_state == CONN_INIT) && (request->GetOpCode() == EC_OP_AUTH_REQ) ) {
+		// cppcheck-suppress unreadVariable
 		const CECTag *clientName = request->GetTagByName(EC_TAG_CLIENT_NAME);
+		// cppcheck-suppress unreadVariable
 		const CECTag *clientVersion = request->GetTagByName(EC_TAG_CLIENT_VERSION);
-		
+
 		AddLogLineN(CFormat( _("Connecting client: %s %s") )
 			% ( clientName ? clientName->GetStringData() : wxString(_("Unknown")) )
 			% ( clientVersion ? clientVersion->GetStringData() : wxString(_("Unknown version")) ) );
@@ -442,7 +452,7 @@ const CECPacket *CECServerSocket::Authenticate(const CECPacket *request)
 			response->AddTag(CECTag(EC_TAG_STRING, wxTRANSLATE("Incorrect EC version ID, there might be binary incompatibility. Use core and remote from same snapshot.")));
 #else
 		// For release versions, we don't want to allow connections from any arbitrary SVN client.
-		if (request->GetTagByName(EC_TAG_VERSION_ID)) { 
+		if (request->GetTagByName(EC_TAG_VERSION_ID)) {
 			response = new CECPacket(EC_OP_AUTH_FAIL);
 			response->AddTag(CECTag(EC_TAG_STRING, wxTRANSLATE("You cannot connect to a release version from an arbitrary development snapshot! *sigh* possible crash prevented")));
 #endif
@@ -455,21 +465,17 @@ const CECPacket *CECServerSocket::Authenticate(const CECPacket *request)
 				//
 				// So far ok, check capabilities of client
 				//
-				bool canZLIB = false, canUTF8numbers = false;
 				if (request->GetTagByName(EC_TAG_CAN_ZLIB)) {
-					canZLIB = true;
 					m_my_flags |= EC_FLAG_ZLIB;
 				}
 				if (request->GetTagByName(EC_TAG_CAN_UTF8_NUMBERS)) {
-					canUTF8numbers = true;
 					m_my_flags |= EC_FLAG_UTF8_NUMBERS;
 				}
 				m_haveNotificationSupport = request->GetTagByName(EC_TAG_CAN_NOTIFY) != NULL;
 				AddDebugLogLineN(logEC, CFormat(wxT("Client capabilities: ZLIB: %s  UTF8 numbers: %s  Push notification: %s") )
-					% (canZLIB ? wxT("yes") : wxT("no"))
-					% (canUTF8numbers ? wxT("yes") : wxT("no"))
+					% ((m_my_flags & EC_FLAG_ZLIB) ? wxT("yes") : wxT("no"))
+					% ((m_my_flags & EC_FLAG_UTF8_NUMBERS) ? wxT("yes") : wxT("no"))
 					% (m_haveNotificationSupport ? wxT("yes") : wxT("no")));
-				if (canZLIB && canUTF8numbers) {}	// get rid of unused variable warning
 			} else {
 				response = new CECPacket(EC_OP_AUTH_FAIL);
 				response->AddTag(CECTag(EC_TAG_STRING, wxTRANSLATE("Invalid protocol version.")
@@ -485,16 +491,16 @@ const CECPacket *CECServerSocket::Authenticate(const CECPacket *request)
 
 		if (!passh.Decode(thePrefs::ECPassword())) {
 			wxString err = wxTRANSLATE("Authentication failed: invalid hash specified as EC password.");
-			AddLogLineN(wxString(wxGetTranslation(err)) 
+			AddLogLineN(wxString(wxGetTranslation(err))
 						+ wxT(" ") + thePrefs::ECPassword());
 			response = new CECPacket(EC_OP_AUTH_FAIL);
-			response->AddTag(CECTag(EC_TAG_STRING, err));				
+			response->AddTag(CECTag(EC_TAG_STRING, err));
 		} else {
 			wxString saltHash = MD5Sum(CFormat(wxT("%lX")) % m_passwd_salt).GetHash();
 			wxString saltStr = CFormat(wxT("%lX")) % m_passwd_salt;
-			
+
 			passh.Decode(MD5Sum(thePrefs::ECPassword().Lower() + saltHash).GetHash());
-			
+
 			if (passwd && passwd->GetMD4Data() == passh) {
 				response = new CECPacket(EC_OP_AUTH_OK);
 				response->AddTag(CECTag(EC_TAG_SERVER_VERSION, wxT(VERSION)));
@@ -515,7 +521,7 @@ const CECPacket *CECServerSocket::Authenticate(const CECPacket *request)
 		response = new CECPacket(EC_OP_AUTH_FAIL);
 		response->AddTag(CECTag(EC_TAG_STRING, wxTRANSLATE("Invalid request, please authenticate first.")));
 	}
-	
+
 	if (response->GetOpCode() == EC_OP_AUTH_OK) {
 		m_conn_state = CONN_ESTABLISHED;
 		AddLogLineN(_("Access granted."));
@@ -529,9 +535,7 @@ const CECPacket *CECServerSocket::Authenticate(const CECPacket *request)
 			AddLogLineN(CFormat(_("Sent error message \"%s\" to client.")) % wxGetTranslation(response->GetFirstTagSafe()->GetStringData()));
 		}
 		// Access denied!
-		amuleIPV4Address address;
-		GetPeer(address);
-		AddLogLineN(CFormat(_("Unauthorized access attempt from %s. Connection closed.")) % address.IPAddress() );
+		AddLogLineN(CFormat(_("Unauthorized access attempt from %s. Connection closed.")) % GetPeer() );
 		m_conn_state = CONN_FAILED;
 	}
 
@@ -590,6 +594,7 @@ static CECPacket *Get_EC_Response_StatRequest(const CECPacket *request, CLoggerA
 				response->AddTag(CECTag(EC_TAG_STATS_KAD_USERS, Kademlia::CKademlia::GetKademliaUsers()));
 				response->AddTag(CECTag(EC_TAG_STATS_ED2K_FILES, totalfile));
 				response->AddTag(CECTag(EC_TAG_STATS_KAD_FILES, Kademlia::CKademlia::GetKademliaFiles()));
+				response->AddTag(CECTag(EC_TAG_STATS_KAD_NODES, CStatistics::GetKadNodes()));
 			}
 			// Kad stats
 			if (Kademlia::CKademlia::IsConnected()) {
@@ -630,9 +635,9 @@ static CECPacket *Get_EC_Response_GetSharedFiles(const CECPacket *request, CFile
 	CTagSet<uint32, EC_TAG_KNOWNFILE> queryitems(request);
 
 	encoders.UpdateEncoders();
-	
+
 	for (uint32 i = 0; i < theApp->sharedfiles->GetFileCount(); ++i) {
-		CKnownFile *cur_file = (CKnownFile *)theApp->sharedfiles->GetFileByIndex(i);
+		const CKnownFile *cur_file = theApp->sharedfiles->GetFileByIndex(i);
 
 		if ( !cur_file || (!queryitems.empty() && !queryitems.count(cur_file->ECID())) ) {
 			continue;
@@ -661,11 +666,11 @@ static CECPacket *Get_EC_Response_GetUpdate(CFileEncoderMap &encoders, CObjTagMa
 		// but encoded as KnownFile, so we have to check the encoder type
 		// instead of the file type.
 		if (it->second->IsPartFile_Encoder()) {
-			CEC_PartFile_Tag filetag((const CPartFile*) cur_file, EC_DETAIL_INC_UPDATE, &valuemap);
+			CEC_PartFile_Tag filetag(static_cast<const CPartFile*>(cur_file), EC_DETAIL_INC_UPDATE, &valuemap);
 			// Add information if partfile is shared
 			filetag.AddTag(EC_TAG_PARTFILE_SHARED, it->second->IsShared(), &valuemap);
 
-			CPartFile_Encoder * enc = (CPartFile_Encoder *) encoders[cur_file->ECID()];
+			CPartFile_Encoder * enc = static_cast<CPartFile_Encoder *>(encoders[cur_file->ECID()]);
 			enc->Encode(&filetag);
 			response->AddTag(filetag);
 		} else {
@@ -680,7 +685,7 @@ static CECPacket *Get_EC_Response_GetUpdate(CFileEncoderMap &encoders, CObjTagMa
 	CECEmptyTag clients(EC_TAG_CLIENT);
 	const CClientList::IDMap& clientList = theApp->clientlist->GetClientList();
 	bool onlyTransmittingClients = thePrefs::IsTransmitOnlyUploadingClients();
-	for (CClientList::IDMap::const_iterator it = clientList.begin(); it != clientList.end(); it++) {
+	for (CClientList::IDMap::const_iterator it = clientList.begin(); it != clientList.end(); ++it) {
 		const CUpDownClient* cur_client = it->second.GetClient();
 		if (onlyTransmittingClients && !cur_client->IsDownloading()) {
 			// For poor CPU cores only transmit uploading clients. This will save a lot of CPU.
@@ -705,7 +710,7 @@ static CECPacket *Get_EC_Response_GetUpdate(CFileEncoderMap &encoders, CObjTagMa
 
 	// Add friends
 	CECEmptyTag friends(EC_TAG_FRIEND);
-	for (CFriendList::const_iterator it = theApp->friendlist->begin(); it != theApp->friendlist->end(); it++) {
+	for (CFriendList::const_iterator it = theApp->friendlist->begin(); it != theApp->friendlist->end(); ++it) {
 		const CFriend* cur_friend = *it;
 		CValueMap &valuemap = tagmap.GetValueMap(cur_friend->ECID());
 		friends.AddTag(CEC_Friend_Tag(cur_friend, &valuemap));
@@ -718,7 +723,7 @@ static CECPacket *Get_EC_Response_GetUpdate(CFileEncoderMap &encoders, CObjTagMa
 static CECPacket *Get_EC_Response_GetClientQueue(const CECPacket *request, CObjTagMap &tagmap, int op)
 {
 	CECPacket *response = new CECPacket(op);
-	
+
 	EC_DETAIL_LEVEL detail_level = request->GetDetailLevel();
 
 	//
@@ -742,7 +747,7 @@ static CECPacket *Get_EC_Response_GetClientQueue(const CECPacket *request, CObjT
 			valuemap = &tagmap.GetValueMap(cur_client->ECID());
 		}
 		CEC_UpDownClient_Tag cli_tag(cur_client, detail_level, valuemap);
-		
+
 		response->AddTag(cli_tag);
 	}
 
@@ -751,26 +756,26 @@ static CECPacket *Get_EC_Response_GetClientQueue(const CECPacket *request, CObjT
 
 
 static CECPacket *Get_EC_Response_GetDownloadQueue(const CECPacket *request, CFileEncoderMap &encoders)
-{	
+{
 	CECPacket *response = new CECPacket(EC_OP_DLOAD_QUEUE);
 
 	EC_DETAIL_LEVEL detail_level = request->GetDetailLevel();
 	//
 	// request can contain list of queried items
 	CTagSet<uint32, EC_TAG_PARTFILE> queryitems(request);
-	
+
 	encoders.UpdateEncoders();
 
 	for (unsigned int i = 0; i < theApp->downloadqueue->GetFileCount(); i++) {
 		CPartFile *cur_file = theApp->downloadqueue->GetFileByIndex(i);
-	
+
 		if ( !queryitems.empty() && !queryitems.count(cur_file->ECID()) ) {
 			continue;
 		}
 
 		CEC_PartFile_Tag filetag(cur_file, detail_level);
-		
-		CPartFile_Encoder * enc = (CPartFile_Encoder *) encoders[cur_file->ECID()];
+
+		CPartFile_Encoder * enc = static_cast<CPartFile_Encoder *>(encoders[cur_file->ECID()]);
 		if ( detail_level != EC_DETAIL_UPDATE ) {
 			enc->ResetEncoder();
 		}
@@ -787,14 +792,14 @@ static CECPacket *Get_EC_Response_PartFile_Cmd(const CECPacket *request)
 	CECPacket *response = NULL;
 
 	// request can contain multiple files.
-	for (CECPacket::const_iterator it1 = request->begin(); it1 != request->end(); it1++) {
+	for (CECPacket::const_iterator it1 = request->begin(); it1 != request->end(); ++it1) {
 		const CECTag &hashtag = *it1;
 
 		wxASSERT(hashtag.GetTagName() == EC_TAG_PARTFILE);
 
 		CMD4Hash hash = hashtag.GetMD4Data();
 		CPartFile *pfile = theApp->downloadqueue->GetFileByID( hash );
-		
+
 		if ( !pfile ) {
 			AddLogLineN(CFormat(_("Remote PartFile command failed: FileHash not found: %s")) % hash.Encode());
 			response = new CECPacket(EC_OP_FAILED);
@@ -861,14 +866,14 @@ static CECPacket *Get_EC_Response_Server_Add(const CECPacket *request)
 
 	wxString full_addr = request->GetTagByNameSafe(EC_TAG_SERVER_ADDRESS)->GetStringData();
 	wxString name = request->GetTagByNameSafe(EC_TAG_SERVER_NAME)->GetStringData();
-	
+
 	wxString s_ip = full_addr.Left(full_addr.Find(':'));
 	wxString s_port = full_addr.Mid(full_addr.Find(':') + 1);
-	
+
 	long port = StrToULong(s_port);
 	CServer* toadd = new CServer(port, s_ip);
 	toadd->SetListName(name.IsEmpty() ? full_addr : name);
-	
+
 	if ( theApp->AddServer(toadd, true) ) {
 		response = new CECPacket(EC_OP_NOOP);
 	} else {
@@ -876,7 +881,7 @@ static CECPacket *Get_EC_Response_Server_Add(const CECPacket *request)
 		response->AddTag(CECTag(EC_TAG_STRING, _("Server not added")));
 		delete toadd;
 	}
-	
+
 	return response;
 }
 
@@ -1007,7 +1012,7 @@ static CECPacket *Get_EC_Response_Friend(const CECPacket *request)
 static CECPacket *Get_EC_Response_Search_Results(const CECPacket *request)
 {
 	CECPacket *response = new CECPacket(EC_OP_SEARCH_RESULTS);
-		
+
 	EC_DETAIL_LEVEL detail_level = request->GetDetailLevel();
 	//
 	// request can contain list of queried items
@@ -1051,7 +1056,7 @@ static CECPacket *Get_EC_Response_Search_Results(CObjTagMap &tagmap)
 static CECPacket *Get_EC_Response_Search_Results_Download(const CECPacket *request)
 {
 	CECPacket *response = new CECPacket(EC_OP_STRINGS);
-	for (CECPacket::const_iterator it = request->begin(); it != request->end(); it++) {
+	for (CECPacket::const_iterator it = request->begin(); it != request->end(); ++it) {
 		const CECTag &tag = *it;
 		CMD4Hash hash = tag.GetMD4Data();
 		uint8 category = tag.GetFirstTagSafe()->GetInt();
@@ -1070,8 +1075,8 @@ static CECPacket *Get_EC_Response_Search_Stop(const CECPacket *WXUNUSED(request)
 static CECPacket *Get_EC_Response_Search(const CECPacket *request)
 {
 	wxString response;
-	
-	CEC_Search_Tag *search_request = (CEC_Search_Tag *)request->GetFirstTagSafe();
+
+	const CEC_Search_Tag *search_request = static_cast<const CEC_Search_Tag *>(request->GetFirstTagSafe());
 	theApp->searchlist->RemoveResults(0xffffffff);
 
 	CSearchList::CSearchParams params;
@@ -1081,8 +1086,8 @@ static CECPacket *Get_EC_Response_Search(const CECPacket *request)
 	params.minSize		= search_request->MinSize();
 	params.maxSize		= search_request->MaxSize();
 	params.availability	= search_request->Avail();
-	
-	
+
+
 	EC_SEARCH_TYPE search_type = search_request->SearchType();
 	SearchType core_search_type = LocalSearch;
 	uint32 op = EC_OP_FAILED;
@@ -1108,18 +1113,18 @@ static CECPacket *Get_EC_Response_Search(const CECPacket *request)
 				response = wxTRANSLATE("WebSearch from remote interface makes no sense.");
 			break;
 	}
-	
+
 	CECPacket *reply = new CECPacket(op);
 	// error or search in progress
 	reply->AddTag(CECTag(EC_TAG_STRING, response));
-		
+
 	return reply;
 }
 
 static CECPacket *Get_EC_Response_Set_SharedFile_Prio(const CECPacket *request)
 {
 	CECPacket *response = new CECPacket(EC_OP_NOOP);
-	for (CECPacket::const_iterator it = request->begin(); it != request->end(); it++) {
+	for (CECPacket::const_iterator it = request->begin(); it != request->end(); ++it) {
 		const CECTag &tag = *it;
 		CMD4Hash hash = tag.GetMD4Data();
 		uint8 prio = tag.GetFirstTagSafe()->GetInt();
@@ -1154,8 +1159,8 @@ void CPartFile_Encoder::Encode(CECTag *parent)
 	const size_t gap_list_size = gaplist.size();
 	ArrayOfUInts64 gaps;
 	gaps.reserve(gap_list_size * 2);
-	
-	for (CGapList::const_iterator curr_pos = gaplist.begin(); 
+
+	for (CGapList::const_iterator curr_pos = gaplist.begin();
 			curr_pos != gaplist.end(); ++curr_pos) {
 		gaps.push_back(curr_pos.start());
 		gaps.push_back(curr_pos.end());
@@ -1168,7 +1173,7 @@ void CPartFile_Encoder::Encode(CECTag *parent)
 		parent->AddTag(CECTag(EC_TAG_PARTFILE_GAP_STATUS, gap_enc_size, (void *)gap_enc_data));
 	}
 	delete[] gap_enc_data;
-	
+
 	//
 	// Requested blocks
 	//
@@ -1198,7 +1203,7 @@ void CPartFile_Encoder::Encode(CECTag *parent)
 	strIntMap nameMap;
 	const CPartFile::SourceSet &sources = m_PartFile()->GetSourceList();
 	for (CPartFile::SourceSet::const_iterator it = sources.begin(); it != sources.end(); ++it) {
-		const CClientRef &cur_src = *it; 
+		const CClientRef &cur_src = *it;
 		if (cur_src.GetRequestFile() != m_file || cur_src.GetClientFilename().Length() == 0) {
 			continue;
 		}
@@ -1238,7 +1243,7 @@ void CPartFile_Encoder::Encode(CECTag *parent)
 	//
 	// Add new names
 	//
-	for (strIntMap::iterator it3 = nameMap.begin(); it3 != nameMap.end(); it3++) {
+	for (strIntMap::iterator it3 = nameMap.begin(); it3 != nameMap.end(); ++it3) {
 		int id = ++m_sourcenameID;
 		CECIntTag tag(EC_TAG_PARTFILE_SOURCE_NAMES, id);
 		tag.AddTag(CECTag(EC_TAG_PARTFILE_SOURCE_NAMES, it3->first));
@@ -1267,7 +1272,7 @@ void CKnownFile_Encoder::Encode(CECTag *parent)
 	//
 	// Reference to the availability list
 	const ArrayOfUInts16& list = m_file->IsPartFile() ?
-		((CPartFile*)m_file)->m_SrcpartFrequency :
+		static_cast<const CPartFile*>(m_file)->m_SrcpartFrequency :
 		m_file->m_AvailPartFrequency;
 	// Don't add tag if available parts aren't populated yet.
 	if (!list.empty()) {
@@ -1354,8 +1359,8 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 				response->AddTag(CECTag(EC_TAG_STRING, wxTRANSLATE("Already shutting down.")));
 			}
 			break;
-		case EC_OP_ADD_LINK: 
-			for (CECPacket::const_iterator it = request->begin(); it != request->end(); it++) {
+		case EC_OP_ADD_LINK:
+			for (CECPacket::const_iterator it = request->begin(); it != request->end(); ++it) {
 				const CECTag &tag = *it;
 				wxString link = tag.GetStringData();
 				int category = 0;
@@ -1447,7 +1452,7 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 				response->AddTag(CECTag(EC_TAG_STRING, wxTRANSLATE("Invalid file name.")));
 				break;
 			}
-			
+
 			if (theApp->sharedfiles->RenameFile(file, CPath(newName))) {
 				response = new CECPacket(EC_OP_NOOP);
 			} else {
@@ -1459,7 +1464,7 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 		}
 		case EC_OP_CLEAR_COMPLETED: {
 			ListOfUInts32 toClear;
-			for (CECTag::const_iterator it = request->begin(); it != request->end(); it++) {
+			for (CECTag::const_iterator it = request->begin(); it != request->end(); ++it) {
 				if (it->GetTagName() == EC_TAG_ECID) {
 					toClear.push_back(it->GetInt());
 				}
@@ -1589,13 +1594,13 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 				response = Get_EC_Response_Search_Results(request);
 			}
 			break;
-			
+
 		case EC_OP_SEARCH_PROGRESS:
 			response = new CECPacket(EC_OP_SEARCH_PROGRESS);
 			response->AddTag(CECTag(EC_TAG_SEARCH_STATUS,
 				theApp->searchlist->GetSearchProgress()));
 			break;
-			
+
 		case EC_OP_DOWNLOAD_SEARCH_RESULT:
 			response = Get_EC_Response_Search_Results_Download(request);
 			break;
@@ -1606,7 +1611,7 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 			response = new CEC_Prefs_Packet(request->GetTagByNameSafe(EC_TAG_SELECT_PREFS)->GetInt(), request->GetDetailLevel());
 			break;
 		case EC_OP_SET_PREFERENCES:
-			((CEC_Prefs_Packet *)request)->Apply();
+			static_cast<const CEC_Prefs_Packet *>(request)->Apply();
 			theApp->glob_prefs->Save();
 			if (thePrefs::IsFilteringClients()) {
 				theApp->clientlist->FilterQueues();
@@ -1622,16 +1627,16 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 			}
 			response = new CECPacket(EC_OP_NOOP);
 			break;
-			
+
 		case EC_OP_CREATE_CATEGORY:
 			if ( request->GetTagCount() == 1 ) {
-				CEC_Category_Tag *tag = (CEC_Category_Tag *)request->GetFirstTagSafe();
-				if (tag->Create()) {
+				CEC_Category_Tag tag(*static_cast<const CEC_Category_Tag*>(request->GetFirstTagSafe()));
+				if (tag.Create()) {
 					response = new CECPacket(EC_OP_NOOP);
 				} else {
 					response = new CECPacket(EC_OP_FAILED);
 					response->AddTag(CECTag(EC_TAG_CATEGORY, theApp->glob_prefs->GetCatCount() - 1));
-					response->AddTag(CECTag(EC_TAG_CATEGORY_PATH, tag->Path()));
+					response->AddTag(CECTag(EC_TAG_CATEGORY_PATH, tag.Path()));
 				}
 				Notify_CategoryAdded();
 			} else {
@@ -1640,15 +1645,15 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 			break;
 		case EC_OP_UPDATE_CATEGORY:
 			if ( request->GetTagCount() == 1 ) {
-				CEC_Category_Tag *tag = (CEC_Category_Tag *)request->GetFirstTagSafe();
-				if (tag->Apply()) {
+				CEC_Category_Tag tag(*static_cast<const CEC_Category_Tag*>(request->GetFirstTagSafe()));
+				if (tag.Apply()) {
 					response = new CECPacket(EC_OP_NOOP);
 				} else {
 					response = new CECPacket(EC_OP_FAILED);
-					response->AddTag(CECTag(EC_TAG_CATEGORY, tag->GetInt()));
-					response->AddTag(CECTag(EC_TAG_CATEGORY_PATH, tag->Path()));
+					response->AddTag(CECTag(EC_TAG_CATEGORY, tag.GetInt()));
+					response->AddTag(CECTag(EC_TAG_CATEGORY_PATH, tag.Path()));
 				}
-				Notify_CategoryUpdate(tag->GetInt());
+				Notify_CategoryUpdate(tag.GetInt());
 			} else {
 				response = new CECPacket(EC_OP_NOOP);
 			}
@@ -1661,11 +1666,12 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 			}
 			response = new CECPacket(EC_OP_NOOP);
 			break;
-		
+
 		//
 		// Logging
 		//
 		case EC_OP_ADDLOGLINE:
+			// cppcheck-suppress duplicateBranch
 			if (request->GetTagByName(EC_TAG_LOG_TO_STATUS) != NULL) {
 				AddLogLineC(request->GetTagByNameSafe(EC_TAG_STRING)->GetStringData());
 			} else {
@@ -1674,6 +1680,7 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 			response = new CECPacket(EC_OP_NOOP);
 			break;
 		case EC_OP_ADDDEBUGLOGLINE:
+			// cppcheck-suppress duplicateBranch
 			if (request->GetTagByName(EC_TAG_LOG_TO_STATUS) != NULL) {
 				AddDebugLogLineC(logGeneral, request->GetTagByNameSafe(EC_TAG_STRING)->GetStringData());
 			} else {
@@ -1735,7 +1742,7 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 			}
 			break;
 		}
-		
+
 		//
 		// Kad
 		//
@@ -1838,9 +1845,9 @@ CECPacket *CECServerSocket::ProcessRequest2(const CECPacket *request)
 }
 
 /*
- * Here notification-based EC. Notification will be sorted by priority for possible throttling. 
+ * Here notification-based EC. Notification will be sorted by priority for possible throttling.
  */
- 
+
 /*
  * Core general status
  */
@@ -1883,7 +1890,7 @@ CECPacket *ECStatusMsgSource::GetNextPacket()
 		m_last_ed2k_status_sent = GetEd2kStatus();
 		m_last_kad_status_sent = GetKadStatus();
 		m_server = theApp->serverconnect->GetCurrentServer();
-		
+
 		CECPacket *response = new CECPacket(EC_OP_STATS);
 		response->AddTag(CEC_ConnState_Tag(EC_DETAIL_UPDATE));
 		return response;
@@ -1903,7 +1910,7 @@ ECPartFileMsgSource::ECPartFileMsgSource()
 	}
 }
 
-void ECPartFileMsgSource::SetDirty(CPartFile *file)
+void ECPartFileMsgSource::SetDirty(const CPartFile *file)
 {
 	CMD4Hash filehash = file->GetFileHash();
 	if ( m_dirty_status.find(filehash) != m_dirty_status.end() ) {
@@ -1911,7 +1918,7 @@ void ECPartFileMsgSource::SetDirty(CPartFile *file)
 	}
 }
 
-void ECPartFileMsgSource::SetNew(CPartFile *file)
+void ECPartFileMsgSource::SetNew(const CPartFile *file)
 {
 	CMD4Hash filehash = file->GetFileHash();
 	wxASSERT ( m_dirty_status.find(filehash) == m_dirty_status.end() );
@@ -1919,7 +1926,7 @@ void ECPartFileMsgSource::SetNew(CPartFile *file)
 	m_dirty_status[filehash] = status;
 }
 
-void ECPartFileMsgSource::SetCompleted(CPartFile *file)
+void ECPartFileMsgSource::SetCompleted(const CPartFile *file)
 {
 	CMD4Hash filehash = file->GetFileHash();
 	wxASSERT ( m_dirty_status.find(filehash) != m_dirty_status.end() );
@@ -1927,7 +1934,7 @@ void ECPartFileMsgSource::SetCompleted(CPartFile *file)
 	m_dirty_status[filehash].m_finished = true;
 }
 
-void ECPartFileMsgSource::SetRemoved(CPartFile *file)
+void ECPartFileMsgSource::SetRemoved(const CPartFile *file)
 {
 	CMD4Hash filehash = file->GetFileHash();
 	wxASSERT ( m_dirty_status.find(filehash) != m_dirty_status.end() );
@@ -1941,8 +1948,8 @@ CECPacket *ECPartFileMsgSource::GetNextPacket()
 		it != m_dirty_status.end(); it++) {
 		if ( it->second.m_new || it->second.m_dirty || it->second.m_removed) {
 			CMD4Hash filehash = it->first;
-			
-			CPartFile *partfile = it->second.m_file;
+
+			const CPartFile *partfile = it->second.m_file;
 
 			CECPacket *packet = new CECPacket(EC_OP_DLOAD_QUEUE);
 			if ( it->second.m_removed ) {
@@ -1968,13 +1975,13 @@ CECPacket *ECPartFileMsgSource::GetNextPacket()
 ECKnownFileMsgSource::ECKnownFileMsgSource()
 {
 	for (unsigned int i = 0; i < theApp->sharedfiles->GetFileCount(); i++) {
-		CKnownFile *cur_file = (CKnownFile *)theApp->sharedfiles->GetFileByIndex(i);
+		const CKnownFile *cur_file = theApp->sharedfiles->GetFileByIndex(i);
 		KNOWNFILE_STATUS status = { true, false, false, true, cur_file };
 		m_dirty_status[cur_file->GetFileHash()] = status;
 	}
 }
 
-void ECKnownFileMsgSource::SetDirty(CKnownFile *file)
+void ECKnownFileMsgSource::SetDirty(const CKnownFile *file)
 {
 	CMD4Hash filehash = file->GetFileHash();
 	if ( m_dirty_status.find(filehash) != m_dirty_status.end() ) {
@@ -1982,19 +1989,19 @@ void ECKnownFileMsgSource::SetDirty(CKnownFile *file)
 	}
 }
 
-void ECKnownFileMsgSource::SetNew(CKnownFile *file)
+void ECKnownFileMsgSource::SetNew(const CKnownFile *file)
 {
 	CMD4Hash filehash = file->GetFileHash();
 	wxASSERT ( m_dirty_status.find(filehash) == m_dirty_status.end() );
 	KNOWNFILE_STATUS status = { true, false, false, true, file };
 	m_dirty_status[filehash] = status;
 }
-	
-void ECKnownFileMsgSource::SetRemoved(CKnownFile *file)
+
+void ECKnownFileMsgSource::SetRemoved(const CKnownFile *file)
 {
 	CMD4Hash filehash = file->GetFileHash();
 	wxASSERT ( m_dirty_status.find(filehash) != m_dirty_status.end() );
-	
+
 	m_dirty_status[filehash].m_removed = true;
 }
 
@@ -2004,9 +2011,9 @@ CECPacket *ECKnownFileMsgSource::GetNextPacket()
 		it != m_dirty_status.end(); it++) {
 		if ( it->second.m_new || it->second.m_dirty || it->second.m_removed) {
 			CMD4Hash filehash = it->first;
-			
-			CKnownFile *partfile = it->second.m_file;
-			
+
+			const CKnownFile *partfile = it->second.m_file;
+
 			CECPacket *packet = new CECPacket(EC_OP_SHARED_FILES);
 			if ( it->second.m_removed ) {
 				CECTag tag(EC_TAG_PARTFILE, filehash);
@@ -2018,13 +2025,13 @@ CECPacket *ECKnownFileMsgSource::GetNextPacket()
 			}
 			m_dirty_status[filehash].m_new = false;
 			m_dirty_status[filehash].m_dirty = false;
-			
+
 			return packet;
 		}
 	}
 	return 0;
 }
-	
+
 /*
  * Notification about search status
 */
@@ -2037,20 +2044,20 @@ CECPacket *ECSearchMsgSource::GetNextPacket()
 	if ( m_dirty_status.empty() ) {
 		return 0;
 	}
-	
+
 	CECPacket *response = new CECPacket(EC_OP_SEARCH_RESULTS);
 	for(std::map<CMD4Hash, SEARCHFILE_STATUS>::iterator it = m_dirty_status.begin();
 		it != m_dirty_status.end(); it++) {
-		
+
 		if ( it->second.m_new ) {
 			response->AddTag(CEC_SearchFile_Tag(it->second.m_file, EC_DETAIL_FULL));
 			it->second.m_new = false;
 		} else if ( it->second.m_dirty ) {
 			response->AddTag(CEC_SearchFile_Tag(it->second.m_file, EC_DETAIL_UPDATE));
 		}
-		
+
 	}
-	
+
 	return response;
 }
 
@@ -2059,7 +2066,7 @@ void ECSearchMsgSource::FlushStatus()
 	m_dirty_status.clear();
 }
 
-void ECSearchMsgSource::SetDirty(CSearchFile *file)
+void ECSearchMsgSource::SetDirty(const CSearchFile *file)
 {
 	if ( m_dirty_status.count(file->GetFileHash()) ) {
 		m_dirty_status[file->GetFileHash()].m_dirty = true;
@@ -2067,15 +2074,15 @@ void ECSearchMsgSource::SetDirty(CSearchFile *file)
 		m_dirty_status[file->GetFileHash()].m_new = true;
 		m_dirty_status[file->GetFileHash()].m_dirty = true;
 		m_dirty_status[file->GetFileHash()].m_child_dirty = true;
-		m_dirty_status[file->GetFileHash()].m_file = file;		
+		m_dirty_status[file->GetFileHash()].m_file = file;
 	}
 }
 
-void ECSearchMsgSource::SetChildDirty(CSearchFile *file)
+void ECSearchMsgSource::SetChildDirty(const CSearchFile *file)
 {
 	m_dirty_status[file->GetFileHash()].m_child_dirty = true;
 }
-	
+
 /*
  * Notification about uploading clients
  */
@@ -2083,7 +2090,7 @@ CECPacket *ECClientMsgSource::GetNextPacket()
 {
 	return 0;
 }
-	
+
 //
 // Notification iface per-client
 //
@@ -2116,14 +2123,14 @@ CECPacket *ECNotifier::GetNextPacket(CECServerSocket *sock)
 	//
 	// OnOutput is called for a first time before
 	// socket is registered
-	// 
+	//
 	if ( m_msg_source.count(sock) ) {
 		ECUpdateMsgSource **notifier_array = m_msg_source[sock];
 		if ( !notifier_array ) {
 			return 0;
 		}
 		CECPacket *packet = GetNextPacket(notifier_array);
-		printf("[EC] next update packet; opcode=%x\n",packet ? packet->GetOpCode() : 0xff);
+		//printf("[EC] next update packet; opcode=%x\n",packet ? packet->GetOpCode() : 0xff);
 		return packet;
 	} else {
 		return 0;
@@ -2133,65 +2140,65 @@ CECPacket *ECNotifier::GetNextPacket(CECServerSocket *sock)
 //
 // Interface to notification macros
 //
-void ECNotifier::DownloadFile_SetDirty(CPartFile *file)
+void ECNotifier::DownloadFile_SetDirty(const CPartFile *file)
 {
 	for(std::map<CECServerSocket *, ECUpdateMsgSource **>::iterator i = m_msg_source.begin();
-		i != m_msg_source.end(); i++) {
+		i != m_msg_source.end(); ++i) {
 		CECServerSocket *sock = i->first;
 		if ( sock->HaveNotificationSupport() ) {
 			ECUpdateMsgSource **notifier_array = i->second;
-			((ECPartFileMsgSource *)notifier_array[EC_PARTFILE])->SetDirty(file);
+			static_cast<ECPartFileMsgSource *>(notifier_array[EC_PARTFILE])->SetDirty(file);
 		}
 	}
 	NextPacketToSocket();
 }
 
-void ECNotifier::DownloadFile_RemoveFile(CPartFile *file)
+void ECNotifier::DownloadFile_RemoveFile(const CPartFile *file)
 {
 	for(std::map<CECServerSocket *, ECUpdateMsgSource **>::iterator i = m_msg_source.begin();
-		i != m_msg_source.end(); i++) {
+		i != m_msg_source.end(); ++i) {
 		ECUpdateMsgSource **notifier_array = i->second;
-		((ECPartFileMsgSource *)notifier_array[EC_PARTFILE])->SetRemoved(file);
+		static_cast<ECPartFileMsgSource *>(notifier_array[EC_PARTFILE])->SetRemoved(file);
 	}
 	NextPacketToSocket();
 }
 
-void ECNotifier::DownloadFile_RemoveSource(CPartFile *)
+void ECNotifier::DownloadFile_RemoveSource(const CPartFile *)
 {
 	// per-partfile source list is not supported (yet), and IMHO quite useless
 }
 
-void ECNotifier::DownloadFile_AddFile(CPartFile *file)
+void ECNotifier::DownloadFile_AddFile(const CPartFile *file)
 {
 	for(std::map<CECServerSocket *, ECUpdateMsgSource **>::iterator i = m_msg_source.begin();
-		i != m_msg_source.end(); i++) {
+		i != m_msg_source.end(); ++i) {
 		ECUpdateMsgSource **notifier_array = i->second;
-		((ECPartFileMsgSource *)notifier_array[EC_PARTFILE])->SetNew(file);
+		static_cast<ECPartFileMsgSource *>(notifier_array[EC_PARTFILE])->SetNew(file);
 	}
 	NextPacketToSocket();
 }
 
-void ECNotifier::DownloadFile_AddSource(CPartFile *)
+void ECNotifier::DownloadFile_AddSource(const CPartFile *)
 {
 	// per-partfile source list is not supported (yet), and IMHO quite useless
 }
 
-void ECNotifier::SharedFile_AddFile(CKnownFile *file)
+void ECNotifier::SharedFile_AddFile(const CKnownFile *file)
 {
 	for(std::map<CECServerSocket *, ECUpdateMsgSource **>::iterator i = m_msg_source.begin();
-		i != m_msg_source.end(); i++) {
+		i != m_msg_source.end(); ++i) {
 		ECUpdateMsgSource **notifier_array = i->second;
-		((ECKnownFileMsgSource *)notifier_array[EC_KNOWN])->SetNew(file);
+		static_cast<ECKnownFileMsgSource *>(notifier_array[EC_KNOWN])->SetNew(file);
 	}
 	NextPacketToSocket();
 }
 
-void ECNotifier::SharedFile_RemoveFile(CKnownFile *file)
+void ECNotifier::SharedFile_RemoveFile(const CKnownFile *file)
 {
 	for(std::map<CECServerSocket *, ECUpdateMsgSource **>::iterator i = m_msg_source.begin();
-		i != m_msg_source.end(); i++) {
+		i != m_msg_source.end(); ++i) {
 		ECUpdateMsgSource **notifier_array = i->second;
-		((ECKnownFileMsgSource *)notifier_array[EC_KNOWN])->SetRemoved(file);
+		static_cast<ECKnownFileMsgSource *>(notifier_array[EC_KNOWN])->SetRemoved(file);
 	}
 	NextPacketToSocket();
 }
@@ -2200,7 +2207,7 @@ void ECNotifier::SharedFile_RemoveAllFiles()
 {
 	// need to figure out what to do here
 }
-	
+
 void ECNotifier::Add_EC_Client(CECServerSocket *sock)
 {
 	ECUpdateMsgSource **notifier_array = new ECUpdateMsgSource *[EC_STATUS_LAST_PRIO];
@@ -2219,7 +2226,7 @@ void ECNotifier::Remove_EC_Client(CECServerSocket *sock)
 		ECUpdateMsgSource **notifier_array = m_msg_source[sock];
 
 		m_msg_source.erase(sock);
-		
+
 		for(int i = 0; i < EC_STATUS_LAST_PRIO; i++) {
 			delete notifier_array[i];
 		}
@@ -2230,13 +2237,13 @@ void ECNotifier::Remove_EC_Client(CECServerSocket *sock)
 void ECNotifier::NextPacketToSocket()
 {
 	for(std::map<CECServerSocket *, ECUpdateMsgSource **>::iterator i = m_msg_source.begin();
-		i != m_msg_source.end(); i++) {
+		i != m_msg_source.end(); ++i) {
 		CECServerSocket *sock = i->first;
 		if ( sock->HaveNotificationSupport() && !sock->DataPending() ) {
 			ECUpdateMsgSource **notifier_array = i->second;
 			CECPacket *packet = GetNextPacket(notifier_array);
 			if ( packet ) {
-				printf("[EC] sending update packet; opcode=%x\n",packet->GetOpCode());
+				//printf("[EC] sending update packet; opcode=%x\n",packet->GetOpCode());
 				sock->SendPacket(packet);
 			}
 		}
diff --git a/src/ExternalConn.h b/src/ExternalConn.h
index cc11808..a7852ba 100644
--- a/src/ExternalConn.h
+++ b/src/ExternalConn.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -52,7 +52,7 @@ class CTagSet : public std::set<T> {
 	public:
 		CTagSet(const CECPacket *request) : std::set<T>()
 		{
-			for (CECPacket::const_iterator it = request->begin(); it != request->end(); it++) {
+			for (CECPacket::const_iterator it = request->begin(); it != request->end(); ++it) {
 				const CECTag *tag = & *it;
 				if ( tag->GetTagName() == OP ) {
 					InSet(tag, T());
@@ -69,7 +69,7 @@ class CObjTagMap {
 		{
 			return m_obj_map[ECID];
 		}
-		
+
 		size_t size()
 		{
 			return m_obj_map.size();
@@ -79,6 +79,18 @@ class CObjTagMap {
 
 class CECServerSocket;
 class ECNotifier;
+class ExternalConn;
+
+class CExternalConnListener : public CLibSocketServer
+{
+public:
+	CExternalConnListener(const amuleIPV4Address& adr, int flags, ExternalConn * conn)
+		: CLibSocketServer(adr, flags), m_conn(conn) {}
+	void OnAccept();
+private:
+	ExternalConn * m_conn;
+};
+
 
 class ExternalConn : public wxEvtHandler
 {
@@ -89,8 +101,8 @@ private:
 public:
 	ExternalConn(amuleIPV4Address addr, wxString *msg);
 	~ExternalConn();
-	
-	wxSocketServer *m_ECServer;
+
+	CExternalConnListener *m_ECServer;
 	ECNotifier *m_ec_notifier;
 
 	void AddSocket(CECServerSocket *s);
@@ -119,19 +131,19 @@ class ECPartFileMsgSource : public ECUpdateMsgSource {
 			bool m_removed;
 			bool m_finished;
 			bool m_dirty;
-			CPartFile *m_file;
+			const CPartFile *m_file;
 		} PARTFILE_STATUS;
 		std::map<CMD4Hash, PARTFILE_STATUS> m_dirty_status;
 	public:
 		ECPartFileMsgSource();
-		
-		void SetDirty(CPartFile *file);
-		void SetNew(CPartFile *file);
-		void SetCompleted(CPartFile *file);
-		void SetRemoved(CPartFile *file);
-		
+
+		void SetDirty(const CPartFile *file);
+		void SetNew(const CPartFile *file);
+		void SetCompleted(const CPartFile *file);
+		void SetRemoved(const CPartFile *file);
+
 		virtual CECPacket *GetNextPacket();
-	
+
 };
 
 class ECKnownFileMsgSource : public ECUpdateMsgSource {
@@ -140,16 +152,16 @@ class ECKnownFileMsgSource : public ECUpdateMsgSource {
 			bool m_comment_changed;
 			bool m_removed;
 			bool m_dirty;
-			CKnownFile *m_file;
+			const CKnownFile *m_file;
 		} KNOWNFILE_STATUS;
 		std::map<CMD4Hash, KNOWNFILE_STATUS> m_dirty_status;
 	public:
 		ECKnownFileMsgSource();
 
-		void SetDirty(CKnownFile *file);
-		void SetNew(CKnownFile *file);
-		void SetRemoved(CKnownFile *file);
-		
+		void SetDirty(const CKnownFile *file);
+		void SetNew(const CKnownFile *file);
+		void SetRemoved(const CKnownFile *file);
+
 		virtual CECPacket *GetNextPacket();
 };
 
@@ -167,7 +179,7 @@ class ECStatusMsgSource : public ECUpdateMsgSource {
 		uint32 GetKadStatus();
 	public:
 		ECStatusMsgSource();
-		
+
 		virtual CECPacket *GetNextPacket();
 };
 
@@ -176,17 +188,17 @@ class ECSearchMsgSource : public ECUpdateMsgSource {
 			bool m_new;
 			bool m_child_dirty;
 			bool m_dirty;
-			CSearchFile *m_file;
+			const CSearchFile *m_file;
 		} SEARCHFILE_STATUS;
 		std::map<CMD4Hash, SEARCHFILE_STATUS> m_dirty_status;
 	public:
 		ECSearchMsgSource();
-		
-		void SetDirty(CSearchFile *file);
-		void SetChildDirty(CSearchFile *file);
-	
+
+		void SetDirty(const CSearchFile *file);
+		void SetChildDirty(const CSearchFile *file);
+
 		void FlushStatus();
-	
+
 		virtual CECPacket *GetNextPacket();
 };
 
@@ -200,15 +212,15 @@ class ECNotifier {
 			EC_CLIENT,
 			EC_STATUS,
 			EC_KNOWN,
-			
+
 			EC_STATUS_LAST_PRIO
 		};
-		
+
 		//ECUpdateMsgSource *m_msg_source[EC_STATUS_LAST_PRIO];
 		std::map<CECServerSocket *, ECUpdateMsgSource **> m_msg_source;
-		
+
 		void NextPacketToSocket();
-		
+
 		CECPacket *GetNextPacket(ECUpdateMsgSource *msg_source_array[]);
 		// Make class non assignable
 		void operator=(const ECNotifier&);
@@ -216,23 +228,23 @@ class ECNotifier {
 	public:
 		ECNotifier();
 		~ECNotifier();
-		
+
 		void Add_EC_Client(CECServerSocket *sock);
 		void Remove_EC_Client(CECServerSocket *sock);
-		
+
 		CECPacket *GetNextPacket(CECServerSocket *sock);
-		
+
 		//
 		// Interface to notification macros
 		//
-		void DownloadFile_SetDirty(CPartFile *file);
-		void DownloadFile_RemoveFile(CPartFile *file);
-		void DownloadFile_RemoveSource(CPartFile *file);
-		void DownloadFile_AddFile(CPartFile *file);
-		void DownloadFile_AddSource(CPartFile *file);
-		
-		void SharedFile_AddFile(CKnownFile *file);
-		void SharedFile_RemoveFile(CKnownFile *file);
+		void DownloadFile_SetDirty(const CPartFile *file);
+		void DownloadFile_RemoveFile(const CPartFile *file);
+		void DownloadFile_RemoveSource(const CPartFile *file);
+		void DownloadFile_AddFile(const CPartFile *file);
+		void DownloadFile_AddSource(const CPartFile *file);
+
+		void SharedFile_AddFile(const CKnownFile *file);
+		void SharedFile_RemoveFile(const CKnownFile *file);
 		void SharedFile_RemoveAllFiles();
 
 };
diff --git a/src/ExternalConnector.cpp b/src/ExternalConnector.cpp
index 71457a9..c69e8aa 100644
--- a/src/ExternalConnector.cpp
+++ b/src/ExternalConnector.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -61,6 +61,7 @@
 
 #include <ec/cpp/ECFileConfig.h>	// Needed for CECFileConfig
 #include <common/MD5Sum.h>
+#include "OtherFunctions.h"		// Needed for GetPassword()
 
 #ifdef _MSC_VER  // silly warnings about deprecated functions
 #pragma warning(disable:4996)
@@ -195,10 +196,12 @@ void CCommandTree::PrintHelpFor(const wxString& command) const
 CaMuleExternalConnector::CaMuleExternalConnector()
 	: m_configFile(NULL),
 	  m_port(-1),
+	  m_ZLIB(false),
 	  m_KeepQuiet(false),
 	  m_Verbose(false),
 	  m_interactive(false),
 	  m_commands(*this),
+	  m_appname(NULL),
 	  m_ECClient(NULL),
 	  m_InputLine(NULL),
 	  m_NeedsConfigSave(false),
@@ -231,7 +234,7 @@ void CaMuleExternalConnector::Show(const wxString &s)
 {
 	if( !m_KeepQuiet ) {
 		printf("%s", (const char *)unicode2char(s));
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 		fflush(stdout);
 #endif
 	}
@@ -308,7 +311,7 @@ void CaMuleExternalConnector::GetCommand(const wxString &prompt, char* buffer, s
 {
 #ifdef HAVE_LIBREADLINE
 		char *text = readline(unicode2char(prompt + wxT("$ ")));
-		if (text && *text && 
+		if (text && *text &&
 		    (m_InputLine == 0 || strcmp(text,m_InputLine) != 0)) {
 		  add_history (text);
 		}
@@ -361,29 +364,13 @@ void CaMuleExternalConnector::ConnectAndRun(const wxString &ProgName, const wxSt
 
 	// HostName, Port and Password
 	if ( m_password.IsEmpty() ) {
-		wxString pass_plain;
-		#ifndef __WXMSW__
-			pass_plain = char2unicode(getpass("Enter password for mule connection: "));
-		#else
-			//#warning This way, pass enter is not hidden on windows. Bad thing.
-			char temp_str[512];
-			fflush(stdin);
-			printf("Enter password for mule connection: \n");
-			fflush(stdout);
-			fgets(temp_str, 512, stdin);
-			temp_str[strlen(temp_str)-1] = '\0';
-			pass_plain = char2unicode(temp_str);
-		#endif
-		wxCHECK2(m_password.Decode(MD5Sum(pass_plain).GetHash()), /* Do nothing. */ );
+		m_password = GetPassword(true);
 		// MD5 hash for an empty string, according to rfc1321.
 		if (m_password.Encode() == wxT("D41D8CD98F00B204E9800998ECF8427E")) {
 			m_password.Clear();
 		}
-
-		// Clear plain-text password
-		pass_plain		= wxT("01234567890123456789");
 	}
-	
+
 	if (!m_password.IsEmpty()) {
 
 		// Create the socket
@@ -565,13 +552,17 @@ void CaMuleExternalConnector::SaveConfigFile()
 
 bool CaMuleExternalConnector::OnInit()
 {
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	#if wxUSE_ON_FATAL_EXCEPTION
 		// catch fatal exceptions
 		wxHandleFatalExceptions(true);
 	#endif
 #endif
 
+	// If we didn't know that OnInit is called only once when creating the
+	// object, it could cause a memory leak. The two pointers below should
+	// be free()'d before assigning the new value.
+	// cppcheck-suppress publicAllocationError
 	m_strFullVersion = strdup((const char *)unicode2char(GetMuleVersion()));
 	m_strOSDescription = strdup((const char *)unicode2char(wxGetOsDescription()));
 
@@ -630,7 +621,7 @@ wxAppTraits* CaMuleExternalConnector::CreateTraits()
 void CaMuleExternalConnector::OnFatalException()
 {
 	/* Print the backtrace */
-	fprintf(stderr, "\n--------------------------------------------------------------------------------\n");	
+	fprintf(stderr, "\n--------------------------------------------------------------------------------\n");
 	fprintf(stderr, "A fatal error has occurred and %s has crashed.\n", m_appname);
 	fprintf(stderr, "Please assist us in fixing this problem by posting the backtrace below in our\n");
 	fprintf(stderr, "'aMule Crashes' forum and include as much information as possible regarding the\n");
@@ -641,10 +632,10 @@ void CaMuleExternalConnector::OnFatalException()
 	fprintf(stderr, "----------------------------=| BACKTRACE FOLLOWS: |=----------------------------\n");
 	fprintf(stderr, "Current version is: %s %s\n", m_appname, m_strFullVersion);
 	fprintf(stderr, "Running on: %s\n\n", m_strOSDescription);
-	
+
 	print_backtrace(1); // 1 == skip this function.
-	
-	fprintf(stderr, "\n--------------------------------------------------------------------------------\n");	
+
+	fprintf(stderr, "\n--------------------------------------------------------------------------------\n");
 }
 #endif
 
diff --git a/src/ExternalConnector.h b/src/ExternalConnector.h
index ff25b82..38b731c 100644
--- a/src/ExternalConnector.h
+++ b/src/ExternalConnector.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -25,9 +25,9 @@
 /*
  * This file must be included with wxUSE_GUI defined to zero or one.
  * Usually on console applications, this will be taken care of in
- * configure time. This is because wx classes will be compiled 
+ * configure time. This is because wx classes will be compiled
  * differently in each case.
- * 
+ *
  */
 
 #ifndef __EXTERNALCONNECTOR_H__
@@ -106,7 +106,7 @@ class CaMuleExternalConnector : public wxApp
 public:
 	//
 	// Constructor & Destructor
-	// 
+	//
 	CaMuleExternalConnector();
 	~CaMuleExternalConnector();
 
@@ -126,7 +126,7 @@ public:
 
 	//
 	// Other functions
-	// 
+	//
 	void Show(const wxString &s);
 	void DebugShow(const wxString &s) { if (m_Verbose) Show(s); }
 	const wxString& GetCmdArgs() const { return m_cmdargs; }
@@ -142,7 +142,7 @@ public:
 
 	//
 	// Command line processing
-	// 
+	//
 	void OnInitCmdLine(wxCmdLineParser& amuleweb_parser, const char* appname);
 	bool OnCmdLineParsed(wxCmdLineParser& parser);
 
@@ -162,8 +162,8 @@ protected:
 	// returns canonical name of set (current) locale
 	virtual wxString SetLocale(const wxString& language);
 
-	long	 	m_port;
-	wxString 	m_host;
+	long		m_port;
+	wxString	m_host;
 	CMD4Hash	m_password;
 	bool		m_ZLIB;
 	bool		m_KeepQuiet;
diff --git a/src/FileArea.cpp b/src/FileArea.cpp
index 912ebd4..1da8b06 100644
--- a/src/FileArea.cpp
+++ b/src/FileArea.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -193,7 +193,7 @@ CFileArea::~CFileArea()
 
 bool CFileArea::Close()
 {
-	if (m_buffer != NULL && m_mmap_buffer == NULL) 
+	if (m_buffer != NULL && m_mmap_buffer == NULL)
 	{
 		delete[] m_buffer;
 		m_buffer = NULL;
diff --git a/src/FileArea.h b/src/FileArea.h
index a58e094..4006151 100644
--- a/src/FileArea.h
+++ b/src/FileArea.h
@@ -13,7 +13,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -40,7 +40,7 @@ public:
 	 */
 	CFileArea();
 
-	
+
 	/**
 	 * Destructor, closes the file if opened.
 	 */
diff --git a/src/FileAutoClose.cpp b/src/FileAutoClose.cpp
index 977fe32..68e2798 100644
--- a/src/FileAutoClose.cpp
+++ b/src/FileAutoClose.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,7 +37,7 @@ CFileAutoClose::CFileAutoClose()
 	  m_size(0),
 	  m_lastAccess(TheTime)
 {}
-	
+
 CFileAutoClose::CFileAutoClose(const CPath& path, CFile::OpenMode mode)
 {
 	Open(path, mode);
@@ -52,7 +52,7 @@ bool CFileAutoClose::Open(const CPath& path, CFile::OpenMode mode)
 	m_lastAccess = TheTime;
 	return m_file.Open(path, mode);
 }
-	
+
 bool CFileAutoClose::Create(const CPath& path, bool overwrite)
 {
 	m_mode = CFile::write;
@@ -60,7 +60,7 @@ bool CFileAutoClose::Create(const CPath& path, bool overwrite)
 	m_lastAccess = TheTime;
 	return m_file.Create(path, overwrite);
 }
-	
+
 bool CFileAutoClose::Close()
 {
 	bool state = m_autoClosed ? true : m_file.Close();
@@ -72,7 +72,7 @@ uint64 CFileAutoClose::GetLength() const
 {
 	return m_autoClosed ? m_size : m_file.GetLength();
 }
-	
+
 bool CFileAutoClose::SetLength(uint64 newLength)
 {
 	Reopen();
@@ -88,7 +88,7 @@ bool CFileAutoClose::IsOpened() const
 {
 	return m_autoClosed || m_file.IsOpened();
 }
-	
+
 void CFileAutoClose::ReadAt(void* buffer, uint64 offset, size_t count)
 {
 	Reopen();
@@ -116,7 +116,7 @@ int CFileAutoClose::fd()
 	return m_file.fd();
 }
 
-void CFileAutoClose::Unlock() 
+void CFileAutoClose::Unlock()
 {
 	if (m_locked) {
 		m_locked--;
diff --git a/src/FileAutoClose.h b/src/FileAutoClose.h
index 3df8d25..a0312f7 100644
--- a/src/FileAutoClose.h
+++ b/src/FileAutoClose.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -32,18 +32,18 @@
  * This class encapsulates the CFile class.
  *
  * It allows to close the used file handle and reopen
- * it on usage to minimize the number of used file handles. 
+ * it on usage to minimize the number of used file handles.
  *
  */
 class CFileAutoClose
 {
 public:
-	
+
 	/**
 	 * Creates a closed file.
 	 */
 	CFileAutoClose();
-	
+
 	/**
 	 * Constructor, calls Open on the specified file.
 	 *
@@ -68,7 +68,7 @@ public:
 	 * @return True if the file was opened, false otherwise.
 	 */
 	bool Open(const CPath& path, CFile::OpenMode mode = CFile::read);
-	
+
 	/**
 	 * Calling Create is equivilant of calling open with OpenMode 'write'.
 	 *
@@ -78,7 +78,7 @@ public:
 	 * @see CFile::Open
 	 */
 	bool Create(const CPath& path, bool overwrite = false);
-	
+
 	/**
 	 * Closes the file.
 	 *
@@ -90,20 +90,20 @@ public:
 	/**
 	 * @see CSafeFileIO::GetLength
 	 *
-	 * Note that calling GetLength on a closed file 
+	 * Note that calling GetLength on a closed file
 	 * is an illegal operation.
 	 */
 	uint64 GetLength() const;
-	
+
 	/**
 	 * Resizes the file to the specified length.
 	 *
 	 */
 	bool SetLength(uint64 newLength);
-	
+
 	/**
 	 * Returns the path of the currently opened file.
-	 * 
+	 *
 	 */
 	const CPath& GetFilePath() const;
 
@@ -111,7 +111,7 @@ public:
 	 * Returns true if the file is opened, false otherwise.
 	 */
 	bool IsOpened() const;
-	
+
 	/**
 	 * Reads 'count' bytes into 'buffer'.
 	 *
@@ -142,10 +142,10 @@ public:
 	/**
 	 * Returns the file descriptior assosiated with the file.
 	 *
-	 * This breaks the purpose of this class of course. 
+	 * This breaks the purpose of this class of course.
 	 * Therefore the AutoClose mechanism is disabled when fd() is called.
 	 * It's required for FileArea's mmap stuff.
-	 * Currently FileArea objects are shortlived enough for this not being 
+	 * Currently FileArea objects are shortlived enough for this not being
 	 * a problem anyway, but that might change in the future.
 	 */
 	int fd();
@@ -161,7 +161,7 @@ private:
 	CFileAutoClose(const CFileAutoClose&);
 	CFileAutoClose& operator=(const CFileAutoClose&);
 	//@}
-	
+
 	/**
 	 * Check if file was autoclosed, and reopen if needed.
 	 */
@@ -169,14 +169,14 @@ private:
 
 	//! The wrapped CFile.
 	CFile m_file;
-	
+
 	//! The mode used to open it.
 	CFile::OpenMode m_mode;
 
 	//! Is it temporarily closed?
 	bool m_autoClosed;
 
-	//! Autoclosing is disabled if != 0 
+	//! Autoclosing is disabled if != 0
 	uint16 m_locked;
 
 	//! Size before it was closed.
diff --git a/src/FileDetailDialog.cpp b/src/FileDetailDialog.cpp
index bb77c53..4c72a65 100644
--- a/src/FileDetailDialog.cpp
+++ b/src/FileDetailDialog.cpp
@@ -21,7 +21,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -124,7 +124,7 @@ void CFileDetailDialog::UpdateData(bool resetFilename)
 	CastChild(IDC_PARTAVAILABLE,wxControl)->SetLabel(bufferS);
 	bufferS = CastSecondsToHM(m_file->GetDlActiveTime());
 	CastChild(IDC_DLACTIVETIME, wxControl)->SetLabel(bufferS);
-	
+
 	if (m_file->lastseencomplete==0) {
 		bufferS = wxString(_("Unknown")).MakeLower();
 	} else {
@@ -146,10 +146,10 @@ void CFileDetailDialog::UpdateData(bool resetFilename)
 
 void CFileDetailDialog::FillSourcenameList()
 {
-	CFileDetailListCtrl* pmyListCtrl; 
+	CFileDetailListCtrl* pmyListCtrl;
 	int itempos;
-	int inserted = 0; 
-	pmyListCtrl = CastChild(IDC_LISTCTRLFILENAMES, CFileDetailListCtrl ); 
+	int inserted = 0;
+	pmyListCtrl = CastChild(IDC_LISTCTRLFILENAMES, CFileDetailListCtrl );
 
 	// reset
 	for (int i=0;i<pmyListCtrl->GetItemCount();i++){
@@ -173,24 +173,24 @@ void CFileDetailDialog::FillSourcenameList()
 			tmpitem.SetBackgroundColour(CMuleColour(wxSYS_COLOUR_LISTBOX));
 			pmyListCtrl->SetItem(tmpitem);
 			inserted++;
-		} else { 
+		} else {
 			SourcenameItem *item = reinterpret_cast<SourcenameItem *>(pmyListCtrl->GetItemData(itempos));
 			item->count = cur_src.count;
-		} 
+		}
 	}
 #else // CLIENT_GUI
 	const CKnownFile::SourceSet& sources = m_file->GetSourceList();
 	CKnownFile::SourceSet::const_iterator it = sources.begin();
 	for ( ; it != sources.end(); ++it ) {
-		const CClientRef &cur_src = *it; 
+		const CClientRef &cur_src = *it;
 		if (cur_src.GetRequestFile() != m_file ||
 		    cur_src.GetClientFilename().Length() == 0) {
 			continue;
 		}
 
 		itempos = pmyListCtrl->FindItem(-1,cur_src.GetClientFilename());
-		if (itempos == -1) { 
-			int itemid = pmyListCtrl->InsertItem(0, cur_src.GetClientFilename()); 
+		if (itempos == -1) {
+			int itemid = pmyListCtrl->InsertItem(0, cur_src.GetClientFilename());
 			SourcenameItem *item = new SourcenameItem(cur_src.GetClientFilename(), 1);
 			pmyListCtrl->SetItemPtrData(0, reinterpret_cast<wxUIntPtr>(item));
 			// background.. argh -- PA: was in old version - do we still need this?
@@ -199,10 +199,10 @@ void CFileDetailDialog::FillSourcenameList()
 			tmpitem.SetBackgroundColour(CMuleColour(wxSYS_COLOUR_LISTBOX));
 			pmyListCtrl->SetItem(tmpitem);
 			inserted++;
-		} else { 
+		} else {
 			SourcenameItem *item = reinterpret_cast<SourcenameItem *>(pmyListCtrl->GetItemData(itempos));
 			item->count++;
-		} 
+		}
 	}
 #endif // CLIENT_GUI
 
@@ -249,7 +249,7 @@ void CFileDetailDialog::setValueForFilenameTextEdit(const wxString &s)
 
 void CFileDetailDialog::setEnableForApplyButton()
 {
-	bool enabled = 
+	bool enabled =
 		m_file->GetStatus() != PS_COMPLETE &&
 		m_file->GetStatus() != PS_COMPLETING &&
 		m_filenameChanged;
@@ -281,9 +281,9 @@ void CFileDetailDialog::OnBnClickedApply(wxCommandEvent& WXUNUSED(evt))
 		if (theApp->sharedfiles->RenameFile(m_file, fileName)) {
 			FindWindow(IDC_FNAME)->SetLabel(MakeStringEscaped(m_file->GetFileName().GetPrintable()));
 			FindWindow(IDC_METFILE)->SetLabel(m_file->GetFullName().GetPrintable());
-			
+
 			resetValueForFilenameTextEdit();
-	
+
 			Layout();
 		}
 	}
@@ -366,7 +366,7 @@ void CFileDetailDialog::OnBnClickedButtonStrip(wxCommandEvent& WXUNUSED(evt))
 {
 	wxString filename;
 	filename = CastChild(IDC_FILENAME, wxTextCtrl)->GetValue();
-	
+
 	int extpos = filename.Find('.', true);
 	wxString ext;
 	if (extpos > 0) {
diff --git a/src/FileDetailDialog.h b/src/FileDetailDialog.h
index 0a48ed6..1f332f1 100644
--- a/src/FileDetailDialog.h
+++ b/src/FileDetailDialog.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -49,7 +49,7 @@ private:
 	int m_index;
 	wxTimer m_timer;
 	bool m_filenameChanged;
-	
+
 	void OnClosewnd(wxCommandEvent& evt);
 	void FillSourcenameList();
 	void setEnableForApplyButton();
diff --git a/src/FileDetailListCtrl.cpp b/src/FileDetailListCtrl.cpp
index 039557d..b4e9d5d 100644
--- a/src/FileDetailListCtrl.cpp
+++ b/src/FileDetailListCtrl.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,30 +37,30 @@ CFileDetailListCtrl::CFileDetailListCtrl(wxWindow * &parent, int id, const wxPoi
 {
 	// Set sorter function
 	SetSortFunc(SortProc);
-	
+
 	// Initial sorting: Sources descending
 	InsertColumn(0, _("File Name"), wxLIST_FORMAT_LEFT, 370);
 	InsertColumn(1, _("Sources"), wxLIST_FORMAT_LEFT, 70);
-	
+
 	SetSorting(1, CMuleListCtrl::SORT_DES);
 
 	SortList();
 }
 
 int CFileDetailListCtrl::SortProc(wxUIntPtr param1, wxUIntPtr param2, long sortData)
-{ 
+{
 	// Comparison for different sortings
-	SourcenameItem *item1 = (SourcenameItem*)param1;
-	SourcenameItem *item2 = (SourcenameItem*)param2;
+	SourcenameItem *item1 = reinterpret_cast<SourcenameItem*>(param1);
+	SourcenameItem *item2 = reinterpret_cast<SourcenameItem*>(param2);
 
 	int mod = (sortData & CMuleListCtrl::SORT_DES) ? -1 : 1;
-	
+
 	switch (sortData & CMuleListCtrl::COLUMN_MASK) {
 		case 1: return mod * (item1->count - item2->count);			// Sources descending
 		case 0: return mod * item1->name.CmpNoCase(item2->name);	// Name descending
 		default: return 0;
 	}
-} 
+}
 
 
 void CFileDetailListCtrl::OnSelect(wxListEvent& event)
diff --git a/src/FileDetailListCtrl.h b/src/FileDetailListCtrl.h
index 826773c..91c1b50 100644
--- a/src/FileDetailListCtrl.h
+++ b/src/FileDetailListCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -31,7 +31,7 @@
 class CFileDetailListCtrl : public CMuleListCtrl
 {
 
-public: 
+public:
 	CFileDetailListCtrl(wxWindow * &parent, int id, const wxPoint & pos, wxSize siz, int flags);
 
 private:
diff --git a/src/FileLock.h b/src/FileLock.h
index f8d9054..9758bdd 100644
--- a/src/FileLock.h
+++ b/src/FileLock.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,15 +36,15 @@
 
 /**
  * This class provides an easy way to lock non-critical
- * files used by multiple applications. However, since 
+ * files used by multiple applications. However, since
  * the implementation relies on fcntl, it may not work
  * on all filesystems (NFS) and thus locking is not
  * certain.
  *
- * Currently, this lock holds an exclusive lock on the 
+ * Currently, this lock holds an exclusive lock on the
  * file in question. It is assumed that the file will
  * be read/written by all users.
- * 
+ *
  */
 class CFileLock
 {
@@ -59,13 +59,13 @@ public:
 	CFileLock(const std::string& file)
 #ifdef _WIN32
 		: m_ok(false)
-   	{
+	{
 		hd = CreateFileA((file + "_lock").c_str(),
-			GENERIC_READ | GENERIC_WRITE, 
+			GENERIC_READ | GENERIC_WRITE,
 			FILE_SHARE_READ | FILE_SHARE_WRITE,		// share - shareable
 			NULL,									// security - not inheritable
 			CREATE_ALWAYS,
-			FILE_ATTRIBUTE_ARCHIVE, 
+			FILE_ATTRIBUTE_ARCHIVE,
 			NULL);
 		if (hd != INVALID_HANDLE_VALUE) {
 			m_ok = SetLock(true);
@@ -82,13 +82,13 @@ public:
 			CloseHandle(hd);
 		}
 	}
-		
+
 private:
 	//! Not copyable.
 	CFileLock(const CFileLock&);
 	//! Not assignable.
 	CFileLock& operator=(const CFileLock&);
-	
+
 	/** Locks or unlocks the lock-file, returning true on success. */
 	bool SetLock(bool doLock) {
 		// lock/unlock first byte in the file
@@ -104,17 +104,17 @@ private:
 		}
 		return ret != 0;
 	}
-	
-	
+
+
 	//! Desriptor of the file being locked.
-	HANDLE hd; 
+	HANDLE hd;
 
 	//! Specifies if the file-lock was aquired.
 	bool m_ok;
 #else
 		: m_fd(-1),
 		  m_ok(false)
-   	{
+	{
 		// File must be open with O_WRONLY to be able to set write-locks.
 		m_fd = ::open((file + "_lock").c_str(), O_CREAT | O_WRONLY, 0600);
 		if (m_fd != -1) {
@@ -132,18 +132,18 @@ private:
 			close(m_fd);
 		}
 	}
-		
+
 private:
 	//! Not copyable.
 	CFileLock(const CFileLock&);
 	//! Not assignable.
 	CFileLock& operator=(const CFileLock&);
-	
+
 	/** Locks or unlocks the lock-file, returning true on success. */
 	bool SetLock(bool doLock) {
 		struct flock lock;
 		lock.l_type = (doLock ? F_WRLCK : F_UNLCK);
-		
+
 		// Lock the entire file
 		lock.l_whence = SEEK_SET;
 		lock.l_start = 0;
@@ -161,10 +161,10 @@ private:
 
 		return false;
 	}
-	
-	
+
+
 	//! Desribtor of the file being locked.
-	int m_fd; 
+	int m_fd;
 
 	//! Specifies if the file-lock was aquired.
 	bool m_ok;
diff --git a/src/Friend.cpp b/src/Friend.cpp
index 2bcb01e..3e528fc 100644
--- a/src/Friend.cpp
+++ b/src/Friend.cpp
@@ -1,6 +1,6 @@
 //
 // This file is part of the aMule Project.
-// 
+//
 // Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
 // Copyright (c) 2002-2011 Merkur ( devs at emule-project.net / http://www.emule-project.net )
 //
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -50,14 +50,14 @@ CFriend::CFriend( const CMD4Hash& userhash, uint32 tm_dwLastSeen, uint32 tm_dwLa
 		m_strName = wxT("?");
 	} else {
 		m_strName = tm_strName;
-	}	
+	}
 }
 
 
 CFriend::CFriend(CClientRef client)
 {
 	LinkClient(client);
-	
+
 	m_dwLastChatted = 0;
 }
 
@@ -86,7 +86,7 @@ void CFriend::LinkClient(CClientRef client)
 		m_strName = client.GetUserName();
 	} else if (m_strName.IsEmpty()) {
 		m_strName = wxT("?");
-	}	
+	}
 	m_UserHash = client.GetUserHash();
 	m_dwLastUsedIP = client.GetIP();
 	m_nLastUsedPort = client.GetUserPort();
@@ -145,9 +145,9 @@ void CFriend::WriteToFile(CFileDataIO* file)
 	file->WriteUInt16(m_nLastUsedPort);
 	file->WriteUInt32(m_dwLastSeen);
 	file->WriteUInt32(m_dwLastChatted);
-	
+
 	uint32 tagcount = ( m_strName.IsEmpty() ? 0 : 2 );
-	file->WriteUInt32(tagcount);			
+	file->WriteUInt32(tagcount);
 	if ( !m_strName.IsEmpty() ) {
 		CTagString nametag(FF_NAME, m_strName);
 		nametag.WriteTagToFile(file, utf8strOptBOM);
diff --git a/src/Friend.h b/src/Friend.h
index 124c4c0..e00c149 100644
--- a/src/Friend.h
+++ b/src/Friend.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,27 +42,27 @@ friend class CFriendListRem;
 public:
 	CFriend()	{ Init(); }
 	~CFriend() {};
-	
+
 	CFriend(CClientRef client);
 	CFriend( const CMD4Hash& userhash, uint32 tm_dwLastSeen, uint32 tm_dwLastUsedIP, uint32 tm_nLastUsedPort, uint32 tm_dwLastChatted, const wxString& tm_strName);
 	CFriend(uint32 ecid) : CECID(ecid)	{ Init(); }
-	
+
 	void	SetUserHash(const CMD4Hash& userhash) { m_UserHash = userhash;}
 	bool	HasHash() const			{ return !m_UserHash.IsEmpty(); }
 	const	CMD4Hash& GetUserHash() const { return m_UserHash; }
-	
+
 	void SetName(const wxString& name) { m_strName = name; }
-	
+
 	void	LinkClient(CClientRef client);
 	const CClientRef& GetLinkedClient() const { return m_LinkedClient; }
 	void	UnLinkClient(bool notify = true);
-	
+
 	bool	HasFriendSlot();
 
 	const wxString& GetName() const	{ return m_strName; }
 	uint16 GetPort() const			{ return m_nLastUsedPort; }
 	uint32 GetIP() const			{ return m_dwLastUsedIP; }
-	
+
 	void	LoadFromFile(CFileDataIO* file);
 	void	WriteToFile(CFileDataIO* file);
 
diff --git a/src/FriendList.cpp b/src/FriendList.cpp
index eed55a6..cf2bae0 100644
--- a/src/FriendList.cpp
+++ b/src/FriendList.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,7 +37,7 @@
 #include "GuiEvents.h"
 
 CFriendList::CFriendList()
-{ 
+{
 }
 
 CFriendList::~CFriendList()
@@ -72,10 +72,10 @@ void CFriendList::AddFriend(const CClientRef& toadd)
 	if ( toadd.IsFriend() ) {
 		return;
 	}
-	
+
 	CFriend* NewFriend = new CFriend( toadd );
 	toadd.SetFriend(NewFriend);
-	
+
 	AddFriend(NewFriend, false);	// has already notified
 }
 
@@ -91,21 +91,21 @@ void CFriendList::RemoveFriend(CFriend* toremove)
 		}
 
 		m_FriendList.remove(toremove);
-	
+
 		SaveList();
-	
+
 		Notify_ChatRemoveFriend(toremove);	// this deletes the friend
 	}
 }
 
 void CFriendList::LoadList()
 {
-  	CPath metfile = CPath(theApp->ConfigDir + wxT("emfriends.met"));
-	
+	CPath metfile = CPath(theApp->ConfigDir + wxT("emfriends.met"));
+
 	if (!metfile.FileExists()) {
 		return;
 	}
-	
+
 	CFile file;
 	try {
 		if ( file.Open(metfile) ) {
@@ -116,7 +116,7 @@ void CFriendList::LoadList()
 					Record->LoadFromFile(&file);
 					m_FriendList.push_back(Record);
 					Notify_ChatUpdateFriend(Record);
-				}				
+				}
 			}
 		} else {
 			AddLogLineN(_("Failed to open friend list file 'emfriends.met' for reading!"));
@@ -126,7 +126,7 @@ void CFriendList::LoadList()
 	} catch (const CSafeIOException& e) {
 		AddDebugLogLineC(logGeneral, wxT("IO error while reading 'emfriends.met': ") + e.what());
 	}
-	
+
 }
 
 
@@ -137,7 +137,7 @@ void CFriendList::SaveList()
 		try {
 			file.WriteUInt8(MET_HEADER);
 			file.WriteUInt32(m_FriendList.size());
-		
+
 			for (FriendList::iterator it = m_FriendList.begin(); it != m_FriendList.end(); ++it) {
 				(*it)->WriteToFile(&file);
 			}
@@ -150,11 +150,11 @@ void CFriendList::SaveList()
 }
 
 
-CFriend* CFriendList::FindFriend(const CMD4Hash& userhash, uint32 dwIP, uint16 nPort) 
+CFriend* CFriendList::FindFriend(const CMD4Hash& userhash, uint32 dwIP, uint16 nPort)
 {
-	
+
 	for(FriendList::iterator it = m_FriendList.begin(); it != m_FriendList.end(); ++it) {
-		
+
 		CFriend* cur_friend = *it;
 		// to avoid that unwanted clients become a friend, we have to distinguish between friends with
 		// a userhash and of friends which are identified by IP+port only.
@@ -178,7 +178,7 @@ CFriend* CFriendList::FindFriend(const CMD4Hash& userhash, uint32 dwIP, uint16 n
 }
 
 
-CFriend* CFriendList::FindFriend(uint32 ecid) 
+CFriend* CFriendList::FindFriend(uint32 ecid)
 {
 	for (FriendList::iterator it = m_FriendList.begin(); it != m_FriendList.end(); ++it) {
 		CFriend* cur_friend = *it;
@@ -199,7 +199,7 @@ bool CFriendList::IsAlreadyFriend( uint32 dwLastUsedIP, uint32 nLastUsedPort )
 
 void CFriendList::RemoveAllFriendSlots()
 {
-	for(FriendList::iterator it = m_FriendList.begin(); it != m_FriendList.end(); ++it) {		
+	for(FriendList::iterator it = m_FriendList.begin(); it != m_FriendList.end(); ++it) {
 		CFriend* cur_friend = *it;
 		if (cur_friend->GetLinkedClient().IsLinked()) {
 				cur_friend->GetLinkedClient().SetFriendSlot(false);
@@ -247,7 +247,7 @@ void CFriendList::StartChatSession(CFriend* Friend)
 	} else {
 		AddLogLineC(_("CRITICAL - no client on StartChatSession"));
 	}
-	
+
 }
 
 // File_checked_for_headers
diff --git a/src/FriendList.h b/src/FriendList.h
index 43076a7..b4bbe71 100644
--- a/src/FriendList.h
+++ b/src/FriendList.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -40,13 +40,13 @@ class CFriendList
 public:
 	CFriendList();
 	~CFriendList();
-	
+
 	bool		IsAlreadyFriend(uint32 dwLastUsedIP, uint32 nLastUsedPort);
 	void		SaveList();
 	void		LoadList();
 	CFriend*	FindFriend(const CMD4Hash& userhash, uint32 dwIP, uint16 nPort);
 	CFriend*	FindFriend(uint32 ecid);
-	void 		AddFriend(CFriend* toadd, bool notify = true);
+	void		AddFriend(CFriend* toadd, bool notify = true);
 	void		AddFriend(const CClientRef& toadd);
 	void		AddFriend(const CMD4Hash& userhash, uint32 lastUsedIP, uint32 lastUsedPort, const wxString& name, uint32 lastSeen = 0, uint32 lastChatted = 0);
 	void		RemoveFriend(CFriend* toremove);
diff --git a/src/FriendListCtrl.cpp b/src/FriendListCtrl.cpp
index 074ffc3..acb06cf 100644
--- a/src/FriendListCtrl.cpp
+++ b/src/FriendListCtrl.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -41,8 +41,8 @@
 
 BEGIN_EVENT_TABLE(CFriendListCtrl, CMuleListCtrl)
 	EVT_RIGHT_DOWN(CFriendListCtrl::OnRightClick)
-	EVT_LIST_ITEM_ACTIVATED(ID_FRIENDLIST, CFriendListCtrl::OnItemActivated) 
-	
+	EVT_LIST_ITEM_ACTIVATED(ID_FRIENDLIST, CFriendListCtrl::OnItemActivated)
+
 	EVT_MENU(MP_MESSAGE, CFriendListCtrl::OnSendMessage)
 	EVT_MENU(MP_REMOVEFRIEND, CFriendListCtrl::OnRemoveFriend)
 	EVT_MENU(MP_ADDFRIEND, CFriendListCtrl::OnAddFriend)
@@ -70,12 +70,12 @@ void CFriendListCtrl::RemoveFriend(CFriend* toremove)
 	if (!toremove) {
 		return;
 	}
-	
+
 	sint32 itemnr = FindItem(-1, reinterpret_cast<wxUIntPtr>(toremove));
-	
+
 	if ( itemnr == -1 )
 		return;
-	
+
 	DeleteItem(itemnr);
 }
 
@@ -100,35 +100,35 @@ void CFriendListCtrl::UpdateFriend(CFriend* toupdate)
 void CFriendListCtrl::OnItemActivated(wxListEvent& WXUNUSED(event))
 {
 	int cursel = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
-	
-	CFriend* cur_friend = (CFriend*)GetItemData(cursel);
-	
+
+	CFriend* cur_friend = reinterpret_cast<CFriend*>(GetItemData(cursel));
+
 	/* ignore this one, it is not activated anymore :) */
 	if (cur_friend == NULL) {
 		return;
 	}
 
 	theApp->amuledlg->m_chatwnd->StartSession(cur_friend);
-	
+
 }
 
 
 void CFriendListCtrl::OnRightClick(wxMouseEvent& event)
 {
 	int cursel = CheckSelection(event);
-	
+
 	CFriend* cur_friend = NULL;
-	
+
 	wxMenu* menu = new wxMenu(_("Friends"));
-	
+
 	if ( cursel != -1 ) {
-		cur_friend = (CFriend*)GetItemData(cursel);
+		cur_friend = reinterpret_cast<CFriend*>(GetItemData(cursel));
 		menu->Append(MP_DETAIL, _("Show &Details"));
 		menu->Enable(MP_DETAIL, cur_friend->GetLinkedClient().IsLinked());
 	}
-	
+
 	menu->Append(MP_ADDFRIEND, _("Add a friend"));
-	
+
 	if (cursel != (-1)) {
 		menu->Append(MP_REMOVEFRIEND, _("Remove Friend"));
 		menu->Append(MP_MESSAGE, _("Send &Message"));
@@ -141,24 +141,24 @@ void CFriendListCtrl::OnRightClick(wxMouseEvent& event)
 			menu->Enable(MP_FRIENDSLOT, false);
 		}
 	}
-	
+
 	PopupMenu(menu, event.GetPosition());
 	delete menu;
 }
 
 void CFriendListCtrl::OnSendMessage(wxCommandEvent& WXUNUSED(event)) {
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	while( index != -1 ) {
-		CFriend* cur_friend = (CFriend*)GetItemData(index);
-		theApp->amuledlg->m_chatwnd->StartSession(cur_friend);			
-		//#warning CORE/GUI!			
+		CFriend* cur_friend = reinterpret_cast<CFriend*>(GetItemData(index));
+		theApp->amuledlg->m_chatwnd->StartSession(cur_friend);
+		//#warning CORE/GUI!
 		#ifndef CLIENT_GUI
 		theApp->friendlist->StartChatSession(cur_friend);
-		#endif		
+		#endif
 
 		index = GetNextItem( index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	}	
+	}
 }
 
 
@@ -173,9 +173,9 @@ void CFriendListCtrl::OnRemoveFriend(wxCommandEvent& WXUNUSED(event))
 
 	if ( wxMessageBox( question, _("Cancel"), wxICON_QUESTION | wxYES_NO, this) == wxYES ) {
 		long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 		while( index != -1 ) {
-			CFriend* cur_friend = (CFriend*)GetItemData(index);
+			CFriend* cur_friend = reinterpret_cast<CFriend*>(GetItemData(index));
 			theApp->friendlist->RemoveFriend(cur_friend);
 			// -1 because we changed the list and removed that item.
 			index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
@@ -186,35 +186,35 @@ void CFriendListCtrl::OnRemoveFriend(wxCommandEvent& WXUNUSED(event))
 
 void CFriendListCtrl::OnAddFriend(wxCommandEvent& WXUNUSED(event))
 {
-	CAddFriend(this).ShowModal();			
+	CAddFriend(this).ShowModal();
 }
 
 
 void CFriendListCtrl::OnShowDetails(wxCommandEvent& WXUNUSED(event))
 {
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	while( index != -1 ) {
-		CFriend* cur_friend = (CFriend*)GetItemData(index);
+		CFriend* cur_friend = reinterpret_cast<CFriend*>(GetItemData(index));
 		if (cur_friend->GetLinkedClient().IsLinked()) {
 			CClientDetailDialog(this, cur_friend->GetLinkedClient()).ShowModal();
-		}		
+		}
 		index = GetNextItem( index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	}	
-	
+	}
+
 }
 
 
 void CFriendListCtrl::OnViewFiles(wxCommandEvent& WXUNUSED(event))
 {
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	while( index != -1 ) {
-		CFriend* cur_friend = (CFriend*)GetItemData(index);
+		CFriend* cur_friend = reinterpret_cast<CFriend*>(GetItemData(index));
 		theApp->friendlist->RequestSharedFileList(cur_friend);
 		index = GetNextItem( index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	}	
-	
+	}
+
 }
 
 
@@ -222,7 +222,7 @@ void CFriendListCtrl::OnSetFriendslot(wxCommandEvent& event)
 {
 	// Get item
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	CFriend* cur_friend = (CFriend*)GetItemData(index);	
+	CFriend* cur_friend = reinterpret_cast<CFriend*>(GetItemData(index));
 	theApp->friendlist->SetFriendSlot(cur_friend, event.IsChecked());
 	index = GetNextItem( index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	if (index != -1) {
diff --git a/src/FriendListCtrl.h b/src/FriendListCtrl.h
index 5524902..882ce3f 100644
--- a/src/FriendListCtrl.h
+++ b/src/FriendListCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,15 +37,15 @@ class CFriendListCtrl : public CMuleListCtrl
 public:
 	CFriendListCtrl(wxWindow* parent, int id, const wxPoint& pos, wxSize siz, int flags);
 	~CFriendListCtrl();
-	
-	void 		UpdateFriend(CFriend* toupdate);
+
+	void		UpdateFriend(CFriend* toupdate);
 	void		RemoveFriend(CFriend* todel);
 
 protected:
 	DECLARE_EVENT_TABLE()
 
 	void	OnRightClick(wxMouseEvent& event);
-		
+
 private:
 	void	OnItemActivated(wxListEvent& event);
 
diff --git a/src/GapList.cpp b/src/GapList.cpp
index 73f885a..096a75d 100644
--- a/src/GapList.cpp
+++ b/src/GapList.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,7 +36,7 @@ void CGapList::Init(uint64 fileSize, bool isEmpty)
 	m_iPartCount = fileSize / PARTSIZE + 1;
 	m_sizeLastPart = fileSize % PARTSIZE;
 	// file with size of n * PARTSIZE
-	if (m_sizeLastPart == 0 
+	if (m_sizeLastPart == 0
 		&& fileSize) {  // that's only for pre-init in ctor
 		m_sizeLastPart = PARTSIZE;
 		m_iPartCount--;
@@ -46,10 +46,12 @@ void CGapList::Init(uint64 fileSize, bool isEmpty)
 	if (isEmpty) {
 		m_partsComplete.resize(m_iPartCount, incomplete);
 		AddGap(0, fileSize - 1);
+		m_totalGapSize = fileSize;
 	} else {
 		m_partsComplete.resize(m_iPartCount, complete);
+		m_totalGapSize = 0;
 	}
-	m_totalGapSizeValid = false;
+	m_totalGapSizeValid = true;
 }
 
 
@@ -101,7 +103,7 @@ void CGapList::AddGap(uint64 gapstart, uint64 gapend)
 			break;
 		}
 	}
-	// for fastest insertion point to the element AFTER which we want to insert	
+	// for fastest insertion point to the element AFTER which we want to insert
 	if (it != m_gaplist.begin()) {
 		--it;
 	}
@@ -205,10 +207,10 @@ uint64 CGapList::GetGapSize()
 {
 	if (!m_totalGapSizeValid) {
 		m_totalGapSizeValid = true;
-   		m_totalGapSize = 0;
+		m_totalGapSize = 0;
 
 		ListType::const_iterator it = m_gaplist.begin();
-		for (; it != m_gaplist.end(); it++) {
+		for (; it != m_gaplist.end(); ++it) {
 			m_totalGapSize += it->first - it->second + 1;
 		}
 	}
@@ -267,7 +269,7 @@ bool CGapList::IsComplete(uint64 gapstart, uint64 gapend) const
 			||(curGapStart >= gapstart    && curGapStart <= gapend)
 			||(curGapEnd   <= gapend      && curGapEnd   >= gapstart)
 			||(gapstart    >= curGapStart && gapend      <= curGapEnd)) {
-			return false;	
+			return false;
 		}
 		if (curGapStart > gapend) {
 			break;
diff --git a/src/GapList.h b/src/GapList.h
index 4eaa454..41c4af7 100644
--- a/src/GapList.h
+++ b/src/GapList.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,7 +30,7 @@
 class CGapList {
 private:
 	// The internal gap list:
-	// Each gap is stored as a map entry. 
+	// Each gap is stored as a map entry.
 	// The first (key) is the end, the second (value) the start.
 	typedef std::map<uint64,uint64> ListType;
 	typedef ListType::iterator iterator;
diff --git a/src/GenericClientListCtrl.cpp b/src/GenericClientListCtrl.cpp
index 8319709..4ed068e 100644
--- a/src/GenericClientListCtrl.cpp
+++ b/src/GenericClientListCtrl.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -58,7 +58,7 @@ struct ClientCtrlItem_Struct
 		  m_owner(NULL),
 		  m_type(UNAVAILABLE_SOURCE)
 	{ }
-	
+
 	~ClientCtrlItem_Struct() {
 		delete status;
 	}
@@ -81,9 +81,9 @@ struct ClientCtrlItem_Struct
 		m_sourceValue = source;
 		m_type = type;
 	}
-	
+
 	void SetType(SourceItemType type) { m_type = type; }
-	
+
 	uint32		dwUpdated;
 	wxBitmap*	status;
 
@@ -129,11 +129,11 @@ m_columndata(0, NULL)
 
 	m_menu = NULL;
 	m_showing = false;
-	
+
 	m_hilightBrush  = CMuleColour(wxSYS_COLOUR_HIGHLIGHT).Blend(125).GetBrush();
 
 	m_hilightUnfocusBrush = CMuleColour(wxSYS_COLOUR_BTNSHADOW).Blend(125).GetBrush();
-	
+
 	m_clientcount = 0;
 }
 
@@ -201,12 +201,12 @@ void CGenericClientListCtrl::InitColumnData()
 	if (!m_columndata.n_columns) {
 		throw wxString(wxT("CRITICAL: Initialization of the column data lacks subclass information"));
 	}
-	
-	for (int i = 0; i < m_columndata.n_columns; ++i) { 
+
+	for (int i = 0; i < m_columndata.n_columns; ++i) {
 		InsertColumn( i, wxGetTranslation(m_columndata.columns[i].title), wxLIST_FORMAT_LEFT, m_columndata.columns[i].width, TranslateCIDToName(m_columndata.columns[i].cid));
 	}
 
-	LoadSettings();	
+	LoadSettings();
 }
 
 CGenericClientListCtrl::~CGenericClientListCtrl()
@@ -220,19 +220,19 @@ void CGenericClientListCtrl::RawAddSource(CKnownFile* owner, CClientRef source,
 {
 	ClientCtrlItem_Struct* newitem = new ClientCtrlItem_Struct;
 	newitem->SetContents(owner, source, type);
-	
+
 	m_ListItems.insert( ListItemsPair(source.ECID(), newitem) );
-	
+
 	long item = InsertItem( GetItemCount(), wxEmptyString );
 	SetItemPtrData( item, reinterpret_cast<wxUIntPtr>(newitem) );
-	SetItemBackgroundColour( item, GetBackgroundColour() );	
+	SetItemBackgroundColour( item, GetBackgroundColour() );
 }
 
 void CGenericClientListCtrl::AddSource(CKnownFile* owner, const CClientRef& source, SourceItemType type)
 {
 	wxCHECK_RET(owner, wxT("NULL owner in CGenericClientListCtrl::AddSource"));
 	wxCHECK_RET(source.IsLinked(), wxT("Unlinked source in CGenericClientListCtrl::AddSource"));
-	
+
 	// Update the other instances of this source
 	bool bFound = false;
 	ListIteratorPair rangeIt = m_ListItems.equal_range(source.ECID());
@@ -242,13 +242,13 @@ void CGenericClientListCtrl::AddSource(CKnownFile* owner, const CClientRef& sour
 		// Check if this source has been already added to this file => to be sure
 		if ( cur_item->GetOwner() == owner ) {
 			// Update this instance with its new setting
-			if ((type == A4AF_SOURCE) && 
-				cur_item->GetSource().GetRequestFile() 
-				&& std::binary_search(m_knownfiles.begin(), m_knownfiles.end(), cur_item->GetSource().GetRequestFile())) {				
+			if ((type == A4AF_SOURCE) &&
+				cur_item->GetSource().GetRequestFile()
+				&& std::binary_search(m_knownfiles.begin(), m_knownfiles.end(), cur_item->GetSource().GetRequestFile())) {
 				cur_item->SetContents(owner, source, AVAILABLE_SOURCE);
 			} else {
 				cur_item->SetContents(owner, source, type);
-			}			
+			}
 			cur_item->dwUpdated = 0;
 			bFound = true;
 		} else if ( type == AVAILABLE_SOURCE ) {
@@ -264,7 +264,7 @@ void CGenericClientListCtrl::AddSource(CKnownFile* owner, const CClientRef& sour
 
 	if ( std::binary_search(m_knownfiles.begin(), m_knownfiles.end(), owner) ) {
 		RawAddSource(owner, source, type);
-		
+
 		ShowSourcesCount( 1 );
 	}
 }
@@ -272,9 +272,9 @@ void CGenericClientListCtrl::AddSource(CKnownFile* owner, const CClientRef& sour
 void CGenericClientListCtrl::RawRemoveSource( ListItems::iterator& it)
 {
 	ClientCtrlItem_Struct* item = it->second;
-	
+
 	long index = FindItem( -1, reinterpret_cast<wxUIntPtr>(item) );
-	
+
 	if ( index > -1 ) {
 		DeleteItem( index );
 	}
@@ -289,23 +289,23 @@ void CGenericClientListCtrl::RemoveSource(uint32 source, const CKnownFile* owner
 {
 	// A NULL owner means remove it no matter what.
 	wxCHECK_RET(source, wxT("NULL source in CGenericClientListCtrl::RemoveSource"));
-	
+
 	// Retrieve all entries matching the source
 	ListIteratorPair rangeIt = m_ListItems.equal_range(source);
-	
+
 	int removedItems = 0;
-	
+
 	for ( ListItems::iterator it = rangeIt.first; it != rangeIt.second;  /* no ++, it happens later */) {
 		ListItems::iterator tmp = it++;
-		
+
 		if ( owner == NULL || owner == tmp->second->GetOwner() ) {
 
 			RawRemoveSource(tmp);
-			
+
 			++removedItems;
 		}
 	}
-	
+
 	ShowSourcesCount((-1) * removedItems);
 }
 
@@ -313,33 +313,33 @@ void CGenericClientListCtrl::UpdateItem(uint32 toupdate, SourceItemType type)
 {
 	// Retrieve all entries matching the source
 	ListIteratorPair rangeIt = m_ListItems.equal_range( toupdate );
-	
+
 	if ( rangeIt.first != rangeIt.second ) {
 		// Visible lines, default to all because not all platforms
 		// support the GetVisibleLines function
 		long first = 0, last = GetItemCount();
 
-	#ifndef __WXMSW__
+	#ifndef __WINDOWS__ 
 		// Get visible lines if we need them
 		GetVisibleLines( &first, &last );
 	#endif
-		
+
 		for ( ListItems::iterator it = rangeIt.first; it != rangeIt.second; ++it ) {
 			ClientCtrlItem_Struct* item = it->second;
-			
+
 			long index = FindItem( -1, reinterpret_cast<wxUIntPtr>(item) );
 
-			if ((type == A4AF_SOURCE) && 
-					item->GetSource().GetRequestFile() 
+			if ((type == A4AF_SOURCE) &&
+					item->GetSource().GetRequestFile()
 					&& std::binary_search(m_knownfiles.begin(), m_knownfiles.end(), item->GetSource().GetRequestFile())) {
-				
-				item->SetType(AVAILABLE_SOURCE);	
+
+				item->SetType(AVAILABLE_SOURCE);
 			} else {
 				item->SetType(type);
 			}
-			
+
 			item->dwUpdated = 0;
-			
+
 			// Only update visible lines
 			if ( index >= first && index <= last) {
 				RefreshItem( index );
@@ -349,9 +349,9 @@ void CGenericClientListCtrl::UpdateItem(uint32 toupdate, SourceItemType type)
 }
 
 void CGenericClientListCtrl::ShowSources( const CKnownFileVector& files )
-{	
+{
 	Freeze();
-	
+
 	// The stored vector is sorted, as is the received one, so we can use binary_search
 
 	for (unsigned i = 0; i < m_knownfiles.size(); ++i) {
@@ -360,7 +360,7 @@ void CGenericClientListCtrl::ShowSources( const CKnownFileVector& files )
 			SetShowSources(m_knownfiles[i], false);
 		}
 	}
-	
+
 	// This will call again SetShowSources in files that were in both vectors. Right now
 	// that function is just a inline setter, so any way to prevent it would be wasteful,
 	// but this must be reviewed if that fact changes.
@@ -368,11 +368,11 @@ void CGenericClientListCtrl::ShowSources( const CKnownFileVector& files )
 	for (unsigned i = 0; i < files.size(); ++i) {
 		SetShowSources(files[i], true);
 	}
-	
-	// We must cleanup sources that are not in the received files. 
-	
+
+	// We must cleanup sources that are not in the received files.
+
 	int itemDiff = 0;
-	
+
 	for (ListItems::iterator it = m_ListItems.begin(); it != m_ListItems.end(); /* no ++, it happens later */) {
 		ListItems::iterator tmp = it++;
 		ClientCtrlItem_Struct* item = tmp->second;
@@ -382,24 +382,24 @@ void CGenericClientListCtrl::ShowSources( const CKnownFileVector& files )
 			--itemDiff;
 		}
 	}
-	
+
 	for (unsigned i = 0; i < files.size(); ++i) {
-		
+
 		// Only those that weren't showing already
 		if (!std::binary_search(m_knownfiles.begin(), m_knownfiles.end(), files[i])) {
-			
+
 			CKnownFile* file = files[i];
 
 			wxASSERT_MSG(file, wxT("NULL file in CGenericClientListCtrl::ShowSources"));
-			
+
 			if (file) {
-				
+
 				CKnownFile::SourceSet::const_iterator it;
-			
+
 				if (IsShowingDownloadSources()) {
 					const CKnownFile::SourceSet& normSources = (dynamic_cast<CPartFile*>( file ))->GetSourceList();
 					const CKnownFile::SourceSet& a4afSources = (dynamic_cast<CPartFile*>( file ))->GetA4AFList();
-						
+
 					// Adding normal sources
 					for ( it = normSources.begin(); it != normSources.end(); ++it ) {
 						switch (it->GetDownloadState()) {
@@ -414,7 +414,7 @@ void CGenericClientListCtrl::ShowSources( const CKnownFileVector& files )
 								++itemDiff;
 						}
 					}
-			
+
 					// Adding A4AF sources
 					for ( it = a4afSources.begin(); it != a4afSources.end(); ++it ) {
 						// Only add if the A4AF file is not in the shown list.
@@ -438,18 +438,18 @@ void CGenericClientListCtrl::ShowSources( const CKnownFileVector& files )
 								RawAddSource( file, *it, UNAVAILABLE_SOURCE );
 								++itemDiff;
 						}
-					}			
+					}
 				}
 			}
 		}
 	}
 
-	m_knownfiles = files;	
-	
+	m_knownfiles = files;
+
 	ShowSourcesCount( itemDiff );
-		 
+
 	SortList();
-	
+
 	Thaw();
 }
 
@@ -464,12 +464,12 @@ ItemList GetSelectedItems( CGenericClientListCtrl* list )
 	ItemList results;
 
 	long index = list->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	while ( index > -1 ) {
-		ClientCtrlItem_Struct* item = (ClientCtrlItem_Struct*)list->GetItemData( index );
+		ClientCtrlItem_Struct* item = reinterpret_cast<ClientCtrlItem_Struct*>(list->GetItemData( index ));
 
 		results.push_back( item );
-		
+
 		index = list->GetNextItem( index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	}
 
@@ -479,7 +479,7 @@ ItemList GetSelectedItems( CGenericClientListCtrl* list )
 void CGenericClientListCtrl::OnSwapSource( wxCommandEvent& WXUNUSED(event) )
 {
 	ItemList sources = ::GetSelectedItems( this );
-	
+
 	for ( ItemList::iterator it = sources.begin(); it != sources.end(); ++it ) {
 		CKnownFile * kf = (*it)->GetOwner();
 		if (!kf->IsPartFile()) {
@@ -495,7 +495,7 @@ void CGenericClientListCtrl::OnViewFiles( wxCommandEvent& WXUNUSED(event) )
 {
 	ItemList sources = ::GetSelectedItems( this );
 
-	if ( sources.size() == 1 ) {		
+	if ( sources.size() == 1 ) {
 		sources.front()->GetSource().RequestSharedFileList();
 	}
 }
@@ -520,11 +520,11 @@ void CGenericClientListCtrl::OnSetFriendslot(wxCommandEvent& evt)
 {
 	ItemList sources = ::GetSelectedItems( this );
 
-	ItemList::iterator it = sources.begin(); 
+	ItemList::iterator it = sources.begin();
 	if (it != sources.end()) {
 		CClientRef &client = (*it)->GetSource();
 		theApp->friendlist->SetFriendSlot(client.GetFriend(), evt.IsChecked());
-		it++;
+		++it;
 	}
 	if (it != sources.end()) {
 		wxMessageBox(_("You are not allowed to set more than one friendslot.\n Only one slot was assigned."), _("Multiple selection"), wxOK | wxICON_ERROR, this);
@@ -543,7 +543,7 @@ void CGenericClientListCtrl::OnSendMessage( wxCommandEvent& WXUNUSED(event) )
 		// start an event-loop, in which the client may be deleted.
 		wxString userName = source.GetUserName();
 		uint64 userID = GUI_ID(source.GetIP(), source.GetUserPort());
-		
+
 		wxString message = ::wxGetTextFromUser(_("Send message to user"),
 			_("Message to send:"));
 		if ( !message.IsEmpty() ) {
@@ -565,7 +565,7 @@ void CGenericClientListCtrl::OnViewClientInfo( wxCommandEvent& WXUNUSED(event) )
 
 void CGenericClientListCtrl::OnItemActivated( wxListEvent& evt )
 {
-	CClientDetailDialog( this, ((ClientCtrlItem_Struct*)GetItemData( evt.GetIndex()))->GetSource() ).ShowModal();
+	CClientDetailDialog( this, reinterpret_cast<ClientCtrlItem_Struct*>(GetItemData( evt.GetIndex()))->GetSource() ).ShowModal();
 }
 
 
@@ -574,14 +574,14 @@ void CGenericClientListCtrl::OnMouseRightClick(wxListEvent& evt)
 	long index = CheckSelection(evt);
 	if (index < 0) {
 		return;
-	}	
-	
+	}
+
 	delete m_menu;
 	m_menu = NULL;
-	
-	ClientCtrlItem_Struct* item = (ClientCtrlItem_Struct*)GetItemData( index );
+
+	ClientCtrlItem_Struct* item = reinterpret_cast<ClientCtrlItem_Struct*>(GetItemData( index ));
 	CClientRef& client = item->GetSource();
-	
+
 	m_menu = new wxMenu(wxT("Clients"));
 	m_menu->Append(MP_DETAIL, _("Show &Details"));
 	m_menu->Append(MP_ADDFRIEND, client.IsFriend() ? _("Remove from friends") : _("Add to Friends"));
@@ -596,21 +596,21 @@ void CGenericClientListCtrl::OnMouseRightClick(wxListEvent& evt)
 
 	m_menu->Append(MP_SHOWLIST, _("View Files"));
 	m_menu->Append(MP_SENDMESSAGE, _("Send message"));
-	
+
 	m_menu->Append(MP_CHANGE2FILE, _("Swap to this file"));
-	
+
 	// Only enable the Swap option for A4AF sources
 	m_menu->Enable(MP_CHANGE2FILE, (item->GetType() == A4AF_SOURCE));
 	// We need a valid IP if we are to message the client
 	m_menu->Enable(MP_SENDMESSAGE, (client.GetIP() != 0));
-	
+
 	m_menu->Enable(MP_SHOWLIST, !client.HasDisabledSharedFiles());
-	
+
 	PopupMenu(m_menu, evt.GetPoint());
-	
+
 	delete m_menu;
 	m_menu = NULL;
-	
+
 }
 
 
@@ -621,8 +621,8 @@ void CGenericClientListCtrl::OnMouseMiddleClick(wxListEvent& evt)
 	if ( index < 0 ) {
 		return;
 	}
-	
-	CClientDetailDialog(this, ((ClientCtrlItem_Struct*)GetItemData( index ))->GetSource()).ShowModal();
+
+	CClientDetailDialog(this, reinterpret_cast<ClientCtrlItem_Struct*>(GetItemData( index ))->GetSource()).ShowModal();
 }
 
 
@@ -644,7 +644,7 @@ void CGenericClientListCtrl::OnDrawItem(
 		return;
 	}
 
-	ClientCtrlItem_Struct* content = (ClientCtrlItem_Struct *)GetItemData(item);
+	ClientCtrlItem_Struct* content = reinterpret_cast<ClientCtrlItem_Struct *>(GetItemData(item));
 
 	// Define text-color and background
 	// and the border of the drawn area
@@ -684,9 +684,9 @@ void CGenericClientListCtrl::OnDrawItem(
 	}
 
 	wxRect cur_rec( iOffset, rect.y, 0, rect.height );
-	
+
 	for (int i = 0; i < GetColumnCount(); ++i) {
-		
+
 		int columnwidth = GetColumnWidth(i);
 
 		if (columnwidth > 2*iOffset) {
@@ -695,11 +695,11 @@ void CGenericClientListCtrl::OnDrawItem(
 			target_rec.width = columnwidth - 2*iOffset;
 
 			GenericColumnEnum cid = m_columndata.columns[i].cid;
-			
+
 			// Draw the item
 			DrawClientItem(dc, cid, target_rec, content, iTextOffset, imageListBitmapYOffset, imageListBitmapXSize);
 		}
-		
+
 		// Increment to the next column
 		cur_rec.x += columnwidth;
 	}
@@ -709,7 +709,7 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 {
 	wxDCClipper clipper( *dc, rect.GetX(), rect.GetY(), rect.GetWidth(), rect.GetHeight() );
 	wxString buffer;
-	
+
 	const CClientRef& client = item->GetSource();
 
 	switch (nColumn) {
@@ -722,7 +722,7 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 			uint8 image = Client_Grey_Smiley;
 
 			if (item->GetType() != A4AF_SOURCE) {
-				
+
 				switch (client.GetDownloadState()) {
 					case DS_CONNECTING:
 					case DS_CONNECTED:
@@ -757,10 +757,10 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 
 				// Next
 
-				point.x += iBitmapXSize; 
+				point.x += iBitmapXSize;
 
 				uint8 clientImage = Client_Unknown;
-				
+
 				if ( client.IsFriend() ) {
 					clientImage = Client_Friend_Smiley;
 				} else {
@@ -805,7 +805,7 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 
 				if (client.GetScoreRatio() > 1) {
 					// Has credits, draw the gold star
-					m_ImageList.Draw(Client_CreditsYellow_Smiley, *dc, point.x, realY, 
+					m_ImageList.Draw(Client_CreditsYellow_Smiley, *dc, point.x, realY,
 						wxIMAGELIST_DRAW_TRANSPARENT );
 				}	else if ( !client.ExtProtocolAvailable() ) {
 					// No Ext protocol -> Draw the '-'
@@ -816,22 +816,22 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 				if (client.IsIdentified()) {
 					// the 'v'
 					m_ImageList.Draw(Client_SecIdent_Smiley, *dc, point.x, realY,
-						wxIMAGELIST_DRAW_TRANSPARENT);					
+						wxIMAGELIST_DRAW_TRANSPARENT);
 				} else if (client.IsBadGuy()) {
 					// the 'X'
 					m_ImageList.Draw(Client_BadGuy_Smiley, *dc, point.x, realY,
-						wxIMAGELIST_DRAW_TRANSPARENT);					
+						wxIMAGELIST_DRAW_TRANSPARENT);
 				}
-							
+
 				if (client.GetObfuscationStatus() == OBST_ENABLED) {
 					// the "¿" except it's a key
 					m_ImageList.Draw(Client_Encryption_Smiley, *dc, point.x, realY,
-						wxIMAGELIST_DRAW_TRANSPARENT);					
-				}				
-				
+						wxIMAGELIST_DRAW_TRANSPARENT);
+				}
+
 				// Next
 
-				point.x += iBitmapXSize; 
+				point.x += iBitmapXSize;
 
 				wxString userName;
 #ifdef ENABLE_IP2COUNTRY
@@ -844,9 +844,9 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 					dc->DrawBitmap(countrydata.Flag,
 						point.x, realY,
 						true);
-				
+
 					userName << countrydata.Name;
-				
+
 					userName << wxT(" - ");
 
 					point.x += countrydata.Flag.GetWidth() + 2 /*Padding*/;
@@ -894,15 +894,15 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 
 				// don't draw Text beyond the bar
 				dc->SetClippingRegion(rect.GetX(), rect.GetY() + 1, iWidth, iHeight);
-			
+
 				if ( item->GetType() != A4AF_SOURCE ) {
 					uint32 dwTicks = GetTickCount();
-					
+
 					wxMemoryDC cdcStatus;
 
-					if ( item->dwUpdated < dwTicks || !item->status || 
+					if ( item->dwUpdated < dwTicks || !item->status ||
 							iWidth != item->status->GetWidth() ) {
-						
+
 						if (item->status == NULL) {
 							item->status = new wxBitmap(iWidth, iHeight);
 						} else if ( item->status->GetWidth() != iWidth ) {
@@ -918,13 +918,13 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 						} else {
 							DrawSourceStatusBar( client, &cdcStatus,
 								wxRect(1, 1, iWidth - 2, iHeight - 2), false);
-				
+
 							// Draw black border
 							cdcStatus.SetPen( *wxBLACK_PEN );
 							cdcStatus.SetBrush( *wxTRANSPARENT_BRUSH );
 							cdcStatus.DrawRectangle( 0, 0, iWidth, iHeight );
 						}
-						
+
 						// Plus ten seconds
 						item->dwUpdated = dwTicks + 10000;
 					} else {
@@ -941,21 +941,21 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 						a4af = wxT("?");
 					}
 					buffer = CFormat(wxT("%s: %s")) % _("A4AF") % a4af;
-					
+
 					int midx = (2*rect.GetX() + rect.GetWidth()) >> 1;
 					int midy = (2*rect.GetY() + rect.GetHeight()) >> 1;
-					
+
 					wxCoord txtwidth, txtheight;
-					
+
 					dc->GetTextExtent(buffer, &txtwidth, &txtheight);
-					
+
 					dc->SetTextForeground(*wxBLACK);
 					dc->DrawText(buffer, wxMax(rect.GetX() + 2, midx - (txtwidth >> 1)), midy - (txtheight >> 1));
 
 					// Draw black border
 					dc->SetPen( *wxBLACK_PEN );
 					dc->SetBrush( *wxTRANSPARENT_BRUSH );
-					dc->DrawRectangle( rect.GetX(), rect.GetY() + 1, iWidth, iHeight );		
+					dc->DrawRectangle( rect.GetX(), rect.GetY() + 1, iWidth, iHeight );
 				}
 			}
 			break;
@@ -974,7 +974,7 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 
 		case ColumnUserQueueRankRemote: {
 			sint16 qrDiff = 0;
-			wxColour savedColour = dc->GetTextForeground();	
+			wxColour savedColour = dc->GetTextForeground();
 			// We only show the queue rank for sources actually queued for that file
 			if (	item->GetType() != A4AF_SOURCE && client.GetDownloadState() == DS_ONQUEUE ) {
 				if (client.IsRemoteQueueFull()) {
@@ -999,13 +999,13 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 				}
 			} else {
 				if (item->GetType() != A4AF_SOURCE) {
-					buffer = DownloadStateToStr( client.GetDownloadState(), 
+					buffer = DownloadStateToStr( client.GetDownloadState(),
 						client.IsRemoteQueueFull() );
 				} else {
 					buffer = _("Asked for another file");
 					if (	client.GetRequestFile() &&
 						client.GetRequestFile()->GetFileName().IsOk()) {
-						buffer += CFormat(wxT(" (%s)")) 
+						buffer += CFormat(wxT(" (%s)"))
 							% client.GetRequestFile()->GetFileName();
 					}
 				}
@@ -1016,7 +1016,7 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 			}
 			break;
 		}
-		case ColumnUserQueueRankLocal:	
+		case ColumnUserQueueRankLocal:
 			if (item->GetType() != A4AF_SOURCE) {
 				if (client.GetUploadState() == US_ONUPLOADQUEUE ) {
 					uint16 nRank = client.GetUploadQueueWaitingPosition();
@@ -1098,8 +1098,8 @@ void CGenericClientListCtrl::DrawClientItem(wxDC* dc, int nColumn, const wxRect&
 
 int CGenericClientListCtrl::SortProc(wxUIntPtr param1, wxUIntPtr param2, long sortData)
 {
-	ClientCtrlItem_Struct* item1 = (ClientCtrlItem_Struct*)param1;
-	ClientCtrlItem_Struct* item2 = (ClientCtrlItem_Struct*)param2;
+	ClientCtrlItem_Struct* item1 = reinterpret_cast<ClientCtrlItem_Struct*>(param1);
+	ClientCtrlItem_Struct* item2 = reinterpret_cast<ClientCtrlItem_Struct*>(param2);
 
 	int sortMod = (sortData & CMuleListCtrl::SORT_DES) ? -1 : 1;
 	sortData &= CMuleListCtrl::COLUMN_MASK;
@@ -1128,9 +1128,9 @@ int CGenericClientListCtrl::Compare(
 		// Sort by name
 		case ColumnUserName:
 			return CmpAny( client1.GetUserName(), client2.GetUserName() );
-	
+
 		// Sort by transferred in the following fields
-		case ColumnUserDownloaded:	
+		case ColumnUserDownloaded:
 			return CmpAny( client1.GetTransferredDown(), client2.GetTransferredDown() );
 
 		// Sort by transferred in the following fields
@@ -1140,7 +1140,7 @@ int CGenericClientListCtrl::Compare(
 		// Sort by speed
 		case ColumnUserSpeedDown:
 			return CmpAny( client1.GetKBpsDown(), client2.GetKBpsDown() );
-		
+
 		// Sort by speed
 		case ColumnUserSpeedUp:
 			return CmpAny( client1.GetUploadDatarate(), client2.GetUploadDatarate() );
@@ -1150,7 +1150,7 @@ int CGenericClientListCtrl::Compare(
 			return CmpAny(
 				client1.GetAvailablePartCount(),
 				client2.GetAvailablePartCount() );
-		
+
 		// Sort by client version
 		case ColumnUserVersion: {
 			int cmp = client1.GetSoftStr().Cmp(client2.GetSoftStr());
@@ -1163,7 +1163,7 @@ int CGenericClientListCtrl::Compare(
 			}
 			return cmp;
 		}
-		
+
 		// Sort by Queue-Rank
 		case ColumnUserQueueRankRemote: {
 			// This will sort by download state: Downloading, OnQueue, Connecting ...
@@ -1200,7 +1200,7 @@ int CGenericClientListCtrl::Compare(
 				}
 			}
 		}
-		
+
 		// Sort by Queue-Rank
 		case ColumnUserQueueRankLocal: {
 			// This will sort by download state: Downloading, OnQueue, Connecting ...
@@ -1243,7 +1243,7 @@ int CGenericClientListCtrl::Compare(
 		// Source of source ;)
 		case ColumnUserOrigin:
 			return CmpAny(client1.GetSourceFrom(), client2.GetSourceFrom());
-		
+
 		// Sort by local filename (download)
 		case ColumnUserFileNameDownload: {
 			wxString buffer1, buffer2;
@@ -1291,7 +1291,7 @@ void CGenericClientListCtrl::ShowSourcesCount( int diff )
 	m_clientcount += diff;
 	wxStaticText* label = CastByID( ID_CLIENTCOUNT, GetParent(), wxStaticText );
 
-	if (label) {	
+	if (label) {
 		label->SetLabel(CFormat(wxT("%i")) % m_clientcount);
 		label->GetParent()->Layout();
 	}
@@ -1323,7 +1323,7 @@ void CGenericClientListCtrl::DrawSourceStatusBar(
 
 	if (reqfile && reqfile->GetPartCount() == partStatus.size()) {
 		s_StatusBar.SetFileSize(reqfile->GetFileSize());
-		uint16 lastDownloadingPart = source.GetDownloadState() == DS_DOWNLOADING 
+		uint16 lastDownloadingPart = source.GetDownloadState() == DS_DOWNLOADING
 									? source.GetLastDownloadingPart() : 0xffff;
 		uint16 nextRequestedPart = source.GetNextRequestedPart();
 
diff --git a/src/GenericClientListCtrl.h b/src/GenericClientListCtrl.h
index 7778985..b5a918b 100644
--- a/src/GenericClientListCtrl.h
+++ b/src/GenericClientListCtrl.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -84,7 +84,7 @@ class CGenericClientListCtrl : public CMuleListCtrl
 public:
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @see CMuleListCtrl::CMuleListCtrl for documentation of parameters.
 	 */
 	 CGenericClientListCtrl(
@@ -96,11 +96,11 @@ public:
                 long style,
                 const wxValidator& validator,
                 const wxString &name);
-				
+
 	/**
 	 * Destructor.
-	 */	 
-	virtual	~CGenericClientListCtrl();	
+	 */
+	virtual	~CGenericClientListCtrl();
 
 	/**
 	 * Initializes the control. We need a 2-stage initialization so the derived class members can be called.
@@ -127,7 +127,7 @@ public:
 	 * @param owner Either a specific file, or NULL to remove the source from all files.
 	 */
 	void RemoveSource( uint32 source, const CKnownFile* owner );
-	
+
 	/**
 	 * Shows the clients of specific files.
 	 *
@@ -142,7 +142,7 @@ public:
 	 * Updates the state of the specified item, possibly causing a redrawing.
 	 *
 	 * @param toupdate ID of the client to be updated.
-	 * @param type If the source is a current source, or a A4AF source.	 
+	 * @param type If the source is a current source, or a A4AF source.
 	 *
 	 */
 	void UpdateItem(uint32 toupdate, SourceItemType type);
@@ -207,7 +207,7 @@ private:
 	wxString TranslateCIDToName(GenericColumnEnum cid);
 
 	static int Compare( const CClientRef& client1, const CClientRef& client2, long lParamColumnSort);
-	
+
 	// Event-handlers for clients.
 	void	OnSwapSource( wxCommandEvent& event );
 	void	OnViewFiles( wxCommandEvent& event );
@@ -218,8 +218,8 @@ private:
 
 	// Misc event-handlers
 	void	OnItemActivated( wxListEvent& event );
-	void 	OnMouseRightClick( wxListEvent& event );
-	void 	OnMouseMiddleClick( wxListEvent& event );
+	void	OnMouseRightClick( wxListEvent& event );
+	void	OnMouseMiddleClick( wxListEvent& event );
 	void	OnKeyPressed( wxKeyEvent& event );
 
 	//! The type of list used to store items on the listctrl. We use the unique ECID as key.
@@ -232,24 +232,24 @@ private:
 	//! This list contains everything shown on the list. Sources are only to
 	//! be found on this list if they are being displayed
 	ListItems	m_ListItems;
-	
+
 	//! Pointer to the current menu object, used to avoid multiple menus.
 	wxMenu*		m_menu;
 	//! Cached brush object.
 	wxBrush	m_hilightBrush;
 	//! Cached brush object.
 	wxBrush	m_hilightUnfocusBrush;
-	
+
 	//! The number of displayed sources
 	int m_clientcount;
 
 	//! The files being shown, if any.
 	CKnownFileVector m_knownfiles;
-	
+
 	DECLARE_EVENT_TABLE()
 
 	bool m_showing;
-	
+
 	void RawAddSource(CKnownFile* owner, CClientRef source, SourceItemType type);
 	void RawRemoveSource( ListItems::iterator& it );
 
diff --git a/src/GetTickCount.cpp b/src/GetTickCount.cpp
index 02b2246..264a1af 100644
--- a/src/GetTickCount.cpp
+++ b/src/GetTickCount.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,7 +28,7 @@
 
 uint32 TheTime = 0;
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 
 void StartTickTimer(){};
 
@@ -42,15 +42,15 @@ void StopTickTimer(){};
 uint32 GetTickCountFullRes() {
 	return GetTickCount_64();
 }
-	
+
 /**
  * Returns the tickcount in 64bits.
  */
 uint64 GetTickCount_64()
 {
 	// Use highres timer for all operations on Windows
-	// The Timer starts at system boot and runs (on a Intel Quad core) 
-	// with 14 million ticks per second. So it won't overflow for 
+	// The Timer starts at system boot and runs (on a Intel Quad core)
+	// with 14 million ticks per second. So it won't overflow for
 	// 35000 years.
 
 	// Convert hires ticks to milliseconds
@@ -91,7 +91,7 @@ uint32 GetTickCountFullRes(void) {
  */
 	#include <wx/timer.h>
 
-	class MyTimer : public wxTimer 
+	class MyTimer : public wxTimer
 	{
 	public:
 		MyTimer() { tic32 = tic64 = wxGetLocalTimeMillis().GetValue(); Start(20); }
@@ -99,7 +99,7 @@ uint32 GetTickCountFullRes(void) {
 		static uint64 GetTickCountNow64() { return tic64; }
 	private:
 		void Notify() { tic32 = tic64 = wxGetLocalTimeMillis().GetValue(); }
-		
+
 		static uint32 tic32;
 		static uint64 tic64;
 	};
@@ -108,24 +108,24 @@ uint32 GetTickCountFullRes(void) {
 
 	// Initialization of the static MyTimer member variables.
 	uint32 MyTimer::tic32 = 0;
-	uint64 MyTimer::tic64 = 0;	
-	
-	void StartTickTimer() { 
-		wxASSERT(mytimer == NULL); 
+	uint64 MyTimer::tic64 = 0;
+
+	void StartTickTimer() {
+		wxASSERT(mytimer == NULL);
 		mytimer = new MyTimer();
 	}
 
-	void StopTickTimer() { 
-		wxASSERT(mytimer != NULL); 
+	void StopTickTimer() {
+		wxASSERT(mytimer != NULL);
 		delete mytimer;
 		mytimer = NULL;
 	}
-	
-	uint32 GetTickCount(){ 
-		wxASSERT(mytimer != NULL); 
+
+	uint32 GetTickCount(){
+		wxASSERT(mytimer != NULL);
 		return MyTimer::GetTickCountNow();
 	}
-	
+
 	uint64 GetTickCount64(){
 		wxASSERT(mytimer != NULL);
 		return MyTimer::GetTickCountNow64();
@@ -145,7 +145,7 @@ uint32 GetTickCountFullRes(void) {
 	void StopTickTimer() {}
 
 	uint32 GetTickCount() { return GetTickCountFullRes(); }
-		
+
 	// avoids 32bit rollover error for differences above 50days
 	uint64 GetTickCount64() {
 		struct timeval aika;
diff --git a/src/GetTickCount.h b/src/GetTickCount.h
index 5501dd9..6e09b6e 100644
--- a/src/GetTickCount.h
+++ b/src/GetTickCount.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,7 +42,7 @@
 // However, on GUI, GetTickCount does only work in
 // 20 msecs increment, and some classes need better.
 
-uint32 GetTickCountFullRes(); 
+uint32 GetTickCountFullRes();
 
 uint64 GetTickCount64();
 
diff --git a/src/GuiEvents.cpp b/src/GuiEvents.cpp
index 9bc4e7a..785a57e 100644
--- a/src/GuiEvents.cpp
+++ b/src/GuiEvents.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -33,6 +33,7 @@
 #include "SearchList.h"
 #include "IPFilter.h"
 #include "Friend.h"
+#include "Logger.h"
 
 #ifndef AMULE_DAEMON
 #	include "ChatWnd.h"
@@ -55,6 +56,9 @@
 
 #ifndef CLIENT_GUI
 #	include "UploadQueue.h"
+#	include "EMSocket.h"
+#	include "ListenSocket.h"
+#	include "MuleUDPSocket.h"
 #endif
 
 #include <common/MacrosProgramSpecific.h>
@@ -93,7 +97,7 @@ namespace MuleNotify
 	{
 		theApp->downloadqueue->AddSearchToDownload(file, category);
 	}
-	
+
 
 	void ShowUserCount(wxString NOT_ON_DAEMON(str))
 	{
@@ -120,11 +124,11 @@ namespace MuleNotify
 #endif
 	}
 
-	
+
 	void DownloadCtrlUpdateItem(const void* item)
 	{
 #ifndef CLIENT_GUI
-		theApp->ECServerHandler->m_ec_notifier->DownloadFile_SetDirty((CPartFile *)item);
+		theApp->ECServerHandler->m_ec_notifier->DownloadFile_SetDirty(static_cast<const CPartFile*>(item));
 #endif
 #ifndef AMULE_DAEMON
 		if (theApp->amuledlg->m_transferwnd && theApp->amuledlg->m_transferwnd->downloadlistctrl) {
@@ -164,7 +168,7 @@ namespace MuleNotify
 		theApp->amuledlg->Iconize(false);
 #endif
 	}
-	
+
 	void SourceCtrlUpdateSource(uint32 NOT_ON_DAEMON(source), SourceItemType NOT_ON_DAEMON(type))
 	{
 #ifndef AMULE_DAEMON
@@ -173,7 +177,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void SourceCtrlAddSource(CPartFile* NOT_ON_DAEMON(owner), CClientRef NOT_ON_DAEMON(source), SourceItemType NOT_ON_DAEMON(type))
 	{
 #ifndef AMULE_DAEMON
@@ -182,7 +186,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void SourceCtrlRemoveSource(uint32 NOT_ON_DAEMON(source), const CPartFile* NOT_ON_DAEMON(owner))
 	{
 #ifndef AMULE_DAEMON
@@ -191,7 +195,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void SharedCtrlAddClient(CKnownFile* NOT_ON_DAEMON(owner), CClientRef NOT_ON_DAEMON(source), SourceItemType NOT_ON_DAEMON(type))
 	{
 #ifndef AMULE_DAEMON
@@ -200,7 +204,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void SharedCtrlRefreshClient(uint32 NOT_ON_DAEMON(client), SourceItemType NOT_ON_DAEMON(type))
 	{
 #ifndef AMULE_DAEMON
@@ -209,7 +213,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void SharedCtrlRemoveClient(uint32 NOT_ON_DAEMON(source), const CKnownFile* NOT_ON_DAEMON(owner))
 	{
 #ifndef AMULE_DAEMON
@@ -218,7 +222,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ServerRefresh(CServer* NOT_ON_DAEMON(server))
 	{
 #ifndef AMULE_DAEMON
@@ -227,7 +231,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ChatUpdateFriend(CFriend * NOT_ON_DAEMON(toupdate))
 	{
 #ifndef AMULE_DAEMON
@@ -236,7 +240,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ChatRemoveFriend(CFriend * toremove)
 	{
 #ifndef AMULE_DAEMON
@@ -246,9 +250,9 @@ namespace MuleNotify
 #endif
 		delete toremove;
 	}
-	
+
 #ifdef CLIENT_GUI
-	
+
 	void PartFile_Swap_A4AF(CPartFile* file)
 	{
 		theApp->downloadqueue->SendFileCommand(file, EC_OP_PARTFILE_SWAP_A4AF_THIS);
@@ -258,7 +262,7 @@ namespace MuleNotify
 	{
 		theApp->downloadqueue->SendFileCommand(file, EC_OP_PARTFILE_SWAP_A4AF_THIS_AUTO);
 	}
-	
+
 	void PartFile_Swap_A4AF_Others(CPartFile* file)
 	{
 		theApp->downloadqueue->SendFileCommand(file, EC_OP_PARTFILE_SWAP_A4AF_OTHERS);
@@ -268,12 +272,12 @@ namespace MuleNotify
 	{
 		theApp->downloadqueue->SendFileCommand(file, EC_OP_PARTFILE_PAUSE);
 	}
-	
+
 	void PartFile_Resume(CPartFile* file)
 	{
 		theApp->downloadqueue->SendFileCommand(file, EC_OP_PARTFILE_RESUME);
 	}
-	
+
 	void PartFile_Stop(CPartFile* file)
 	{
 		theApp->downloadqueue->SendFileCommand(file, EC_OP_PARTFILE_STOP);
@@ -293,17 +297,17 @@ namespace MuleNotify
 	{
 		theApp->downloadqueue->SendFileCommand(file, EC_OP_PARTFILE_DELETE);
 	}
-	
+
 	void PartFile_SetCat(CPartFile* file, uint32 val)
 	{
 		theApp->downloadqueue->Category(file, val);
 	}
-	
+
 	void KnownFile_Up_Prio_Set(CKnownFile* file, uint8 val)
 	{
 		theApp->sharedfiles->SetFilePrio(file, val);
 	}
-	
+
 	void KnownFile_Up_Prio_Auto(CKnownFile* file)
 	{
 		theApp->sharedfiles->SetFilePrio(file, PR_AUTO);
@@ -313,15 +317,15 @@ namespace MuleNotify
 	{
 		theApp->sharedfiles->SetFileCommentRating(file, comment, rating);
 	}
-	
+
 	void Download_Set_Cat_Prio(uint8, uint8)
 	{
 	}
-	
+
 	void Download_Set_Cat_Status(uint8, int)
 	{
 	}
-	
+
 	void Upload_Resort_Queue()
 	{
 	}
@@ -345,7 +349,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void SharedFilesRemoveAllFiles()
 	{
 #ifndef AMULE_DAEMON
@@ -355,7 +359,7 @@ namespace MuleNotify
 #endif
 	}
 
-	
+
 	void SharedFilesShowFileList()
 	{
 #ifndef AMULE_DAEMON
@@ -404,7 +408,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ServerAdd(CServer* NOT_ON_DAEMON(server))
 	{
 #ifndef AMULE_DAEMON
@@ -413,7 +417,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ServerRemove(CServer* NOT_ON_DAEMON(server))
 	{
 #ifndef AMULE_DAEMON
@@ -427,9 +431,9 @@ namespace MuleNotify
 	{
 		if (theApp->serverlist) {
 			theApp->serverlist->RemoveDeadServers();
-		}		
+		}
 	}
-	
+
 	void ServerRemoveAll()
 	{
 #ifndef AMULE_DAEMON
@@ -438,7 +442,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ServerHighlight(CServer* NOT_ON_DAEMON(server), bool NOT_ON_DAEMON(highlight))
 	{
 #ifndef AMULE_DAEMON
@@ -447,7 +451,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ServerFreeze()
 	{
 #ifndef AMULE_DAEMON
@@ -456,7 +460,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ServerThaw()
 	{
 #ifndef AMULE_DAEMON
@@ -465,7 +469,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ServerUpdateED2KInfo()
 	{
 #ifndef AMULE_DAEMON
@@ -474,13 +478,13 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ServerUpdateKadKInfo()
 	{
 #ifndef AMULE_DAEMON
 		if (theApp->amuledlg->m_serverwnd) {
 			theApp->amuledlg->m_serverwnd->UpdateKadInfo();
-		}		
+		}
 #endif
 	}
 
@@ -493,7 +497,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void SearchLocalEnd()
 	{
 #ifndef AMULE_DAEMON
@@ -512,7 +516,7 @@ namespace MuleNotify
 #endif
 		theApp->searchlist->SetKadSearchFinished();
 	}
-	
+
 	void Search_Update_Sources(CSearchFile* result)
 	{
 		result->SetDownloadStatus();
@@ -522,7 +526,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void Search_Add_Result(CSearchFile* NOT_ON_DAEMON(result))
 	{
 #ifndef AMULE_DAEMON
@@ -532,7 +536,7 @@ namespace MuleNotify
 #endif
 	}
 
-	
+
 	void ChatConnResult(bool NOT_ON_DAEMON(success), uint64 NOT_ON_DAEMON(id), wxString NOT_ON_DAEMON(message))
 	{
 #ifndef AMULE_DAEMON
@@ -541,7 +545,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void ChatProcessMsg(uint64 NOT_ON_DAEMON(sender), wxString NOT_ON_DAEMON(message))
 	{
 #ifndef AMULE_DAEMON
@@ -550,7 +554,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 
 	void ChatSendCaptcha(wxString NOT_ON_DAEMON(captcha), uint64 NOT_ON_DAEMON(to_id))
 	{
@@ -560,7 +564,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 
 	void ShowConnState(long NOT_ON_DAEMON(forceUpdate))
 	{
@@ -568,7 +572,7 @@ namespace MuleNotify
 		theApp->amuledlg->ShowConnectionState(forceUpdate != 0);
 #endif
 	}
-	
+
 	void ShowUpdateCatTabTitles()
 	{
 #ifndef AMULE_DAEMON
@@ -588,7 +592,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void CategoryUpdate(uint32 NOT_ON_DAEMON(cat))
 	{
 #ifndef AMULE_DAEMON
@@ -599,7 +603,7 @@ namespace MuleNotify
 		}
 #endif
 	}
-	
+
 	void CategoryDelete(uint32 cat)
 	{
 #ifdef AMULE_DAEMON
@@ -618,7 +622,7 @@ namespace MuleNotify
 #endif
 	}
 
-	
+
 	void PartFile_Swap_A4AF(CPartFile* file)
 	{
 		if ((file->GetStatus(false) == PS_READY || file->GetStatus(false) == PS_EMPTY)) {
@@ -628,12 +632,12 @@ namespace MuleNotify
 			}
 		}
 	}
-	
+
 	void PartFile_Swap_A4AF_Auto(CPartFile* file)
 	{
 		file->SetA4AFAuto(!file->IsA4AFAuto());
 	}
-	
+
 	void PartFile_Swap_A4AF_Others(CPartFile* file)
 	{
 		if ((file->GetStatus(false) == PS_READY) || (file->GetStatus(false) == PS_EMPTY)) {
@@ -643,10 +647,11 @@ namespace MuleNotify
 			}
 		}
 	}
-	
+
 	void PartFile_Pause(CPartFile* file)
 	{
 		file->PauseFile();
+		file->SavePartFile();
 	}
 
 	void PartFile_Resume(CPartFile* file)
@@ -658,6 +663,7 @@ namespace MuleNotify
 	void PartFile_Stop(CPartFile* file)
 	{
 		file->StopFile();
+		file->SavePartFile();
 	}
 
 	void PartFile_PrioAuto(CPartFile* file, bool val)
@@ -669,42 +675,42 @@ namespace MuleNotify
 	{
 		file->SetDownPriority(newDownPriority, bSave);
 	}
-	
+
 	void PartFile_Delete(CPartFile* file)
 	{
 		file->Delete();
 	}
-	
+
 	void PartFile_SetCat(CPartFile* file, uint32 val)
 	{
 		file->SetCategory(val);
 	}
 
-	
+
 	void KnownFile_Up_Prio_Set(CKnownFile* file, uint8 val)
 	{
 		file->SetAutoUpPriority(false);
 		file->SetUpPriority(val);
 	}
-	
+
 	void KnownFile_Up_Prio_Auto(CKnownFile* file)
 	{
 		file->SetAutoUpPriority(true);
 		file->UpdateAutoUpPriority();
 	}
-	
+
 	void KnownFile_Comment_Set(CKnownFile* file, wxString comment, int8 rating)
 	{
 		file->SetFileCommentRating(comment, rating);
 		SharedFilesUpdateItem(file);
 	}
-	
+
 
 	void Download_Set_Cat_Prio(uint8 cat, uint8 newprio)
 	{
 		theApp->downloadqueue->SetCatPrio(cat, newprio);
 	}
-	
+
 	void Download_Set_Cat_Status(uint8 cat, int newstatus)
 	{
 		theApp->downloadqueue->SetCatStatus(cat, newstatus);
@@ -768,5 +774,33 @@ namespace MuleNotify
 #endif	// #ifndef AMULE_DAEMON
 
 #endif	// #ifndef CLIENT_GUI
+
+	void FixAmuleGuiLinkage()
+	{
+		// HACK: LibSocketWX is needed in libec, but discarded from libmuleappcommon before,
+		//       unless we use something from it in a non-lib module.
+		//       I could have done LOTS of full-non-lib builds in the time required to track
+		//       this down. >:(
+		//		 Function is never called of course.
+		amuleIPV4Address dummy;
+	}
+
+	void UDPSocketSend(CMuleUDPSocket * NOT_ON_REMOTEGUI(socket))
+	{
+#ifndef CLIENT_GUI
+		AddDebugLogLineF(logAsio, wxT("UDPSocketSend"));
+		socket->OnSend(0);
+#endif
+	}
+
+	void UDPSocketReceive(CMuleUDPSocket * NOT_ON_REMOTEGUI(socket))
+	{
+#ifndef CLIENT_GUI
+		AddDebugLogLineF(logAsio, wxT("UDPSocketReceive"));
+		socket->OnReceive(0);
+#endif
+	}
+
+
 }
 // File_checked_for_headers
diff --git a/src/GuiEvents.h b/src/GuiEvents.h
index 9933ee5..625472a 100644
--- a/src/GuiEvents.h
+++ b/src/GuiEvents.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -40,6 +40,9 @@ class CPartFile;
 class CServer;
 class CFriend;
 class CClientRef;
+class CLibSocket;
+class CLibSocketServer;
+class CMuleUDPSocket;
 
 
 DECLARE_LOCAL_EVENT_TYPE(MULE_EVT_NOTIFY, -1)
@@ -121,7 +124,7 @@ namespace MuleNotify
 	void ChatConnResult(bool success, uint64 id, wxString message);
 	void ChatProcessMsg(uint64 sender, wxString message);
 	void ChatSendCaptcha(wxString captcha, uint64 to_id);
-	
+
 	void ShowConnState(long state);
 	void ShowUserCount(wxString str);
 	void ShowUpdateCatTabTitles();
@@ -174,6 +177,21 @@ namespace MuleNotify
 	void Client_Delete(CClientRef client);
 
 	//
+	// core internal notifications
+	//
+
+	// ASIO sockets
+	void LibSocketConnect(CLibSocket * socket, int error);
+	void LibSocketSend(CLibSocket * socket, int error);
+	void LibSocketReceive(CLibSocket * socket, int error);
+	void LibSocketLost(CLibSocket * socket);
+	void LibSocketDestroy(CLibSocket * socket);
+	void ProxySocketEvent(CLibSocket * socket, int evt);
+	void ServerTCPAccept(CLibSocketServer * socketServer);
+	void UDPSocketSend(CMuleUDPSocket * socket);
+	void UDPSocketReceive(CMuleUDPSocket * socket);
+
+	//
 	// Notifications that always create an event
 	//
 	void IPFilter_Reload();
@@ -181,8 +199,8 @@ namespace MuleNotify
 
 	////////////////////////////////////////////////////////////
 	// Notification utilities
-	
-	/** 
+
+	/**
 	 * The base class of the functions.
 	 *
 	 * This class allows the the notification call to be executed
@@ -208,7 +226,7 @@ namespace MuleNotify
 	{
 	public:
 		typedef void (*FuncType)();
-		
+
 		/** Creates a functor from the given function. */
 		CMuleNotifier0(FuncType func)
 			: m_func(func) {}
@@ -221,7 +239,7 @@ namespace MuleNotify
 		/** @see CMuleNotifierBase::Clone */
 		virtual CMuleNotiferBase* Clone() const {
 			return new CMuleNotifier0(m_func);
-		}		
+		}
 
 	private:
 		FuncType	m_func;
@@ -234,7 +252,7 @@ namespace MuleNotify
 	{
 	public:
 		typedef void (*FuncType)(ARG);
-		
+
 		/** Creates a functor from the given function and arguments. */
 		CMuleNotifier1(FuncType func, ARG arg)
 			: m_func(func),
@@ -263,7 +281,7 @@ namespace MuleNotify
 	{
 	public:
 		typedef void (*FuncType)(ARG_1, ARG_2);
-		
+
 		/** Creates a functor from the given function and arguments. */
 		CMuleNotifier2(FuncType func, ARG_1 arg1, ARG_2 arg2)
 			: m_func(func),
@@ -294,7 +312,7 @@ namespace MuleNotify
 	{
 	public:
 		typedef void (*FuncType)(ARG_1, ARG_2, ARG_3);
-		
+
 		/** Creates a functor from the given function and arguments. */
 		CMuleNotifier3(FuncType func, ARG_1 arg1, ARG_2 arg2, ARG_3 arg3)
 			: m_func(func),
@@ -321,7 +339,7 @@ namespace MuleNotify
 	};
 
 
-	/** 
+	/**
 	 * This event is sent when a worker-thread makes use of a notify-macro.
 	 *
 	 * This insures that all notifications are executed on the main thread,
@@ -338,12 +356,12 @@ namespace MuleNotify
 		{
 			wxASSERT(m_functor);
 		}
-		
+
 		/** Destructor, frees the functor object. */
 		virtual ~CMuleGUIEvent() {
 			delete m_functor;
 		}
-		
+
 		/** Executes the notification. */
 		void Notify() const {
 			m_functor->Notify();
@@ -353,29 +371,29 @@ namespace MuleNotify
 		virtual wxEvent* Clone() const {
 			return new CMuleGUIEvent(m_functor->Clone());
 		}
-		
+
 	private:
 		/** Not copyable. */
 		CMuleGUIEvent(const CMuleGUIEvent&);
 		/** Not assignable. */
 		CMuleGUIEvent& operator=(const CMuleGUIEvent&);
-		
-		//! The actual functor object, 
+
+		//! The actual functor object,
 		CMuleNotiferBase* m_functor;
 	};
 
-	
+
 	/**
 	 * This function will execute or queue a given notification functor.
 	 *
 	 * If the caller is the main thread, the functor is executed immediatly,
-	 * thus acting like a regular function call. OTOH, if the caller is a 
+	 * thus acting like a regular function call. OTOH, if the caller is a
 	 * worker thread, the functor is cloned and sent via an event to
 	 * wxTheApp.
 	 */
 	void HandleNotification(const CMuleNotiferBase& ntf);
-	
-	/** 
+
+	/**
 	 * These functions take a function pointer and a set of arguments,
 	 * matching those of the function-pointer. A functor is created
 	 * from these and either executed immediatly, or sent as an event
@@ -411,7 +429,7 @@ namespace MuleNotify
 	 * even from the main thread.
 	 */
 	void HandleNotificationAlways(const CMuleNotiferBase& ntf);
-	
+
 	inline void DoNotifyAlways(void (*func)()) {
 		HandleNotificationAlways(CMuleNotifier0(func));
 	}
@@ -449,7 +467,7 @@ typedef void (wxEvtHandler::*MuleNotifyEventFunction)(CMuleGUIEvent&);
 #define Notify_SharedFilesShowFile(file)		MuleNotify::DoNotify(&MuleNotify::SharedFilesShowFile, file)
 #define Notify_SharedFilesRemoveFile(file)		MuleNotify::DoNotify(&MuleNotify::SharedFilesRemoveFile, file)
 #define Notify_SharedFilesRemoveAllItems()		MuleNotify::DoNotify(&MuleNotify::SharedFilesRemoveAllFiles)
-#define Notify_SharedFilesShowFileList()        	MuleNotify::DoNotify(&MuleNotify::SharedFilesShowFileList)
+#define Notify_SharedFilesShowFileList()		MuleNotify::DoNotify(&MuleNotify::SharedFilesShowFileList)
 #define Notify_SharedFilesSort()			MuleNotify::DoNotify(&MuleNotify::SharedFilesSort)
 #define Notify_SharedFilesUpdateItem(file)		MuleNotify::DoNotify(&MuleNotify::SharedFilesUpdateItem, file)
 
@@ -558,6 +576,22 @@ typedef void (wxEvtHandler::*MuleNotifyEventFunction)(CMuleGUIEvent&);
 #define CoreNotify_Client_Delete(client)			MuleNotify::DoNotify(&MuleNotify::Client_Delete, client)
 
 //
+// core internal notifications
+//
+
+// ASIO sockets
+#define CoreNotify_LibSocketConnect(ptr, val)		MuleNotify::DoNotifyAlways(&MuleNotify::LibSocketConnect, ptr, val)
+#define CoreNotify_LibSocketSend(ptr, val)			MuleNotify::DoNotifyAlways(&MuleNotify::LibSocketSend, ptr, val)
+#define CoreNotify_LibSocketReceive(ptr, val)		MuleNotify::DoNotifyAlways(&MuleNotify::LibSocketReceive, ptr, val)
+#define CoreNotify_LibSocketLost(ptr)				MuleNotify::DoNotifyAlways(&MuleNotify::LibSocketLost, ptr)
+#define CoreNotify_LibSocketDestroy(ptr)			MuleNotify::DoNotifyAlways(&MuleNotify::LibSocketDestroy, ptr)
+#define CoreNotify_ServerTCPAccept(ptr)				MuleNotify::DoNotifyAlways(&MuleNotify::ServerTCPAccept, ptr)
+#define CoreNotify_UDPSocketSend(ptr)				MuleNotify::DoNotifyAlways(&MuleNotify::UDPSocketSend, ptr)
+#define CoreNotify_UDPSocketReceive(ptr)			MuleNotify::DoNotifyAlways(&MuleNotify::UDPSocketReceive, ptr)
+#define CoreNotify_ProxySocketEvent(ptr, val)		MuleNotify::DoNotifyAlways(&MuleNotify::ProxySocketEvent, ptr, val)
+
+
+//
 // Notifications that always create an event
 //
 
diff --git a/src/HTTPDownload.cpp b/src/HTTPDownload.cpp
index f0aac6e..b92b686 100644
--- a/src/HTTPDownload.cpp
+++ b/src/HTTPDownload.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -56,50 +56,50 @@ public:
 	CHTTPDownloadDialog(CHTTPDownloadThread* thread)
 	  : wxDialog(wxTheApp->GetTopWindow(), -1, _("Downloading..."),
 			wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxSYSTEM_MENU)
-   	{
+	{
 		downloadDlg(this, true)->Show(this, true);
-	
+
 		m_progressbar = CastChild(ID_HTTPDOWNLOADPROGRESS, wxGaugeControl);
 		m_progressbar->SetRange(100);
 
 		m_ani = CastChild(ID_ANIMATE, MuleGifCtrl);
 		m_ani->LoadData((const char*)inetDownload, sizeof(inetDownload));
 		m_ani->Start();
-	
+
 		m_thread = thread;
 	}
 
 	~CHTTPDownloadDialog() {
 		StopThread();
-	}	
+	}
 
 	void UpdateGauge(int total, int current) {
 		CFormat label( wxT("( %s / %s )") );
-		
+
 		label % CastItoXBytes(current);
 		if (total > 0) {
 			label % CastItoXBytes(total);
 		} else {
 			label % _("Unknown");
 		}
-	
+
 		CastChild(IDC_DOWNLOADSIZE, wxStaticText)->SetLabel(label.GetString());
-	
+
 		if (total && (total != m_progressbar->GetRange())) {
 			m_progressbar->SetRange(total);
 		}
-	
+
 		if (current && (current <= total)) {
 			m_progressbar->SetValue(current);
 		}
-	
+
 		Layout();
 	}
 
 private:
 	void StopThread() {
 		if (m_thread) {
-		 	m_thread->Stop();
+			m_thread->Stop();
 			delete m_thread;
 			m_thread = NULL;
 		}
@@ -110,7 +110,7 @@ private:
 		Show(false);
 		StopThread();
 	}
-	
+
 	void OnProgress(CMuleInternalEvent& evt) {
 		UpdateGauge(evt.GetExtraLong(), evt.GetInt());
 	}
@@ -119,11 +119,11 @@ private:
 		Show(false);
 		Destroy();
 	}
-  
+
 	CMuleThread*	m_thread;
-	MuleGifCtrl* 	m_ani;
+	MuleGifCtrl*	m_ani;
 	wxGaugeControl* m_progressbar;
-	
+
 	DECLARE_EVENT_TABLE()
 };
 
@@ -136,7 +136,7 @@ END_EVENT_TABLE()
 
 DEFINE_LOCAL_EVENT_TYPE(wxEVT_HTTP_PROGRESS)
 DEFINE_LOCAL_EVENT_TYPE(wxEVT_HTTP_SHUTDOWN)
-	
+
 #endif
 
 
@@ -187,18 +187,18 @@ wxString CHTTPDownloadThread::FormatDateHTTP(const wxDateTime& date)
 
 CMuleThread::ExitCode CHTTPDownloadThread::Entry()
 {
-	if (TestDestroy()) { 
+	if (TestDestroy()) {
 		return NULL;
 	}
-	
+
 	wxHTTP* url_handler = NULL;
-	
+
 	AddDebugLogLineN(logHTTP, wxT("HTTP download thread started"));
-	
+
 	const CProxyData* proxy_data = thePrefs::GetProxyData();
 	bool use_proxy = proxy_data != NULL && proxy_data->m_proxyEnable;
-	
-	try {	
+
+	try {
 		wxFFileOutputStream outfile(m_tempfile);
 
 		if (!outfile.Ok()) {
@@ -235,11 +235,13 @@ CMuleThread::ExitCode CHTTPDownloadThread::Entry()
 		}
 
 		int download_size = url_read_stream->GetSize();
+#ifdef __DEBUG__
 		if (download_size == -1) {
 			AddDebugLogLineN(logHTTP, wxT("Download size not received, downloading until connection is closed"));
 		} else {
 			AddDebugLogLineN(logHTTP, CFormat(wxT("Download size: %i")) % download_size);
 		}
+#endif
 
 		// Here is our read buffer
 		// <ken> Still, I'm sure 4092 is probably a better size.
@@ -305,15 +307,15 @@ CMuleThread::ExitCode CHTTPDownloadThread::Entry()
 }
 
 
-void CHTTPDownloadThread::OnExit() 
+void CHTTPDownloadThread::OnExit()
 {
 #ifndef AMULE_DAEMON
 	if (m_companion) {
 		CMuleInternalEvent termEvent(wxEVT_HTTP_SHUTDOWN);
-		wxPostEvent(m_companion, termEvent);	
+		wxPostEvent(m_companion, termEvent);
 	}
 #endif
-	
+
 	// Notice the app that the file finished download
 	CMuleInternalEvent evt(wxEVT_CORE_FINISHED_HTTP_DOWNLOAD);
 	evt.SetInt((int)m_file_id);
@@ -330,7 +332,7 @@ wxInputStream* CHTTPDownloadThread::GetInputStream(wxHTTP * & url_handler, const
 	if (TestDestroy()) {
 		return NULL;
 	}
-	
+
 	if (!location.StartsWith(wxT("http://"))) {
 		// This is not a http url
 		throw wxString(_("Invalid URL for HTTP download or HTTP redirection (did you forget 'http://' ?)"));
@@ -344,8 +346,8 @@ wxInputStream* CHTTPDownloadThread::GetInputStream(wxHTTP * & url_handler, const
 	// I belive this is a bug...
 	// Sometimes "Location" header looks like this:
 	// "http://www.whatever.com:8080http://www.whatever.com/downloads/something.zip"
-	// So let's clean it...				
-		
+	// So let's clean it...
+
 	int bad_url_pos = host.Find(wxT("http://"));
 	wxString location_url;
 	if (bad_url_pos != -1) {
@@ -353,7 +355,7 @@ wxInputStream* CHTTPDownloadThread::GetInputStream(wxHTTP * & url_handler, const
 		location_url = host.Mid(bad_url_pos);
 		host = host.Left(bad_url_pos);
 		// After the first '/' non-http-related, it's the location part of the URL
-		location_url = location_url.Right(location_url.Len() - 7).AfterFirst(wxT('/'));					
+		location_url = location_url.Right(location_url.Len() - 7).AfterFirst(wxT('/'));
 	} else {
 		// Regular Location field
 		// After the first '/', it's the location part of the URL
@@ -363,7 +365,7 @@ wxInputStream* CHTTPDownloadThread::GetInputStream(wxHTTP * & url_handler, const
 	}
 
 	// Build the cleaned url now
-	wxString url = wxT("http://") + host + wxT("/") + location_url;			
+	wxString url = wxT("http://") + host + wxT("/") + location_url;
 
 	int port = 80;
 	if (host.Find(wxT(':')) != -1) {
@@ -376,7 +378,7 @@ wxInputStream* CHTTPDownloadThread::GetInputStream(wxHTTP * & url_handler, const
 	addr.Hostname(host);
 	addr.Service(port);
 	if (!url_handler->Connect(addr, true)) {
-		throw wxString(_("Unable to connect to HTTP download server"));		
+		throw wxString(_("Unable to connect to HTTP download server"));
 	}
 
 	wxInputStream* url_read_stream = url_handler->GetInputStream(url);
@@ -442,7 +444,7 @@ void CHTTPDownloadThread::StopAll()
 		wxMutexLocker lock(s_allThreadsMutex);
 		std::swap(allThreads, s_allThreads);
 	}
-	for (ThreadSet::iterator it = allThreads.begin(); it != allThreads.end(); it++) {
+	for (ThreadSet::iterator it = allThreads.begin(); it != allThreads.end(); ++it) {
 		(*it)->Stop();
 	}
 }
diff --git a/src/HTTPDownload.h b/src/HTTPDownload.h
index 20a1a8d..73740f5 100644
--- a/src/HTTPDownload.h
+++ b/src/HTTPDownload.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -46,13 +46,13 @@ class CHTTPDownloadThread : public CMuleThread
 {
 public:
 	/** Note: wxChar* is used to circumvent the thread-unsafe wxString reference counting. */
-	CHTTPDownloadThread(const wxString& url, const wxString& filename, const wxString& oldfilename, HTTP_Download_File file_id, 
+	CHTTPDownloadThread(const wxString& url, const wxString& filename, const wxString& oldfilename, HTTP_Download_File file_id,
 						bool showDialog, bool checkDownloadNewer);
 
 	static void StopAll();
 private:
 	ExitCode		Entry();
-	virtual void 		OnExit();
+	virtual void		OnExit();
 
 	wxString		m_url;
 	wxString		m_tempfile;
diff --git a/src/IP2Country.cpp b/src/IP2Country.cpp
index fd112fb..24563da 100644
--- a/src/IP2Country.cpp
+++ b/src/IP2Country.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,15 +28,15 @@
 // Country flags are from FAMFAMFAM (http://www.famfamfam.com)
 //
 // Flag icons - http://www.famfamfam.com
-// 
+//
 // These icons are public domain, and as such are free for any use (attribution appreciated but not required).
-// 
+//
 // Note that these flags are named using the ISO3166-1 alpha-2 country codes where appropriate.
 // A list of codes can be found at http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
 //
 // If you find these icons useful, please donate via paypal to mjames at gmail.com
 // (or click the donate button available at http://www.famfamfam.com/lab/icons/silk)
-// 
+//
 // Contact: mjames at gmail.com
 //
 
@@ -119,8 +119,9 @@ void CIP2Country::DownloadFinished(uint32 result)
 		wxString newDat = m_DataBasePath + wxT(".download");
 
 		// Try to unpack the file, might be an archive
+		wxWCharBuffer dataBaseName = m_DataBaseName.wc_str();
 		const wxChar* geoip_files[] = {
-			m_DataBaseName,
+			dataBaseName,
 			NULL
 		};
 
@@ -147,8 +148,8 @@ void CIP2Country::DownloadFinished(uint32 result)
 		} else {
 			AddLogLineC(_("Error updating GeoIP.dat"));
 		}
- 	} else if (result == HTTP_Skipped) {
- 		AddLogLineN(CFormat(_("Skipped download of %s, because requested file is not newer.")) % m_DataBaseName);
+	} else if (result == HTTP_Skipped) {
+		AddLogLineN(CFormat(_("Skipped download of %s, because requested file is not newer.")) % m_DataBaseName);
 	} else {
 		AddLogLineC(CFormat(_("Failed to download %s from %s")) % m_DataBaseName % thePrefs::GetGeoIPUpdateUrl());
 		// if it failed and there is no database, turn it off
@@ -163,9 +164,9 @@ void CIP2Country::LoadFlags()
 	// Load data from xpm files
 	for (int i = 0; i < flags::FLAGS_XPM_SIZE; ++i) {
 		CountryData countrydata;
-		countrydata.Name = char2unicode(flags::flagXPMCodeVector[i].code);
+		countrydata.Name = wxString(flags::flagXPMCodeVector[i].code, wxConvISO8859_1);
 		countrydata.Flag = wxImage(flags::flagXPMCodeVector[i].xpm);
-		
+
 		if (countrydata.Flag.IsOk()) {
 			m_CountryDataMap[countrydata.Name] = countrydata;
 		} else {
@@ -190,24 +191,35 @@ const CountryData& CIP2Country::GetCountryData(const wxString &ip)
 	if (m_geoip == NULL) {
 		CountryDataMap::iterator it = m_CountryDataMap.find(wxString(wxT("unknown")));
 		it->second.Name = wxT("?");
-		return it->second;	
+		return it->second;
 	}
-	
-	const wxString CCode = wxString(char2unicode(GeoIP_country_code_by_addr(m_geoip, unicode2char(ip)))).MakeLower();
-	
+
+	// wxString::MakeLower() fails miserably in Turkish localization with their dotted/non-dotted 'i's
+	// So fall back to some good ole C string processing.
+	std::string strCode;
+	const char * c = GeoIP_country_code_by_addr(m_geoip, unicode2char(ip));
+	if (!c) {
+		c = "unknown";
+	}
+	for ( ; *c; c++) {
+		strCode += ((*c >= 'A' && *c <= 'Z') ? *c + 'a' - 'A' : *c);
+	}
+
+	const wxString CCode(strCode.c_str(), wxConvISO8859_1);
+
 	CountryDataMap::iterator it = m_CountryDataMap.find(CCode);
-	if (it == m_CountryDataMap.end()) { 
+	if (it == m_CountryDataMap.end()) {
 		// Show the code and ?? flag
 		it = m_CountryDataMap.find(wxString(wxT("unknown")));
 		wxASSERT(it != m_CountryDataMap.end());
 		if (CCode.IsEmpty()) {
 			it->second.Name = wxT("?");
 		} else{
-			it->second.Name = CCode;			
+			it->second.Name = CCode;
 		}
 	}
-	
-	return it->second;	
+
+	return it->second;
 }
 
 #else
diff --git a/src/IP2Country.h b/src/IP2Country.h
index 937c050..48220d6 100644
--- a/src/IP2Country.h
+++ b/src/IP2Country.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,15 +28,15 @@
 // Country flags are from FAMFAMFAM (http://www.famfamfam.com)
 //
 // Flag icons - http://www.famfamfam.com
-// 
+//
 // These icons are public domain, and as such are free for any use (attribution appreciated but not required).
-// 
+//
 // Note that these flags are named using the ISO3166-1 alpha-2 country codes where appropriate.
 // A list of codes can be found at http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
 //
 // If you find these icons useful, please donate via paypal to mjames at gmail.com
 // (or click the donate button available at http://www.famfamfam.com/lab/icons/silk)
-// 
+//
 // Contact: mjames at gmail.com
 //
 
diff --git a/src/IPFilter.cpp b/src/IPFilter.cpp
index 0e8d98a..ca34a9b 100644
--- a/src/IPFilter.cpp
+++ b/src/IPFilter.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -55,11 +55,11 @@ END_DECLARE_EVENT_TYPES()
 
 DEFINE_EVENT_TYPE(MULE_EVT_IPFILTER_LOADED)
 
-	
+
 class CIPFilterEvent : public wxEvent
 {
 public:
-	CIPFilterEvent(CIPFilter::RangeIPs rangeIPs, CIPFilter::RangeLengths rangeLengths, CIPFilter::RangeNames rangeNames) 
+	CIPFilterEvent(CIPFilter::RangeIPs rangeIPs, CIPFilter::RangeLengths rangeLengths, CIPFilter::RangeNames rangeNames)
 		: wxEvent(-1, MULE_EVT_IPFILTER_LOADED)
 	{
 		// Physically copy the vectors, this will hopefully resize them back to their needed capacity.
@@ -68,12 +68,12 @@ public:
 		// This one is usually empty, and should always be swapped, not copied.
 		std::swap(m_rangeNames, rangeNames);
 	}
-	
+
 	/** @see wxEvent::Clone */
 	virtual wxEvent* Clone() const {
 		return new CIPFilterEvent(*this);
 	}
-	
+
 	CIPFilter::RangeIPs m_rangeIPs;
 	CIPFilter::RangeLengths m_rangeLengths;
 	CIPFilter::RangeNames m_rangeNames;
@@ -115,7 +115,7 @@ private:
 		     thePrefs::UseIPFilterSystem() ) {
 			// Load from system wide IP filter file
 			wxStandardPathsBase &spb(wxStandardPaths::Get());
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 			wxString dataDir(spb.GetPluginsDir());
 #elif defined(__WXMAC__)
 			wxString dataDir(spb.GetDataDir());
@@ -209,20 +209,20 @@ private:
 			return AccessLevel == other.AccessLevel;
 		}
 
-// Since descriptions are only used for debugging messages, there 
+// Since descriptions are only used for debugging messages, there
 // is no need to keep them in memory when running a non-debug build.
 #ifdef __DEBUG__
 		//! Contains the user-description of the range.
 		std::string	Description;
 #endif
-		
+
 		//! The AccessLevel for this filter.
 		uint8		AccessLevel;
 	};
 
 	//! The is the type of map used to store the IPs.
 	typedef CRangeMap<rangeObject, uint32> IPMap;
-	
+
 	bool m_storeDescriptions;
 
 	// the generated filter
@@ -242,11 +242,11 @@ private:
 	 * @param AccessLevel The AccessLevel of this range.
 	 * @param Description The assosiated description of this range.
 	 * @return true if the range was added, false if it was discarded.
-	 * 
+	 *
 	 * This function inserts the specified range into the IPMap. Invalid
 	 * ranges where the AccessLevel is not within the range 0..255, or
 	 * where IPEnd < IPstart not inserted.
-	 */	
+	 */
 	bool AddIPRange(uint32 IPStart, uint32 IPEnd, uint16 AccessLevel, const char* DEBUG_ONLY(Description))
 	{
 		if (AccessLevel < 256) {
@@ -292,14 +292,14 @@ private:
 			wxT("guarding.p2p"),
 			NULL
 		};
-		
+
 		// Try to unpack the file, might be an archive
 
 		if (UnpackArchive(path, ipfilter_files).second != EFT_Text) {
 			AddLogLineC(CFormat(_("Failed to load ipfilter.dat file '%s', unknown format encountered.")) % file);
 			return 0;
 		}
-		
+
 		int filtercount = 0;
 		yyip_Bad = 0;
 		wxFFile readFile;
@@ -348,7 +348,7 @@ END_EVENT_TABLE()
 
 
 /**
- * This function creates a text-file containing the specified text, 
+ * This function creates a text-file containing the specified text,
  * but only if the file does not already exist.
  */
 static bool CreateDummyFile(const wxString& filename, const wxString& text)
@@ -382,7 +382,7 @@ CIPFilter::CIPFilter() :
 		// redownload if user deleted file
 		thePrefs::SetLastHTTPDownloadURL(HTTP_IPFilter, wxEmptyString);
 	}
-	
+
 	const wxString staticDat = theApp->ConfigDir + wxT("ipfilter_static.dat");
 	const wxString staticMsg = wxString()
 		<< wxT("# This file is used to store ipfilter-ranges that should\n")
@@ -460,7 +460,7 @@ bool CIPFilter::IsFiltered(uint32 IPTest, bool isServer)
 	}
 	if (found) {
 		AddDebugLogLineN(logIPFilter, CFormat(wxT("Filtered IP %s%s")) % Uint32toStringIP(IPTest)
-			% (i < (int)m_rangeNames.size() ? (wxT(" (") + wxString(char2unicode(m_rangeNames[i].c_str())) + wxT(")")) 
+			% (i < (int)m_rangeNames.size() ? (wxT(" (") + wxString(char2unicode(m_rangeNames[i].c_str())) + wxT(")"))
 											: wxString(wxEmptyString)));
 		if (isServer) {
 			theStats::AddFilteredServer();
@@ -505,6 +505,7 @@ void CIPFilter::DownloadFinished(uint32 result)
 		} else {
 			AddLogLineN(CFormat(_("Successfully updated %s")) % datName);
 		}
+	// cppcheck-suppress duplicateBranch
 	} else if (result == HTTP_Skipped) {
 		AddLogLineN(CFormat(_("Skipped download of %s, because requested file is not newer.")) % datName);
 	} else {
@@ -531,7 +532,7 @@ void CIPFilter::OnIPFilterEvent(CIPFilterEvent& evt)
 		return;
 	}
 	AddLogLineN(_("IP filter is ready"));
-	
+
 	if (thePrefs::IsFilteringClients()) {
 		theApp->clientlist->FilterQueues();
 	}
diff --git a/src/IPFilter.h b/src/IPFilter.h
index 767520c..78b6958 100644
--- a/src/IPFilter.h
+++ b/src/IPFilter.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -61,7 +61,7 @@ public:
 	 * Note: IP2Test must be in anti-host order (BE on LE platform, LE on BE platform).
 	 */
 	bool	IsFiltered( uint32 IP2test, bool isServer = false );
-	
+
 	/**
 	 * Returns the number of banned ranges.
 	 */
@@ -70,14 +70,14 @@ public:
 	/**
 	 * Reloads the ipfilter files, discarding the current list of ranges.
 	 */
-	void 	Reload();
+	void	Reload();
 
 	/**
 	 * Starts a download of the ipfilter-list at the specified URL.
 	 *
 	 * @param A valid URL.
 	 *
-	 * Once the file has been downloaded, the ipfilter.dat file 
+	 * Once the file has been downloaded, the ipfilter.dat file
 	 * will be replaced with the new file and Reload will be called.
 	 */
 	void	Update(const wxString& strURL);
@@ -86,26 +86,26 @@ public:
 	 * This function is called when a download is completed.
 	 */
 	void	DownloadFinished(uint32 result);
-	
+
 	/**
 	 * True once initial startup has finished (stays true while reloading later).
 	 */
 	bool	IsReady() const { return m_ready; }
-	
+
 	/**
-	 * These functions are called to tell the filter to start networks once it 
+	 * These functions are called to tell the filter to start networks once it
 	 * has finished loading.
 	 */
 	void	StartKADWhenReady() { m_startKADWhenReady = true; }
 	void	ConnectToAnyServerWhenReady() { m_connectToAnyServerWhenReady = true; }
-	
+
 private:
 	/** Handles the result of loading the dat-files. */
 	void	OnIPFilterEvent(CIPFilterEvent&);
-	
+
 	//! The URL from which the IP filter was downloaded
 	wxString m_URL;
-	
+
 	// The IP ranges
 	typedef std::vector<uint32> RangeIPs;
 	RangeIPs m_rangeIPs;
diff --git a/src/IPFilterScanner.cpp b/src/IPFilterScanner.cpp
index f9c3ee2..206602b 100644
--- a/src/IPFilterScanner.cpp
+++ b/src/IPFilterScanner.cpp
@@ -172,12 +172,7 @@ typedef unsigned int flex_uint32_t;
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
 #endif
 
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-extern yy_size_t yyipleng;
+extern int yyipleng;
 
 extern FILE *yyipin, *yyipout;
 
@@ -203,6 +198,11 @@ extern FILE *yyipin, *yyipout;
 
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
 #ifndef YY_STRUCT_YY_BUFFER_STATE
 #define YY_STRUCT_YY_BUFFER_STATE
 struct yy_buffer_state
@@ -220,7 +220,7 @@ struct yy_buffer_state
 	/* Number of characters read into yy_ch_buf, not including EOB
 	 * characters.
 	 */
-	yy_size_t yy_n_chars;
+	int yy_n_chars;
 
 	/* Whether we "own" the buffer - i.e., we know we created it,
 	 * and can realloc() it to grow it, and should free() it to
@@ -290,8 +290,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
 /* yy_hold_char holds the character lost when yyiptext is formed. */
 static char yy_hold_char;
-static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
-yy_size_t yyipleng;
+static int yy_n_chars;		/* number of characters read into yy_ch_buf */
+int yyipleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
@@ -319,7 +319,7 @@ static void yyip_init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
 YY_BUFFER_STATE yyip_scan_buffer (char *base,yy_size_t size  );
 YY_BUFFER_STATE yyip_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE yyip_scan_bytes (yyconst char *bytes,yy_size_t len  );
+YY_BUFFER_STATE yyip_scan_bytes (yyconst char *bytes,int len  );
 
 void *yyipalloc (yy_size_t  );
 void *yyiprealloc (void *,yy_size_t  );
@@ -593,7 +593,7 @@ char *yyiptext;
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -621,7 +621,7 @@ char *yyiptext;
 #ifdef _MSC_VER
 #define isatty(DUMMY) 0
 #define YY_NO_UNISTD_H
-#pragma warning(disable:4003) 
+#pragma warning(disable:4003)
 #endif
 
 #define YY_NEVER_INTERACTIVE 1
@@ -709,7 +709,7 @@ FILE *yyipget_out (void );
 
 void yyipset_out  (FILE * out_str  );
 
-yy_size_t yyipget_leng (void );
+int yyipget_leng (void );
 
 char *yyipget_text (void );
 
@@ -770,7 +770,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		yy_size_t n; \
+		int n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( yyipin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -947,7 +947,7 @@ YY_RULE_SETUP
 #line 108 "./IPFilterScanner.l"
 {
 		/* PeerGuardian filter line
-		   <IPStart> - <IPEnd> , <AccessLevel> , <Description> 
+		   <IPStart> - <IPEnd> , <AccessLevel> , <Description>
 		*/
 		char * ip1 = yyiptext;
 		char * ip2 = strchr(ip1 + 7, '-') + 1;
@@ -999,7 +999,7 @@ YY_RULE_SETUP
 case 5:
 YY_RULE_SETUP
 #line 149 "./IPFilterScanner.l"
-{ 
+{
 		/* Bad line */
 		yyip_Bad++;
 		AddDebugLogLineN(logIPFilter, CFormat(wxT("error in line %d: %s")) % yyip_Line % wxString(char2unicode(yyiptext)));
@@ -1196,7 +1196,7 @@ static int yy_get_next_buffer (void)
 
 	else
 		{
-			yy_size_t num_to_read =
+			int num_to_read =
 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
@@ -1210,7 +1210,7 @@ static int yy_get_next_buffer (void)
 
 			if ( b->yy_is_our_buffer )
 				{
-				yy_size_t new_size = b->yy_buf_size * 2;
+				int new_size = b->yy_buf_size * 2;
 
 				if ( new_size <= 0 )
 					b->yy_buf_size += b->yy_buf_size / 8;
@@ -1241,7 +1241,7 @@ static int yy_get_next_buffer (void)
 
 		/* Read in more data. */
 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
+			(yy_n_chars), (size_t) num_to_read );
 
 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
@@ -1352,7 +1352,7 @@ static int yy_get_next_buffer (void)
 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		register yy_size_t number_to_move = (yy_n_chars) + 2;
+		register int number_to_move = (yy_n_chars) + 2;
 		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
 		register char *source =
@@ -1401,7 +1401,7 @@ static int yy_get_next_buffer (void)
 
 		else
 			{ /* need more input */
-			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			int offset = (yy_c_buf_p) - (yytext_ptr);
 			++(yy_c_buf_p);
 
 			switch ( yy_get_next_buffer(  ) )
@@ -1425,7 +1425,7 @@ static int yy_get_next_buffer (void)
 				case EOB_ACT_END_OF_FILE:
 					{
 					if ( yyipwrap( ) )
-						return 0;
+						return EOF;
 
 					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
@@ -1679,7 +1679,7 @@ void yyippop_buffer_state (void)
  */
 static void yyipensure_buffer_stack (void)
 {
-	yy_size_t num_to_alloc;
+	int num_to_alloc;
     
 	if (!(yy_buffer_stack)) {
 
@@ -1776,11 +1776,12 @@ YY_BUFFER_STATE yyip_scan_string (yyconst char * yystr )
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yyip_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+YY_BUFFER_STATE yyip_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 {
 	YY_BUFFER_STATE b;
 	char *buf;
-	yy_size_t n, i;
+	yy_size_t n;
+	int i;
     
 	/* Get memory for full buffer, including space for trailing EOB's. */
 	n = _yybytes_len + 2;
@@ -1862,7 +1863,7 @@ FILE *yyipget_out  (void)
 /** Get the length of the current token.
  * 
  */
-yy_size_t yyipget_leng  (void)
+int yyipget_leng  (void)
 {
         return yyipleng;
 }
diff --git a/src/IPFilterScanner.h b/src/IPFilterScanner.h
index c100be5..9767d10 100644
--- a/src/IPFilterScanner.h
+++ b/src/IPFilterScanner.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/IPFilterScanner.l b/src/IPFilterScanner.l
index 6867507..d5c1d8b 100644
--- a/src/IPFilterScanner.l
+++ b/src/IPFilterScanner.l
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -46,7 +46,7 @@
 #ifdef _MSC_VER
 #define isatty(DUMMY) 0
 #define YY_NO_UNISTD_H
-#pragma warning(disable:4003) 
+#pragma warning(disable:4003)
 #endif
 
 #define YY_NEVER_INTERACTIVE 1
@@ -107,7 +107,7 @@ WS		[ \t\r]*
 
 ^{WS}{IP}{WS}-{WS}{IP}{WS},{WS}{NO}{WS},.*		{
 		/* PeerGuardian filter line
-		   <IPStart> - <IPEnd> , <AccessLevel> , <Description> 
+		   <IPStart> - <IPEnd> , <AccessLevel> , <Description>
 		*/
 		char * ip1 = yytext;
 		char * ip2 = strchr(ip1 + 7, '-') + 1;
@@ -146,7 +146,7 @@ WS		[ \t\r]*
 		yyip_Line++;
 	}
 
-^.			{ 
+^.			{
 		/* Bad line */
 		yyip_Bad++;
 		AddDebugLogLineN(logIPFilter, CFormat(wxT("error in line %d: %s")) % yyip_Line % wxString(char2unicode(yytext)));
diff --git a/src/InternalEvents.h b/src/InternalEvents.h
index eb9e4ff..90630ef 100644
--- a/src/InternalEvents.h
+++ b/src/InternalEvents.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -46,31 +46,31 @@ public:
 		  m_commandInt(0)
 	{
 	}
-	
+
 	wxEvent* Clone(void) const {
 		return new CMuleInternalEvent(*this);
 	}
-	
+
 	void SetExtraLong(long value) {
 		m_value = value;
 	}
-	
+
 	long GetExtraLong() {
 		return m_value;
 	}
-	
+
 	void SetInt(int i) {
 		m_commandInt = i;
 	}
-	
+
 	long GetInt() const {
-		return m_commandInt; 
+		return m_commandInt;
 	}
 
 	void SetClientData(void *ptr) {
 		m_ptr = ptr;
 	}
-	
+
 	void *GetClientData() {
 		return m_ptr;
 	}
diff --git a/src/KadDlg.cpp b/src/KadDlg.cpp
index 785843c..ac7353e 100644
--- a/src/KadDlg.cpp
+++ b/src/KadDlg.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -45,12 +45,12 @@
 BEGIN_EVENT_TABLE(CKadDlg, wxPanel)
 	EVT_TEXT(ID_NODE_IP1, CKadDlg::OnFieldsChange)
 	EVT_TEXT(ID_NODE_IP2, CKadDlg::OnFieldsChange)
-	EVT_TEXT(ID_NODE_IP3, CKadDlg::OnFieldsChange)	
+	EVT_TEXT(ID_NODE_IP3, CKadDlg::OnFieldsChange)
 	EVT_TEXT(ID_NODE_IP4, CKadDlg::OnFieldsChange)
 	EVT_TEXT(ID_NODE_PORT, CKadDlg::OnFieldsChange)
 
 	EVT_TEXT_ENTER(IDC_NODESLISTURL ,CKadDlg::OnBnClickedUpdateNodeList)
-	
+
 	EVT_BUTTON(ID_NODECONNECT, CKadDlg::OnBnClickedBootstrapClient)
 	EVT_BUTTON(ID_KNOWNNODECONNECT, CKadDlg::OnBnClickedBootstrapKnown)
 	EVT_BUTTON(ID_KADDISCONNECT, CKadDlg::OnBnClickedDisconnectKad)
@@ -59,7 +59,7 @@ END_EVENT_TABLE()
 
 
 
-CKadDlg::CKadDlg(wxWindow* pParent) 
+CKadDlg::CKadDlg(wxWindow* pParent)
 	: wxPanel(pParent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, wxT("kadwnd") )
 {
 	m_kad_scope = NULL;
@@ -72,9 +72,9 @@ void CKadDlg::Init()
 	m_kad_scope->SetRanges(0.0, thePrefs::GetStatsMax());
 	m_kad_scope->SetYUnits(wxT("Nodes"));
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	//
-	// Get label with line breaks out of muuli.wdr, because generated code fails 
+	// Get label with line breaks out of muuli.wdr, because generated code fails
 	// to compile in Windows.
 	//
 	// In Windows, setting a button label with a newline fails (the newline is ignored).
@@ -95,9 +95,9 @@ void CKadDlg::SetUpdatePeriod(int step)
 {
 	// this gets called after the value in Preferences/Statistics/Update delay has been changed
 	if (step == 0) {
-	 	m_kad_scope->Stop();
+		m_kad_scope->Stop();
 	} else {
-	 	m_kad_scope->Reset(step);
+		m_kad_scope->Reset(step);
 	}
 }
 
@@ -106,13 +106,13 @@ void CKadDlg::SetGraphColors()
 {
 	static const char aTrend[] = { 2,      1,        0        };
 	static const int aRes[]    = { IDC_C0, IDC_C0_3, IDC_C0_2 };
-	
+
 	m_kad_scope->SetBackgroundColor(CStatisticsDlg::getColors(0));
 	m_kad_scope->SetGridColor(CStatisticsDlg::getColors(1));
-	
-	for (size_t i = 0; i < 3; ++i) {	
+
+	for (size_t i = 0; i < 3; ++i) {
 		m_kad_scope->SetPlotColor(CStatisticsDlg::getColors(12 + i), aTrend[i]);
-		
+
 		CColorFrameCtrl* ctrl = CastChild(aRes[i], CColorFrameCtrl);
 		ctrl->SetBackgroundBrushColour(CMuleColour(CStatisticsDlg::getColors(12 + i)));
 		ctrl->SetFrameBrushColour(*wxBLACK);
@@ -121,14 +121,14 @@ void CKadDlg::SetGraphColors()
 
 
 void CKadDlg::UpdateGraph(const GraphUpdateInfo& update)
-{	
+{
 	std::vector<float *> v(3);
 	v[0] = const_cast<float *>(&update.kadnodes[0]);
 	v[1] = const_cast<float *>(&update.kadnodes[1]);
 	v[2] = const_cast<float *>(&update.kadnodes[2]);
 	const std::vector<float *> &apfKad(v);
 	unsigned nodeCount = static_cast<unsigned>(update.kadnodes[2]);
-	
+
 	if (!IsShownOnScreen()) {
 		m_kad_scope->DelayPoints();
 	} else {
@@ -140,7 +140,11 @@ void CKadDlg::UpdateGraph(const GraphUpdateInfo& update)
 
 		m_kad_scope->AppendPoints(update.timestamp, apfKad);
 	}
+}
+
 
+void CKadDlg::UpdateNodeCount(unsigned nodeCount)
+{
 	wxStaticText* label = CastChild( wxT("nodesListLabel"), wxStaticText );
 	wxCHECK_RET(label, wxT("Failed to find kad-nodes label"));
 
@@ -152,14 +156,14 @@ void CKadDlg::UpdateGraph(const GraphUpdateInfo& update)
 // Enables or disables the node connect button depending on the conents of the text fields
 void CKadDlg::OnFieldsChange(wxCommandEvent& WXUNUSED(evt))
 {
-	// These are the IDs of the search-fields 
+	// These are the IDs of the search-fields
 	int textfields[] = { ID_NODE_IP1, ID_NODE_IP2, ID_NODE_IP3, ID_NODE_IP4, ID_NODE_PORT};
 
 	bool enable = true;
 	for ( uint16 i = 0; i < itemsof(textfields); i++ ) {
 		enable &= !CastChild(textfields[i], wxTextCtrl)->GetValue().IsEmpty();
 	}
-	
+
 	// Enable the node connect button if all fields contain text
 	FindWindowById(ID_NODECONNECT)->Enable( enable );
 }
@@ -170,19 +174,16 @@ void CKadDlg::OnBnClickedBootstrapClient(wxCommandEvent& WXUNUSED(evt))
 	if (FindWindowById(ID_NODECONNECT)->IsEnabled()) {
 		// Ip is reversed since StringIPtoUint32 returns anti-host and kad expects host order
 		uint32 ip = StringIPtoUint32(
-					((wxTextCtrl*)FindWindowById( ID_NODE_IP4 ))->GetValue() +
-					wxT(".") + 
-					((wxTextCtrl*)FindWindowById( ID_NODE_IP3 ))->GetValue() +
-					wxT(".") + 
-					((wxTextCtrl*)FindWindowById( ID_NODE_IP2 ))->GetValue() +
-					wxT(".") + 
-					((wxTextCtrl*)FindWindowById( ID_NODE_IP1 ))->GetValue() );
+			dynamic_cast<wxTextCtrl*>(FindWindowById(ID_NODE_IP4))->GetValue() + wxT(".") +
+			dynamic_cast<wxTextCtrl*>(FindWindowById(ID_NODE_IP3))->GetValue() + wxT(".") +
+			dynamic_cast<wxTextCtrl*>(FindWindowById(ID_NODE_IP2))->GetValue() + wxT(".") +
+			dynamic_cast<wxTextCtrl*>(FindWindowById(ID_NODE_IP1))->GetValue() );
 
 		if (ip == 0) {
 			wxMessageBox(_("Invalid ip to bootstrap"), _("WARNING"), wxOK | wxICON_EXCLAMATION, this);
 		} else {
 			unsigned long port;
-			if (((wxTextCtrl*)FindWindowById( ID_NODE_PORT ))->GetValue().ToULong(&port)) {
+			if (dynamic_cast<wxTextCtrl*>(FindWindowById(ID_NODE_PORT))->GetValue().ToULong(&port)) {
 				theApp->BootstrapKad(ip, port);
 			} else {
 				wxMessageBox(_("Invalid port to bootstrap"), _("WARNING"), wxOK | wxICON_EXCLAMATION, this);
@@ -211,7 +212,7 @@ void CKadDlg::OnBnClickedUpdateNodeList(wxCommandEvent& WXUNUSED(evt))
 	if ( wxMessageBox( wxString(_("Are you sure you want to download a new nodes.dat file?\n")) +
 						_("Doing so will remove your current nodes and restart Kademlia connection.")
 					, _("Continue?"), wxICON_EXCLAMATION | wxYES_NO, this) == wxYES ) {
-		wxString strURL = ((wxTextCtrl*)FindWindowById( IDC_NODESLISTURL ))->GetValue();
+		wxString strURL = dynamic_cast<wxTextCtrl*>(FindWindowById(IDC_NODESLISTURL))->GetValue();
 
 		thePrefs::SetKadNodesUrl(strURL);
 		theApp->UpdateNotesDat(strURL);
diff --git a/src/KadDlg.h b/src/KadDlg.h
index bf70d21..234cb28 100644
--- a/src/KadDlg.h
+++ b/src/KadDlg.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,24 +28,25 @@
 
 #include <wx/panel.h>		// Needed for wxPanel
 
-class COScopeCtrl;	
+class COScopeCtrl;
 class wxListEvent;
 class wxCommandEvent;
 class wxMouseEvent;
 typedef struct UpdateInfo GraphUpdateInfo;
-	
+
 
 class CKadDlg : public wxPanel
 {
 public:
-	CKadDlg(wxWindow* pParent);   
+	CKadDlg(wxWindow* pParent);
 	~CKadDlg() {};
-	
+
 	void Init();
 	void SetUpdatePeriod(int step);
 	void SetGraphColors();
 	void UpdateGraph(const GraphUpdateInfo& update);
-		
+	void UpdateNodeCount(unsigned nodes);
+
 private:
 	COScopeCtrl* m_kad_scope;
 
diff --git a/src/KnownFile.cpp b/src/KnownFile.cpp
index a89c149..7960806 100644
--- a/src/KnownFile.cpp
+++ b/src/KnownFile.cpp
@@ -19,7 +19,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,7 +48,7 @@
 #include "KnownFileList.h"	// Needed for CKnownFileList
 #include "amule.h"		// Needed for theApp
 #include "PartFile.h"		// Needed for SavePartFile
-#include "ClientList.h" 	// Needed for clientlist (buddy support)
+#include "ClientList.h"	// Needed for clientlist (buddy support)
 #include "Logger.h"
 #include "ScopedPtr.h"		// Needed for CScopedArray and CScopedPtr
 #include "GuiEvents.h"		// Needed for Notify_*
@@ -61,33 +61,36 @@
 
 #include <common/Format.h>
 
-CFileStatistic::CFileStatistic() : 
-	requested(0), 
-	transferred(0),
-	accepted(0),
-	alltimerequested(0),
-	alltimetransferred(0),
-	alltimeaccepted(0) 
-{
-}
+CFileStatistic::CFileStatistic(CKnownFile *parent)
+	: fileParent(parent),
+	  requested(0),
+	  transferred(0),
+	  accepted(0),
+	  alltimerequested(0),
+	  alltimetransferred(0),
+	  alltimeaccepted(0)
+{}
 
 #ifndef CLIENT_GUI
 
-void CFileStatistic::AddRequest(){
+void CFileStatistic::AddRequest()
+{
 	requested++;
 	alltimerequested++;
 	theApp->knownfiles->requested++;
 	theApp->sharedfiles->UpdateItem(fileParent);
 }
-	
-void CFileStatistic::AddAccepted(){
+
+void CFileStatistic::AddAccepted()
+{
 	accepted++;
 	alltimeaccepted++;
 	theApp->knownfiles->accepted++;
 	theApp->sharedfiles->UpdateItem(fileParent);
 }
-	
-void CFileStatistic::AddTransferred(uint64 bytes){
+
+void CFileStatistic::AddTransferred(uint64 bytes)
+{
 	transferred += bytes;
 	alltimetransferred += bytes;
 	theApp->knownfiles->transferred += bytes;
@@ -100,25 +103,23 @@ void CFileStatistic::AddTransferred(uint64 bytes){
 /* Abstract File (base class)*/
 
 CAbstractFile::CAbstractFile()
-:
-m_iRating(0),
-m_hasComment(false),
-m_iUserRating(0),
-m_nFileSize(0)
-{
-}
+	: m_iRating(0),
+	  m_hasComment(false),
+	  m_iUserRating(0),
+	  m_nFileSize(0)
+{}
 
 
 CAbstractFile::CAbstractFile(const CAbstractFile& other)
-:
-m_abyFileHash(other.m_abyFileHash),
-m_strComment(other.m_strComment),
-m_iRating(other.m_iRating),
-m_hasComment(other.m_hasComment),
-m_iUserRating(other.m_iUserRating),
-m_taglist(other.m_taglist),
-m_nFileSize(other.m_nFileSize),
-m_fileName(other.m_fileName)
+	: m_abyFileHash(other.m_abyFileHash),
+	  m_strComment(other.m_strComment),
+	  m_iRating(other.m_iRating),
+	  m_hasComment(other.m_hasComment),
+	  m_iUserRating(other.m_iUserRating),
+	  m_taglist(other.m_taglist),
+	  m_kadNotes(),
+	  m_nFileSize(other.m_nFileSize),
+	  m_fileName(other.m_fileName)
 {
 /* // TODO: Currently it's not safe to duplicate the entries, but isn't needed either.
 	CKadEntryPtrList::const_iterator it = other.m_kadNotes.begin();
@@ -130,9 +131,9 @@ m_fileName(other.m_fileName)
 
 
 void CAbstractFile::SetFileName(const CPath& fileName)
-{ 
+{
 	m_fileName = fileName;
-} 
+}
 
 uint32 CAbstractFile::GetIntTagValue(uint8 tagname) const
 {
@@ -243,8 +244,9 @@ void CAbstractFile::AddTagUnique(const CTag &rTag)
 		       (!(*it).GetName().IsEmpty() &&
 			!rTag.GetName().IsEmpty() &&
 			(*it).GetName() == rTag.GetName()) ) &&
-		     (*it).GetType() == rTag.GetType()){
-			m_taglist.erase(it);
+		     (*it).GetType() == rTag.GetType())
+		{
+			it = m_taglist.erase(it);
 			m_taglist.insert(it, rTag);
 			return;
 		}
@@ -275,11 +277,14 @@ void CAbstractFile::AddNote(Kademlia::CEntry *)
 /* Known File */
 
 CKnownFile::CKnownFile()
+	: statistic(this)
 {
 	Init();
 }
 
-CKnownFile::CKnownFile(uint32 ecid) : CECID(ecid)
+CKnownFile::CKnownFile(uint32 ecid)
+	: CECID(ecid),
+	  statistic(this)
 {
 	Init();
 }
@@ -288,11 +293,12 @@ CKnownFile::CKnownFile(uint32 ecid) : CECID(ecid)
 //#warning Experimental: Construct a CKnownFile from a CSearchFile
 CKnownFile::CKnownFile(const CSearchFile &searchFile)
 :
-// This will copy the file hash
-CAbstractFile(static_cast<const CAbstractFile &>(searchFile))
+	// This will copy the file hash
+	CAbstractFile(static_cast<const CAbstractFile &>(searchFile)),
+	statistic(this)
 {
 	Init();
-	
+
 	// Use CKnownFile::SetFileName()
 	SetFileName(searchFile.GetFileName());
 
@@ -301,7 +307,7 @@ CAbstractFile(static_cast<const CAbstractFile &>(searchFile))
 }
 
 
-void CKnownFile::Init() 
+void CKnownFile::Init()
 {
 	m_showSources = false;
 	m_showPeers = false;
@@ -321,8 +327,7 @@ void CKnownFile::Init()
 	m_lastDateChanged = 0;
 	m_bAutoUpPriority = thePrefs::GetNewAutoUp();
 	m_iUpPriority = ( m_bAutoUpPriority ) ? PR_HIGH : PR_NORMAL;
-
-	statistic.fileParent = this;
+	m_hashingProgress = 0;
 
 #ifndef CLIENT_GUI
 	m_pAICHHashSet = new CAICHHashSet(this);
@@ -336,7 +341,7 @@ void CKnownFile::SetFileSize(uint64 nFileSize)
 #ifndef CLIENT_GUI
 	m_pAICHHashSet->SetFileSize(nFileSize);
 #endif
-	
+
 	// Examples of parthashs, hashsets and filehashs for different filesizes
 	// according the ed2k protocol
 	//----------------------------------------------------------------------
@@ -427,7 +432,7 @@ void CKnownFile::SetFileSize(uint64 nFileSize)
 void CKnownFile::AddUploadingClient(CUpDownClient* client)
 {
 	m_ClientUploadList.insert(CCLIENTREF(client, wxT("CKnownFile::AddUploadingClient m_ClientUploadList")));
-	
+
 	SourceItemType type = UNAVAILABLE_SOURCE;
 	switch (client->GetUploadState()) {
 		case US_UPLOADING:
@@ -440,7 +445,7 @@ void CKnownFile::AddUploadingClient(CUpDownClient* client)
 	}
 
 	Notify_SharedCtrlAddClient(this, CCLIENTREF(client, wxT("CKnownFile::AddUploadingClient Notify_SharedCtrlAddClient")), type);
-	
+
 	UpdateAutoUpPriority();
 }
 
@@ -456,10 +461,12 @@ void CKnownFile::RemoveUploadingClient(CUpDownClient* client)
 
 #ifdef CLIENT_GUI
 
-CKnownFile::CKnownFile(CEC_SharedFile_Tag *tag) : CECID(tag->ID())
+CKnownFile::CKnownFile(const CEC_SharedFile_Tag *tag)
+	: CECID(tag->ID()),
+	  statistic(this)
 {
 	Init();
-	
+
 	m_abyFileHash = tag->FileHash();
 	SetFileSize(tag->SizeFull());
 	m_AvailPartFrequency.insert(m_AvailPartFrequency.end(), m_iPartCount, 0);
@@ -467,12 +474,10 @@ CKnownFile::CKnownFile(CEC_SharedFile_Tag *tag) : CECID(tag->ID())
 }
 
 CKnownFile::~CKnownFile()
-{
-}
+{}
 
-void CKnownFile::UpdateAutoUpPriority() 
-{
-}
+void CKnownFile::UpdateAutoUpPriority()
+{}
 
 
 #else // ! CLIENT_GUI
@@ -483,7 +488,7 @@ CKnownFile::~CKnownFile()
 	for ( ; it != m_ClientUploadList.end(); ++it ) {
 		it->ClearUploadFileID();
 	}
-	
+
 	delete m_pAICHHashSet;
 }
 
@@ -498,14 +503,14 @@ void CKnownFile::SetFilePath(const CPath& filePath)
 bool CKnownFile::LoadHashsetFromFile(const CFileDataIO* file, bool checkhash)
 {
 	CMD4Hash checkid = file->ReadHash();
-	
+
 	uint16 parts = file->ReadUInt16();
 	m_hashlist.clear();
 	for (uint16 i = 0; i < parts; ++i){
 		CMD4Hash cur_hash = file->ReadHash();
 		m_hashlist.push_back(cur_hash);
 	}
-	
+
 	// SLUGFILLER: SafeHash - always check for valid m_hashlist
 	if (!checkhash){
 		m_abyFileHash = checkid;
@@ -522,7 +527,7 @@ bool CKnownFile::LoadHashsetFromFile(const CFileDataIO* file, bool checkhash)
 		}
 	}
 	// SLUGFILLER: SafeHash
-	
+
 	// trust noone ;-)
 	// lol, useless comment but made me lmao
 	// wtf you guys are weird.
@@ -563,7 +568,7 @@ bool CKnownFile::LoadTagsFromFile(const CFileDataIO* file)
 					SetFileName(CPath(newtag.GetStr()));
 				}
 				break;
-			
+
 			case FT_FILESIZE:
 				SetFileSize(newtag.GetInt());
 				m_AvailPartFrequency.clear();
@@ -571,25 +576,23 @@ bool CKnownFile::LoadTagsFromFile(const CFileDataIO* file)
 					m_AvailPartFrequency.begin(),
 					GetPartCount(), 0);
 				break;
-			
+
 			case FT_ATTRANSFERRED:
-				statistic.alltimetransferred += newtag.GetInt();
+				statistic.SetAllTimeTransferred(statistic.GetAllTimeTransferred() + newtag.GetInt());
 				break;
-			
+
 			case FT_ATTRANSFERREDHI:
-				statistic.alltimetransferred =
-					(((uint64)newtag.GetInt()) << 32) +
-					((uint64)statistic.alltimetransferred);
+				statistic.SetAllTimeTransferred(statistic.GetAllTimeTransferred() + (((uint64)newtag.GetInt()) << 32));
 				break;
-			
+
 			case FT_ATREQUESTED:
-				statistic.alltimerequested = newtag.GetInt();
+				statistic.SetAllTimeRequests(newtag.GetInt());
 				break;
-			
+
 			case FT_ATACCEPTED:
-				statistic.alltimeaccepted = newtag.GetInt();
+				statistic.SetAllTimeAccepts(newtag.GetInt());
 				break;
-			
+
 			case FT_ULPRIORITY:
 				m_iUpPriority = newtag.GetInt();
 				if( m_iUpPriority == PR_AUTO ){
@@ -604,15 +607,15 @@ bool CKnownFile::LoadTagsFromFile(const CFileDataIO* file)
 						m_iUpPriority != PR_POWERSHARE) {
 						m_iUpPriority = PR_NORMAL;
 					}
-					
+
 					m_bAutoUpPriority = false;
 				}
 				break;
-			
+
 			case FT_PERMISSIONS:
 				// Ignore it, it's not used anymore.
 				break;
-			
+
 			case FT_AICH_HASH: {
 				CAICHHash hash;
 				bool hashSizeOk =
@@ -623,31 +626,31 @@ bool CKnownFile::LoadTagsFromFile(const CFileDataIO* file)
 				}
 				break;
 			}
-			
+
 			case FT_KADLASTPUBLISHSRC:
 				SetLastPublishTimeKadSrc( newtag.GetInt(), 0 );
-				
+
 				if(GetLastPublishTimeKadSrc() > (uint32)time(NULL)+KADEMLIAREPUBLISHTIMES) {
 					//There may be a posibility of an older client that saved a random number here.. This will check for that..
 					SetLastPublishTimeKadSrc(0, 0);
 				}
 				break;
-			
+
 			case FT_KADLASTPUBLISHNOTES:
 				SetLastPublishTimeKadNotes( newtag.GetInt() );
 				break;
-			
+
 			case FT_KADLASTPUBLISHKEY:
 				// Just purge it
 				wxASSERT( newtag.IsInt() );
 				break;
-				
+
 			default:
 				// Store them here and write them back on saving.
 				m_taglist.push_back(newtag);
-		}	
+		}
 	}
-	
+
 	return true;
 }
 
@@ -676,33 +679,33 @@ bool CKnownFile::LoadFromFile(const CFileDataIO* file)
 bool CKnownFile::WriteToFile(CFileDataIO* file)
 {
 	wxCHECK(!IsPartFile(), false);
-	
+
 	// date
-	file->WriteUInt32(m_lastDateChanged); 
+	file->WriteUInt32(m_lastDateChanged);
 	// hashset
 	file->WriteHash(m_abyFileHash);
-	
+
 	uint16 parts = m_hashlist.size();
 	file->WriteUInt16(parts);
 
 	for (int i = 0; i < parts; ++i)
 		file->WriteHash(m_hashlist[i]);
-	
+
 	//tags
 	const int iFixedTags = 8;
 	uint32 tagcount = iFixedTags;
-	if (HasProperAICHHashSet()) {	
+	if (HasProperAICHHashSet()) {
 		tagcount++;
 	}
-	// Float meta tags are currently not written. All older eMule versions < 0.28a have 
-	// a bug in the meta tag reading+writing code. To achive maximum backward 
-	// compatibility for met files with older eMule versions we just don't write float 
-	// tags. This is OK, because we (eMule) do not use float tags. The only float tags 
-	// we may have to handle is the '# Sent' tag from the Hybrid, which is pretty 
+	// Float meta tags are currently not written. All older eMule versions < 0.28a have
+	// a bug in the meta tag reading+writing code. To achive maximum backward
+	// compatibility for met files with older eMule versions we just don't write float
+	// tags. This is OK, because we (eMule) do not use float tags. The only float tags
+	// we may have to handle is the '# Sent' tag from the Hybrid, which is pretty
 	// useless but may be received from us via the servers.
-	// 
-	// The code for writing the float tags SHOULD BE ENABLED in SOME MONTHS (after most 
-	// people are using the newer eMule versions which do not write broken float tags).	
+	//
+	// The code for writing the float tags SHOULD BE ENABLED in SOME MONTHS (after most
+	// people are using the newer eMule versions which do not write broken float tags).
 	for (size_t j = 0; j < m_taglist.size(); ++j){
 		if (m_taglist[j].IsInt() || m_taglist[j].IsStr()) {
 			++tagcount;
@@ -716,39 +719,39 @@ bool CKnownFile::WriteToFile(CFileDataIO* file)
 	if (m_lastPublishTimeKadNotes){
 		++tagcount;
 	}
-	
+
 	// standard tags
 
 	file->WriteUInt32(tagcount);
-	
+
 	// We still save the unicoded filename, for backwards
 	// compatibility with pre-2.2 and other clients.
 	CTagString nametag_unicode(FT_FILENAME, GetFileName().GetRaw());
-	// We write it with BOM to kep eMule compatibility
-	nametag_unicode.WriteTagToFile(file,utf8strOptBOM);	
-	
+	// We write it with BOM to keep eMule compatibility
+	nametag_unicode.WriteTagToFile(file,utf8strOptBOM);
+
 	// The non-unicoded filename is written in an 'universial'
-	// format, which allows us to identify files, even if the 
+	// format, which allows us to identify files, even if the
 	// system locale changes.
 	CTagString nametag(FT_FILENAME, CPath::ToUniv(GetFileName()));
 	nametag.WriteTagToFile(file);
-	
+
 	CTagIntSized sizetag(FT_FILESIZE, GetFileSize(), IsLargeFile() ? 64 : 32);
 	sizetag.WriteTagToFile(file);
-	
+
 	// statistic
 	uint32 tran;
-	tran=statistic.alltimetransferred & 0xFFFFFFFF;
+	tran = statistic.GetAllTimeTransferred() & 0xFFFFFFFF;
 	CTagInt32 attag1(FT_ATTRANSFERRED, tran);
 	attag1.WriteTagToFile(file);
-	
-	tran=statistic.alltimetransferred>>32;
+
+	tran = statistic.GetAllTimeTransferred() >> 32;
 	CTagInt32 attag4(FT_ATTRANSFERREDHI, tran);
 	attag4.WriteTagToFile(file);
 
 	CTagInt32 attag2(FT_ATREQUESTED, statistic.GetAllTimeRequests());
 	attag2.WriteTagToFile(file);
-	
+
 	CTagInt32 attag3(FT_ATACCEPTED, statistic.GetAllTimeAccepts());
 	attag3.WriteTagToFile(file);
 
@@ -773,7 +776,7 @@ bool CKnownFile::WriteToFile(CFileDataIO* file)
 		CTagInt32 kadLastPubNotes(FT_KADLASTPUBLISHNOTES, m_lastPublishTimeKadNotes);
 		kadLastPubNotes.WriteTagToFile(file);
 	}
-	
+
 	//other tags
 	for (size_t j = 0; j < m_taglist.size(); ++j){
 		if (m_taglist[j].IsInt() || m_taglist[j].IsStr()) {
@@ -787,13 +790,13 @@ bool CKnownFile::WriteToFile(CFileDataIO* file)
 void CKnownFile::CreateHashFromHashlist(const ArrayOfCMD4Hash& hashes, CMD4Hash* Output)
 {
 	wxCHECK_RET(hashes.size(), wxT("No input to hash from in CreateHashFromHashlist"));
- 	
+
 	std::vector<byte> buffer(hashes.size() * MD4HASH_LENGTH);
 	std::vector<byte>::iterator it = buffer.begin();
 
 	for (size_t i = 0; i < hashes.size(); ++i) {
 		it = STLCopy_n(hashes[i].GetHash(), MD4HASH_LENGTH, it);
- 	}
+	}
 
 	CreateHashFromInput(&buffer[0], buffer.size(), Output, NULL);
 }
@@ -805,10 +808,10 @@ void CKnownFile::CreateHashFromFile(CFileAutoClose& file, uint64 offset, uint32
 
 	CFileArea area;
 	area.ReadAt(file, offset, Length);
- 
+
 	CreateHashFromInput(area.GetBuffer(), Length, Output, pShaHashOut);
 	area.CheckError();
-}	
+}
 
 
 void CKnownFile::CreateHashFromInput(const byte* input, uint32 Length, CMD4Hash* Output, CAICHHashTree* pShaHashOut )
@@ -816,23 +819,23 @@ void CKnownFile::CreateHashFromInput(const byte* input, uint32 Length, CMD4Hash*
 	wxASSERT_MSG(Output || pShaHashOut, wxT("Nothing to do in CreateHashFromInput"));
 	{ wxCHECK_RET(input, wxT("No input to hash from in CreateHashFromInput")); }
 	wxASSERT(Length <= PARTSIZE); // We never hash more than one PARTSIZE
-	
+
 	CMemFile data(input, Length);
 
 	uint32 Required = Length;
 	byte   X[64*128];
-	
+
 	uint32	posCurrentEMBlock = 0;
 	uint32	nIACHPos = 0;
 	CScopedPtr<CAICHHashAlgo> pHashAlg(CAICHHashSet::GetNewHashAlgo());
 
 	// This is all AICH.
 	while (Required >= 64) {
-		uint32 len = Required / 64; 
+		uint32 len = Required / 64;
 		if (len > sizeof(X)/(64 * sizeof(X[0]))) {
-			len = sizeof(X)/(64 * sizeof(X[0])); 
+			len = sizeof(X)/(64 * sizeof(X[0]));
 		}
-		
+
 		data.Read(&X, len * 64);
 
 		// SHA hash needs 180KB blocks
@@ -899,20 +902,20 @@ void CKnownFile::CreateHashFromInput(const byte* input, uint32 Length, CMD4Hash*
 
 const CMD4Hash& CKnownFile::GetPartHash(uint16 part) const {
 	wxASSERT( part < m_hashlist.size() );
-		
+
 	return m_hashlist[part];
 }
 
 CPacket* CKnownFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 byRequestedVersion, uint16 nRequestedOptions)
 {
 	// Kad reviewed
-	
+
 	if (m_ClientUploadList.empty()) {
-		return NULL;	
+		return NULL;
 	}
-	
-	if ((((CKnownFile*)forClient->GetRequestFile() != this)
-		&& ((CKnownFile*)forClient->GetUploadFile() != this)) || forClient->GetUploadFileID() != GetFileHash()) {
+
+	if (((static_cast<CKnownFile*>(forClient->GetRequestFile()) != this)
+		&& (forClient->GetUploadFile() != this)) || forClient->GetUploadFileID() != GetFileHash()) {
 		wxString file1 = _("Unknown");
 		if (forClient->GetRequestFile() && forClient->GetRequestFile()->GetFileName().IsOk()) {
 			file1 = forClient->GetRequestFile()->GetFileName().GetPrintable();
@@ -937,7 +940,7 @@ CPacket* CKnownFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 b
 	}
 
 	CMemFile data(1024);
-	
+
 	uint8 byUsedVersion;
 	bool bIsSX2Packet;
 	if (forClient->SupportsSourceExchange2() && byRequestedVersion > 0){
@@ -958,7 +961,7 @@ CPacket* CKnownFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 b
 			AddDebugLogLineN(logKnownFiles, wxT("Client which announced to support SX2 sent SX1 packet instead"));
 		}
 	}
-	
+
 	uint16 nCount = 0;
 
 	data.WriteHash(forClient->GetUploadFileID());
@@ -966,18 +969,18 @@ CPacket* CKnownFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 b
 	uint32 cDbgNoSrc = 0;
 
 	SourceSet::iterator it = m_ClientUploadList.begin();
-	for ( ; it != m_ClientUploadList.end(); it++ ) {
+	for ( ; it != m_ClientUploadList.end(); ++it ) {
 		const CUpDownClient *cur_src = it->GetClient();
-		
+
 		if (	cur_src->HasLowID() ||
 			cur_src == forClient ||
 			!(	cur_src->GetUploadState() == US_UPLOADING ||
 				cur_src->GetUploadState() == US_ONUPLOADQUEUE)) {
 			continue;
 		}
-		
+
 		bool bNeeded = false;
-		
+
 		if ( SupportsUploadChunksState ) {
 			const BitVector& srcstatus = cur_src->GetUpPartStatus();
 			if ( !srcstatus.empty() ) {
@@ -1040,11 +1043,11 @@ CPacket* CKnownFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 b
 			data.WriteUInt16(cur_src->GetUserPort());
 			data.WriteUInt32(cur_src->GetServerIP());
 			data.WriteUInt16(cur_src->GetServerPort());
-			
+
 			if (byUsedVersion >= 2) {
 			    data.WriteHash(cur_src->GetUserHash());
 			}
-			
+
 			if (byUsedVersion >= 4){
 				// CryptSettings - SourceExchange V4
 				// 5 Reserved (!)
@@ -1056,27 +1059,27 @@ CPacket* CKnownFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 b
 				const uint8 uRequiresCryptLayer	= cur_src->RequiresCryptLayer() ? 1 : 0;
 				const uint8 byCryptOptions = (uRequiresCryptLayer << 2) | (uRequestsCryptLayer << 1) | (uSupportsCryptLayer << 0);
 				data.WriteUInt8(byCryptOptions);
-			}			
-			
+			}
+
 			if (nCount > 500) {
 				break;
 			}
 		}
 	}
-	
+
 	if (!nCount) {
 		return 0;
 	}
-	
+
 	data.Seek(bIsSX2Packet ? 17 : 16, wxFromStart);
 	data.WriteUInt16(nCount);
 
 	CPacket* result = new CPacket(data, OP_EMULEPROT, bIsSX2Packet ? OP_ANSWERSOURCES2 : OP_ANSWERSOURCES);
-	
+
 	if ( result->GetPacketSize() > 354 ) {
 		result->PackPacket();
 	}
-	
+
 	return result;
 }
 
@@ -1085,13 +1088,13 @@ void CKnownFile::CreateOfferedFilePacket(
 	CMemFile *files,
 	CServer *pServer,
 	CUpDownClient *pClient) {
-		
+
 	// This function is used for offering files to the local server and for sending
 	// shared files to some other client. In each case we send our IP+Port only, if
 	// we have a HighID.
 
 	wxASSERT(!(pClient && pServer));
-		
+
 	SetPublishedED2K(true);
 	files->WriteHash(GetFileHash());
 
@@ -1125,17 +1128,17 @@ void CKnownFile::CreateOfferedFilePacket(
 		if (theApp->IsConnected() && !theApp->IsFirewalled()) {
 			nClientID = theApp->GetID();
 			nClientPort = thePrefs::GetPort();
-		}		
+		}
 	}
 
 	files->WriteUInt32(nClientID);
 	files->WriteUInt16(nClientPort);
-	
+
 	TagPtrList tags;
 
 	// The printable filename is used because it's destined for another user.
 	tags.push_back(new CTagString(FT_FILENAME, GetFileName().GetPrintable()));
-	
+
 	if (pClient && pClient->GetVBTTags()) {
 		tags.push_back(new CTagVarInt(FT_FILESIZE, GetFileSize()));
 	} else {
@@ -1159,10 +1162,10 @@ void CKnownFile::CreateOfferedFilePacket(
 				} else {
 					tags.push_back(new CTagInt64(FT_FILESIZE, GetFileSize()));
 				}
-			}		
+			}
 		}
 	}
-	
+
 	if (GetFileRating()) {
 		tags.push_back(new CTagVarInt(FT_FILERATING, GetFileRating(), (pClient && pClient->GetVBTTags()) ? 0 : 32));
 	}
@@ -1189,22 +1192,22 @@ void CKnownFile::CreateOfferedFilePacket(
 	}
 
 	// There, we could add MetaData info, if we ever get to have that.
-	
+
 	EUtf8Str eStrEncode;
 
-	bool unicode_support = 
+	bool unicode_support =
 		// eservers that support UNICODE.
 		(pServer && (pServer->GetUnicodeSupport()))
 		||
 		// clients that support unicode
 		(pClient && pClient->GetUnicodeSupport());
 	eStrEncode = unicode_support ? utf8strRaw : utf8strNone;
-	
+
 	files->WriteUInt32(tags.size());
 
 	// Sadly, eMule doesn't use a MISCOPTIONS flag on hello packet for this, so we
 	// have to identify the support for new tags by version.
-	bool new_ed2k = 	
+	bool new_ed2k =
 		// eMule client > 0.42f
 		(pClient && pClient->IsEmuleClient() && pClient->GetVersion()  >= MAKE_CLIENT_VERSION(0,42,7))
 		||
@@ -1214,7 +1217,7 @@ void CKnownFile::CreateOfferedFilePacket(
 		||
 		// eservers use a flag for this, at least.
 		(pServer && (pServer->GetTCPFlags() & SRV_TCPFLG_NEWTAGS));
-	
+
 	for (TagPtrList::iterator it = tags.begin(); it != tags.end(); ++it ) {
 		CTag* pTag = *it;
 		if (new_ed2k) {
@@ -1222,7 +1225,7 @@ void CKnownFile::CreateOfferedFilePacket(
 		} else {
 			pTag->WriteTagToFile(files, eStrEncode);
 		}
-		delete pTag;		
+		delete pTag;
 	}
 }
 
@@ -1250,7 +1253,7 @@ void CKnownFile::UpdateAutoUpPriority()
 }
 
 void CKnownFile::SetFileCommentRating(const wxString& strNewComment, int8 iNewRating)
-{ 
+{
 	if (m_strComment != strNewComment || m_iRating != iNewRating) {
 		SetLastPublishTimeKadNotes(0);
 		wxString strCfgPath = wxT("/") + m_abyFileHash.Encode() + wxT("/");
@@ -1262,12 +1265,12 @@ void CKnownFile::SetFileCommentRating(const wxString& strNewComment, int8 iNewRa
 			cfg->Write( strCfgPath + wxT("Comment"), strNewComment);
 			cfg->Write( strCfgPath + wxT("Rate"), (int)iNewRating);
 		}
-     
+
 		m_strComment = strNewComment;
- 		m_iRating = iNewRating; 
- 
+		m_iRating = iNewRating;
+
 		SourceSet::iterator it = m_ClientUploadList.begin();
-		for ( ; it != m_ClientUploadList.end(); it++ ) {
+		for ( ; it != m_ClientUploadList.end(); ++it ) {
 			it->SetCommentDirty();
 		}
 	}
@@ -1277,7 +1280,7 @@ void CKnownFile::SetFileCommentRating(const wxString& strNewComment, int8 iNewRa
 void CKnownFile::SetUpPriority(uint8 iNewUpPriority, bool m_bsave){
 	m_iUpPriority = iNewUpPriority;
 	if( IsPartFile() && m_bsave ) {
-		((CPartFile*)this)->SavePartFile();
+		static_cast<CPartFile*>(this)->SavePartFile();
 	}
 }
 
@@ -1291,12 +1294,12 @@ bool CKnownFile::PublishNotes()
 	if(m_lastPublishTimeKadNotes > (uint32)time(NULL)) {
 		return false;
 	}
-	
+
 	if(!GetFileComment().IsEmpty()) {
 		m_lastPublishTimeKadNotes = (uint32)time(NULL)+KADEMLIAREPUBLISHTIMEN;
 		return true;
 	}
-	
+
 	if(GetFileRating() != 0) {
 		m_lastPublishTimeKadNotes = (uint32)time(NULL)+KADEMLIAREPUBLISHTIMEN;
 		return true;
@@ -1328,14 +1331,14 @@ bool CKnownFile::PublishSrc()
 
 	SetLastPublishTimeKadSrc((uint32)time(NULL)+KADEMLIAREPUBLISHTIMES,lastBuddyIP);
 	return true;
-	
+
 }
 
 void CKnownFile::UpdatePartsInfo()
 {
 	// Cache part count
 	uint16 partcount = GetPartCount();
-	bool flag = (time(NULL) - m_nCompleteSourcesTime > 0); 
+	bool flag = (time(NULL) - m_nCompleteSourcesTime > 0);
 
 	// Ensure the frequency-list is ready
 	if ( m_AvailPartFrequency.size() != GetPartCount() ) {
@@ -1344,17 +1347,17 @@ void CKnownFile::UpdatePartsInfo()
 	}
 
 	if (flag) {
-		ArrayOfUInts16 count;	
-		count.reserve(m_ClientUploadList.size());	
-		
+		ArrayOfUInts16 count;
+		count.reserve(m_ClientUploadList.size());
+
 		SourceSet::iterator it = m_ClientUploadList.begin();
-		for ( ; it != m_ClientUploadList.end(); it++ ) {
+		for ( ; it != m_ClientUploadList.end(); ++it ) {
 			CUpDownClient* client = it->GetClient();
 			if ( !client->GetUpPartStatus().empty() && client->GetUpPartCount() == partcount ) {
 				count.push_back(client->GetUpCompleteSourcesCount());
 			}
 		}
-	
+
 		m_nCompleteSourcesCount = m_nCompleteSourcesCountLo = m_nCompleteSourcesCountHi = 0;
 
 		if( partcount > 0) {
@@ -1367,17 +1370,17 @@ void CKnownFile::UpdatePartsInfo()
 		}
 		count.push_back(m_nCompleteSourcesCount);
 
-		int32 n = count.size();	
+		int32 n = count.size();
 		if (n > 0) {
 			std::sort(count.begin(), count.end(), std::less<uint16>());
-			
+
 			// calculate range
 			int i = n >> 1;			// (n / 2)
 			int j = (n * 3) >> 2;	// (n * 3) / 4
 			int k = (n * 7) >> 3;	// (n * 7) / 8
-			
+
 			// For complete files, trust the people your uploading to more...
-			
+
 			// For low guess and normal guess count
 			//	- If we see more sources then the guessed low and
 			//	normal, use what we see.
@@ -1422,7 +1425,7 @@ void CKnownFile::UpdatePartsInfo()
 		}
 		m_nCompleteSourcesTime = time(NULL) + (60);
 	}
-	
+
 	Notify_SharedFilesUpdateItem(this);
 }
 
@@ -1436,13 +1439,13 @@ void CKnownFile::UpdateUpPartsFrequency( CUpDownClient* client, bool increment )
 			return;
 		}
 	}
-	
+
 	const BitVector& freq = client->GetUpPartStatus();
 	unsigned int size = freq.size();
 	if ( size != m_AvailPartFrequency.size() ) {
 		return;
 	}
-	
+
 	if ( increment ) {
 		for ( unsigned int i = 0; i < size; ++i ) {
 			if ( freq.get(i) ) {
@@ -1487,7 +1490,7 @@ void GuessAndRemoveExt(CPath& name)
 }
 
 void CKnownFile::SetFileName(const CPath& filename)
-{ 
+{
 	CAbstractFile::SetFileName(filename);
 	wordlist.clear();
 	// Don't publish extension. That'd kill the node indexing e.g. "avi".
@@ -1498,14 +1501,14 @@ void CKnownFile::SetFileName(const CPath& filename)
 
 #endif // CLIENT_GUI
 
-//For File Comment // 
+//For File Comment //
 void CKnownFile::LoadComment() const
 {
 	#ifndef CLIENT_GUI
 	wxString strCfgPath = wxT("/") + m_abyFileHash.Encode() + wxT("/");
 
 	wxConfigBase* cfg = wxConfigBase::Get();
-	
+
 	m_strComment = cfg->Read( strCfgPath + wxT("Comment"), wxEmptyString);
 	m_iRating = cfg->Read( strCfgPath + wxT("Rate"), 0l);
 	#endif
diff --git a/src/KnownFile.h b/src/KnownFile.h
index a6fd90c..0ef7559 100644
--- a/src/KnownFile.h
+++ b/src/KnownFile.h
@@ -65,11 +65,9 @@ typedef vector<CTag> ArrayOfCTag;
 
 class CFileStatistic
 {
-	friend class CKnownFile;
 	friend class CKnownFilesRem;
-
 public:
-	CFileStatistic();
+	CFileStatistic(CKnownFile *parent);
 	void	AddRequest();
 	void	AddAccepted();
 	void    AddTransferred(uint64 bytes);
@@ -82,9 +80,9 @@ public:
 	void	SetAllTimeAccepts(uint32 new_value)	{ alltimeaccepted = new_value; };
 	uint64	GetAllTimeTransferred() const		{return alltimetransferred;}
 	void	SetAllTimeTransferred(uint64 new_value)	{ alltimetransferred = new_value; };
-	CKnownFile* fileParent;
 
 private:
+	CKnownFile* fileParent;
 	uint16 requested;
 	uint64 transferred;
 	uint16 accepted;
@@ -135,11 +133,11 @@ public:
 
 	/* Comment and rating */
 	virtual const wxString&	GetFileComment() const { return m_strComment; }
-	virtual int8	GetFileRating() 		const { return m_iRating; }
+	virtual int8	GetFileRating()		const { return m_iRating; }
 
 	bool	HasComment() const		{ return m_hasComment; }
 	bool	HasRating() const		{ return (m_iUserRating != 0); }
-	int8	UserRating() const 		{ return m_iUserRating; }
+	int8	UserRating() const		{ return m_iUserRating; }
 
 protected:
 	//! CAbstractFile is not assignable.
@@ -147,7 +145,7 @@ protected:
 
 	CMD4Hash	m_abyFileHash;
 	// comment/rating are read from the config and cached in these variables,
-	// so make the mutable to allow GetFileComment() to be a const method
+	// so make them mutable to allow GetFileComment() to be a const method
 	mutable	wxString	m_strComment;
 	mutable	int8		m_iRating;
 	bool		m_hasComment;
@@ -225,7 +223,7 @@ public:
 
 	// comment
 	const wxString&	GetFileComment()	const	{ if (!m_bCommentLoaded) LoadComment(); return m_strComment; }
-	int8	GetFileRating() 			const	{ if (!m_bCommentLoaded) LoadComment(); return m_iRating; }
+	int8	GetFileRating()			const	{ if (!m_bCommentLoaded) LoadComment(); return m_iRating; }
 
 	void	SetFileCommentRating(const wxString& strNewComment, int8 iNewRating);
 	void	SetPublishedED2K( bool val );
@@ -270,9 +268,9 @@ public:
 	ArrayOfUInts16 m_AvailPartFrequency;
 
 	/**
- 	 * Returns a base-16 encoding of the master hash, or
- 	 * an empty string if no such hash exists.
- 	 */
+	 * Returns a base-16 encoding of the master hash, or
+	 * an empty string if no such hash exists.
+	 */
 	wxString GetAICHMasterHash() const;
 	/** Returns true if the AICH-Hashset is valid, and verified or complete. */
 	bool HasProperAICHHashSet() const;
@@ -302,8 +300,11 @@ public:
 	void	SetShowPeers( bool val )	{ m_showPeers = val; }
 	bool	ShowPeers()	const			{ return m_showPeers; }
 
+	virtual	void SetHashingProgress(uint16) const {}	// does something for CPartFile only
+	uint16	GetHashingProgress() const	{ return m_hashingProgress; }
+
 #ifdef CLIENT_GUI
-	CKnownFile(CEC_SharedFile_Tag *);
+	CKnownFile(const CEC_SharedFile_Tag *);
 	friend class CKnownFilesRem;
 	RLE_Data m_partStatus;
 
@@ -342,6 +343,10 @@ protected:
 	uint8	m_iUpPriority;
 	bool	m_bAutoUpPriority;
 	bool	m_PublishedED2K;
+	// Index of part being hashed, 0: no hashing in progress.
+	// The known file is const in the hashing thread, so rather drill this little hole by making it mutable
+	// than opening it all up.
+	mutable	uint16 m_hashingProgress;
 
 	/* Kad stuff */
 	Kademlia::WordList wordlist;
diff --git a/src/KnownFileList.cpp b/src/KnownFileList.cpp
index 8804673..4b45386 100644
--- a/src/KnownFileList.cpp
+++ b/src/KnownFileList.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -73,7 +73,7 @@ CKnownFileList::~CKnownFileList()
 bool CKnownFileList::Init()
 {
 	CFile file;
-	
+
 	CPath fullpath = CPath(theApp->ConfigDir + m_filename);
 	if (!fullpath.FileExists()) {
 		// This is perfectly normal. The file was probably either
@@ -85,14 +85,14 @@ bool CKnownFileList::Init()
 		AddLogLineC(CFormat(_("WARNING: %s cannot be opened.")) % m_filename);
 		return false;
 	}
-	
+
 	try {
 		uint8 version = file.ReadUInt8();
 		if ((version != MET_HEADER) && (version != MET_HEADER_WITH_LARGEFILES)) {
 			AddLogLineC(_("WARNING: Known file list corrupted, contains invalid header."));
 			return false;
 		}
-		
+
 		wxMutexLocker sLock(list_mut);
 		uint32 RecordsNumber = file.ReadUInt32();
 		AddDebugLogLineN(logKnownFiles, CFormat(wxT("Reading %i known files from file format 0x%2.2x."))
@@ -108,14 +108,14 @@ bool CKnownFileList::Init()
 			}
 		}
 		AddDebugLogLineN(logKnownFiles, wxT("Finished reading known files"));
-	
+
 		return true;
 	} catch (const CInvalidPacket& e) {
 		AddLogLineC(_("Invalid entry in known file list, file may be corrupt: ") + e.what());
 	} catch (const CSafeIOException& e) {
 		AddLogLineC(CFormat(_("IO error while reading %s file: %s")) % m_filename % e.what());
-	}	
-	
+	}
+
 	return false;
 }
 
@@ -136,7 +136,7 @@ void CKnownFileList::Save()
 		// to be compatible with previous versions.
 		bool bContainsAnyLargeFiles = false;
 		file.WriteUInt8(0);
-		
+
 		file.WriteUInt32(m_knownFileMap.size() + m_duplicateFileList.size());
 
 		// Duplicates handling. Duplicates needs to be saved first,
@@ -148,7 +148,7 @@ void CKnownFileList::Save()
 				bContainsAnyLargeFiles = true;
 			}
 		}
-		
+
 		CKnownFileMap::iterator it = m_knownFileMap.begin();
 		for (; it != m_knownFileMap.end(); ++it) {
 			it->second->WriteToFile(&file);
@@ -156,7 +156,7 @@ void CKnownFileList::Save()
 				bContainsAnyLargeFiles = true;
 			}
 		}
-		
+
 		file.Seek(0);
 		file.WriteUInt8(bContainsAnyLargeFiles ? MET_HEADER_WITH_LARGEFILES : MET_HEADER);
 		file.Close();
@@ -168,7 +168,7 @@ void CKnownFileList::Save()
 
 
 void CKnownFileList::Clear()
-{	
+{
 	wxMutexLocker sLock(list_mut);
 
 	DeleteContents(m_knownFileMap);
@@ -183,11 +183,11 @@ CKnownFile* CKnownFileList::FindKnownFile(
 	uint64 in_size)
 {
 	wxMutexLocker sLock(list_mut);
-	
+
 	if (m_knownSizeMap) {
 		std::pair<KnownFileSizeMap::const_iterator, KnownFileSizeMap::const_iterator> p;
 		p = m_knownSizeMap->equal_range((uint32) in_size);
-		for (KnownFileSizeMap::const_iterator it = p.first; it != p.second; it++) {
+		for (KnownFileSizeMap::const_iterator it = p.first; it != p.second; ++it) {
 			CKnownFile *cur_file = it->second;
 			if (KnownFileMatches(cur_file, filename, in_date, in_size)) {
 				return cur_file;
@@ -215,7 +215,7 @@ CKnownFile *CKnownFileList::IsOnDuplicates(
 	if (m_duplicateSizeMap) {
 		std::pair<KnownFileSizeMap::const_iterator, KnownFileSizeMap::const_iterator> p;
 		p = m_duplicateSizeMap->equal_range((uint32) in_size);
-		for (KnownFileSizeMap::const_iterator it = p.first; it != p.second; it++) {
+		for (KnownFileSizeMap::const_iterator it = p.first; it != p.second; ++it) {
 			CKnownFile *cur_file = it->second;
 			if (KnownFileMatches(cur_file, filename, in_date, in_size)) {
 				return cur_file;
@@ -237,15 +237,15 @@ CKnownFile *CKnownFileList::IsOnDuplicates(
 CKnownFile* CKnownFileList::FindKnownFileByID(const CMD4Hash& hash)
 {
 	wxMutexLocker sLock(list_mut);
-	
+
 	if (!hash.IsEmpty()) {
 		if (m_knownFileMap.find(hash) != m_knownFileMap.end()) {
 			return m_knownFileMap[hash];
 		} else {
-			return NULL;	
+			return NULL;
 		}
 	}
-	return NULL;	
+	return NULL;
 
 }
 
@@ -267,10 +267,16 @@ bool CKnownFileList::SafeAddKFile(CKnownFile* toadd, bool afterHashing)
 bool CKnownFileList::Append(CKnownFile *Record, bool afterHashing)
 {
 	if (Record->GetFileSize() > 0) {
+		// sanity check if the number of part hashes is correct here
+		if (Record->GetHashCount() != Record->GetED2KPartHashCount()) {
+			AddDebugLogLineC(logKnownFiles, CFormat(wxT("%s with size %d should have %d part hashes, but only %d are available")) 
+				% Record->GetFileName().GetPrintable() % Record->GetFileSize() % Record->GetED2KPartHashCount() % Record->GetHashCount());
+			return false;
+		}
 		const CMD4Hash& tkey = Record->GetFileHash();
 		CKnownFileMap::iterator it = m_knownFileMap.find(tkey);
 		if (it == m_knownFileMap.end()) {
-			m_knownFileMap[tkey] = Record;			
+			m_knownFileMap[tkey] = Record;
 			return true;
 		} else {
 			CKnownFile *existing = it->second;
@@ -293,7 +299,13 @@ bool CKnownFileList::Append(CKnownFile *Record, bool afterHashing)
 					CMemFile f;
 					existing->WriteToFile(&f);
 					f.Reset();
-					Record->LoadFromFile(&f);
+					if (!Record->LoadFromFile(&f)) {
+						// this also shouldn't happen
+						AddDebugLogLineC(logKnownFiles, CFormat(wxT("error copying known file: existing: %s %d %d %d  Record: %s %d %d %d"))
+							% existing->GetFileName().GetPrintable() % existing->GetFileSize() % existing->GetED2KPartHashCount() % existing->GetHashCount()
+							% Record->GetFileName().GetPrintable() % Record->GetFileSize() % Record->GetED2KPartHashCount() % Record->GetHashCount());
+						return false;
+					}
 					Record->SetLastChangeDatetime(newDate);
 					Record->SetFileName(newName);
 				}
@@ -304,7 +316,7 @@ bool CKnownFileList::Append(CKnownFile *Record, bool afterHashing)
 					// Removing the old kad keywords created with the old filename
 					theApp->sharedfiles->RemoveKeywords(existing);
 				}
-				m_knownFileMap[tkey] = Record;	
+				m_knownFileMap[tkey] = Record;
 				return true;
 			}
 		}
@@ -312,7 +324,7 @@ bool CKnownFileList::Append(CKnownFile *Record, bool afterHashing)
 		AddDebugLogLineN(logGeneral,
 			CFormat(wxT("%s is 0-size, not added")) %
 			Record->GetFileName());
-		
+
 		return false;
 	}
 }
@@ -323,11 +335,11 @@ void CKnownFileList::PrepareIndex()
 {
 	ReleaseIndex();
 	m_knownSizeMap = new KnownFileSizeMap;
-	for (CKnownFileMap::const_iterator it = m_knownFileMap.begin(); it != m_knownFileMap.end(); it++) {
+	for (CKnownFileMap::const_iterator it = m_knownFileMap.begin(); it != m_knownFileMap.end(); ++it) {
 		m_knownSizeMap->insert(std::pair<uint32, CKnownFile*>((uint32) it->second->GetFileSize(), it->second));
 	}
 	m_duplicateSizeMap = new KnownFileSizeMap;
-	for (KnownFileList::const_iterator it = m_duplicateFileList.begin(); it != m_duplicateFileList.end(); it++) {
+	for (KnownFileList::const_iterator it = m_duplicateFileList.begin(); it != m_duplicateFileList.end(); ++it) {
 		m_duplicateSizeMap->insert(std::pair<uint32, CKnownFile*>((uint32) (*it)->GetFileSize(), *it));
 	}
 }
diff --git a/src/KnownFileList.h b/src/KnownFileList.h
index 8b948ec..9b203ba 100644
--- a/src/KnownFileList.h
+++ b/src/KnownFileList.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/protocol/kad2/Constants.h b/src/LibSocket.cpp
similarity index 75%
copy from src/include/protocol/kad2/Constants.h
copy to src/LibSocket.cpp
index 4cc55ee..801b5a3 100644
--- a/src/include/protocol/kad2/Constants.h
+++ b/src/LibSocket.cpp
@@ -1,8 +1,8 @@
 //
 // This file is part of the aMule Project.
 //
-// Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
-// Copyright (c) 2002-2011 Merkur ( devs at emule-project.net / http://www.emule-project.net )
+// Copyright (c) 2011 aMule Team ( admin at amule.org / http://www.amule.org )
+// Copyright (c) 2011 Dévai Tamás ( gonosztopi at amule.org )
 //
 // Any parts of this program derived from the xMule, lMule or eMule project,
 // or contributed by third-party developers are copyrighted by their
@@ -17,15 +17,18 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //
 
-#ifndef KAD2CONSTANTS_H
-#define KAD2CONSTANTS_H
-
-#define KADEMLIA_VERSION	0x08	/* 0.49b */
+#ifdef HAVE_CONFIG_H
+#	include "config.h"	// Needed for ASIO_SOCKETS
+#endif
 
-#endif // KAD2CONSTANTS_H
+#ifdef ASIO_SOCKETS
+#	include "LibSocketAsio.cpp"
+#else
+#	include "LibSocketWX.cpp"
+#endif
diff --git a/src/LibSocket.h b/src/LibSocket.h
new file mode 100644
index 0000000..753a440
--- /dev/null
+++ b/src/LibSocket.h
@@ -0,0 +1,358 @@
+//
+// This file is part of the aMule Project.
+//
+// Copyright (c) 2011-2011 aMule Team ( admin at amule.org / http://www.amule.org )
+// Copyright (c) 2011-2011 Stu Redman ( admin at amule.org / http://www.amule.org )
+//
+// Any parts of this program derived from the xMule, lMule or eMule project,
+// or contributed by third-party developers are copyrighted by their
+// respective authors.
+//
+// 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+//
+
+
+#ifndef __LIBSOCKET_H__
+#define __LIBSOCKET_H__
+
+#ifdef HAVE_CONFIG_H
+#	include "config.h"		// Needed for ASIO_SOCKETS
+#endif
+
+#ifdef ASIO_SOCKETS
+
+#include <wx/event.h>
+#include <wx/thread.h>
+#include "Types.h"
+class amuleIPV4Address;
+
+//
+// Abstraction class for library TCP socket
+// Can be a wxSocket or an ASIO socket
+//
+
+//
+// Client TCP socket
+//
+class CLibSocket
+{
+	friend class CAsioSocketImpl;
+	friend class CAsioSocketServerImpl;
+public:
+	CLibSocket(int flags = 0);
+	virtual ~CLibSocket();
+
+	// wx Stuff
+	void	Notify(bool);
+	bool	Connect(const amuleIPV4Address& adr, bool wait);
+	bool	IsConnected() const;
+	bool	IsOk() const;
+	void	SetLocal(const amuleIPV4Address& local);
+	uint32	Read(void * buffer, uint32 nbytes);
+	uint32	Write(const void * buffer, uint32 nbytes);
+	void	Close();
+	void	Destroy();
+
+	// Not needed here, we always notify the same way
+	void	SetNotify(int) {}
+	void	SetEventHandler(wxEvtHandler&, int) {}
+
+	// Get last error, 0 == no error
+	int		LastError() const;
+
+	// not supported
+	void SetFlags(int) {}
+	void Discard() {}
+	bool WaitOnConnect(long, long)	{ return true; }
+	bool WaitForWrite(long, long)	{ return true; }
+	bool WaitForRead(long, long)	{ return true; }
+
+	// new Stuff
+
+	// Check if socket is currently blocking for read or write
+	bool	BlocksRead() const;
+	bool	BlocksWrite() const;
+
+	// Show we're ready for another event
+	void	EventProcessed();
+
+	// Get IP of client
+	const wxChar * GetIP() const;
+
+	// True if Destroy() has been called for socket
+	bool	IsDestroying() const;
+
+	// Get/set proxy state
+	bool GetProxyState() const;
+	void SetProxyState(bool state, const amuleIPV4Address * adr = 0);
+
+	// Get peer address (better API than wx)
+	wxString	GetPeer();
+	uint32		GetPeerInt();
+
+	// Handlers
+	virtual void OnConnect(int) {}
+	virtual void OnSend(int) {}
+	virtual void OnReceive(int) {}
+	virtual void OnLost() {}
+	virtual void OnProxyEvent(int) {}
+
+private:
+	// Replace the internal socket
+	void	LinkSocketImpl(class CAsioSocketImpl *);
+
+	class CAsioSocketImpl * m_aSocket;
+	void LastCount();	// No. We don't have this. We return it directly with Read() and Write()
+	bool Error() const;	// Only use LastError
+};
+
+
+//
+// TCP socket server
+//
+class CLibSocketServer
+{
+public:
+	CLibSocketServer(const amuleIPV4Address& adr, int flags);
+	virtual ~CLibSocketServer();
+	// Accepts an incoming connection request, and creates a new CLibSocket object which represents the server-side of the connection.
+	CLibSocket * Accept(bool wait = true);
+	// Accept an incoming connection using the specified socket object.
+	bool	AcceptWith(CLibSocket & socket, bool wait);
+
+	virtual	void OnAccept() {}
+
+	bool	IsOk() const;
+
+	void	Close();
+
+	// Not needed here
+	void	Discard() {}
+	void	SetEventHandler(wxEvtHandler& , int ) {}
+	void	SetNotify(int) {}
+	bool	Notify(bool) { return true; }
+
+	// new Stuff
+
+	// Do we have a socket available if AcceptWith() is called ?
+	bool	SocketAvailable();
+private:
+	class CAsioSocketServerImpl * m_aServer;
+};
+
+
+//
+// UDP socket
+//
+class CLibUDPSocket
+{
+	friend class CAsioUDPSocketImpl;
+public:
+	CLibUDPSocket(amuleIPV4Address &address, int flags);
+	virtual ~CLibUDPSocket();
+
+	// wx Stuff
+	bool	IsOk() const;
+	virtual uint32 RecvFrom(amuleIPV4Address& addr, void* buf, uint32 nBytes);
+	virtual uint32 SendTo(const amuleIPV4Address& addr, const void* buf, uint32 nBytes);
+	int		LastError() const;
+	void	Close();
+	void	Destroy();
+	void	SetClientData(class CMuleUDPSocket *);
+
+	// Not needed here
+	void	SetEventHandler(wxEvtHandler&, int) {}
+	void	SetNotify(int) {}
+	bool	Notify(bool) { return true; }
+
+	// Check if socket is currently blocking for write
+	// Well - we apparently have block in wx. At least we handle it in MuleUDPSocket.
+	// But this makes no sense. We send a packet to an IP in background.
+	// Either this works after some time, or not. But there is no block.
+	bool	BlocksWrite() const { return false; }
+
+private:
+	class	CAsioUDPSocketImpl * m_aSocket;
+	void	LastCount();	// block this
+	bool	Error() const;	// Only use LastError
+};
+
+
+//
+// ASIO event loop
+//
+class CAsioService
+{
+public:
+    CAsioService();
+    ~CAsioService();
+	void Stop();
+private:
+	static const int m_numberOfThreads;
+	class CAsioServiceThread * m_threads;
+};
+
+
+#else /* ASIO_SOCKETS */
+
+// use wx sockets
+
+#include <wx/socket.h>
+#include "amuleIPV4Address.h"
+
+class CLibSocket : public wxSocketClient
+{
+public:
+	CLibSocket(wxSocketFlags flags = 0) : wxSocketClient(flags), m_isDestroying(false) {}
+
+	// not actually called
+	const wxChar * GetIP() const { return wxEmptyString; }
+	void EventProcessed() {}
+	bool GetProxyState() const { return false; }
+	// unused Handlers
+	virtual void OnConnect(int) {}
+	virtual void OnSend(int) {}
+	virtual void OnReceive(int) {}
+	virtual void OnLost() {}
+	virtual void OnProxyEvent(int) {}
+
+	// methods using amuleIPV4Address
+	bool Connect(amuleIPV4Address& adr, bool wait);		// Yes. adr is not const.
+	bool GetPeer(amuleIPV4Address& adr);
+	void SetLocal(amuleIPV4Address& local);				// Same here.
+
+	// Get last error, 0 == no error
+	// BLOCK is also not an error!
+	int	LastError() const
+	{
+		int ret = 0;
+		if (wxSocketClient::Error()) {
+			ret = wxSocketClient::LastError();
+			if (ret == wxSOCKET_WOULDBLOCK) {
+				ret = 0;
+			}
+		}
+		return ret;
+	}
+
+	// Check if socket is currently blocking for read or write
+	bool	BlocksRead() const
+	{
+		return wxSocketClient::Error() && wxSocketClient::LastError() == wxSOCKET_WOULDBLOCK;
+	}
+
+	bool	BlocksWrite() const { return BlocksRead(); }	// no difference here
+
+	uint32 Read(void *buffer, wxUint32 nbytes)
+	{
+		wxSocketClient::Read(buffer, nbytes);
+		return wxSocketClient::LastCount();
+	}
+
+	uint32 Write(const void *buffer, wxUint32 nbytes)
+	{
+		wxSocketClient::Write(buffer, nbytes);
+		return wxSocketClient::LastCount();
+	}
+
+	void	Destroy()
+	{
+		if (!m_isDestroying) {
+			m_isDestroying = true;
+			SetNotify(0);
+			Notify(false);
+			Close(); // Destroy is suposed to call Close(), but.. it doesn't hurt.
+			wxSocketClient::Destroy();
+		}
+	}
+
+	bool	IsDestroying() const { return m_isDestroying; }
+
+	// Get peer address (better API than wx)
+	wxString	GetPeer()
+	{
+		wxIPV4address adr;
+		wxSocketClient::GetPeer(adr);
+		return adr.IPAddress();
+	}
+
+	uint32		GetPeerInt() { return StringIPtoUint32(GetPeer()); }
+
+private:
+	bool	m_isDestroying;		// true if Destroy() was called
+
+	void LastCount();	// block this
+	bool Error() const;	// Only use LastError
+};
+
+
+class CLibSocketServer : public wxSocketServer
+{
+public:
+	CLibSocketServer(const amuleIPV4Address &address, wxSocketFlags flags);
+
+	CLibSocket * Accept(bool wait) { return static_cast<CLibSocket*>(wxSocketServer::Accept(wait)); }
+
+	bool SocketAvailable() { return true; }
+
+	virtual	void OnAccept() {}
+};
+
+
+class CLibUDPSocket : public wxDatagramSocket
+{
+public:
+	CLibUDPSocket(amuleIPV4Address &address, wxSocketFlags flags);
+
+	virtual uint32 RecvFrom(amuleIPV4Address& addr, void* buf, uint32 nBytes);
+
+	virtual uint32 SendTo(const amuleIPV4Address& addr, const void* buf, uint32 nBytes);
+
+	// Get last error, 0 == no error
+	int	LastError() const
+	{
+		int ret = 0;
+		if (wxDatagramSocket::Error()) {
+			ret = wxDatagramSocket::LastError();
+			if (ret == wxSOCKET_WOULDBLOCK) {
+				ret = 0;
+			}
+		}
+		return ret;
+	}
+
+	// Check if socket is currently blocking for write
+	// I wonder if this EVER returns true (see Asio)
+	bool	BlocksWrite() const
+	{
+		return wxDatagramSocket::Error() && wxDatagramSocket::LastError() == wxSOCKET_WOULDBLOCK;
+	}
+
+private:
+	void LastCount();	// block this
+	bool Error() const;	// Only use LastError
+};
+
+
+class CAsioService
+{
+public:
+	void Wait() {}
+	void Stop() {}
+};
+
+#endif /* ASIO_SOCKETS */
+
+#endif /* __LIBSOCKET_H__ */
diff --git a/src/LibSocketAsio.cpp b/src/LibSocketAsio.cpp
new file mode 100644
index 0000000..69cbfb5
--- /dev/null
+++ b/src/LibSocketAsio.cpp
@@ -0,0 +1,1502 @@
+//
+// This file is part of the aMule Project.
+//
+// Copyright (c) 2011-2011 aMule Team ( admin at amule.org / http://www.amule.org )
+// Copyright (c) 2011-2011 Stu Redman ( admin at amule.org / http://www.amule.org )
+//
+// Any parts of this program derived from the xMule, lMule or eMule project,
+// or contributed by third-party developers are copyrighted by their
+// respective authors.
+//
+// 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+//
+
+#ifdef HAVE_CONFIG_H
+#	include "config.h"		// Needed for HAVE_BOOST_SOURCES
+#endif
+
+#ifdef _MSC_VER
+#define _WIN32_WINNT 0x0501		// Boost complains otherwise
+#endif
+
+// Windows requires that Boost headers are included before wx headers.
+// This works if precompiled headers are disabled for this file.
+
+#define BOOST_ALL_NO_LIB
+
+// Suppress warning caused by faulty boost/preprocessor/config/config.hpp in Boost 1.49
+#if defined __GNUC__ && ! defined __GXX_EXPERIMENTAL_CXX0X__ && __cplusplus < 201103L
+	#define BOOST_PP_VARIADICS 0
+#endif
+
+#include <algorithm>	// Needed for std::min - Boost up to 1.54 fails to compile with MSVC 2013 otherwise
+
+#include <boost/asio.hpp>
+#include <boost/bind.hpp>
+#include <boost/version.hpp>
+
+//
+// Do away with building Boost.System, adding lib paths...
+// Just include the single file and be done.
+//
+#ifdef HAVE_BOOST_SOURCES
+#	include <boost/../libs/system/src/error_code.cpp>
+#else
+#	include <boost/system/error_code.hpp>
+#endif
+
+#include "LibSocket.h"
+#include <wx/thread.h>		// wxMutex
+#include <wx/intl.h>		// _()
+#include <common/Format.h>	// Needed for CFormat
+#include "Logger.h"
+#include "GuiEvents.h"
+#include "amuleIPV4Address.h"
+#include "MuleUDPSocket.h"
+#include "OtherFunctions.h"	// DeleteContents, MuleBoostVersion
+#include "ScopedPtr.h"
+
+using namespace boost::asio;
+using namespace boost::system;	// for error_code
+static 	io_service s_io_service;
+
+// Number of threads in the Asio thread pool
+const int CAsioService::m_numberOfThreads = 4;
+
+/**
+ * ASIO Client TCP socket implementation
+ */
+
+class CamuleIPV4Endpoint : public ip::tcp::endpoint {
+public:
+	CamuleIPV4Endpoint() {}
+
+	CamuleIPV4Endpoint(const CamuleIPV4Endpoint & impl) : ip::tcp::endpoint(impl) {}
+	CamuleIPV4Endpoint(const ip::tcp::endpoint & ep) { * this = ep; }
+	CamuleIPV4Endpoint(const ip::udp::endpoint & ep) { address(ep.address()); port(ep.port()); }
+
+	const CamuleIPV4Endpoint& operator = (const ip::tcp::endpoint & ep)
+	{
+		* (ip::tcp::endpoint *) this = ep;
+		return *this;
+	}
+};
+
+class CAsioSocketImpl
+{
+public:
+	// cppcheck-suppress uninitMemberVar m_readBufferPtr
+	CAsioSocketImpl(CLibSocket * libSocket) :
+		m_libSocket(libSocket),
+		m_strand(s_io_service),
+		m_timer(s_io_service)
+	{
+		m_OK = false;
+		m_blocksRead = false;
+		m_blocksWrite = false;
+		m_ErrorCode = 0;
+		m_readBuffer = NULL;
+		m_readBufferSize = 0;
+		m_readPending = false;
+		m_readBufferContent = 0;
+		m_eventPending = false;
+		m_port = 0;
+		m_sendBuffer = NULL;
+		m_connected = false;
+		m_closed = false;
+		m_isDestroying = false;
+		m_proxyState = false;
+		m_notify = true;
+		m_sync = false;
+		m_IP = wxT("?");
+		m_IPint = 0;
+		m_socket = new ip::tcp::socket(s_io_service);
+
+		// Set socket to non blocking
+		m_socket->non_blocking();
+	}
+
+	~CAsioSocketImpl()
+	{
+		delete[] m_readBuffer;
+		delete[] m_sendBuffer;
+	}
+
+	void Notify(bool notify)
+	{
+		m_notify = notify;
+	}
+
+	bool Connect(const amuleIPV4Address& adr, bool wait)
+	{
+		if (!m_proxyState) {
+			SetIp(adr);
+		}
+		m_port = adr.Service();
+		m_closed = false;
+		m_OK = false;
+		m_sync = !m_notify;		// set this once for the whole lifetime of the socket
+		AddDebugLogLineF(logAsio, CFormat(wxT("Connect %s %p")) % m_IP % this);
+
+		if (wait || m_sync) {
+			error_code ec;
+			m_socket->connect(adr.GetEndpoint(), ec);
+			m_OK = !ec;
+			m_connected = m_OK;
+			return m_OK;
+		} else {
+			m_socket->async_connect(adr.GetEndpoint(),
+				m_strand.wrap(boost::bind(& CAsioSocketImpl::HandleConnect, this, placeholders::error)));
+			// m_OK and return are false because we are not connected yet
+			return false;
+		}
+	}
+
+	bool IsConnected() const
+	{
+		return m_connected;
+	}
+
+	// For wxSocketClient, Ok won't return true unless the client is connected to a server.
+	bool IsOk() const
+	{
+		return m_OK;
+	}
+
+	bool IsDestroying() const
+	{
+		return m_isDestroying;
+	}
+
+	// Returns the actual error code
+	int LastError() const
+	{
+		return m_ErrorCode;
+	}
+
+	// Is reading blocked?
+	bool BlocksRead() const
+	{
+		return m_blocksRead;
+	}
+
+	// Is writing blocked?
+	bool BlocksWrite() const
+	{
+		return m_blocksWrite;
+	}
+
+	// Problem: wx sends an event when data gets available, so first there is an event, then Read() is called
+	// Asio can read async with callback, so you first read, then you get an event.
+	// Strategy:
+	// - Read some data in background into a buffer
+	// - Callback posts event when something is there
+	// - Read data from buffer
+	// - If data is exhausted, start reading more in background
+	// - If not, post another event (making sure events don't pile up though)
+	uint32 Read(char * buf, uint32 bytesToRead)
+	{
+		if (bytesToRead == 0) {			// huh?
+			return 0;
+		}
+
+		if (m_sync) {
+			return ReadSync(buf, bytesToRead);
+		}
+
+		if (m_ErrorCode) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("Read1 %s %d - Error")) % m_IP % bytesToRead);
+			return 0;
+		}
+
+		if (m_readPending					// Background read hasn't completed.
+			|| m_readBufferContent == 0) {	// shouldn't be if it's not pending
+
+			m_blocksRead = true;
+			AddDebugLogLineF(logAsio, CFormat(wxT("Read1 %s %d - Block")) % m_IP % bytesToRead);
+			return 0;
+		}
+
+		m_blocksRead = false;	// shouldn't be needed
+
+		// Read from our buffer
+		uint32 readCache = std::min(m_readBufferContent, bytesToRead);
+		memcpy(buf, m_readBufferPtr, readCache);
+		m_readBufferContent	-= readCache;
+		m_readBufferPtr		+= readCache;
+
+		AddDebugLogLineF(logAsio, CFormat(wxT("Read2 %s %d - %d")) % m_IP % bytesToRead % readCache);
+		if (m_readBufferContent) {
+			// Data left, post another event
+			PostReadEvent(1);
+		} else {
+			// Nothing left, read more
+			StartBackgroundRead();
+		}
+		return readCache;
+	}
+
+
+	// Make a copy of the data and send it in background
+	// - unless a background send is already going on
+	uint32 Write(const void * buf, uint32 nbytes)
+	{
+		if (m_sync) {
+			return WriteSync(buf, nbytes);
+		}
+
+		if (m_sendBuffer) {
+			m_blocksWrite = true;
+			AddDebugLogLineF(logAsio, CFormat(wxT("Write blocks %d %p %s")) % nbytes % m_sendBuffer % m_IP);
+			return 0;
+		}
+		AddDebugLogLineF(logAsio, CFormat(wxT("Write %d %s")) % nbytes % m_IP);
+		m_sendBuffer = new char[nbytes];
+		memcpy(m_sendBuffer, buf, nbytes);
+		m_strand.dispatch(boost::bind(& CAsioSocketImpl::DispatchWrite, this, nbytes));
+		m_ErrorCode = 0;
+		return nbytes;
+	}
+
+
+	void Close()
+	{
+		if (!m_closed) {
+			m_closed = true;
+			m_connected = false;
+			if (m_sync || s_io_service.stopped()) {
+				DispatchClose();
+			} else {
+				m_strand.dispatch(boost::bind(& CAsioSocketImpl::DispatchClose, this));
+			}
+		}
+	}
+
+
+	void Destroy()
+	{
+		if (m_isDestroying) {
+			AddDebugLogLineC(logAsio, CFormat(wxT("Destroy() already dying socket %p %p %s")) % m_libSocket % this % m_IP);
+			return;
+		}
+		m_isDestroying = true;
+		AddDebugLogLineF(logAsio, CFormat(wxT("Destroy() %p %p %s")) % m_libSocket % this % m_IP);
+		Close();
+		if (m_sync || s_io_service.stopped()) {
+			HandleDestroy();
+		} else {
+			// Close prevents creation of any more callbacks, but does not clear any callbacks already
+			// sitting in Asio's event queue (I have seen such a crash).
+			// So create a delay timer so they can be called until core is notified.
+			m_timer.expires_from_now(boost::posix_time::seconds(1));
+			m_timer.async_wait(m_strand.wrap(boost::bind(& CAsioSocketImpl::HandleDestroy, this)));
+		}
+	}
+
+
+	wxString GetPeer()
+	{
+		return m_IP;
+	}
+
+	uint32 GetPeerInt()
+	{
+		return m_IPint;
+	}
+
+	//
+	// Bind socket to local endpoint if user wants to choose the local address
+	//
+	void SetLocal(const amuleIPV4Address& local)
+	{
+		error_code ec;
+		if (!m_socket->is_open()) {
+			// Socket is usually still closed when this is called
+			m_socket->open(boost::asio::ip::tcp::v4(), ec);
+			if (ec) {
+				AddDebugLogLineC(logAsio, CFormat(wxT("Can't open socket : %s")) % ec.message());
+			}
+		}
+		//
+		// We are using random (OS-defined) local ports.
+		// To set a constant output port, first call
+		// m_socket->set_option(socket_base::reuse_address(true));
+		// and then set the endpoint's port to it.
+		//
+		CamuleIPV4Endpoint endpoint(local.GetEndpoint());
+		endpoint.port(0);
+		m_socket->bind(endpoint, ec);
+		if (ec) {
+			AddDebugLogLineC(logAsio, CFormat(wxT("Can't bind socket to local endpoint %s : %s"))
+				% local.IPAddress() % ec.message());
+		} else {
+			AddDebugLogLineF(logAsio, CFormat(wxT("Bound socket to local endpoint %s")) % local.IPAddress());
+		}
+	}
+
+
+	void EventProcessed()
+	{
+		m_eventPending = false;
+	}
+
+	void SetWrapSocket(CLibSocket * socket)
+	{
+		m_libSocket = socket;
+		// Also do some setting up
+		m_OK = true;
+		m_connected = true;
+		// Start reading
+		StartBackgroundRead();
+	}
+
+	bool UpdateIP()
+	{
+		error_code ec;
+		amuleIPV4Address addr = CamuleIPV4Endpoint(m_socket->remote_endpoint(ec));
+		if (SetError(ec)) {
+			AddDebugLogLineN(logAsio, CFormat(wxT("UpdateIP failed %p %s")) % this % ec.message());
+			return false;
+		}
+		SetIp(addr);
+		m_port = addr.Service();
+		AddDebugLogLineF(logAsio, CFormat(wxT("UpdateIP %s %d %p")) % m_IP % m_port % this);
+		return true;
+	}
+
+	const wxChar * GetIP() const { return m_IP; }
+	uint16 GetPort() const { return m_port; }
+
+	ip::tcp::socket & GetAsioSocket()
+	{
+		return * m_socket;
+	}
+
+	bool GetProxyState() const { return m_proxyState; }
+
+	void SetProxyState(bool state, const amuleIPV4Address * adr)
+	{
+		m_proxyState = state;
+		if (state) {
+			// Start. Get the true IP for logging.
+			wxASSERT(adr);
+			SetIp(*adr);
+			AddDebugLogLineF(logAsio, CFormat(wxT("SetProxyState to proxy %s")) % m_IP);
+		} else {
+			// Transition from proxy to normal mode
+			AddDebugLogLineF(logAsio, CFormat(wxT("SetProxyState to normal %s")) % m_IP);
+			m_ErrorCode = 0;
+		}
+	}
+
+private:
+	//
+	// Dispatch handlers
+	// Access to m_socket is all bundled in the thread running s_io_service to avoid
+	// concurrent access to the socket from several threads.
+	// So once things are running (after connect), all access goes through one of these handlers.
+	//
+	void DispatchClose()
+	{
+		error_code ec;
+		m_socket->close(ec);
+		if (ec) {
+			AddDebugLogLineC(logAsio, CFormat(wxT("Close error %s %s")) % m_IP % ec.message());
+		} else {
+			AddDebugLogLineF(logAsio, CFormat(wxT("Closed %s")) % m_IP);
+		}
+	}
+
+	void DispatchBackgroundRead()
+	{
+		AddDebugLogLineF(logAsio, CFormat(wxT("DispatchBackgroundRead %s")) % m_IP);
+		m_socket->async_read_some(null_buffers(),
+			m_strand.wrap(boost::bind(& CAsioSocketImpl::HandleRead, this, placeholders::error)));
+	}
+
+	void DispatchWrite(uint32 nbytes)
+	{
+		async_write(*m_socket, buffer(m_sendBuffer, nbytes),
+			m_strand.wrap(boost::bind(& CAsioSocketImpl::HandleSend, this, placeholders::error, placeholders::bytes_transferred)));
+	}
+
+	//
+	// Completion handlers for async requests
+	//
+
+	void HandleConnect(const error_code& err)
+	{
+		m_OK = !err;
+		AddDebugLogLineF(logAsio, CFormat(wxT("HandleConnect %d %s")) % m_OK % m_IP);
+		if (m_isDestroying) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("HandleConnect: socket pending for deletion %s")) % m_IP);
+		} else {
+			CoreNotify_LibSocketConnect(m_libSocket, err.value());
+			if (m_OK) {
+				// After connect also send a OUTPUT event to show data is available
+				CoreNotify_LibSocketSend(m_libSocket, 0);
+				// Start reading
+				StartBackgroundRead();
+				m_connected = true;
+			}
+		}
+	}
+
+	void HandleSend(const error_code& err, size_t bytes_transferred)
+	{
+		delete[] m_sendBuffer;
+		m_sendBuffer = NULL;
+
+		if (m_isDestroying) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("HandleSend: socket pending for deletion %s")) % m_IP);
+		} else {
+			if (SetError(err)) {
+				AddDebugLogLineN(logAsio, CFormat(wxT("HandleSend Error %d %s")) % bytes_transferred % m_IP);
+				PostLostEvent();
+			} else {
+				AddDebugLogLineF(logAsio, CFormat(wxT("HandleSend %d %s")) % bytes_transferred % m_IP);
+				m_blocksWrite = false;
+				CoreNotify_LibSocketSend(m_libSocket, m_ErrorCode);
+			}
+		}
+	}
+
+	void HandleRead(const error_code & ec)
+	{
+		if (m_isDestroying) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("HandleRead: socket pending for deletion %s")) % m_IP);
+		}
+
+		if (SetError(ec)) {
+			// This is what we get in Windows when a connection gets closed from remote.
+			AddDebugLogLineN(logAsio, CFormat(wxT("HandleReadError %s %s")) % m_IP % ec.message());
+			PostLostEvent();
+			return;
+		}
+
+		error_code ec2;
+		uint32 avail = m_socket->available(ec2);
+		if (SetError(ec2)) {
+			AddDebugLogLineN(logAsio, CFormat(wxT("HandleReadError available %d %s %s")) % avail % m_IP % ec2.message());
+			PostLostEvent();
+			return;
+		}
+		if (avail == 0) {
+			// This is what we get in Linux when a connection gets closed from remote.
+			AddDebugLogLineF(logAsio, CFormat(wxT("HandleReadError nothing available %s")) % m_IP);
+			SetError();
+			PostLostEvent();
+			return;
+		}
+		AddDebugLogLineF(logAsio, CFormat(wxT("HandleRead %d %s")) % avail % m_IP);
+
+		// adjust (or create) our read buffer
+		if (m_readBufferSize < avail) {
+			delete[] m_readBuffer;
+			m_readBuffer = new char[avail];
+			m_readBufferSize = avail;
+		}
+		m_readBufferPtr = m_readBuffer;
+
+		// read available data
+		m_readBufferContent = m_socket->read_some(buffer(m_readBuffer, avail), ec2);
+		if (SetError(ec2) || m_readBufferContent == 0) {
+			AddDebugLogLineN(logAsio, CFormat(wxT("HandleReadError read %d %s %s")) % m_readBufferContent % m_IP % ec2.message());
+			PostLostEvent();
+			return;
+		}
+
+		m_readPending = false;
+		m_blocksRead = false;
+		PostReadEvent(2);
+	}
+
+	void HandleDestroy()
+	{
+		AddDebugLogLineF(logAsio, CFormat(wxT("HandleDestroy() %p %p %s")) % m_libSocket % this % m_IP);
+		CoreNotify_LibSocketDestroy(m_libSocket);
+	}
+
+
+	//
+	// Other functions
+	//
+
+	void StartBackgroundRead()
+	{
+		m_readPending = true;
+		m_readBufferContent = 0;
+		m_strand.dispatch(boost::bind(& CAsioSocketImpl::DispatchBackgroundRead, this));
+	}
+
+	void PostReadEvent(int from)
+	{
+		if (!m_eventPending) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("Post read event %d %s")) % from % m_IP);
+			m_eventPending = true;
+			CoreNotify_LibSocketReceive(m_libSocket, m_ErrorCode);
+		}
+	}
+
+	void PostLostEvent()
+	{
+		if (!m_isDestroying && !m_closed) {
+			CoreNotify_LibSocketLost(m_libSocket);
+		}
+	}
+
+	void SetError()
+	{
+		m_ErrorCode = 2;
+	}
+
+	bool SetError(const error_code & err)
+	{
+		if (err) {
+			SetError();
+		} else {
+			m_ErrorCode = 0;
+		}
+		return m_ErrorCode != 0;
+	}
+
+	//
+	// Synchronous sockets (amulecmd)
+	//
+	uint32 ReadSync(char * buf, uint32 bytesToRead)
+	{
+		error_code ec;
+		uint32 received = read(*m_socket, buffer(buf, bytesToRead), ec);
+		SetError(ec);
+		return received;
+	}
+
+	uint32 WriteSync(const void * buf, uint32 nbytes)
+	{
+		error_code ec;
+		uint32 sent = write(*m_socket, buffer(buf, nbytes), ec);
+		SetError(ec);
+		return sent;
+	}
+
+	//
+	// Access to even const & wxString is apparently not thread-safe.
+	// Locks are set/removed in wx and reference counts can go astray.
+	// So store our IP string in a wxString which is used nowhere.
+	// Store a pointer to its string buffer as well and use THAT everywhere.
+	//
+	void SetIp(const amuleIPV4Address& adr)
+	{
+		m_IPstring = adr.IPAddress();
+		m_IP = m_IPstring.c_str();
+		m_IPint = StringIPtoUint32(m_IPstring);
+	}
+
+	CLibSocket	*	m_libSocket;
+	ip::tcp::socket	*	m_socket;
+										// remote IP
+	wxString		m_IPstring;			// as String (use nowhere because of threading!)
+	const wxChar *	m_IP;				// as char*  (use in debug logs)
+	uint32			m_IPint;			// as int
+	uint16			m_port;				// remote port
+	bool			m_OK;
+	int				m_ErrorCode;
+	bool			m_blocksRead;
+	bool			m_blocksWrite;
+	char *			m_readBuffer;
+	uint32			m_readBufferSize;
+	char *			m_readBufferPtr;
+	bool			m_readPending;
+	uint32			m_readBufferContent;
+	bool			m_eventPending;
+	char *			m_sendBuffer;
+	io_service::strand	m_strand;		// handle synchronisation in io_service thread pool
+	deadline_timer	m_timer;
+	bool			m_connected;
+	bool			m_closed;
+	bool			m_isDestroying;		// true if Destroy() was called
+	bool			m_proxyState;
+	bool			m_notify;			// set by Notify()
+	bool			m_sync;				// copied from !m_notify on Connect()
+};
+
+
+/**
+ * Library socket wrapper
+ */
+
+CLibSocket::CLibSocket(int /* flags */)
+{
+	m_aSocket = new CAsioSocketImpl(this);
+}
+
+
+CLibSocket::~CLibSocket()
+{
+	AddDebugLogLineF(logAsio, CFormat(wxT("~CLibSocket() %p %p %s")) % this % m_aSocket % m_aSocket->GetIP());
+	delete m_aSocket;
+}
+
+
+bool CLibSocket::Connect(const amuleIPV4Address& adr, bool wait)
+{
+	return m_aSocket->Connect(adr, wait);
+}
+
+
+bool CLibSocket::IsConnected() const
+{
+	return m_aSocket->IsConnected();
+}
+
+
+bool CLibSocket::IsOk() const
+{
+	return m_aSocket->IsOk();
+}
+
+
+wxString CLibSocket::GetPeer()
+{
+	return m_aSocket->GetPeer();
+}
+
+
+uint32 CLibSocket::GetPeerInt()
+{
+	return m_aSocket->GetPeerInt();
+}
+
+
+void CLibSocket::Destroy()
+{
+	m_aSocket->Destroy();
+}
+
+
+bool CLibSocket::IsDestroying() const
+{
+	return m_aSocket->IsDestroying();
+}
+
+
+void CLibSocket::Notify(bool notify)
+{
+	m_aSocket->Notify(notify);
+}
+
+
+uint32 CLibSocket::Read(void * buffer, uint32 nbytes)
+{
+	return m_aSocket->Read((char *) buffer, nbytes);
+}
+
+
+uint32 CLibSocket::Write(const void * buffer, uint32 nbytes)
+{
+	return m_aSocket->Write(buffer, nbytes);
+}
+
+
+void CLibSocket::Close()
+{
+	m_aSocket->Close();
+}
+
+
+int CLibSocket::LastError() const
+{
+	return m_aSocket->LastError();
+}
+
+
+void CLibSocket::SetLocal(const amuleIPV4Address& local)
+{
+	m_aSocket->SetLocal(local);
+}
+
+
+
+// new Stuff
+
+bool CLibSocket::BlocksRead() const
+{
+	return m_aSocket->BlocksRead();
+}
+
+
+bool CLibSocket::BlocksWrite() const
+{
+	return m_aSocket->BlocksWrite();
+}
+
+
+void CLibSocket::EventProcessed()
+{
+	m_aSocket->EventProcessed();
+}
+
+
+void CLibSocket::LinkSocketImpl(class CAsioSocketImpl * socket)
+{
+	delete m_aSocket;
+	m_aSocket = socket;
+	m_aSocket->SetWrapSocket(this);
+}
+
+
+const wxChar * CLibSocket::GetIP() const
+{
+	return m_aSocket->GetIP();
+}
+
+
+bool CLibSocket::GetProxyState() const
+{
+	return m_aSocket->GetProxyState();
+}
+
+
+void CLibSocket::SetProxyState(bool state, const amuleIPV4Address * adr)
+{
+	m_aSocket->SetProxyState(state, adr);
+}
+
+
+/**
+ * ASIO TCP socket server
+ */
+
+class CAsioSocketServerImpl : public ip::tcp::acceptor
+{
+public:
+	CAsioSocketServerImpl(const amuleIPV4Address & adr, CLibSocketServer * libSocketServer)
+		: ip::tcp::acceptor(s_io_service),
+		  m_libSocketServer(libSocketServer),
+		  m_currentSocket(NULL),
+		  m_strand(s_io_service)
+	{
+		m_ok = false;
+		m_socketAvailable = false;
+
+		try {
+			open(adr.GetEndpoint().protocol());
+			set_option(ip::tcp::acceptor::reuse_address(true));
+			bind(adr.GetEndpoint());
+			listen();
+			StartAccept();
+			m_ok = true;
+			AddDebugLogLineN(logAsio, CFormat(wxT("CAsioSocketServerImpl bind to %s %d")) % adr.IPAddress() % adr.Service());
+		} catch (const system_error& err) {
+			AddDebugLogLineC(logAsio, CFormat(wxT("CAsioSocketServerImpl bind to %s %d failed - %s")) % adr.IPAddress() % adr.Service() % err.code().message());
+		}
+	}
+
+	~CAsioSocketServerImpl()
+	{
+	}
+
+	// For wxSocketServer, Ok will return true if the server could bind to the specified address and is already listening for new connections.
+	bool IsOk() const { return m_ok; }
+
+	void Close() { close();	}
+
+	bool AcceptWith(CLibSocket & socket)
+	{
+		if (!m_socketAvailable) {
+			AddDebugLogLineF(logAsio, wxT("AcceptWith: nothing there"));
+			return false;
+		}
+
+		// return the socket we received
+		socket.LinkSocketImpl(m_currentSocket.release());
+
+		// check if we have another socket ready for reception
+		m_currentSocket.reset(new CAsioSocketImpl(NULL));
+		error_code ec;
+		// async_accept does not work if server is non-blocking
+		// temporarily switch it to non-blocking
+		non_blocking(true);
+		// we are set to non-blocking, so this returns right away
+		accept(m_currentSocket->GetAsioSocket(), ec);
+		// back to blocking
+		non_blocking(false);
+		if (ec || !m_currentSocket->UpdateIP()) {
+			// nothing there
+			m_socketAvailable = false;
+			// start getting another one
+			StartAccept();
+			AddDebugLogLineF(logAsio, wxT("AcceptWith: ok, getting another socket in background"));
+		} else {
+			// we got another socket right away
+			m_socketAvailable = true;	// it is already true, but this improves readability
+			AddDebugLogLineF(logAsio, wxT("AcceptWith: ok, another socket is available"));
+			// aMule actually doesn't need a notification as it polls the listen socket.
+			// amuleweb does need it though
+			CoreNotify_ServerTCPAccept(m_libSocketServer);
+		}
+
+		return true;
+	}
+
+	bool SocketAvailable() const { return m_socketAvailable; }
+
+private:
+
+	void StartAccept()
+	{
+		m_currentSocket.reset(new CAsioSocketImpl(NULL));
+		async_accept(m_currentSocket->GetAsioSocket(), 
+			m_strand.wrap(boost::bind(& CAsioSocketServerImpl::HandleAccept, this, placeholders::error)));
+	}
+
+	void HandleAccept(const error_code& error)
+	{
+		if (error) {
+			AddDebugLogLineC(logAsio, CFormat(wxT("Error in HandleAccept: %s")) % error.message());
+		} else {
+			if (m_currentSocket->UpdateIP()) {
+				AddDebugLogLineN(logAsio, CFormat(wxT("HandleAccept received a connection from %s:%d"))
+					% m_currentSocket->GetIP() % m_currentSocket->GetPort());
+				m_socketAvailable = true;
+				CoreNotify_ServerTCPAccept(m_libSocketServer);
+				return;
+			} else {
+				AddDebugLogLineN(logAsio, wxT("Error in HandleAccept: invalid socket"));
+			}
+		}
+		// We were not successful. Try again.
+		// Post the request to the event queue to make sure it doesn't get called immediately.
+		m_strand.post(boost::bind(& CAsioSocketServerImpl::StartAccept, this));
+	}
+
+	// The wrapper object
+	CLibSocketServer * m_libSocketServer;
+	// Startup ok
+	bool m_ok;
+	// The last socket that connected to us
+	CScopedPtr<CAsioSocketImpl> m_currentSocket;
+	// Is there a socket available?
+	bool m_socketAvailable;
+	io_service::strand	m_strand;		// handle synchronisation in io_service thread pool
+};
+
+
+CLibSocketServer::CLibSocketServer(const amuleIPV4Address& adr, int /* flags */)
+{
+	m_aServer = new CAsioSocketServerImpl(adr, this);
+}
+
+
+CLibSocketServer::~CLibSocketServer()
+{
+	delete m_aServer;
+}
+
+
+// Accepts an incoming connection request, and creates a new CLibSocket object which represents the server-side of the connection.
+// Only used in CamuleApp::ListenSocketHandler() and we don't get there.
+CLibSocket * CLibSocketServer::Accept(bool /* wait */)
+{
+	wxFAIL;
+	return NULL;
+}
+
+
+// Accept an incoming connection using the specified socket object.
+bool CLibSocketServer::AcceptWith(CLibSocket & socket, bool wait)
+{
+	wxASSERT(!wait);
+	return m_aServer->AcceptWith(socket);
+}
+
+
+bool CLibSocketServer::IsOk() const
+{
+	return m_aServer->IsOk();
+}
+
+
+void CLibSocketServer::Close()
+{
+	m_aServer->Close();
+}
+
+
+bool CLibSocketServer::SocketAvailable()
+{
+	return m_aServer->SocketAvailable();
+}
+
+
+/**
+ * ASIO UDP socket implementation
+ */
+
+class CAsioUDPSocketImpl
+{
+private:
+	// UDP data block
+	class CUDPData {
+	public:
+		char * buffer;
+		uint32 size;
+		amuleIPV4Address ipadr;
+
+		CUDPData(const void * src, uint32 _size, amuleIPV4Address adr) :
+			size(_size), ipadr(adr)
+		{
+			buffer = new char[size];
+			memcpy(buffer, src, size);
+		}
+
+		~CUDPData()
+		{
+			delete[] buffer;
+		}
+	};
+
+public:
+	CAsioUDPSocketImpl(const amuleIPV4Address &address, int /* flags */, CLibUDPSocket * libSocket) :
+		m_libSocket(libSocket),
+		m_strand(s_io_service),
+		m_timer(s_io_service),
+		m_address(address)
+	{
+		m_muleSocket = NULL;
+		m_socket = NULL;
+		m_readBuffer = new char[CMuleUDPSocket::UDP_BUFFER_SIZE];
+		m_OK = true;
+		CreateSocket();
+	}
+
+	~CAsioUDPSocketImpl()
+	{
+		AddDebugLogLineF(logAsio, wxT("UDP ~CAsioUDPSocketImpl"));
+		delete m_socket;
+		delete[] m_readBuffer;
+		DeleteContents(m_receiveBuffers);
+	}
+
+	void SetClientData(CMuleUDPSocket * muleSocket)
+	{
+		AddDebugLogLineF(logAsio, wxT("UDP SetClientData"));
+		m_muleSocket = muleSocket;
+	}
+
+	uint32 RecvFrom(amuleIPV4Address& addr, void* buf, uint32 nBytes)
+	{
+		CUDPData * recdata;
+		{
+			wxMutexLocker lock(m_receiveBuffersLock);
+			if (m_receiveBuffers.empty()) {
+				AddDebugLogLineN(logAsio, wxT("UDP RecvFromError no data"));
+				return 0;
+			}
+			recdata = * m_receiveBuffers.begin();
+			m_receiveBuffers.pop_front();
+		}
+		uint32 read = recdata->size;
+		if (read > nBytes) {
+			// should not happen
+			AddDebugLogLineN(logAsio, CFormat(wxT("UDP RecvFromError too much data %d")) % read);
+			read = nBytes;
+		}
+		memcpy(buf, recdata->buffer, read);
+		addr = recdata->ipadr;
+		delete recdata;
+		return read;
+	}
+
+	uint32 SendTo(const amuleIPV4Address& addr, const void* buf, uint32 nBytes)
+	{
+		// Collect data, make a copy of the buffer's content
+		CUDPData * recdata = new CUDPData(buf, nBytes, addr);
+		AddDebugLogLineF(logAsio, CFormat(wxT("UDP SendTo %d to %s")) % nBytes % addr.IPAddress());
+		m_strand.dispatch(boost::bind(& CAsioUDPSocketImpl::DispatchSendTo, this, recdata));
+		return nBytes;
+	}
+
+	bool IsOk() const
+	{
+		return m_OK;
+	}
+
+	void Close()
+	{
+		if (s_io_service.stopped()) {
+			DispatchClose();
+		} else {
+			m_strand.dispatch(boost::bind(& CAsioUDPSocketImpl::DispatchClose, this));
+		}
+	}
+
+	void Destroy()
+	{
+		AddDebugLogLineF(logAsio, CFormat(wxT("Destroy() %p %p")) % m_libSocket % this);
+		Close();
+		if (s_io_service.stopped()) {
+			HandleDestroy();
+		} else {
+			// Close prevents creation of any more callbacks, but does not clear any callbacks already
+			// sitting in Asio's event queue (I have seen such a crash).
+			// So create a delay timer so they can be called until core is notified.
+			m_timer.expires_from_now(boost::posix_time::seconds(1));
+			m_timer.async_wait(m_strand.wrap(boost::bind(& CAsioUDPSocketImpl::HandleDestroy, this)));
+		}
+	}
+
+
+private:
+	//
+	// Dispatch handlers
+	// Access to m_socket is all bundled in the thread running s_io_service to avoid
+	// concurrent access to the socket from several threads.
+	// So once things are running (after connect), all access goes through one of these handlers.
+	//
+	void DispatchClose()
+	{
+		error_code ec;
+		m_socket->close(ec);
+		if (ec) {
+			AddDebugLogLineC(logAsio, CFormat(wxT("UDP Close error %s")) % ec.message());
+		} else {
+			AddDebugLogLineF(logAsio, wxT("UDP Closed"));
+		}
+	}
+
+	void DispatchSendTo(CUDPData * recdata)
+	{
+		ip::udp::endpoint endpoint(recdata->ipadr.GetEndpoint().address(), recdata->ipadr.Service());
+
+		AddDebugLogLineF(logAsio, CFormat(wxT("UDP DispatchSendTo %d to %s:%d")) % recdata->size
+			% endpoint.address().to_string() % endpoint.port());
+		m_socket->async_send_to(buffer(recdata->buffer, recdata->size), endpoint,
+			m_strand.wrap(boost::bind(& CAsioUDPSocketImpl::HandleSendTo, this, placeholders::error, placeholders::bytes_transferred, recdata)));
+	}
+
+	//
+	// Completion handlers for async requests
+	//
+
+	void HandleRead(const error_code & ec, size_t received)
+	{
+		if (ec) {
+			AddDebugLogLineN(logAsio, CFormat(wxT("UDP HandleReadError %s")) % ec.message());
+		} else if (received == 0) {
+			AddDebugLogLineF(logAsio, wxT("UDP HandleReadError nothing available"));
+		} else if (m_muleSocket == NULL) {
+			AddDebugLogLineN(logAsio, wxT("UDP HandleReadError no handler"));
+		} else {
+
+			amuleIPV4Address ipadr = amuleIPV4Address(CamuleIPV4Endpoint(m_receiveEndpoint));
+			AddDebugLogLineF(logAsio, CFormat(wxT("UDP HandleRead %d %s:%d")) % received % ipadr.IPAddress() % ipadr.Service());
+
+			// create our read buffer
+			CUDPData * recdata = new CUDPData(m_readBuffer, received, ipadr);
+			{
+				wxMutexLocker lock(m_receiveBuffersLock);
+				m_receiveBuffers.push_back(recdata);
+			}
+			CoreNotify_UDPSocketReceive(m_muleSocket);
+		}
+		StartBackgroundRead();
+	}
+
+	void HandleSendTo(const error_code & ec, size_t sent, CUDPData * recdata)
+	{
+		if (ec) {
+			AddDebugLogLineN(logAsio, CFormat(wxT("UDP HandleSendToError %s")) % ec.message());
+		} else if (sent != recdata->size) {
+			AddDebugLogLineN(logAsio, CFormat(wxT("UDP HandleSendToError tosend: %d sent %d")) % recdata->size % sent);
+		}
+		if (m_muleSocket == NULL) {
+			AddDebugLogLineN(logAsio, wxT("UDP HandleSendToError no handler"));
+		} else {
+			AddDebugLogLineF(logAsio, CFormat(wxT("UDP HandleSendTo %d to %s")) % sent % recdata->ipadr.IPAddress());
+			CoreNotify_UDPSocketSend(m_muleSocket);
+		}
+		delete recdata;
+	}
+
+	void HandleDestroy()
+	{
+		AddDebugLogLineF(logAsio, CFormat(wxT("HandleDestroy() %p %p")) % m_libSocket % this);
+		delete m_libSocket;
+	}
+
+	//
+	// Other functions
+	//
+
+	void CreateSocket()
+	{
+		try {
+			delete m_socket;
+			ip::udp::endpoint endpoint(m_address.GetEndpoint().address(), m_address.Service());
+			m_socket = new ip::udp::socket(s_io_service, endpoint);
+			AddDebugLogLineN(logAsio, CFormat(wxT("Created UDP socket %s %d")) % m_address.IPAddress() % m_address.Service());
+			StartBackgroundRead();
+		} catch (const system_error& err) {
+			AddLogLineC(CFormat(wxT("Error creating UDP socket %s %d : %s")) % m_address.IPAddress() % m_address.Service() % err.code().message());
+			m_socket = NULL;
+			m_OK = false;
+		}
+	}
+
+	void StartBackgroundRead()
+	{
+		m_socket->async_receive_from(buffer(m_readBuffer, CMuleUDPSocket::UDP_BUFFER_SIZE), m_receiveEndpoint,
+			m_strand.wrap(boost::bind(& CAsioUDPSocketImpl::HandleRead, this, placeholders::error, placeholders::bytes_transferred)));
+	}
+
+	CLibUDPSocket *		m_libSocket;
+	ip::udp::socket *	m_socket;
+	CMuleUDPSocket *	m_muleSocket;
+	bool				m_OK;
+	io_service::strand	m_strand;		// handle synchronisation in io_service thread pool
+	deadline_timer		m_timer;
+	amuleIPV4Address	m_address;
+
+	// One fix receive buffer
+	char *				m_readBuffer;
+	// and a list of dynamic buffers. UDP data may be coming in faster
+	// than the main loop can handle it.
+	std::list<CUDPData *>	m_receiveBuffers;
+	wxMutex				m_receiveBuffersLock;
+
+	// Address of last reception
+	ip::udp::endpoint	m_receiveEndpoint;
+};
+
+
+/**
+ * Library UDP socket wrapper
+ */
+
+CLibUDPSocket::CLibUDPSocket(amuleIPV4Address &address, int flags)
+{
+	m_aSocket = new CAsioUDPSocketImpl(address, flags, this);
+}
+
+
+CLibUDPSocket::~CLibUDPSocket()
+{
+	AddDebugLogLineF(logAsio, CFormat(wxT("~CLibUDPSocket() %p %p")) % this % m_aSocket);
+	delete m_aSocket;
+}
+
+
+bool CLibUDPSocket::IsOk() const
+{
+	return m_aSocket->IsOk();
+}
+
+
+uint32 CLibUDPSocket::RecvFrom(amuleIPV4Address& addr, void* buf, uint32 nBytes)
+{
+	return m_aSocket->RecvFrom(addr, buf, nBytes);
+}
+
+
+uint32 CLibUDPSocket::SendTo(const amuleIPV4Address& addr, const void* buf, uint32 nBytes)
+{
+	return m_aSocket->SendTo(addr, buf, nBytes);
+}
+
+
+void CLibUDPSocket::SetClientData(CMuleUDPSocket * muleSocket)
+{
+	m_aSocket->SetClientData(muleSocket);
+}
+
+
+int CLibUDPSocket::LastError() const
+{
+	return !IsOk();
+}
+
+
+void CLibUDPSocket::Close()
+{
+	m_aSocket->Close();
+}
+
+
+void CLibUDPSocket::Destroy()
+{
+	m_aSocket->Destroy();
+}
+
+
+/**
+ * CAsioService - ASIO event loop thread
+ */
+
+class CAsioServiceThread : public wxThread {
+public:
+	CAsioServiceThread() : wxThread(wxTHREAD_JOINABLE)
+	{
+		static int count = 0;
+		m_threadNumber = ++count;
+		Create();
+		Run();
+	}
+
+	void * Entry()
+	{
+		AddLogLineNS(CFormat(_("Asio thread %d started")) % m_threadNumber);
+		io_service::work worker(s_io_service);		// keep io_service running
+		s_io_service.run();
+		AddDebugLogLineN(logAsio, CFormat(wxT("Asio thread %d stopped")) % m_threadNumber);
+
+		return NULL;
+	}
+
+private:
+	int m_threadNumber;
+};
+
+/**
+ * The constructor starts the thread.
+ */
+CAsioService::CAsioService()
+{
+	m_threads = new CAsioServiceThread[m_numberOfThreads];
+}
+
+
+CAsioService::~CAsioService()
+{
+}
+
+
+void CAsioService::Stop()
+{
+	if (!m_threads) {
+		return;
+	}
+	s_io_service.stop();
+	// Wait for threads to exit
+	for (int i = 0; i < m_numberOfThreads; i++) {
+		CAsioServiceThread * t = m_threads + i;
+		t->Wait();
+	}
+	delete[] m_threads;
+	m_threads = 0;
+}
+
+
+
+
+
+/**
+ * amuleIPV4Address
+ */
+
+amuleIPV4Address::amuleIPV4Address()
+{
+	m_endpoint = new CamuleIPV4Endpoint();
+}
+
+amuleIPV4Address::amuleIPV4Address(const amuleIPV4Address &a)
+{
+	*this = a;
+}
+
+amuleIPV4Address::amuleIPV4Address(const CamuleIPV4Endpoint &ep)
+{
+	*this = ep;
+}
+
+amuleIPV4Address::~amuleIPV4Address()
+{
+	delete m_endpoint;
+}
+
+amuleIPV4Address& amuleIPV4Address::operator=(const amuleIPV4Address &a)
+{
+	m_endpoint = new CamuleIPV4Endpoint(* a.m_endpoint);
+	return *this;
+}
+
+amuleIPV4Address& amuleIPV4Address::operator=(const CamuleIPV4Endpoint &ep)
+{
+	m_endpoint = new CamuleIPV4Endpoint(ep);
+	return *this;
+}
+
+bool amuleIPV4Address::Hostname(const wxString& name)
+{
+	if (name.IsEmpty()) {
+		return false;
+	}
+	// This is usually just an IP.
+	std::string sname(unicode2char(name));
+	error_code ec;
+	ip::address_v4 adr = ip::address_v4::from_string(sname, ec);
+	if (!ec) {
+		m_endpoint->address(adr);
+		return true;
+	}
+	AddDebugLogLineN(logAsio, CFormat(wxT("Hostname(\"%s\") failed, not an IP address %s")) % name % ec.message());
+
+	// Try to resolve (sync). Normally not required. Unless you type in your hostname as "local IP address" or something.
+	error_code ec2;
+	ip::tcp::resolver res(s_io_service);
+	// We only want to get IPV4 addresses.
+	ip::tcp::resolver::query query(ip::tcp::v4(), sname, "");
+	ip::tcp::resolver::iterator endpoint_iterator = res.resolve(query, ec2);
+	if (ec2) {
+		AddDebugLogLineN(logAsio, CFormat(wxT("Hostname(\"%s\") resolve failed: %s")) % name % ec2.message());
+		return false;
+	}
+	if (endpoint_iterator == ip::tcp::resolver::iterator()) {
+		AddDebugLogLineN(logAsio, CFormat(wxT("Hostname(\"%s\") resolve failed: no address found")) % name);
+		return false;
+	}
+	m_endpoint->address(endpoint_iterator->endpoint().address());
+	AddDebugLogLineN(logAsio, CFormat(wxT("Hostname(\"%s\") resolved to %s")) % name % IPAddress());
+	return true;
+}
+
+bool amuleIPV4Address::Service(uint16 service)
+{
+	if (service == 0) {
+		return false;
+	}
+	m_endpoint->port(service);
+	return true;
+}
+
+uint16 amuleIPV4Address::Service() const
+{
+	return m_endpoint->port();
+}
+
+bool amuleIPV4Address::IsLocalHost() const
+{
+	return m_endpoint->address().is_loopback();
+}
+
+wxString amuleIPV4Address::IPAddress() const
+{
+	return CFormat(wxT("%s")) % m_endpoint->address().to_string();
+}
+
+// "Set address to any of the addresses of the current machine."
+// This just sets the address to 0.0.0.0 .
+// wx does the same.
+bool amuleIPV4Address::AnyAddress()
+{
+	m_endpoint->address(ip::address_v4::any());
+	AddDebugLogLineN(logAsio, CFormat(wxT("AnyAddress: set to %s")) % IPAddress());
+	return true;
+}
+
+const CamuleIPV4Endpoint & amuleIPV4Address::GetEndpoint() const
+{
+	return * m_endpoint;
+}
+
+CamuleIPV4Endpoint & amuleIPV4Address::GetEndpoint()
+{
+	return * m_endpoint;
+}
+
+
+//
+// Notification stuff
+//
+namespace MuleNotify
+{
+
+	void LibSocketConnect(CLibSocket * socket, int error)
+	{
+		if (socket->IsDestroying()) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketConnect Destroying %s %d")) % socket->GetIP() % error);
+		} else if (socket->GetProxyState()) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketConnect Proxy %s %d")) % socket->GetIP() % error);
+			socket->OnProxyEvent(wxSOCKET_CONNECTION);
+		} else {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketConnect %s %d")) %socket->GetIP() % error);
+			socket->OnConnect(error);
+		}
+	}
+
+	void LibSocketSend(CLibSocket * socket, int error)
+	{
+		if (socket->IsDestroying()) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketSend Destroying %s %d")) % socket->GetIP() % error);
+		} else if (socket->GetProxyState()) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketSend Proxy %s %d")) % socket->GetIP() % error);
+			socket->OnProxyEvent(wxSOCKET_OUTPUT);
+		} else {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketSend %s %d")) % socket->GetIP() % error);
+			socket->OnSend(error);
+		}
+	}
+
+	void LibSocketReceive(CLibSocket * socket, int error)
+	{
+		socket->EventProcessed();
+		if (socket->IsDestroying()) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketReceive Destroying %s %d")) % socket->GetIP() % error);
+		} else if (socket->GetProxyState()) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketReceive Proxy %s %d")) % socket->GetIP() % error);
+			socket->OnProxyEvent(wxSOCKET_INPUT);
+		} else {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketReceive %s %d")) % socket->GetIP() % error);
+			socket->OnReceive(error);
+		}
+	}
+
+	void LibSocketLost(CLibSocket * socket)
+	{
+		if (socket->IsDestroying()) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketLost Destroying %s")) % socket->GetIP());
+		} else if (socket->GetProxyState()) {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketLost Proxy %s")) % socket->GetIP());
+			socket->OnProxyEvent(wxSOCKET_LOST);
+		} else {
+			AddDebugLogLineF(logAsio, CFormat(wxT("LibSocketLost %s")) % socket->GetIP());
+			socket->OnLost();
+		}
+	}
+
+	void LibSocketDestroy(CLibSocket * socket)
+	{
+		AddDebugLogLineF(logAsio, CFormat(wxT("LibSocket_Destroy %s")) % socket->GetIP());
+		delete socket;
+	}
+
+	void ProxySocketEvent(CLibSocket * socket, int evt)
+	{
+		AddDebugLogLineF(logAsio, CFormat(wxT("ProxySocketEvent %s %d")) % socket->GetIP() % evt);
+		socket->OnProxyEvent(evt);
+	}
+
+	void ServerTCPAccept(CLibSocketServer * socketServer)
+	{
+		AddDebugLogLineF(logAsio, wxT("ServerTCP_Accept"));
+		socketServer->OnAccept();
+	}
+
+} // namespace MuleNotify
+
+//
+// Initialize MuleBoostVersion
+//
+wxString MuleBoostVersion = CFormat(wxT("%d.%d")) % (BOOST_VERSION / 100000) % (BOOST_VERSION / 100 % 1000);
diff --git a/src/LibSocketWX.cpp b/src/LibSocketWX.cpp
new file mode 100644
index 0000000..1d37d31
--- /dev/null
+++ b/src/LibSocketWX.cpp
@@ -0,0 +1,153 @@
+//
+// This file is part of the aMule Project.
+//
+// Copyright (c) 2004-2011 Stu Redman ( sturedman at amule.org )
+// Copyright (c) 2004-2011 aMule Team ( admin at amule.org / http://www.amule.org )
+//
+// Any parts of this program derived from the xMule, lMule or eMule project,
+// or contributed by third-party developers are copyrighted by their
+// respective authors.
+//
+// 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+//
+
+//
+// Implementation of amuleIPV4Address for wxWidgets sockets
+// (Implementation for Asio is in LibSocketAsio.cpp
+//
+
+#include "LibSocket.h"
+#include "Logger.h"
+
+
+class CamuleIPV4Endpoint : public wxIPV4address {
+public:
+	CamuleIPV4Endpoint() {}
+
+	CamuleIPV4Endpoint(const CamuleIPV4Endpoint & impl) : wxIPV4address(impl) {}
+
+///	operator wxSockAddress& () { return * this; }
+};
+
+
+
+bool CLibSocket::Connect(amuleIPV4Address& adr, bool wait)
+{
+	return wxSocketClient::Connect(adr.GetEndpoint(), wait);
+}
+
+bool CLibSocket::GetPeer(amuleIPV4Address& adr)
+{
+	return wxSocketClient::GetPeer(adr.GetEndpoint());
+}
+
+void CLibSocket::SetLocal(amuleIPV4Address& local)
+{
+	wxSocketClient::SetLocal(local.GetEndpoint());
+}
+
+
+CLibSocketServer::CLibSocketServer(const amuleIPV4Address &address,	wxSocketFlags flags) : wxSocketServer(address.GetEndpoint(), flags)
+{
+}
+
+CLibUDPSocket::CLibUDPSocket(amuleIPV4Address &address, wxSocketFlags flags) : wxDatagramSocket(address.GetEndpoint(), flags)
+{
+}
+
+uint32 CLibUDPSocket::RecvFrom(amuleIPV4Address& addr, void* buf, uint32 nBytes)
+{
+	wxDatagramSocket::RecvFrom(addr.GetEndpoint(), buf, nBytes);
+	return wxDatagramSocket::LastCount();
+}
+
+uint32 CLibUDPSocket::SendTo(const amuleIPV4Address& addr, const void* buf, uint32 nBytes)
+{
+	wxDatagramSocket::SendTo(addr.GetEndpoint(), buf, nBytes);
+	return wxDatagramSocket::LastCount();
+}
+
+
+amuleIPV4Address::amuleIPV4Address()
+{
+	m_endpoint = new CamuleIPV4Endpoint();
+}
+
+amuleIPV4Address::amuleIPV4Address(const amuleIPV4Address &a)
+{
+	*this = a;
+}
+
+amuleIPV4Address::~amuleIPV4Address()
+{
+	delete m_endpoint;
+}
+
+amuleIPV4Address& amuleIPV4Address::operator=(const amuleIPV4Address &a)
+{
+	m_endpoint = new CamuleIPV4Endpoint(* a.m_endpoint);
+	return *this;
+}
+
+bool amuleIPV4Address::Hostname(const wxString& name)
+{
+	if (name.IsEmpty()) {
+		return false;
+	}
+	return m_endpoint->Hostname(name);
+}
+
+bool amuleIPV4Address::Service(uint16 service)
+{
+	if (service == 0) {
+		return false;
+	}
+	return m_endpoint->Service(service);
+}
+
+uint16 amuleIPV4Address::Service() const
+{
+	return m_endpoint->Service();
+}
+
+bool amuleIPV4Address::IsLocalHost() const
+{
+	return m_endpoint->IsLocalHost();
+}
+
+wxString amuleIPV4Address::IPAddress() const
+{
+	return m_endpoint->IPAddress();
+}
+
+// Set address to any of the addresses of the current machine.
+bool amuleIPV4Address::AnyAddress()
+{
+	bool ret = m_endpoint->AnyAddress();
+	AddDebugLogLineN(logGeneral, CFormat(wxT("AnyAddress() returned %s")) % IPAddress());
+	return ret;
+}
+
+const CamuleIPV4Endpoint & amuleIPV4Address::GetEndpoint() const
+{
+	return * m_endpoint;
+}
+
+CamuleIPV4Endpoint & amuleIPV4Address::GetEndpoint()
+{
+	return * m_endpoint;
+}
+
+wxString MuleBoostVersion;
diff --git a/src/ListenSocket.cpp b/src/ListenSocket.cpp
index c66ce77..83429f4 100644
--- a/src/ListenSocket.cpp
+++ b/src/ListenSocket.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,29 +38,29 @@
 // CListenSocket
 //-----------------------------------------------------------------------------
 //
-// This is the socket that listens to incomming connections in aMule's TCP port
-// As soon as a connection is detected, it creates a new socket of type 
+// This is the socket that listens to incoming connections in aMule's TCP port
+// As soon as a connection is detected, it creates a new socket of type
 // CClientTCPSocket to handle (accept) the connection.
-// 
+//
 
-CListenSocket::CListenSocket(wxIPaddress &addr, const CProxyData *ProxyData)
+CListenSocket::CListenSocket(amuleIPV4Address &addr, const CProxyData *ProxyData)
 :
 // wxSOCKET_NOWAIT    - means non-blocking i/o
-// wxSOCKET_REUSEADDR - means we can reuse the socket imediately (wx-2.5.3)
+// wxSOCKET_REUSEADDR - means we can reuse the socket immediately (wx-2.5.3)
 CSocketServerProxy(addr, wxSOCKET_NOWAIT|wxSOCKET_REUSEADDR, ProxyData)
 {
 	// 0.42e - vars not used by us
-	bListening = false;
+	m_pending = false;
 	shutdown = false;
 	m_OpenSocketsInterval = 0;
-	m_nPeningConnections = 0;
 	totalconnectionchecks = 0;
 	averageconnections = 0.0;
+	memset(m_ConnectionStates, 0, 3 * sizeof(m_ConnectionStates[0]));
 	// Set the listen socket event handler -- The handler is written in amule.cpp
-	if (Ok()) {
- 		SetEventHandler(*theApp, ID_LISTENSOCKET_EVENT);
- 		SetNotify(wxSOCKET_CONNECTION_FLAG);
- 		Notify(true);
+	if (IsOk()) {
+		SetEventHandler(*theApp, ID_LISTENSOCKET_EVENT);
+		SetNotify(wxSOCKET_CONNECTION_FLAG);
+		Notify(true);
 
 		AddLogLineNS(_("ListenSocket: Ok."));
 	} else {
@@ -77,8 +77,8 @@ CListenSocket::~CListenSocket()
 
 #ifdef __DEBUG__
 	// No new sockets should have been opened by now
-	for (SocketSet::iterator it = socket_list.begin(); it != socket_list.end(); it++) {
-		wxASSERT((*it)->OnDestroy());
+	for (SocketSet::iterator it = socket_list.begin(); it != socket_list.end(); ++it) {
+		wxASSERT((*it)->IsDestroying());
 	}
 #endif
 
@@ -86,60 +86,23 @@ CListenSocket::~CListenSocket()
 }
 
 
-bool CListenSocket::StartListening()
-{
-	// 0.42e
-	bListening = true;
-
-	return true;
-}
-
-void CListenSocket::ReStartListening()
+void CListenSocket::OnAccept()
 {
-	// 0.42e
-	bListening = true;
-	if (m_nPeningConnections) {
-		m_nPeningConnections--;
-		OnAccept(0);
-	}
-}
-
-void CListenSocket::StopListening()
-{
-	// 0.42e
-	bListening = false;
-	theStats::AddMaxConnectionLimitReached();
-}
-
-void CListenSocket::OnAccept(int nErrorCode)
-{
-	// 0.42e
-	if (!nErrorCode) {
-		m_nPeningConnections++;
-		if (m_nPeningConnections < 1) {
-			wxFAIL;
-			m_nPeningConnections = 1;
-		}
-		if (TooManySockets(true) && !theApp->serverconnect->IsConnecting()) {
-			StopListening();
-			return;
-		} else if (bListening == false) {
-			// If the client is still at maxconnections,
-			// this will allow it to go above it ...
-			// But if you don't, you will get a lowID on all servers.
-			ReStartListening();
-		}
-		// Deal with the pending connections, there might be more than one, due to
-		// the StopListening() call above.
-		while (m_nPeningConnections) {
-			m_nPeningConnections--;
+	m_pending = theApp->IsRunning();	// just do nothing if we are shutting down
+	// If the client is still at maxconnections,
+	// this will allow it to go above it ...
+	// But if you don't, you will get a lowID on all servers.
+	while (m_pending && (theApp->serverconnect->IsConnecting() || !TooManySockets())) {
+		if (!SocketAvailable()) {
+			m_pending = false;
+		} else {
 			// Create a new socket to deal with the connection
 			CClientTCPSocket* newclient = new CClientTCPSocket();
 			// Accept the connection and give it to the newly created socket
 			if (!AcceptWith(*newclient, false)) {
 				newclient->Safe_Delete();
+				m_pending = false;
 			} else {
-				wxASSERT(theApp->IsRunning());
 				if (!newclient->InitNetworkData()) {
 					// IP or port were not returned correctly
 					// from the accepted address, or filtered.
@@ -148,6 +111,9 @@ void CListenSocket::OnAccept(int nErrorCode)
 			}
 		}
 	}
+	if (m_pending) {
+		theStats::AddMaxConnectionLimitReached();
+	}
 }
 
 void CListenSocket::AddConnection()
@@ -162,24 +128,20 @@ void CListenSocket::Process()
 	SocketSet::iterator it = socket_list.begin();
 	while ( it != socket_list.end() ) {
 		CClientTCPSocket* cur_socket = *it++;
-		if (!cur_socket->OnDestroy()) {
-			if (cur_socket->ForDeletion()) {
-				cur_socket->Destroy();
-			} else {
-				cur_socket->CheckTimeOut();
-			}
+		if (!cur_socket->IsDestroying()) {
+			cur_socket->CheckTimeOut();
 		}
 	}
-	
-	if ((GetOpenSockets()+5 < thePrefs::GetMaxConnections() || theApp->serverconnect->IsConnecting()) && !bListening) {
-		ReStartListening();
+
+	if (m_pending) {
+		OnAccept();
 	}
 }
 
 void CListenSocket::RecalculateStats()
 {
 	// 0.42e
-	memset(m_ConnectionStates,0,6);
+	memset(m_ConnectionStates, 0, 3 * sizeof(m_ConnectionStates[0]));
 	for (SocketSet::iterator it = socket_list.begin(); it != socket_list.end(); ) {
 		CClientTCPSocket* cur_socket = *it++;
 		switch (cur_socket->GetConState()) {
@@ -221,14 +183,15 @@ void CListenSocket::KillAllSockets()
 			cur_socket->Safe_Delete_Client();
 		} else {
 			cur_socket->Safe_Delete();
-			cur_socket->Destroy(); 
+			cur_socket->Destroy();
 		}
 	}
 }
 
 bool CListenSocket::TooManySockets(bool bIgnoreInterval)
 {
-	if (GetOpenSockets() > thePrefs::GetMaxConnections() || (m_OpenSocketsInterval > (thePrefs::GetMaxConperFive()*GetMaxConperFiveModifier()) && !bIgnoreInterval)) {
+	if (GetOpenSockets() > thePrefs::GetMaxConnections()
+		|| (!bIgnoreInterval && m_OpenSocketsInterval > (thePrefs::GetMaxConperFive() * GetMaxConperFiveModifier()))) {
 		return true;
 	} else {
 		return false;
@@ -264,11 +227,11 @@ float CListenSocket::GetMaxConperFiveModifier()
 		return 1;
 	}
 
-	float SpikeTolerance = 2.5f*thePrefs::GetMaxConperFive();
+	float SpikeTolerance = 2.5f * thePrefs::GetMaxConperFive();
 	if ( SpikeSize > SpikeTolerance ) {
 		return 0;
 	}
-	
+
 	return 1.0f - (SpikeSize/SpikeTolerance);
 }
 // File_checked_for_headers
diff --git a/src/ListenSocket.h b/src/ListenSocket.h
index cc4895d..215bbe3 100644
--- a/src/ListenSocket.h
+++ b/src/ListenSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -32,7 +32,7 @@
 
 #include "Proxy.h"		// Needed fot CProxyData, CSocketServerProxy
 
-#include <set> 
+#include <set>
 
 class CClientTCPSocket;
 
@@ -40,11 +40,9 @@ class CClientTCPSocket;
 class CListenSocket : public CSocketServerProxy
 {
 public:
-	CListenSocket(wxIPaddress &addr, const CProxyData *ProxyData = NULL);
+	CListenSocket(amuleIPV4Address &addr, const CProxyData *ProxyData = NULL);
 	~CListenSocket();
-	bool	StartListening();
-	void	StopListening();
-	void	OnAccept(int nErrorCode);
+	void	OnAccept();
 	void	Process();
 	void	RemoveSocket(CClientTCPSocket* todel);
 	void	AddSocket(CClientTCPSocket* toadd);
@@ -54,26 +52,24 @@ public:
 	bool    IsValidSocket(CClientTCPSocket* totest);
 	void	AddConnection();
 	void	RecalculateStats();
-	void	ReStartListening();
 	void	UpdateConnectionsStatus();
-	
+
 	float	GetMaxConperFiveModifier();
 	uint32	GetTotalConnectionChecks()	{ return totalconnectionchecks; }
 	float	GetAverageConnections()		{ return averageconnections; }
-	
+
 	bool	OnShutdown() { return shutdown;}
-	
+
 private:
-	
+
 	typedef std::set<CClientTCPSocket *> SocketSet;
 	SocketSet socket_list;
-	
-	bool bListening;
+
 	bool shutdown;
-	
+	bool m_pending;
+
 	uint16	m_OpenSocketsInterval;
 	uint16	m_ConnectionStates[3];
-	uint16	m_nPeningConnections;
 	uint32	totalconnectionchecks;
 	float	averageconnections;
 };
diff --git a/src/Logger.cpp b/src/Logger.cpp
index cf99e66..81c49c7 100644
--- a/src/Logger.cpp
+++ b/src/Logger.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -76,11 +76,12 @@ CDebugCategory g_debugcats[] = {
 	CDebugCategory( logKadPacketTracking,	wxT("Kademlia Packet Tracking") ),
 	CDebugCategory( logKadEntryTracking,	wxT("Kademlia Entry Tracking") ),
 	CDebugCategory( logEC,			wxT("External Connect") ),
-	CDebugCategory( logHTTP,		wxT("HTTP") )
+	CDebugCategory( logHTTP,		wxT("HTTP") ),
+	CDebugCategory( logAsio,		wxT("Asio Sockets") )
 };
 
 
-const int categoryCount = sizeof( g_debugcats ) / sizeof( g_debugcats[0] );
+const int categoryCount = itemsof(g_debugcats);
 
 
 
@@ -88,13 +89,13 @@ const int categoryCount = sizeof( g_debugcats ) / sizeof( g_debugcats[0] );
 bool CLogger::IsEnabled( DebugType type ) const
 {
 	int index = (int)type;
-	
+
 	if ( index >= 0 && index < categoryCount ) {
 		const CDebugCategory& cat = g_debugcats[ index ];
 		wxASSERT( type == cat.GetType() );
 
 		return ( cat.IsEnabled() && thePrefs::GetVerbose() );
-	} 
+	}
 
 	wxFAIL;
 	return false;
@@ -102,10 +103,10 @@ bool CLogger::IsEnabled( DebugType type ) const
 #endif
 
 
-void CLogger::SetEnabled( DebugType type, bool enabled ) 
+void CLogger::SetEnabled( DebugType type, bool enabled )
 {
 	int index = (int)type;
-	
+
 	if ( index >= 0 && index < categoryCount ) {
 		CDebugCategory& cat = g_debugcats[ index ];
 		wxASSERT( type == cat.GetType() );
@@ -132,8 +133,12 @@ void CLogger::AddLogLine(
 		if (!critical && !IsEnabled(type)) {
 			return;
 		}
+		if (!critical && thePrefs::GetVerboseLogfile()) {
+			// print non critical debug messages only to the logfile
+			toGUI = false;
+		}
 		int index = (int)type;
-		
+
 		if ( index >= 0 && index < categoryCount ) {
 			const CDebugCategory& cat = g_debugcats[ index ];
 			wxASSERT(type == cat.GetType());
@@ -150,15 +155,13 @@ void CLogger::AddLogLine(
 	}
 #endif
 
-	CLoggingEvent Event(critical, toStdout, toGUI, msg);
-
-	// Try to handle events immediatly when possible (to save to file).
-	if (wxThread::IsMain()) {
-		// main thread and log file available: process directly
-		ProcessEvent(Event);			
-	} else {
-		// otherwise put to background
+	if (toGUI && !wxThread::IsMain()) {
+		// put to background
+		CLoggingEvent Event(critical, toStdout, toGUI, msg);
 		AddPendingEvent(Event);
+	} else {
+		// Try to handle events immediatly when possible (to save to file).
+		DoLines(msg, critical, toStdout, toGUI);
 	}
 }
 
@@ -171,12 +174,12 @@ void CLogger::AddLogLine(
 	const std::ostringstream &msg)
 {
 	int index = (int)type;
-	
+
 	if ( index >= 0 && index < categoryCount ) {
 		const CDebugCategory& cat = g_debugcats[ index ];
 		wxASSERT(type == cat.GetType());
 
-		AddLogLine(file, line, critical, logStandard, 
+		AddLogLine(file, line, critical, logStandard,
 			cat.GetName() + wxT(": ") + wxString(char2unicode(msg.str().c_str())));
 	}
 }
@@ -206,7 +209,7 @@ bool CLogger::OpenLogfile(const wxString & name)
 	} else {
 		CloseLogfile();
 	}
-	return ret; 
+	return ret;
 }
 
 
@@ -220,30 +223,36 @@ void CLogger::CloseLogfile()
 
 void CLogger::OnLoggingEvent(class CLoggingEvent& evt)
 {
+	DoLines(evt.Message(), evt.IsCritical(), evt.ToStdout(), evt.ToGUI());
+}
+
+
+void CLogger::DoLines(const wxString & lines, bool critical, bool toStdout, bool toGUI)
+{
 	// Remove newspace at end
-	wxString bufferline = evt.Message().Strip(wxString::trailing);
+	wxString bufferline = lines.Strip(wxString::trailing);
 
 	// Create the timestamp
 	wxString stamp = wxDateTime::Now().FormatISODate() + wxT(" ") + wxDateTime::Now().FormatISOTime()
 #ifdef CLIENT_GUI
- 					+ wxT(" (remote-GUI): ");
+					+ wxT(" (remote-GUI): ");
 #else
- 					+ wxT(": ");
+					+ wxT(": ");
 #endif
 
 	// critical lines get a ! prepended, ordinary lines a blank
 	// logfile-only lines get a . to prevent transmission on EC
-	wxString prefix = !evt.ToGUI() ? wxT(".") : (evt.IsCritical() ? wxT("!") : wxT(" "));
+	wxString prefix = !toGUI ? wxT(".") : (critical ? wxT("!") : wxT(" "));
 
 	if ( bufferline.IsEmpty() ) {
 		// If it's empty we just write a blank line with no timestamp.
-		DoLine(wxT(" \n"), evt.ToStdout(), evt.ToGUI());
+		DoLine(wxT(" \n"), toStdout, toGUI);
 	} else {
 		// Split multi-line messages into individual lines
-		wxStringTokenizer tokens( bufferline, wxT("\n") );		
+		wxStringTokenizer tokens( bufferline, wxT("\n") );
 		while ( tokens.HasMoreTokens() ) {
 			wxString fullline = prefix + stamp + tokens.GetNextToken() + wxT("\n");
-			DoLine(fullline, evt.ToStdout(), evt.ToGUI());
+			DoLine(fullline, toStdout, toGUI);
 		}
 	}
 }
@@ -251,15 +260,18 @@ void CLogger::OnLoggingEvent(class CLoggingEvent& evt)
 
 void CLogger::DoLine(const wxString & line, bool toStdout, bool GUI_ONLY(toGUI))
 {
-	++m_count;
+	{
+		wxMutexLocker lock(m_lineLock);
+		++m_count;
 
-	// write to logfile
-	m_ApplogBuf += line;
-	FlushApplog();
+		// write to logfile
+		m_ApplogBuf += line;
+		FlushApplog();
 
-	// write to Stdout
-	if (m_StdoutLog || toStdout) {
-		printf("%s", (const char*)unicode2char(line));
+		// write to Stdout
+		if (m_StdoutLog || toStdout) {
+			printf("%s", (const char*)unicode2char(line));
+		}
 	}
 #ifndef AMULE_DAEMON
 	// write to Listcontrol
@@ -270,6 +282,18 @@ void CLogger::DoLine(const wxString & line, bool toStdout, bool GUI_ONLY(toGUI))
 }
 
 
+void CLogger::EmergencyLog(const wxString &message, bool closeLog)
+{
+	fprintf(stderr, "%s", (const char*)unicode2char(message));
+	m_ApplogBuf += message;
+	FlushApplog();
+	if (closeLog && applog) {
+		applog->Close();
+		applog = NULL;
+	}
+}
+
+
 void CLogger::FlushApplog()
 {
 	if (applog) { // Wait with output until logfile is actually opened
@@ -321,10 +345,11 @@ void CLoggerTarget::DoLogString(const wxChar* msg, time_t)
 	recursion = true;
 
 	wxCHECK_RET(msg, wxT("Log message is NULL in DoLogString!"));
-	
+
 	wxString str(msg);
-	
+
 	// This is much simpler than manually handling all wx log-types.
+	// cppcheck-suppress duplicateBranch
 	if (str.StartsWith(_("ERROR: ")) || str.StartsWith(_("WARNING: "))) {
 		AddLogLineC(str);
 	} else {
diff --git a/src/Logger.h b/src/Logger.h
index f8eb165..9f9b039 100644
--- a/src/Logger.h
+++ b/src/Logger.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,7 +30,7 @@
 #include <iosfwd>
 
 
-enum DebugType 
+enum DebugType
 {
 	//! Standard warning, not debug
 	logStandard = -1,
@@ -111,7 +111,9 @@ enum DebugType
 	//! Full log of external connection packets
 	logEC,
 	//! Warnings/Errors related to HTTP traffic
-	logHTTP
+	logHTTP,
+	//! Warnings/Errors related to Boost Asio networking 
+	logAsio
 	// IMPORTANT NOTE: when you add values to this enum, update the g_debugcats
 	// array in Logger.cpp!
 };
@@ -126,7 +128,7 @@ class CDebugCategory
 public:
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @param type The actual debug-category type.
 	 * @param name The user-readable name.
 	 */
@@ -178,9 +180,9 @@ public:
 #ifdef __DEBUG__
 	bool IsEnabled( DebugType ) const;
 #else
-	bool IsEnabled( DebugType ) const 	{ return false; }
+	bool IsEnabled( DebugType ) const	{ return false; }
 #endif
-	
+
 	/**
 	 * Enables or disables debug-messages for a specific category.
 	 */
@@ -190,13 +192,13 @@ public:
 	 * Returns true if logging to stdout is enabled
 	 */
 	bool IsEnabledStdoutLog() const		{ return m_StdoutLog; }
-	
+
 	/**
 	 * Enables or disables logging to stdout.
 	 */
 	void SetEnabledStdoutLog(bool enabled)	{ m_StdoutLog = enabled; }
 
-	
+
 	/**
 	 * Logs the specified line of text, prefixed with the name of the DebugType.
 	 * (except for logStandard)
@@ -207,7 +209,7 @@ public:
 	 * @param type The debug-category, the name of which will be prepended to the line.
 	 * @param str The actual line of text.
 	 *
-	 * This function is thread-safe. If it is called by the main thread, the 
+	 * This function is thread-safe. If it is called by the main thread, the
 	 * event will be sent directly to the application, otherwise it will be
 	 * queued in the event-loop.
 	 */
@@ -236,6 +238,11 @@ public:
 
 
 	/**
+	 * Emergency log for crashes.
+	 */
+	void EmergencyLog(const wxString &message, bool closeLog = true);
+
+	/**
 	 * Returns a category specified by index.
 	 */
 	const CDebugCategory&	GetDebugCategory( int index );
@@ -258,8 +265,8 @@ public:
 	/**
 	 * Get name of Logfile
 	 */
-	const wxString & GetLogfileName() const { 
-		return m_LogfileName; 
+	const wxString & GetLogfileName() const {
+		return m_LogfileName;
 	}
 
 	/**
@@ -277,11 +284,12 @@ public:
 	}
 
 private:
-	class wxFFileOutputStream* applog; 	// the logfile
+	class wxFFileOutputStream* applog;	// the logfile
 	wxString m_LogfileName;
 	wxString m_ApplogBuf;
 	bool m_StdoutLog;
 	int  m_count;			// output line counter
+	wxMutex m_lineLock;
 
 	/**
 	 * Write all waiting log info to the logfile
@@ -293,6 +301,11 @@ private:
 	 */
 	void DoLine(const wxString & line, bool toStdout, bool toGUI);
 
+	/**
+	 * Really output several lines
+	 */
+	void DoLines(const wxString & lines, bool critical, bool toStdout, bool toGUI);
+
 	DECLARE_EVENT_TABLE()
 };
 
@@ -305,7 +318,7 @@ class CLoggerTarget : public wxLog
 {
 public:
 	CLoggerTarget();
-	
+
 	/**
 	 * @see wxLog::DoLogString
 	 */
@@ -333,7 +346,7 @@ public:
 		, m_msg(msg.c_str(), msg.Length())
 	{
 	}
-	
+
 	const wxString& Message() const {
 		return m_msg;
 	}
@@ -353,7 +366,7 @@ public:
 	wxEvent* Clone() const {
 		return new CLoggingEvent(m_critical, m_stdout, m_GUI, m_msg);
 	}
-	
+
 private:
 	bool		m_critical;
 	bool		m_stdout;
@@ -403,12 +416,12 @@ public:
 
 
 /**
- * These macros should be used when logging. The 
+ * These macros should be used when logging. The
  * AddLogLineM macro will simply call one of the
  * two CLogger::AddLogLine functions depending on
  * parameters, but AddDebugLogLine* will only log
  * a message if the message is either critical or
- * the specified debug-type is enabled in the 
+ * the specified debug-type is enabled in the
  * preferences.
  * AddLogLineMS will also always print to stdout.
  */
@@ -424,7 +437,7 @@ public:
 	#define AddLogLineU(critical, type, string) theLogger.AddLogLine(__TFILE__, __LINE__, critical, type, string)
 // Macros for 'N'on critical logging
 	#ifdef __DEBUG__
-		#define AddDebugLogLineN(type, string) theLogger.AddLogLine(__TFILE__, __LINE__, false, type, string)
+		#define AddDebugLogLineN(type, string) if (theLogger.IsEnabled(type)) theLogger.AddLogLine(__TFILE__, __LINE__, false, type, string)
 	#else
 		#define AddDebugLogLineN(type, string)	do {} while (false)
 	#endif
@@ -435,7 +448,11 @@ public:
 	#define AddLogLineC(string) theLogger.AddLogLine(__TFILE__, __LINE__, true, logStandard, string)
 	#define AddLogLineCS(string) theLogger.AddLogLine(__TFILE__, __LINE__, true, logStandard, string, true)
 // Macros for logging to logfile only
-	#define AddDebugLogLineF(type, string) theLogger.AddLogLine(__TFILE__, __LINE__, false, type, string, false, false)
+	#ifdef __DEBUG__
+		#define AddDebugLogLineF(type, string) if (theLogger.IsEnabled(type)) theLogger.AddLogLine(__TFILE__, __LINE__, false, type, string, false, false)
+	#else
+		#define AddDebugLogLineF(type, string)	do {} while (false)
+	#endif
 	#define AddLogLineF(string) theLogger.AddLogLine(__TFILE__, __LINE__, false, logStandard, string, false, false)
 #endif
 
diff --git a/src/LoggerConsole.cpp b/src/LoggerConsole.cpp
index 6367d53..637169c 100644
--- a/src/LoggerConsole.cpp
+++ b/src/LoggerConsole.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/MD4Hash.h b/src/MD4Hash.h
index ed60e5f..068f1e1 100644
--- a/src/MD4Hash.h
+++ b/src/MD4Hash.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,14 +42,14 @@
 const size_t MD4HASH_LENGTH = 16;
 
 
-/** 
+/**
  * Container-class for the MD4 hashes used in aMule.
  *
  * This is a safe representation of the MD4 hashes used in aMule. By transparently
- * wrapping the char array used to store the hash, we get the advantages of 
+ * wrapping the char array used to store the hash, we get the advantages of
  * assigment, equality and non-equality operators, plus other nifty features.
  *
- * Please remember that the hashes are arrays with length 16 WITHOUT a zero-terminator! 
+ * Please remember that the hashes are arrays with length 16 WITHOUT a zero-terminator!
  */
 class CMD4Hash
 {
@@ -66,7 +66,7 @@ public:
 
 	/**
 	 * Create a CMD4Hash from a CUInt128
-	 * 
+	 *
 	 * @param hash The 128 bits integer to be used.
 	 *
 	 */
@@ -75,14 +75,14 @@ public:
 		hash.ToByteArray(transitional_array);
 		SetHash(transitional_array);
 	}
-	
+
 	~CMD4Hash() {
-	}	
-	
+	}
+
 	/**
 	 * Cast a unsigned char array to a CMD4Hash.
-	 * 
-	 * @param hash The array to be cast. 
+	 *
+	 * @param hash The array to be cast.
 	 *
 	 * Please note that the array must either be a NULL pointer or be at least
 	 * 16 chars long, not including any possible zero-terminator!
@@ -102,7 +102,7 @@ public:
 			( RawPeekUInt64( m_hash + 8  ) == RawPeekUInt64( other_hash.m_hash + 8  ) )
 		);
 	}
-	
+
 	/**
 	 * Non-equality operator
 	 *
@@ -117,7 +117,7 @@ public:
 	 *
 	 * @return True if the hash is less than other_hash, false otherwise.
 	 *
-	 * The purpose of this function is to enable the usage of CMD4Hashes in 
+	 * The purpose of this function is to enable the usage of CMD4Hashes in
 	 * sorted STL containers like std::map.
 	 */
 	bool operator  < (const CMD4Hash& other_hash) const {
@@ -128,11 +128,11 @@ public:
 				return false;
 			}
 		}
-		
+
 		return false;
 	}
 
-	
+
 	/**
 	 * Returns true if the hash is empty.
 	 *
@@ -146,10 +146,10 @@ public:
 		return (
 			!RawPeekUInt64( m_hash      ) &&
 			!RawPeekUInt64( m_hash + 8  )
-		);	
+		);
 	}
-	
-	/** 
+
+	/**
 	 * Resets the contents of the hash.
 	 *
 	 * This functions sets the value of each field of the hash to zero.
@@ -160,7 +160,7 @@ public:
 		RawPokeUInt64( m_hash + 8,		0 );
 	}
 
-	
+
 	/**
 	 * Decodes a 32 char long hexadecimal representation of a MD4 hash.
 	 *
@@ -169,31 +169,31 @@ public:
 	 *
 	 * This function converts a hexadecimal representation of a MD4
 	 * hash and stores it in the m_hash data-member.
-	 */ 
-	
+	 */
+
 	bool Decode(const std::string& hash) {
 		if (hash.length() != MD4HASH_LENGTH * 2) {
 			return false;
 		}
-		
+
 		for ( size_t i = 0; i < MD4HASH_LENGTH * 2; i++ ) {
 			unsigned char word = toupper(hash[i]);
 
 			if ((word >= '0') && (word <= '9')) {
-				word -= '0';				
+				word -= '0';
 			} else if ((word >= 'A') && (word <= 'F')) {
 				word -= 'A' - 10;
 			} else {
 				// Invalid chars
 				return false;
 			}
-			
+
 			if (i % 2 == 0) {
 				m_hash[i/2] = word << 4;
 			} else {
 				m_hash[i/2] += word;
 			}
-		} 
+		}
 
 		return true;
 	}
@@ -203,13 +203,13 @@ public:
 		return Decode(std::string(unicode2char(hash)));
 	}
 	#endif
-	
-	/** 
+
+	/**
 	 * Creates a 32 char long hexadecimal representation of a MD4 hash.
 	 *
 	 * @return Hexadecimal representation of the m_hash data-member.
 	 *
-	 * This function creates a hexadecimal representation of the MD4 
+	 * This function creates a hexadecimal representation of the MD4
 	 * hash stored in the m_hash data-member and returns it.
 	 */
 	std::string EncodeSTL() const {
@@ -219,25 +219,25 @@ public:
 			size_t x = ( i % 2 == 0 ) ? ( m_hash[i/2] >> 4 ) : ( m_hash[i/2] & 0xf );
 
 			if ( x <  10 ) {
-				Base16Buff += (char)( x + '0' ); 
+				Base16Buff += (char)( x + '0' );
 			} else {
 				Base16Buff += (char)(  x + ( 'A' - 10 ));
 			}
 		}
 
 		return Base16Buff;
-	}		
-	
+	}
+
 	#ifdef USE_WX_EXTENSIONS
 	wxString Encode() const {
 		return char2unicode(EncodeSTL().c_str());
 	}
 	#endif
-	
+
 	/**
 	 * Explicitly set the hash-array to the contents of a unsigned char array.
 	 *
-	 * @param hash The array to be assigned. 
+	 * @param hash The array to be assigned.
 	 *
 	 * The hash must either be a NULL pointer or be of length 16.
 	 */
@@ -249,7 +249,7 @@ public:
 			Clear();
 		}
 	}
-	
+
 	/**
 	 * Explicit access to the hash-array.
 	 *
@@ -261,7 +261,7 @@ public:
 	const unsigned char* GetHash() const {
 		return m_hash;
 	}
-	
+
 	/**
 	 * Explic access to values in the hash-array.
 	 *
@@ -272,12 +272,12 @@ public:
 		MULE_VALIDATE_PARAMS(i < MD4HASH_LENGTH, wxT("Invalid index in CMD4Hash::operator[]"));
 		return m_hash[i];
 	}
-	
+
 	unsigned char& operator[](size_t i) {
 		MULE_VALIDATE_PARAMS(i < MD4HASH_LENGTH, wxT("Invalid index in CMD4Hash::operator[]"));
 		return m_hash[i];
 	}
-	
+
 private:
 	//! The raw MD4-hash.
 	//!
diff --git a/src/MagnetURI.cpp b/src/MagnetURI.cpp
index 99092c0..d84a0ec 100644
--- a/src/MagnetURI.cpp
+++ b/src/MagnetURI.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/MagnetURI.h b/src/MagnetURI.h
index 28d67ba..479e836 100644
--- a/src/MagnetURI.h
+++ b/src/MagnetURI.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -47,7 +47,7 @@ class CMagnetURI
 
 	void		AddField(const STRING& name, const STRING& value)	{ m_fields.push_back(Field_Type(name, value)); }
 	Value_List	GetField(const STRING& name) const;
-	void		Clear() 						{ m_fields.clear(); }
+	void		Clear()							{ m_fields.clear(); }
 	STRING		GetLink() const;
 	operator STRING() const							{ return GetLink(); }
 
diff --git a/src/Makefile.am b/src/Makefile.am
index 573634c..e955abd 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,7 +6,8 @@ AM_LDFLAGS = $(MULELDFLAGS)
 SUBDIRS = libs utils pixmaps
 
 if WEB
-SUBDIRS += webserver
+# build webserver after current
+SUBDIRS += . webserver
 endif
 
 if INSTALL_SKINS
@@ -15,20 +16,22 @@ endif
 
 EXTRA_DIST = \
 	aMule.xpm \
+	LibSocketAsio.cpp \
+	LibSocketWX.cpp \
 	Parser.y \
 	Scanner.h.in \
 	Scanner.l \
 	IPFilterScanner.l \
-	muuli.wdr 
+	muuli.wdr
 
-bin_PROGRAMS = 
+bin_PROGRAMS =
 
 if MONOLITHIC
 bin_PROGRAMS += amule
 endif
 
 if COMPILE_CMD
-bin_PROGRAMS += amulecmd   
+bin_PROGRAMS += amulecmd
 endif
 
 if ED2K
@@ -44,7 +47,7 @@ bin_PROGRAMS += amuled
 endif
 
 # Sources
-noinst_LIBRARIES =
+noinst_LIBRARIES = libmulesocket.a
 if MONOLITHIC
 noinst_LIBRARIES += libmuleappcore.a libmuleappgui.a libmuleappcommon.a
 else
@@ -58,6 +61,12 @@ endif
 endif
 
 
+# Socket lib (WX or Asio)
+
+libmulesocket_a_SOURCES = LibSocket.cpp
+libmulesocket_a_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(BOOST_CPPFLAGS) -I$(srcdir)/libs -I$(srcdir)/include
+
+
 # Common to core/gui/monolithic
 
 libmuleappcommon_a_SOURCES = \
@@ -121,7 +130,7 @@ libmuleappgui_a_SOURCES = \
 	MuleNotebook.cpp \
 	MuleTextCtrl.cpp \
 	MuleCollection.cpp \
-	muuli_wdr.cpp 
+	muuli_wdr.cpp
 
 libmuleappgui_a_CPPFLAGS = $(AM_CPPFLAGS) $(WX_CPPFLAGS) -I$(srcdir)/libs -I$(srcdir)/include $(LIBUPNP_CPPFLAGS) $(GEOIP_CPPFLAGS)
 
@@ -197,7 +206,7 @@ gui_sources = \
 	ServerListCtrl.cpp \
 	SharedFilesCtrl.cpp \
 	MuleTrayIcon.cpp \
-	TransferWnd.cpp 
+	TransferWnd.cpp
 
 
 common_sources = \
@@ -223,12 +232,12 @@ common_sources = \
 core_libs = -L. -lmuleappcore $(LIBUPNP_LDFLAGS) $(LIBUPNP_LIBS)
 gui_libs = -L. -lmuleappgui $(WX_LIBS) $(GEOIP_LDFLAGS) $(GEOIP_LIBS)
 remote_common_libs = -Llibs/common -Llibs/ec/cpp -lmulecommon -lec $(BFD_LIBS) $(ZLIB_LDFLAGS) $(ZLIB_LIBS) $(RESOLV_LIB)
-common_libs = -L. -lmuleappcommon $(remote_common_libs) $(CRYPTOPP_LDFLAGS) $(CRYPTOPP_LIBS)
+common_libs = -L. -lmuleappcommon $(remote_common_libs) -lmulesocket $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS) $(CRYPTOPP_LDFLAGS) $(CRYPTOPP_LIBS)
 
 core_deps = libmuleappcore.a
 gui_deps = libmuleappgui.a
 remote_common_deps = libs/common/libmulecommon.a libs/ec/cpp/libec.a
-common_deps = libmuleappcommon.a $(remote_common_deps)
+common_deps = libmuleappcommon.a $(remote_common_deps) libmulesocket.a
 
 if SYS_WIN32
 core_libs += -lshlwapi
@@ -273,17 +282,17 @@ amule_LDADD = $(common_libs) $(core_libs) $(gui_libs)
 amulegui_DEPENDENCIES = $(common_deps) $(gui_deps)
 amulegui_CPPFLAGS = $(AM_CPPFLAGS) $(gui_flags) $(common_flags) -DCLIENT_GUI
 amulegui_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY)
-amulegui_LDADD = $(gui_libs) $(common_libs) $(WXBASE_LIBS)
+amulegui_LDADD = $(common_libs) $(gui_libs)
 
 amuled_DEPENDENCIES = $(core_deps) $(common_deps)
-amuled_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(core_flags) $(common_flags) -DAMULE_DAEMON 
+amuled_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(core_flags) $(common_flags) -DAMULE_DAEMON
 amuled_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY)
 amuled_LDADD = $(common_libs) $(core_libs) $(WXBASE_LIBS)
 
 ed2k_SOURCES = \
 	ED2KLinkParser.cpp \
 	MagnetURI.cpp \
-	MuleCollection.cpp	
+	MuleCollection.cpp
 
 ed2k_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_STD_STRING
 
@@ -301,14 +310,14 @@ amulecmd_SOURCES = \
 	ExternalConnector.cpp \
 	LoggerConsole.cpp \
 	OtherFunctions.cpp \
-	NetworkFunctions.cpp 
+	NetworkFunctions.cpp
 
-amulecmd_DEPENDENCIES = $(remote_common_deps)
+amulecmd_DEPENDENCIES = $(remote_common_deps) libmulesocket.a
 amulecmd_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(common_flags)
 amulecmd_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY)
 #amulecmd_LDADD = $(WXBASE_LIBS) $(READLINE_LIBS) $(remote_common_libs)
-amulecmd_LDADD = -Llibs/common -Llibs/ec/cpp -lmulecommon -lec \
-	$(WXBASE_LIBS) $(READLINE_LIBS) $(BFD_LIBS) $(ZLIB_LDFLAGS) $(ZLIB_LIBS) $(RESOLV_LIB)
+amulecmd_LDADD = -Llibs/common -Llibs/ec/cpp -L. -lmulecommon -lec -lmulesocket \
+	$(WXBASE_LIBS) $(READLINE_LIBS) $(BFD_LIBS) $(ZLIB_LDFLAGS) $(ZLIB_LIBS) $(RESOLV_LIB) $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS)
 
 noinst_HEADERS = \
 		AddFriend.h \
@@ -374,6 +383,7 @@ noinst_HEADERS = \
 		KadDlg.h \
 		KnownFile.h \
 		KnownFileList.h \
+		LibSocket.h \
 		ListenSocket.h \
 		Logger.h \
 		MagnetURI.h \
diff --git a/src/Makefile.in b/src/Makefile.in
index e2157f3..c1ada79 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -36,12 +36,14 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
- at WEB_TRUE@am__append_1 = webserver
+
+# build webserver after current
+ at WEB_TRUE@am__append_1 = . webserver
 @INSTALL_SKINS_TRUE at am__append_2 = skins
 bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
 	$(am__EXEEXT_4) $(am__EXEEXT_5)
 @MONOLITHIC_TRUE at am__append_3 = amule
- at COMPILE_CMD_TRUE@am__append_4 = amulecmd   
+ at COMPILE_CMD_TRUE@am__append_4 = amulecmd
 @ED2K_TRUE at am__append_5 = ed2k
 @AMULE_GUI_TRUE at am__append_6 = amulegui
 @AMULE_DAEMON_TRUE at am__append_7 = amuled
@@ -58,23 +60,23 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 subdir = src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -145,6 +147,10 @@ am_libmuleappgui_a_OBJECTS = libmuleappgui_a-BarShader.$(OBJEXT) \
 	libmuleappgui_a-MuleCollection.$(OBJEXT) \
 	libmuleappgui_a-muuli_wdr.$(OBJEXT)
 libmuleappgui_a_OBJECTS = $(am_libmuleappgui_a_OBJECTS)
+libmulesocket_a_AR = $(AR) $(ARFLAGS)
+libmulesocket_a_LIBADD =
+am_libmulesocket_a_OBJECTS = libmulesocket_a-LibSocket.$(OBJEXT)
+libmulesocket_a_OBJECTS = $(am_libmulesocket_a_OBJECTS)
 @MONOLITHIC_TRUE at am__EXEEXT_1 = amule$(EXEEXT)
 @COMPILE_CMD_TRUE at am__EXEEXT_2 = amulecmd$(EXEEXT)
 @ED2K_TRUE at am__EXEEXT_3 = ed2k$(EXEEXT)
@@ -215,6 +221,7 @@ am__DEPENDENCIES_1 =
 am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
@@ -335,14 +342,16 @@ AM_V_GEN = $(am__v_GEN_$(V))
 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libmuleappcommon_a_SOURCES) $(libmuleappcore_a_SOURCES) \
-	$(libmuleappgui_a_SOURCES) $(amule_SOURCES) \
-	$(amulecmd_SOURCES) $(nodist_amulecmd_SOURCES) \
-	$(amuled_SOURCES) $(nodist_amuled_SOURCES) $(amulegui_SOURCES) \
-	$(ed2k_SOURCES) $(nodist_ed2k_SOURCES)
+	$(libmuleappgui_a_SOURCES) $(libmulesocket_a_SOURCES) \
+	$(amule_SOURCES) $(amulecmd_SOURCES) \
+	$(nodist_amulecmd_SOURCES) $(amuled_SOURCES) \
+	$(nodist_amuled_SOURCES) $(amulegui_SOURCES) $(ed2k_SOURCES) \
+	$(nodist_ed2k_SOURCES)
 DIST_SOURCES = $(libmuleappcommon_a_SOURCES) \
 	$(libmuleappcore_a_SOURCES) $(libmuleappgui_a_SOURCES) \
-	$(amule_SOURCES) $(amulecmd_SOURCES) $(amuled_SOURCES) \
-	$(amulegui_SOURCES) $(ed2k_SOURCES)
+	$(libmulesocket_a_SOURCES) $(amule_SOURCES) \
+	$(amulecmd_SOURCES) $(amuled_SOURCES) $(amulegui_SOURCES) \
+	$(ed2k_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
 	install-dvi-recursive install-exec-recursive \
@@ -358,7 +367,7 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
 	distdir
 ETAGS = etags
 CTAGS = ctags
-DIST_SUBDIRS = libs utils pixmaps webserver skins
+DIST_SUBDIRS = libs utils pixmaps . webserver skins
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -402,6 +411,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -428,6 +443,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -518,6 +534,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -609,15 +626,22 @@ AM_LDFLAGS = $(MULELDFLAGS)
 SUBDIRS = libs utils pixmaps $(am__append_1) $(am__append_2)
 EXTRA_DIST = \
 	aMule.xpm \
+	LibSocketAsio.cpp \
+	LibSocketWX.cpp \
 	Parser.y \
 	Scanner.h.in \
 	Scanner.l \
 	IPFilterScanner.l \
-	muuli.wdr 
+	muuli.wdr
 
 
 # Sources
-noinst_LIBRARIES = $(am__append_8) $(am__append_9) $(am__append_10)
+noinst_LIBRARIES = libmulesocket.a $(am__append_8) $(am__append_9) \
+	$(am__append_10)
+
+# Socket lib (WX or Asio)
+libmulesocket_a_SOURCES = LibSocket.cpp
+libmulesocket_a_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(BOOST_CPPFLAGS) -I$(srcdir)/libs -I$(srcdir)/include
 
 # Common to core/gui/monolithic
 libmuleappcommon_a_SOURCES = \
@@ -677,7 +701,7 @@ libmuleappgui_a_SOURCES = \
 	MuleNotebook.cpp \
 	MuleTextCtrl.cpp \
 	MuleCollection.cpp \
-	muuli_wdr.cpp 
+	muuli_wdr.cpp
 
 libmuleappgui_a_CPPFLAGS = $(AM_CPPFLAGS) $(WX_CPPFLAGS) -I$(srcdir)/libs -I$(srcdir)/include $(LIBUPNP_CPPFLAGS) $(GEOIP_CPPFLAGS)
 core_sources = \
@@ -751,7 +775,7 @@ gui_sources = \
 	ServerListCtrl.cpp \
 	SharedFilesCtrl.cpp \
 	MuleTrayIcon.cpp \
-	TransferWnd.cpp 
+	TransferWnd.cpp
 
 common_sources = \
 	amuleAppCommon.cpp \
@@ -777,11 +801,11 @@ core_libs = -L. -lmuleappcore $(LIBUPNP_LDFLAGS) $(LIBUPNP_LIBS) \
 	$(am__append_11)
 gui_libs = -L. -lmuleappgui $(WX_LIBS) $(GEOIP_LDFLAGS) $(GEOIP_LIBS)
 remote_common_libs = -Llibs/common -Llibs/ec/cpp -lmulecommon -lec $(BFD_LIBS) $(ZLIB_LDFLAGS) $(ZLIB_LIBS) $(RESOLV_LIB)
-common_libs = -L. -lmuleappcommon $(remote_common_libs) $(CRYPTOPP_LDFLAGS) $(CRYPTOPP_LIBS)
+common_libs = -L. -lmuleappcommon $(remote_common_libs) -lmulesocket $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS) $(CRYPTOPP_LDFLAGS) $(CRYPTOPP_LIBS)
 core_deps = libmuleappcore.a
 gui_deps = libmuleappgui.a
 remote_common_deps = libs/common/libmulecommon.a libs/ec/cpp/libec.a
-common_deps = libmuleappcommon.a $(remote_common_deps)
+common_deps = libmuleappcommon.a $(remote_common_deps) libmulesocket.a
 
 #
 # Flags
@@ -821,16 +845,15 @@ amule_LDADD = $(common_libs) $(core_libs) $(gui_libs) $(am__append_12)
 amulegui_DEPENDENCIES = $(common_deps) $(gui_deps) $(am__append_15)
 amulegui_CPPFLAGS = $(AM_CPPFLAGS) $(gui_flags) $(common_flags) -DCLIENT_GUI
 amulegui_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY)
-amulegui_LDADD = $(gui_libs) $(common_libs) $(WXBASE_LIBS) \
-	$(am__append_14)
+amulegui_LDADD = $(common_libs) $(gui_libs) $(am__append_14)
 amuled_DEPENDENCIES = $(core_deps) $(common_deps)
-amuled_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(core_flags) $(common_flags) -DAMULE_DAEMON 
+amuled_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(core_flags) $(common_flags) -DAMULE_DAEMON
 amuled_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY)
 amuled_LDADD = $(common_libs) $(core_libs) $(WXBASE_LIBS)
 ed2k_SOURCES = \
 	ED2KLinkParser.cpp \
 	MagnetURI.cpp \
-	MuleCollection.cpp	
+	MuleCollection.cpp
 
 ed2k_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_STD_STRING
 
@@ -843,14 +866,14 @@ amulecmd_SOURCES = \
 	ExternalConnector.cpp \
 	LoggerConsole.cpp \
 	OtherFunctions.cpp \
-	NetworkFunctions.cpp 
+	NetworkFunctions.cpp
 
-amulecmd_DEPENDENCIES = $(remote_common_deps)
+amulecmd_DEPENDENCIES = $(remote_common_deps) libmulesocket.a
 amulecmd_CPPFLAGS = $(AM_CPPFLAGS) $(WXBASE_CPPFLAGS) $(common_flags)
 amulecmd_CXXFLAGS = $(AM_CXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY)
 #amulecmd_LDADD = $(WXBASE_LIBS) $(READLINE_LIBS) $(remote_common_libs)
-amulecmd_LDADD = -Llibs/common -Llibs/ec/cpp -lmulecommon -lec \
-	$(WXBASE_LIBS) $(READLINE_LIBS) $(BFD_LIBS) $(ZLIB_LDFLAGS) $(ZLIB_LIBS) $(RESOLV_LIB)
+amulecmd_LDADD = -Llibs/common -Llibs/ec/cpp -L. -lmulecommon -lec -lmulesocket \
+	$(WXBASE_LIBS) $(READLINE_LIBS) $(BFD_LIBS) $(ZLIB_LDFLAGS) $(ZLIB_LIBS) $(RESOLV_LIB) $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS)
 
 noinst_HEADERS = \
 		AddFriend.h \
@@ -916,6 +939,7 @@ noinst_HEADERS = \
 		KadDlg.h \
 		KnownFile.h \
 		KnownFileList.h \
+		LibSocket.h \
 		ListenSocket.h \
 		Logger.h \
 		MagnetURI.h \
@@ -1052,6 +1076,10 @@ libmuleappgui.a: $(libmuleappgui_a_OBJECTS) $(libmuleappgui_a_DEPENDENCIES)
 	$(AM_V_at)-rm -f libmuleappgui.a
 	$(AM_V_AR)$(libmuleappgui_a_AR) libmuleappgui.a $(libmuleappgui_a_OBJECTS) $(libmuleappgui_a_LIBADD)
 	$(AM_V_at)$(RANLIB) libmuleappgui.a
+libmulesocket.a: $(libmulesocket_a_OBJECTS) $(libmulesocket_a_DEPENDENCIES) 
+	$(AM_V_at)-rm -f libmulesocket.a
+	$(AM_V_AR)$(libmulesocket_a_AR) libmulesocket.a $(libmulesocket_a_OBJECTS) $(libmulesocket_a_LIBADD)
+	$(AM_V_at)$(RANLIB) libmulesocket.a
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@@ -1358,6 +1386,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmuleappgui_a-MuleTextCtrl.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmuleappgui_a-listctrl.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmuleappgui_a-muuli_wdr.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libmulesocket_a-LibSocket.Po at am__quote@
 
 .cpp.o:
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -2127,6 +2156,22 @@ libmuleappgui_a-muuli_wdr.obj: muuli_wdr.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmuleappgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmuleappgui_a-muuli_wdr.obj `if test -f 'muuli_wdr.cpp'; then $(CYGPATH_W) 'muuli_wdr.cpp'; else $(CYGPATH_W) '$(srcdir)/muuli_wdr.cpp'; fi`
 
+libmulesocket_a-LibSocket.o: LibSocket.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmulesocket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmulesocket_a-LibSocket.o -MD -MP -MF $(DEPDIR)/libmulesocket_a-LibSocket.Tpo -c -o libmulesocket_a-LibSocket.o `test -f 'LibSocket.cpp' || echo '$(srcdir)/'`LibSocket.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmulesocket_a-LibSocket.Tpo $(DEPDIR)/libmulesocket_a-LibSocket.Po
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='LibSocket.cpp' object='libmulesocket_a-LibSocket.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmulesocket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmulesocket_a-LibSocket.o `test -f 'LibSocket.cpp' || echo '$(srcdir)/'`LibSocket.cpp
+
+libmulesocket_a-LibSocket.obj: LibSocket.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmulesocket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libmulesocket_a-LibSocket.obj -MD -MP -MF $(DEPDIR)/libmulesocket_a-LibSocket.Tpo -c -o libmulesocket_a-LibSocket.obj `if test -f 'LibSocket.cpp'; then $(CYGPATH_W) 'LibSocket.cpp'; else $(CYGPATH_W) '$(srcdir)/LibSocket.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmulesocket_a-LibSocket.Tpo $(DEPDIR)/libmulesocket_a-LibSocket.Po
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='LibSocket.cpp' object='libmulesocket_a-LibSocket.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmulesocket_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libmulesocket_a-LibSocket.obj `if test -f 'LibSocket.cpp'; then $(CYGPATH_W) 'LibSocket.cpp'; else $(CYGPATH_W) '$(srcdir)/LibSocket.cpp'; fi`
+
 amule-CaptchaDialog.o: CaptchaDialog.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(amule_CPPFLAGS) $(CPPFLAGS) $(amule_CXXFLAGS) $(CXXFLAGS) -MT amule-CaptchaDialog.o -MD -MP -MF $(DEPDIR)/amule-CaptchaDialog.Tpo -c -o amule-CaptchaDialog.o `test -f 'CaptchaDialog.cpp' || echo '$(srcdir)/'`CaptchaDialog.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/amule-CaptchaDialog.Tpo $(DEPDIR)/amule-CaptchaDialog.Po
diff --git a/src/MemFile.cpp b/src/MemFile.cpp
index 49e01be..4632bf4 100644
--- a/src/MemFile.cpp
+++ b/src/MemFile.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -41,7 +41,7 @@ CMemFile::CMemFile(unsigned int growthRate)
 CMemFile::CMemFile(byte* buffer, size_t bufferSize)
 {
 	MULE_VALIDATE_PARAMS(buffer, wxT("CMemFile: Attempted to attach invalid buffer."));
-	
+
 	m_buffer		= buffer;
 	m_BufferSize	= bufferSize;
 	m_fileSize		= bufferSize;
@@ -54,7 +54,7 @@ CMemFile::CMemFile(byte* buffer, size_t bufferSize)
 CMemFile::CMemFile(const byte* buffer, size_t bufferSize)
 {
 	MULE_VALIDATE_PARAMS(buffer, wxT("CMemFile: Attempted to attach invalid buffer."));
-	
+
 	m_buffer		= const_cast<byte*>(buffer);
 	m_BufferSize	= bufferSize;
 	m_fileSize		= bufferSize;
@@ -80,16 +80,16 @@ uint64 CMemFile::GetPosition() const
 
 void CMemFile::SetLength(size_t newLen)
 {
-	MULE_VALIDATE_STATE(!m_readonly, wxT("CMemFile: Attempted to change lenght on a read-only buffer."));
-	
+	MULE_VALIDATE_STATE(!m_readonly, wxT("CMemFile: Attempted to change length on a read-only buffer."));
+
 	if (newLen > m_BufferSize) {
 		enlargeBuffer(newLen);
 	}
-	
+
 	if (newLen < m_position) {
 		m_position = newLen;
 	}
-	
+
 	m_fileSize = newLen;
 }
 
@@ -105,9 +105,9 @@ void CMemFile::enlargeBuffer(size_t size)
 	MULE_VALIDATE_PARAMS(size >= m_BufferSize, wxT("CMemFile: Attempted to shrink buffer."));
 	MULE_VALIDATE_STATE(m_delete, wxT("CMemFile: Attempted to grow an attached buffer."));
 	MULE_VALIDATE_STATE(!m_readonly, wxT("CMemFile: Attempted to grow a read-only buffer."));
-	
+
 	size_t newsize = m_BufferSize;
-	
+
 	if (m_growthRate) {
 		newsize = ((size + m_growthRate - 1) / m_growthRate) * m_growthRate;
 	} else {
@@ -115,24 +115,27 @@ void CMemFile::enlargeBuffer(size_t size)
 		newsize = size;
 	}
 
-	m_buffer = (byte*)realloc(m_buffer, newsize);
-	m_BufferSize = newsize;
+	byte *tmp = (byte*)realloc(m_buffer, newsize);
+	if (tmp) {
+		m_buffer = tmp;
+		m_BufferSize = newsize;
+	}
 
-	MULE_VALIDATE_STATE(m_buffer, wxT("CMemFile: Failed to (re)allocate buffer"));
+	MULE_VALIDATE_STATE(tmp, wxT("CMemFile: Failed to (re)allocate buffer"));
 }
 
 
 sint64 CMemFile::doRead(void* buffer, size_t count) const
 {
 	MULE_VALIDATE_PARAMS(buffer, wxT("CMemFile: Attempting to read to invalid buffer"));
-	
+
 	// Handle reads past EOF
 	if (m_position > m_fileSize) {
 		return 0;
 	} else if (m_position + count > m_fileSize) {
 		count = m_fileSize - m_position;
 	}
-	
+
 	if (count) {
 		memcpy(buffer, m_buffer + m_position, count);
 		m_position += count;
@@ -146,14 +149,14 @@ sint64 CMemFile::doWrite(const void* buffer, size_t count)
 {
 	MULE_VALIDATE_PARAMS(buffer, wxT("CMemFile: Attempting to write to invalid buffer"));
 	MULE_VALIDATE_STATE(!m_readonly, wxT("CMemFile: Attempted to write to a read-only buffer."));
-	
+
 	// Needs more space?
 	if (m_position + count > m_BufferSize) {
 		enlargeBuffer(m_position + count);
 	}
-	
+
 	MULE_VALIDATE_STATE(m_position + count <= m_BufferSize, wxT("CMemFile: Buffer not resized to needed size."));
-	
+
 	memcpy(m_buffer + m_position, buffer, count);
 	m_position += count;
 
@@ -168,7 +171,7 @@ sint64 CMemFile::doWrite(const void* buffer, size_t count)
 sint64 CMemFile::doSeek(sint64 offset) const
 {
 	MULE_VALIDATE_PARAMS(offset >= 0, wxT("CMemFile: Invalid seek, position, must be positive."));
-	
+
 	return m_position = offset;
 }
 
@@ -176,7 +179,7 @@ sint64 CMemFile::doSeek(sint64 offset) const
 void CMemFile::ResetData()
 {
 	wxCHECK_RET(!m_readonly, wxT("Trying to reset read-only buffer"));
-	
+
 	memset(m_buffer, 0, m_BufferSize);
 	m_fileSize	= 0;
 	m_position	= 0;
diff --git a/src/MemFile.h b/src/MemFile.h
index 8cd67b1..c4f5508 100644
--- a/src/MemFile.h
+++ b/src/MemFile.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -31,7 +31,7 @@
 
 /**
  * CMemFile handles virtual files stored in memory.
- * 
+ *
  * This class allows for manipulation of binary data in memory such
  * as data sent over networks. Using this class rather than writing
  * the stream onto a struct confers the following advantages:
@@ -43,7 +43,7 @@
  *  - Strings of dynamic length can be read.
  *
  * Most of these advantages also hold for writing packets.
- * 
+ *
  * @see CFileDataIO
  */
 class CMemFile : public CFileDataIO
@@ -51,14 +51,14 @@ class CMemFile : public CFileDataIO
 public:
 	/**
 	 * Creates a dynamic file object.
-	 * 
+	 *
 	 * @param growthRate The growth-rate of the buffer.
 	 *
 	 * The growth-rate specified by how much the buffer-size will
 	 * be increased when the memfile runs out of space. Normally
 	 * this means that the amount of re-allocations is cut down
 	 * at the expence of slightly higher mem-usage.
-	 * 
+	 *
 	 * If the size of the entire file to be written is known
 	 * in advance, one can avoid needless re-allocations by
 	 * specifying the exact length as the growth-rate.
@@ -80,7 +80,7 @@ public:
 	 *
 	 * Note that while it is valid to resize the buffer to a length
 	 * between zero and 'bufferSize', it is not valid to resize it
-	 * to a length greater than the length specified in the 
+	 * to a length greater than the length specified in the
 	 * constructor. This also holds for writes that would increase
 	 * the length.
 	 *
@@ -93,54 +93,54 @@ public:
 
 	/** Destructor. */
 	virtual ~CMemFile();
-	
+
 
 	/** @see CFileDataIO::GetPosition */
 	virtual uint64 GetPosition() const;
-	
+
 	/** @see CFileDataIO::GetLength */
 	virtual uint64 GetLength() const;
 
-	
-	/** 
+
+	/**
 	 * Changes the length of the file, possibly resizing the buffer.
 	 *
 	 * @param newLen The new length of the file.
-	 * 
-	 * If the current position is greater than the new length, it 
+	 *
+	 * If the current position is greater than the new length, it
 	 * will be set to the end of the file.
-	 * 
-	 * Note that changing the lenght of a file with an attached buffer 
-	 * to a value greater than the actual buffer size is an illegal 
+	 *
+	 * Note that changing the lenght of a file with an attached buffer
+	 * to a value greater than the actual buffer size is an illegal
 	 * operation.
 	 */
 	virtual void SetLength(size_t newLen);
 
-	/** 
+	/**
 	 * Resets the memfile to the start.
 	 */
 	virtual void Reset() const { doSeek(0); }
-	
+
 	/**
 	 * Returns the bytes available to read before EOF
 	 */
 	virtual sint64 GetAvailable() const { return GetLength() - GetPosition(); }
 
-	/** 
+	/**
 	 * Resets the memfile to the starting values.
 	 */
 	virtual void ResetData();
 
 	// Sometimes it's useful to get the buffer and do stuff with it.
 	byte* GetRawBuffer() const { return m_buffer; }
-	
+
 protected:
 	/** @see CFileDataIO::doRead */
 	virtual sint64 doRead(void* buffer, size_t count) const;
 
 	/** @see CFileDataIO::doWrite */
 	virtual sint64 doWrite(const void* buffer, size_t count);
-	
+
 	/** @see CFileDataIO::doSeek */
 	virtual sint64 doSeek(sint64 offset) const;
 
@@ -153,10 +153,10 @@ private:
 
 	/** Enlarges the buffer to at least 'size' length. */
 	void enlargeBuffer(size_t size);
-	
+
 	//! The growth-rate for the buffer.
 	unsigned int m_growthRate;
-	//! The current position in the file. 
+	//! The current position in the file.
 	mutable size_t m_position;
 	//! The actual size of the buffer.
 	size_t	m_BufferSize;
diff --git a/src/MuleCollection.cpp b/src/MuleCollection.cpp
index 1906978..b1cd663 100644
--- a/src/MuleCollection.cpp
+++ b/src/MuleCollection.cpp
@@ -25,7 +25,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -34,36 +34,9 @@
 
 #include "MuleCollection.h"
 
-
 #include <fstream>
 #include <iostream>
 #include <sstream>
-#include <string>
-#include <vector>
-
-
-CollectionFile::CollectionFile(
-	const std::string &fileName,
-	uint64_t fileSize,
-	const std::string &fileHash)
-:
-m_fileName(fileName),
-m_fileSize(fileSize),
-m_fileHash(fileHash)
-{
-}
-
-
-CMuleCollection::CMuleCollection()
-:
-vCollection(0)
-{
-}
-
-
-CMuleCollection::~CMuleCollection()
-{
-}
 
 
 bool CMuleCollection::Open(const std::string &File)
@@ -72,67 +45,12 @@ bool CMuleCollection::Open(const std::string &File)
 }
 
 
-std::string CMuleCollection::GetEd2kLink(size_t index) const
-{
-	if (index >= GetFileCount()) {
-		return "Invalid Index!";
-	}
-	
-	std::stringstream retvalue;
-	// ed2k://|file|fileName|fileSize|fileHash|/
-	retvalue
-		<< "ed2k://|file|" << GetFileName(index)
-		<< "|" << GetFileSize(index)
-		<< "|" << GetFileHash(index)
-		<< "|/";
-		
-	return retvalue.str();
-}
-
-
-std::string CMuleCollection::GetFileName(size_t index) const
-{
-	if (index >= GetFileCount()) {
-		return "Invalid Index!";
-	}
-
-	std::string retvalue = vCollection[index].m_fileName;
-	if (retvalue.empty()) {
-		return "Empty String!";
-	}
-			
-	return retvalue;
-}
-
-
-uint64_t CMuleCollection::GetFileSize(size_t index) const
-{
-	if (index >= GetFileCount()) {
-		return 0;
-	}
-	
-	return vCollection[index].m_fileSize;
-}
-
-
-std::string CMuleCollection::GetFileHash(size_t index) const
-{
-	if (index >= GetFileCount()) {
-		return "Invalid Index!";
-	}
-	std::string retvalue = vCollection[index].m_fileHash;
-	if (retvalue.empty()) {
-		return "Empty String!";
-	}
-			
-	return retvalue;
-}
-
 template <typename intType>
 intType CMuleCollection::ReadInt(std::ifstream& infile)
 {
 	intType integer = 0;
 	infile.read(reinterpret_cast<char *>(&integer),sizeof(intType));
+	// TODO: byte-sex
 	return integer;
 }
 
@@ -159,27 +77,27 @@ std::string CMuleCollection::ReadString(std::ifstream& infile, int TagType = 0x0
 bool CMuleCollection::OpenBinary(const std::string &File)
 {
 	std::ifstream infile;
-	
+
 	infile.open(File.c_str(), std::ifstream::in|std::ifstream::binary);
 	if(!infile.is_open()) {
 		return false;
 	}
 
 	uint32_t cVersion = ReadInt<uint32_t>(infile);
-		
+
 	if (!infile.good() ||
 	    ( cVersion != 0x01 && cVersion != 0x02)) {
 			infile.close();
 			return false;
 	}
-	
+
 	uint32_t hTagCount = ReadInt<uint32_t>(infile);
 	if (!infile.good() ||
 	    hTagCount > 3) {
 		infile.close();
 		return false;
 	}
-	
+
 	for (size_t hTi = 0; hTi < hTagCount;hTi++) {
 		 int hTagType = infile.get();
 
@@ -188,7 +106,7 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 		if (hTagFormat != 0x0001) {
 			infile.close();
 			return false;
-		}			
+		}
 
 		int hTag = infile.get();
 		if (!infile.good()) {
@@ -198,12 +116,12 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 		switch (hTag) {
 		// FT_FILENAME
 		case 0x01: {
-			std::string fileName = ReadString(infile, hTagType);
+			/*std::string fileName =*/ ReadString(infile, hTagType);
 			break;
 		}
 		// FT_COLLECTIONAUTHOR
 		case 0x31: {
-			std::string CollectionAuthor = ReadString(infile, hTagType);
+			/*std::string CollectionAuthor =*/ ReadString(infile, hTagType);
 			break;
 		}
 		// FT_COLLECTIONAUTHORKEY
@@ -228,7 +146,7 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 	}
 
 	uint32_t cFileCount = ReadInt<uint32_t>(infile);
-	
+
 	/*
 	softlimit is set to 1024 to avoid problems with big uint32_t values
 	I don't believe anyone would want to use an emulecollection file
@@ -241,20 +159,22 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 		infile.close();
 		return false;
 	}
-	
+
+	vCollection.reserve(cFileCount);
+
 	for (size_t cFi = 0; cFi < cFileCount; ++cFi) {
 		uint32_t fTagCount = ReadInt<uint32_t>(infile);
 
 		if (!infile.good() ||
-		    fTagCount > 5) {
+		    fTagCount > 6) {
 			infile.close();
 			return false;
 		}
-		
+
 		std::string fileHash = std::string(32, '0');
-		uint64_t fileSize = 0;			
+		uint64_t fileSize = 0;
 		std::string fileName;
-		std::string FileComment;
+		std::string rootHash;
 		for(size_t fTi = 0; fTi < fTagCount; ++fTi) {
 			int fTagType = infile.get();
 			if (!infile.good()) {
@@ -267,7 +187,7 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 				infile.close();
 				return false;
 			}
-			
+
 			switch (fTag) {
 			// FT_FILEHASH
 			case 0x28: {
@@ -280,6 +200,11 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 				}
 				break;
 			}
+			// FT_AICH_FILEHASH
+			case 0x27: {
+				rootHash = ReadString(infile, 0x02);
+				break;
+			}
 			// FT_FILESIZE
 			case 0x02: {
 				switch(fTagType) {
@@ -313,7 +238,7 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 			}
 			// FT_FILECOMMENT
 			case 0xF6: {
-				FileComment = ReadString(infile, fTagType^0x80);
+				/* std::string FileComment =*/ ReadString(infile, fTagType^0x80);
 				break;
 			}
 			// FT_FILERATING
@@ -321,7 +246,7 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 				if (fTagType == 0x89) { // TAGTYPE_UINT8
 					// uint8_t FileRating =
 						infile.get();
-						
+
 				} else {
 					infile.close();
 					return false;
@@ -339,7 +264,19 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 				return false;
 			}
 		}
-		AddFile(fileName, fileSize, fileHash);
+
+		if (!fileName.empty() && fileSize > 0) {
+			std::stringstream link;
+			// ed2k://|file|fileName|fileSize|fileHash|/
+			link	<< "ed2k://|file|" << fileName
+				<< "|" << fileSize
+				<< "|" << fileHash;
+			if (!rootHash.empty()) {
+				link << "|h=" << rootHash;
+			}
+			link << "|/";
+			vCollection.push_back(link.str());
+		}
 	}
 	infile.close();
 
@@ -349,102 +286,26 @@ bool CMuleCollection::OpenBinary(const std::string &File)
 
 bool CMuleCollection::OpenText(const std::string &File)
 {
-	int numLinks = 0;
 	std::string line;
 	std::ifstream infile;
-	
+
 	infile.open(File.c_str(), std::ifstream::in|std::ifstream::binary);
 	if (!infile.is_open()) {
 		return false;
 	}
-	
+
 	while (getline(infile, line, (char)10 /* LF */)) {
 		int last = line.size()-1;
 		if ((1 < last) && ((char)13 /* CR */ == line.at(last))) {
 			line.erase(last);
 		}
-		if (AddLink(line)) {
-			numLinks++;
+		if (line.size() > 50 &&
+		    line.substr(0, 13) == "ed2k://|file|" &&
+		    line.substr(line.size() - 2) == "|/") {
+			vCollection.push_back(line);
 		}
 	}
 	infile.close();
-	
-	if(numLinks == 0) {
-		return false;
-	}
-		
-	return true;
-}
-
-
-bool CMuleCollection::AddLink(const std::string &Link)
-{
-	// 12345678901234       56       7 + 32 + 89 = 19+32=51
-	// ed2k://|file|fileName|fileSize|fileHash|/
-	if (Link.size() < 51 ||
-	    Link.substr(0,13) != "ed2k://|file|" ||
-	    Link.substr(Link.size()-2) != "|/") {
-		return false;
-	}
-	
-	size_t iName = Link.find("|",13);
-	if (iName == std::string::npos) {
-		return false;
-	}
-	std::string fileName = Link.substr(13,iName-13);
-
-	size_t iSize = Link.find("|",iName+1);
-	if (iSize == std::string::npos) {
-		return false;
-	}
-	std::stringstream sFileSize;
-	sFileSize << Link.substr(iName+1,iSize-iName-1);
-	uint64_t fileSize;
-	if ((sFileSize >> std::dec >> fileSize).fail()) {
-		return false;
-	}
-
-	size_t iHash = Link.find("|",iSize+1);
-	if (iHash == std::string::npos) {
-		return false;
-	}
-	std::string fileHash = Link.substr(iSize+1,32);
-
-	return AddFile(fileName, fileSize, fileHash);
-}
-
-
-bool CMuleCollection::AddFile(
-	const std::string &fileName,
-	uint64_t fileSize,
-	const std::string &fileHash)
-{
-	if (fileName == "" ||
-	    fileSize == 0 ||
-	    fileSize > 0xffffffffLL ||
-	    !IsValidHash(fileHash)) {
-		return false;
-	}
-		
-	vCollection.push_back(
-		CollectionFile(fileName, fileSize, fileHash));
-	return true;
-}
 
-
-bool CMuleCollection::IsValidHash(const std::string &fileHash)
-{
-	if (fileHash.size() != 32 || fileHash == "") {
-		return false;
-	}
-	
-	// fileHash needs to be a valid MD4Hash
-	std::string hex = "0123456789abcdefABCDEF";
-	for(size_t i = 0; i < fileHash.size(); ++i) {
-		if (hex.find(fileHash[i]) == std::string::npos) {
-			return false;
-		}
-	}
-	return true;	
+	return !vCollection.empty();
 }
-
diff --git a/src/MuleCollection.h b/src/MuleCollection.h
index c95964f..139a745 100644
--- a/src/MuleCollection.h
+++ b/src/MuleCollection.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,55 +30,31 @@
 #include <string>
 #include <vector>
 
-#ifndef __MINGW32__
 #include "Types.h"
-#endif
-
-struct CollectionFile
-{
-	std::string m_fileName;
-	uint64_t m_fileSize;
-	std::string m_fileHash;
-
-	CollectionFile(
-		const std::string &fileName = "",
-		uint64_t fileSize = 0,
-		const std::string &fileHash = "");
-};
 
 
 class CMuleCollection
 {
 private:
-	std::vector<CollectionFile> vCollection;
+	std::vector<std::string> vCollection;
 
 public:
-	CMuleCollection();
-	~CMuleCollection();
-	
+	CMuleCollection() {};
+	~CMuleCollection() {};
+
 	bool Open(const std::string &File);
-	size_t GetFileCount() const { return vCollection.size(); }
 
-	std::string GetEd2kLink(size_t index) const;
-	std::string GetFileName(size_t index) const;
-	uint64_t GetFileSize(size_t index) const;
-	std::string GetFileHash(size_t index) const;
-	
+	size_t 			size() const 			{ return vCollection.size(); }
+	std::string&		operator[](size_t index)	{ return vCollection[index]; }
+	const std::string&	operator[](size_t index) const	{ return vCollection[index]; }
+
 private:
 	bool OpenBinary(const std::string &File);
 	bool OpenText(const std::string &File);
-	
-	bool AddLink(const std::string &Link);
-	bool AddFile(
-		const std::string &fileName,
-		uint64_t fileSize,
-		const std::string &fileHash);
-	
-	static bool IsValidHash(const std::string &fileHash);
-	
+
 	template <typename intType>
 	intType ReadInt(std::ifstream& infile);
-	
+
 	std::string ReadString(std::ifstream& infile, int TagType);
 };
 
diff --git a/src/MuleColour.cpp b/src/MuleColour.cpp
index 18f8398..75b16d6 100644
--- a/src/MuleColour.cpp
+++ b/src/MuleColour.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -32,14 +32,14 @@
 #define USE_MULE_PEN_CACHE 1
 #define USE_MULE_BRUSH_CACHE 1
 
-std::map<uint32_t, wxPen*> wxPenCache; 
+std::map<uint32_t, wxPen*> wxPenCache;
 std::map<uint32_t, wxBrush*> wxBrushCache;
 
 const wxPen& CMuleColour::GetPen(int width, int style) const
 {
 #if USE_MULE_PEN_CACHE
 	wxPen* result = NULL;
-	
+
 	if (m_cachedpen && (m_cachedpen->GetWidth() == width) && (m_cachedpen->GetStyle() == style)) {
 		result = m_cachedpen;
 	} else {
@@ -54,18 +54,18 @@ const wxPen& CMuleColour::GetPen(int width, int style) const
 			wxPenCache.insert(std::pair<uint32_t, wxPen*>(hash, result));
 		}
 	}
-	
+
 	return *result;
-#else 
+#else
 	return *wxThePenList->FindOrCreatePen(wxColour(m_red, m_green, m_blue), width, style);
 #endif
 }
 
 const wxBrush& CMuleColour::GetBrush(int style) const
 {
-#if USE_MULE_BRUSH_CACHE	
+#if USE_MULE_BRUSH_CACHE
 	wxBrush* result = NULL;
-	
+
 	if (m_cachedbrush && (m_cachedbrush->GetStyle() == style)) {
 		result = m_cachedbrush;
 	} else {
@@ -80,7 +80,7 @@ const wxBrush& CMuleColour::GetBrush(int style) const
 			wxBrushCache.insert(std::pair<uint32_t, wxBrush*>(hash, result));
 		}
 	}
-	
+
 	return *result;
 #else
 	return *wxTheBrushList->FindOrCreateBrush(wxColour(m_red, m_green, m_blue), style);
diff --git a/src/MuleColour.h b/src/MuleColour.h
index 0cef50c..1a983dd 100644
--- a/src/MuleColour.h
+++ b/src/MuleColour.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -32,21 +32,21 @@
 class wxPen;
 class wxBrush;
 
-class CMuleColour 
+class CMuleColour
 {
 public:
 
 	enum ColourComponent { COLOUR_R = 1, COLOUR_G = 2, COLOUR_B = 4 };
 
-	CMuleColour() { Init(); Set(0,0,0); }	
+	CMuleColour() { Init(); Set(0,0,0); }
 	CMuleColour(const wxColour& colour) { Init(); Set(colour.Red(), colour.Green(), colour.Blue()); }
 	CMuleColour(byte r, byte g, byte b) { Init(); Set(r,g,b); }
 	CMuleColour(unsigned long rgb)
-	{ 
+	{
 		Init();
 		Set((rgb & 0xFF), (rgb >> 8) & 0xFF, (rgb >> 16) & 0xFF);
 	}
-	
+
 	CMuleColour(wxSystemColour colour)
 	{
 		Init();
@@ -58,15 +58,15 @@ public:
 		m_cachedpen = NULL;
 		m_cachedbrush = NULL;
 	}
-	
+
 	~CMuleColour() { }
-	
+
 	void Set(byte red, byte green, byte blue) { m_red = red; m_green = green; m_blue = blue; }
-	
+
 	inline byte Red() const { return m_red; }
 	inline byte Green() const { return m_green; }
 	inline byte Blue() const { return m_blue; }
-	
+
 	const CMuleColour& Blend(byte percentage, ColourComponent flags = (ColourComponent)(COLOUR_R | COLOUR_G | COLOUR_B) )
 	{
 		unsigned int red = (unsigned int)(Red() * ((flags & COLOUR_R) ? ((float)percentage/(float)100) : (float)1));
@@ -75,7 +75,7 @@ public:
 		Set((red < 255) ? red : 255, (green < 255) ? green : 255, (blue < 255) ? blue : 255);
 		return *this;
 	}
-	
+
 	const CMuleColour& BlendWith(const CMuleColour& colour, double covered)
 	{
 		unsigned int red = (unsigned int)(Red() + (colour.Red() * covered) + 0.5);
@@ -84,20 +84,20 @@ public:
 		Set((red < 255) ? red : 255, (green < 255) ? green : 255, (blue < 255) ? blue : 255);
 		return *this;
 	}
-	
+
 	unsigned long GetULong() const { return (Blue() << 16) | (Green() << 8) | Red(); }
-		
+
 	bool IsBlack() const { return !Red() && !Blue() && !Green(); }
-	
+
 	bool IsSameAs(const CMuleColour& colour) const { return (Red() == colour.Red()) && (Green() == colour.Green()) && (Blue() == colour.Blue()); }
-	
+
 	operator wxColour() const {
 		return wxColor(m_red, m_green, m_blue);
 	}
-	
+
 	const wxPen& GetPen(int width = 1, int style = wxSOLID) const;
 	const wxBrush& GetBrush(int style = wxSOLID) const;
-	
+
 private:
 	byte m_red;
 	byte m_green;
diff --git a/src/MuleGifCtrl.cpp b/src/MuleGifCtrl.cpp
index 087a01d..c9edf76 100644
--- a/src/MuleGifCtrl.cpp
+++ b/src/MuleGifCtrl.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -45,17 +45,17 @@ public:
 	{
 		m_nframe = 0;
 	}
-	
+
 	~MuleGIFDecoder() { }
-	
+
 	void GoFirstFrame() { m_nframe = 0; }
-	void GoNextFrame() { m_nframe < GetFrameCount() - 1 ? m_nframe++ : m_nframe = 0; }
+	void GoNextFrame() { (m_nframe < GetFrameCount() - 1) ? m_nframe++ : m_nframe = 0; }
 	void GoLastFrame() { m_nframe = GetFrameCount() - 1; }
-	
+
 	void ConvertToImage(wxImage* image) { wxGIFDecoder::ConvertToImage(m_nframe, image); }
-	
+
 	long GetDelay() { return wxGIFDecoder::GetDelay(m_nframe); }
-		
+
 private:
 	uint32_t m_nframe;
 };
@@ -90,23 +90,23 @@ bool MuleGifCtrl::LoadData(const char* data, int size)
 {
 	if (m_decoder) {
 		m_timer.Stop();
-   		delete m_decoder;
-  		m_decoder = NULL;
+		delete m_decoder;
+		m_decoder = NULL;
 	}
-	
-  	wxMemoryInputStream stream(data, size);
-  	m_decoder = new MuleGIFDecoder();
-  	if ( m_decoder->LoadGIF(stream) != wxGIF_OK ) {
-   		delete m_decoder;
-   		m_decoder = NULL;
-   		return false;
-  	}
-	
+
+	wxMemoryInputStream stream(data, size);
+	m_decoder = new MuleGIFDecoder();
+	if ( m_decoder->LoadGIF(stream) != wxGIF_OK ) {
+		delete m_decoder;
+		m_decoder = NULL;
+		return false;
+	}
+
 	m_decoder->GoFirstFrame();
 	wxImage frame;
 	m_decoder->ConvertToImage( &frame );
 	m_frame = wxBitmap(frame);
-	
+
 	return true;
 }
 
@@ -144,13 +144,13 @@ void MuleGifCtrl::OnTimer(wxTimerEvent& WXUNUSED(event))
 		if (m_decoder->IsAnimation()) {
 			m_decoder->GoNextFrame();
 		}
-		
+
 		wxImage frame;
 		m_decoder->ConvertToImage(&frame);
 		m_frame = wxBitmap(frame);
-		
+
 		Refresh();
-		
+
 		if (m_decoder->IsAnimation()) {
 			m_timer.Start(m_decoder->GetDelay(), true);
 		}
@@ -161,12 +161,12 @@ void MuleGifCtrl::OnTimer(wxTimerEvent& WXUNUSED(event))
 void MuleGifCtrl::OnPaint(wxPaintEvent& WXUNUSED(event))
 {
 	wxBufferedPaintDC dc(this);
-	
+
 	wxSize clientsize = GetClientSize();
 	wxSize gifsize = m_decoder->GetAnimationSize();
 	int x = (clientsize.GetWidth()-gifsize.GetWidth())/2;
 	int y = (clientsize.GetHeight()-gifsize.GetHeight())/2;
-	
+
 	dc.SetBackground(*(wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID)));
 	dc.Clear();
 	dc.DrawBitmap(m_frame, x, y, true);
diff --git a/src/MuleGifCtrl.h b/src/MuleGifCtrl.h
index bcf0d31..2399c8c 100644
--- a/src/MuleGifCtrl.h
+++ b/src/MuleGifCtrl.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -40,13 +40,13 @@ class wxBitmap;
 
 /**
  * MuleGifCtrl is a simple widget for displaying a gif animation.
- * It is based on the animation classes by Julian Smart and 
+ * It is based on the animation classes by Julian Smart and
  * Guillermo Rodriguez Garcia, but is specialized for the reduced
  * requirements of the aMule project. It provides flicker-free
  * redrawing using wxBufferedPaintDC.
  *
  * To reduce complexity, several things have been hardcoded, though
- * they can easily be changed: 
+ * they can easily be changed:
  *  - The animation will continue to loop until Stop() is called.
  *  - The gif image is assumed to be transparent.
  *  - Start will start the animation from the first frame and wont
@@ -61,24 +61,24 @@ private:
 	wxTimer m_timer;
 	//! Current frame.
 	wxBitmap m_frame;
-	
+
 public:
 	/**
 	 * Contructor. See wxWindow class documentation for more information.
 	 */
 	MuleGifCtrl(
-		wxWindow *parent, wxWindowID id, 
+		wxWindow *parent, wxWindowID id,
 		const wxPoint& pos = wxDefaultPosition,
 		const wxSize& size = wxDefaultSize,
 		long style = 0,
 		const wxValidator& validator = wxDefaultValidator,
 		const wxString& name = wxControlNameStr);
-	
+
 	/**
 	 * Destructor
 	 */
 	virtual ~MuleGifCtrl();
-	
+
 	/**
 	 * This loads the gif image from a char-array with a specific size.
 	 *
@@ -94,45 +94,45 @@ public:
 	 * the output.
 	 */
 	bool LoadData(const char* data, int size);
-	
+
 	/**
 	 * This function starts playing the animation provided that a animation is
 	 * set and it's not a static image.
 	 */
 	void Start();
-	
+
 	/**
 	 * Stops the animation.
 	 */
 	void Stop();
-	
+
 	/**
 	 * Returns the prefered size of the widget.
 	 *
 	 * @return Prefered size, which is the size of the animation.
 	 */
 	virtual wxSize GetBestSize();
-	
+
 private:
 	/**
 	 * Timer function that selects the next frame in an animation.
 	 */
 	void OnTimer( wxTimerEvent& event );
-	
+
 	/**
 	 * Function for drawing the animation.
-	 * 
+	 *
 	 * This functions draws the current frame, which is changed in OnTimer(),
-	 * using a wxBufferedPaintDC. By doing so and also catching the 
+	 * using a wxBufferedPaintDC. By doing so and also catching the
 	 * ERASE_BACKGROUND events we avoid flickering on redraws.
 	 */
 	void OnPaint( wxPaintEvent& event );
-	
+
 	/**
 	 * This function is used to avoid flicker when redrawing.
 	 */
 	void OnErase( wxEraseEvent& WXUNUSED(event) ) {}
-	
+
 	//! Enables the event functions OnErase(), OnTimer() and OnPaint().
 	DECLARE_EVENT_TABLE()
 };
diff --git a/src/MuleListCtrl.cpp b/src/MuleListCtrl.cpp
index ddced61..ef1aedf 100644
--- a/src/MuleListCtrl.cpp
+++ b/src/MuleListCtrl.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,7 +48,7 @@
 // Global constants
 #ifdef __WXGTK__
 	const int COL_SIZE_MIN = 10;
-#elif defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXCOCOA__)
+#elif defined(__WINDOWS__ ) || defined(__WXMAC__) || defined(__WXCOCOA__)
 	const int COL_SIZE_MIN = 0;
 #else
 	#error Need to define COL_SIZE_MIN for your OS
@@ -56,7 +56,7 @@
 
 
 BEGIN_EVENT_TABLE(CMuleListCtrl, MuleExtern::wxGenericListCtrl)
-	EVT_LIST_COL_CLICK( -1, 		CMuleListCtrl::OnColumnLClick)
+	EVT_LIST_COL_CLICK( -1,			CMuleListCtrl::OnColumnLClick)
 	EVT_LIST_COL_RIGHT_CLICK( -1,	CMuleListCtrl::OnColumnRClick)
 	EVT_LIST_ITEM_SELECTED(-1,		CMuleListCtrl::OnItemSelected)
 	EVT_LIST_ITEM_DESELECTED(-1,	CMuleListCtrl::OnItemSelected)
@@ -89,7 +89,7 @@ CMuleListCtrl::CMuleListCtrl(wxWindow *parent, wxWindowID winid, const wxPoint&
 
 	// Default sort-order is to sort by the first column (asc).
 	m_sort_orders.push_back(CColPair(0, 0));
-	
+
 	SetImageList(&imgList, wxIMAGE_LIST_SMALL);
 }
 
@@ -134,7 +134,7 @@ long CMuleListCtrl::InsertColumn(long col, const wxString& heading, int format,
 void CMuleListCtrl::SaveSettings()
 {
 	wxCHECK_RET(!m_name.IsEmpty(), wxT("Cannot save settings for unnamed list"));
-	
+
 	wxConfigBase* cfg = wxConfigBase::Get();
 
 	// Save sorting, column and order
@@ -154,7 +154,7 @@ void CMuleListCtrl::SaveSettings()
 			++it;
 		}
 	}
-	
+
 	cfg->Write(wxT("/eMule/TableOrdering") + m_name, sortOrder);
 
 	// Save column widths. ATM this is also used to signify hidden columns.
@@ -172,7 +172,7 @@ void CMuleListCtrl::SaveSettings()
 	}
 
 	cfg->Write(wxT("/eMule/TableWidths") + m_name, buffer);
-}	
+}
 
 void CMuleListCtrl::ParseOldConfigEntries(const wxString& sortOrders, const wxString& columnWidths)
 {
@@ -240,7 +240,7 @@ void CMuleListCtrl::LoadSettings()
 		while (tokens.HasMoreTokens()) {
 			tokenList.push_front(tokens.GetNextToken());
 		}
-		for (CStringList::iterator it = tokenList.begin(); it != tokenList.end(); it++) {
+		for (CStringList::iterator it = tokenList.begin(); it != tokenList.end(); ++it) {
 			wxString token = *it;
 			wxString name = token.BeforeFirst(wxT(':'));
 			long order = StrToLong(token.AfterFirst(wxT(':')).BeforeLast(wxT(':')));
@@ -275,7 +275,7 @@ void CMuleListCtrl::LoadSettings()
 
 	// Re-enable sorting and resort the contents (if any).
 	m_sort_func = sortFunc;
-	SortList();	
+	SortList();
 }
 
 
@@ -340,13 +340,13 @@ long CMuleListCtrl::GetInsertPos(wxUIntPtr data)
 		do {
 			int cur_pos = ( Max - Min ) / 2 + Min;
 			int cmp = CompareItems(data, GetItemData(cur_pos));
-			
+
 			// Value is less than the one at the current pos
 			if ( cmp < 0 ) {
 				Max = cur_pos;
 			} else {
 				Min = cur_pos + 1;
-			}			
+			}
 		} while ((Min != Max));
 	}
 
@@ -370,9 +370,9 @@ int CMuleListCtrl::CompareItems(wxUIntPtr item1, wxUIntPtr item2)
 
 int CMuleListCtrl::SortProc(wxUIntPtr item1, wxUIntPtr item2, long data)
 {
-	MuleSortData* sortdata = (MuleSortData*) data;
+	MuleSortData* sortdata = reinterpret_cast<MuleSortData*>(data);
 	const CSortingList& orders = sortdata->m_sort_orders;
-	
+
 	CSortingList::const_iterator it = orders.begin();
 	for (; it != orders.end(); ++it) {
 		int result = sortdata->m_sort_func(item1, item2, it->first | it->second);
@@ -390,7 +390,7 @@ void CMuleListCtrl::SortList()
 	if (!IsSorting() && (m_sort_func && GetColumnCount())) {
 
 		m_isSorting = true;
-	
+
 		MuleSortData sortdata(m_sort_orders, m_sort_func);
 
 		// In many cases control already has correct order, and sorting causes nasty flickering.
@@ -418,15 +418,15 @@ void CMuleListCtrl::SortList()
 
 		// Positions are likely to be invalid after sorting.
 		ResetTTS();
-		
+
 		// Store the current selected items
 		ItemDataList selectedItems = GetSelectedItems();
 		// Store the focused item
 		long pos = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED );
 		wxUIntPtr focused = (pos == -1) ? 0 : GetItemData(pos);
-		
+
 		SortItems(SortProc, (long int)&sortdata);
-		
+
 		// Re-select the selected items.
 		for (unsigned i = 0; i < selectedItems.size(); ++i) {
 			long it_pos = FindItem(-1, selectedItems[i]);
@@ -434,7 +434,7 @@ void CMuleListCtrl::SortList()
 				SetItemState(it_pos, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
 			}
 		}
-		
+
 		// Set focus on item if any was focused
 		if (focused) {
 			long it_pos = FindItem(-1, focused);
@@ -451,19 +451,19 @@ CMuleListCtrl::ItemDataList CMuleListCtrl::GetSelectedItems() const
 {
 	// Create the initial vector with as many items as are selected
 	ItemDataList list( GetSelectedItemCount() );
-	
+
 	// Current item being located
 	unsigned int current = 0;
-	
+
 	long pos = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	while ( pos != -1 ) {
 		wxASSERT( current < list.size() );
-	
+
 		list[ current++ ] = GetItemData( pos );
 
 		pos = GetNextItem( pos, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	}
-	
+
 	return list;
 }
 
@@ -472,7 +472,7 @@ void CMuleListCtrl::OnColumnRClick(wxListEvent& evt)
 {
 	wxMenu menu;
 	wxListItem item;
-	
+
 	for ( int i = 0; i < GetColumnCount() && i < 15; ++i) {
 		GetColumn(i, item);
 
@@ -498,7 +498,7 @@ void CMuleListCtrl::OnMenuSelected( wxCommandEvent& evt )
 	} else {
 		int oldsize = m_column_sizes[col];
 		SetColumnWidth(col, (oldsize > 0) ? oldsize : GetColumnDefaultWidth(col));
-	}	
+	}
 }
 
 
@@ -509,14 +509,14 @@ void CMuleListCtrl::OnColumnLClick(wxListEvent& evt)
 		return;
 	} else if (evt.GetColumn() == -1) {
 		// This happens if a user clicks past the last column header.
-  		return;
+		return;
 	}
 
 	unsigned sort_order = 0;
 	if (m_sort_orders.front().first == (unsigned)evt.GetColumn()) {
 		// Same column as before, flip the sort-order
 		sort_order = m_sort_orders.front().second;
-		
+
 		if (sort_order & SORT_DES) {
 			if (AltSortAllowed(evt.GetColumn())) {
 				sort_order = (~sort_order) & SORT_ALT;
@@ -538,13 +538,13 @@ void CMuleListCtrl::OnColumnLClick(wxListEvent& evt)
 			}
 		}
 	}
-	
-	
-	SetSorting(evt.GetColumn(), sort_order);	
+
+
+	SetSorting(evt.GetColumn(), sort_order);
 }
 
 
-void CMuleListCtrl::ClearSelection() 
+void CMuleListCtrl::ClearSelection()
 {
 	if (GetSelectedItemCount()) {
 		long index = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
@@ -566,10 +566,10 @@ void CMuleListCtrl::SetSorting(unsigned column, unsigned order)
 {
 	MULE_VALIDATE_PARAMS(column < (unsigned)GetColumnCount(), wxT("Invalid column to sort by."));
 	MULE_VALIDATE_PARAMS(!(order & ~SORTING_MASK), wxT("Sorting order contains invalid data."));
-	
+
 	if (!m_sort_orders.empty()) {
 		SetColumnImage(m_sort_orders.front().first, -1);
-	
+
 		CSortingList::iterator it = m_sort_orders.begin();
 		for (; it != m_sort_orders.end(); ++it) {
 			if (it->first == column) {
@@ -579,8 +579,8 @@ void CMuleListCtrl::SetSorting(unsigned column, unsigned order)
 		}
 	}
 
-	m_sort_orders.push_front(CColPair(column, order));	
-	
+	m_sort_orders.push_front(CColPair(column, order));
+
 	if (order & SORT_DES) {
 		SetColumnImage(column, (order & SORT_ALT) ? 2 : 0);
 	} else {
@@ -595,7 +595,7 @@ bool CMuleListCtrl::IsItemSorted(long item)
 {
 	wxCHECK_MSG(m_sort_func, true, wxT("No sort function specified!"));
 	wxCHECK_MSG((item >= 0) && (item < GetItemCount()), true, wxT("Invalid item"));
-	
+
 	bool sorted = true;
 	wxUIntPtr data = GetItemData(item);
 
@@ -615,7 +615,7 @@ bool CMuleListCtrl::IsItemSorted(long item)
 
 void CMuleListCtrl::OnMouseWheel(wxMouseEvent &event)
 {
- 	// This enables scrolling with the mouse wheel
+	// This enables scrolling with the mouse wheel
 	event.Skip();
 }
 
@@ -625,7 +625,7 @@ void CMuleListCtrl::SetColumnImage(unsigned col, int image)
 	wxListItem item;
 	item.SetMask(wxLIST_MASK_IMAGE);
 	item.SetImage(image);
-	SetColumn(col, item);	
+	SetColumn(col, item);
 }
 
 
@@ -642,14 +642,14 @@ long CMuleListCtrl::CheckSelection(wxMouseEvent& event)
 long CMuleListCtrl::CheckSelection(wxListEvent& event)
 {
 	long item = event.GetIndex();
-	
+
 	// Check if clicked item is selected. If not, unselect all and select it.
 	if ((item != -1) && !GetItemState(item, wxLIST_STATE_SELECTED)) {
 		ClearSelection();
-		
+
 		SetItemState(item, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
 	}
-	
+
 	return item;
 }
 
@@ -682,7 +682,7 @@ void CMuleListCtrl::OnChar(wxKeyEvent& evt)
 		evt.Skip();
 		return;
 	}
-	
+
 	// We wish to avoid handling shortcuts, with the exception of 'select-all'.
 	if (evt.AltDown() || evt.ControlDown() || evt.MetaDown()) {
 		if (evt.CmdDown() && (evt.GetKeyCode() == 0x01)) {
@@ -691,13 +691,13 @@ void CMuleListCtrl::OnChar(wxKeyEvent& evt)
 				SetItemState(i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
 			}
 		}
-		
+
 		evt.Skip();
 		return;
 	} else if (m_tts_time + 1500u < GetTickCount()) {
 		m_tts_text.Clear();
 	}
-	
+
 	m_tts_time = GetTickCount();
 	m_tts_text.Append(wxTolower(key));
 
@@ -706,27 +706,27 @@ void CMuleListCtrl::OnChar(wxKeyEvent& evt)
 	if (m_tts_item >= GetItemCount()) {
 		m_tts_item = -1;
 	}
-	
+
 	unsigned next = (m_tts_item == -1) ? 0 : m_tts_item;
 	for (unsigned i = 0, count = GetItemCount(); i < count; ++i) {
 		wxString text = GetTTSText((next + i) % count).MakeLower();
 
 		if (text.StartsWith(m_tts_text)) {
 			ClearSelection();
-			
+
 			m_tts_item = (next + i) % count;
-			SetItemState(m_tts_item, wxLIST_STATE_FOCUSED | wxLIST_STATE_SELECTED, 
+			SetItemState(m_tts_item, wxLIST_STATE_FOCUSED | wxLIST_STATE_SELECTED,
 					wxLIST_STATE_FOCUSED | wxLIST_STATE_SELECTED);
 			EnsureVisible(m_tts_item);
 
 			return;
 		}
 	}
-	
+
 	if (m_tts_item != -1) {
 		// Crop the string so that it matches the old item (avoid typos).
 		wxString text = GetTTSText(m_tts_item).MakeLower();
-		
+
 		// If the last key didn't result in a hit, then we skip the event.
 		if (!text.StartsWith(m_tts_text)) {
 			if ((m_tts_text.Length() == 2) && (m_tts_text[0] == m_tts_text[1])) {
@@ -766,7 +766,7 @@ void CMuleListCtrl::OnItemSelected(wxListEvent& evt)
 
 
 void CMuleListCtrl::OnItemDeleted(wxListEvent& evt)
-{	
+{
 	if (evt.GetIndex() <= m_tts_item) {
 		m_tts_item--;
 	}
@@ -778,7 +778,7 @@ void CMuleListCtrl::OnItemDeleted(wxListEvent& evt)
 void CMuleListCtrl::OnAllItemsDeleted(wxListEvent& evt)
 {
 	ResetTTS();
-	
+
 	evt.Skip();
 }
 
diff --git a/src/MuleListCtrl.h b/src/MuleListCtrl.h
index 1015e16..9bcfdad 100644
--- a/src/MuleListCtrl.h
+++ b/src/MuleListCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -53,15 +53,15 @@ public:
 	/**
 	 * The various ways in which a column can be sorted.
 	 *
-	 * If SORT_DES is not set, sorting is taken to be 
-	 * ascending. If SORT_ALT is not set, sorting is 
+	 * If SORT_DES is not set, sorting is taken to be
+	 * ascending. If SORT_ALT is not set, sorting is
 	 * taken to be normal.
 	 */
 	enum MLOrder
 	{
 		//! If set, sorting is to be in descending order.
 		SORT_DES	= 0x1000,
-		
+
 		//! If sorting should use alternate method.
 		//! Is specified in with or without DEC.
 		SORT_ALT	= 0x2000
@@ -75,7 +75,7 @@ public:
 
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @see wxGenericListCtrl::wxGenericListCtrl for documentation of parameters.
 	 */
 	 CMuleListCtrl(
@@ -90,9 +90,9 @@ public:
 	/**
 	 * Destructor.
 	 *
-	 * If a name for the table has been specified with SetTableName, then 
+	 * If a name for the table has been specified with SetTableName, then
 	 * column settings will be saved automatically.
-	 */ 
+	 */
 	virtual ~CMuleListCtrl();
 
 	/**
@@ -116,11 +116,11 @@ public:
 	 * This function tries to locate the best place to insert an item.
 	 *
 	 * @param The userdata of the new item.
-	 * 
+	 *
 	 * This function does a binary type search to locate the best place to
-	 * insert the new item with the specified userdata. It then returns the 
+	 * insert the new item with the specified userdata. It then returns the
 	 * item after this position. To do this, the sorter-function must be set
-	 * through the SetSortFunc function, otherwise it will just return the 
+	 * through the SetSortFunc function, otherwise it will just return the
 	 * position after the last item.
 	 */
 	long GetInsertPos( wxUIntPtr data );
@@ -146,7 +146,7 @@ public:
 	 * vector, which can then be manipulated with regards to changes made
 	 * in the current order of the listctrl items.
 	 */
-	ItemDataList GetSelectedItems() const;	
+	ItemDataList GetSelectedItems() const;
 
 	/**
 	 * Sets the sorter function.
@@ -225,7 +225,7 @@ public:
 	 * Indicates if we're in the process of sorting.
 	 */
 	bool IsSorting() const { return m_isSorting; }
-	
+
 protected:
 
 	/**
@@ -236,7 +236,7 @@ protected:
 	 * Subclasses of CMuleListCtrl can allow alternative sorting
 	 * of columns. This is done by overriding this function and
 	 * returning true for the columns where alternative sorting
-	 * is desired. 
+	 * is desired.
 	 */
 	virtual bool AltSortAllowed(unsigned column) const;
 
@@ -256,7 +256,7 @@ protected:
 	 *
 	 * @param name The new name or an empty string to disable.
 	 *
-	 * You need to call this function with a unique name before you can 
+	 * You need to call this function with a unique name before you can
 	 * make use of the LoadSettings/SaveSettings functions. CMuleListCtrl
 	 * uses the name specified in this command to create unique keynames.
 	 */
@@ -307,7 +307,7 @@ protected:
 
 	/**
 	 * Check and fix selection state.
-	 * 
+	 *
 	 * @param event The event which triggered the selection.
 	 * @return The index of the item selected or -1 if none.
 	 *
@@ -383,14 +383,14 @@ private:
 
 	/**
 	 * Wrapper around the user-provided sorter function.
-	 * 
+	 *
 	 * This function ensures that items are sorted in the order
 	 * specified by clicking on column-headers, and also enforces
 	 * that different entries are never considered equal. This is
 	 * required for lists that make use of child-items, since
 	 * otherwise, parents may not end up properly located in
 	 * relation to child-items.
-	 */	
+	 */
 	static int wxCALLBACK SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData);
 
 	/** Compares two items in the list, using the current sort sequence. */
@@ -403,11 +403,11 @@ private:
 	class MuleSortData {
 	public:
 		MuleSortData(CSortingList sort_orders, MuleListCtrlCompare sort_func) : m_sort_orders(sort_orders), m_sort_func(sort_func) { };
-		
+
 		CSortingList m_sort_orders;
 		MuleListCtrlCompare m_sort_func;
-	};	
-	
+	};
+
 	//! This list contains in order the columns sequence to sort by.
 	CSortingList m_sort_orders;
 
@@ -464,7 +464,7 @@ private:
 		int index;
 		int	defaultWidth;
 		wxString name;
-		ColNameEntry(int _index, int _defaultWidth, const wxString& _name) 
+		ColNameEntry(int _index, int _defaultWidth, const wxString& _name)
 			:	index(_index), defaultWidth(_defaultWidth), name(_name) {}
 	};
 
@@ -476,13 +476,13 @@ private:
 
 	/// This vector contains a cache of the columns' sizes.
 	typedef std::vector<int>		ColSizeVector;
-	
+
 	/// Container for column sizes cache.
 	ColSizeVector	m_column_sizes;
 
 	// True while sorting.
 	bool m_isSorting;
-	
+
 	DECLARE_EVENT_TABLE()
 };
 
diff --git a/src/MuleNotebook.cpp b/src/MuleNotebook.cpp
index c7cc2d4..4300385 100644
--- a/src/MuleNotebook.cpp
+++ b/src/MuleNotebook.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,8 +38,8 @@ BEGIN_EVENT_TABLE(CMuleNotebook, wxNotebook)
 
 	EVT_MENU(MP_CLOSE_TAB,			CMuleNotebook::OnPopupClose)
 	EVT_MENU(MP_CLOSE_ALL_TABS,		CMuleNotebook::OnPopupCloseAll)
-	EVT_MENU(MP_CLOSE_OTHER_TABS,	CMuleNotebook::OnPopupCloseOthers)	
-	
+	EVT_MENU(MP_CLOSE_OTHER_TABS,	CMuleNotebook::OnPopupCloseOthers)
+
 	// Madcat - tab closing engine
 	EVT_LEFT_UP(CMuleNotebook::OnMouseLeftRelease)
 	EVT_MOTION(CMuleNotebook::OnMouseMotion)
@@ -79,7 +79,7 @@ bool CMuleNotebook::DeletePage(int nPage)
 	}
 
 	// Send a page change event to work around wx problem when newly selected page
-	// is identical with deleted page (wx sends a page change event during deletion, 
+	// is identical with deleted page (wx sends a page change event during deletion,
 	// but the control is still the one to be deleted at that moment).
 	if (GetPageCount()) {
 		// Select the tab that took the place of the one we just deleted.
@@ -110,9 +110,9 @@ bool CMuleNotebook::DeleteAllPages()
 	while ( GetPageCount() ) {
 		result &= DeletePage( 0 );
 	}
-	
+
 	Thaw();
-		
+
 	return result;
 }
 
@@ -153,15 +153,15 @@ void CMuleNotebook::OnRMButton(wxMouseEvent& event)
 	// Should we send the event to a specific widget?
 	if ( m_popup_widget ) {
 		wxMouseEvent evt = event;
-	
+
 		// Map the coordinates onto the parent
 		wxPoint point = evt.GetPosition();
 		point = ClientToScreen( point );
 		point = m_popup_widget->ScreenToClient( point );
-			
+
 		evt.m_x = point.x;
 		evt.m_y = point.y;
-			
+
 		m_popup_widget->GetEventHandler()->AddPendingEvent( evt );
 	} else {
 		wxMenu menu(_("Close"));
@@ -189,7 +189,7 @@ void CMuleNotebook::OnPopupCloseAll(wxCommandEvent& WXUNUSED(evt))
 void CMuleNotebook::OnPopupCloseOthers(wxCommandEvent& WXUNUSED(evt))
 {
 	wxNotebookPage* current = GetPage( GetSelection() );
-	
+
 	for ( int i = GetPageCount() - 1; i >= 0; i-- ) {
 		if ( current != GetPage( i ) )
 			DeletePage( i );
@@ -203,15 +203,15 @@ void CMuleNotebook::OnMouseLeftRelease(wxMouseEvent &event)
 	if (GetImageList() == NULL) {
 		// This Mulenotebook has no images on tabs, so nothing to do.
 		event.Skip();
-		return; 
+		return;
 	}
 
 	long xpos, ypos;
 	event.GetPosition(&xpos, &ypos);
-	
+
 	long flags = 0;
-	int tab = HitTest(wxPoint(xpos,ypos),&flags);	
-	
+	int tab = HitTest(wxPoint(xpos,ypos),&flags);
+
 	if ((tab != -1) &&  (flags == wxNB_HITTEST_ONICON)) {
 		// User did click on a 'x'
 		DeletePage(tab);
@@ -219,7 +219,7 @@ void CMuleNotebook::OnMouseLeftRelease(wxMouseEvent &event)
 		// Is not a 'x'. Send this event up.
 		event.Skip();
 	}
-	
+
 }
 
 void CMuleNotebook::OnMouseMotion(wxMouseEvent &event)
@@ -230,18 +230,18 @@ void CMuleNotebook::OnMouseMotion(wxMouseEvent &event)
 		event.Skip();
 		return;
 	}
-	
+
 	long flags = 0;
-	int tab = HitTest(wxPoint(event.m_x,event.m_y),&flags);	
+	int tab = HitTest(wxPoint(event.m_x,event.m_y),&flags);
 
 	// Clear the highlight for all tabs.
 	for (int i=0;i<(int)GetPageCount();++i) {
 		SetPageImage(i, 0);
 	}
-	
+
 	if ((tab != -1) &&  (flags == wxNB_HITTEST_ONICON)) {
 		// Mouse is over a 'x'
-		SetPageImage(tab, 1);		
+		SetPageImage(tab, 1);
 	} else {
 		// Is not a 'x'. Send this event up.
 		event.Skip();
diff --git a/src/MuleNotebook.h b/src/MuleNotebook.h
index 199a832..a573574 100644
--- a/src/MuleNotebook.h
+++ b/src/MuleNotebook.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -54,7 +54,7 @@ class wxWindow;
 
 
 /**
- * This is an NoteBook control which adds additional features above what is 
+ * This is an NoteBook control which adds additional features above what is
  * provided by the wxNoteBook widget. Currently it includes:
  *  - Use of images on the tabs for closing the pages.
  *  - A popup-menu for closing one or more pages.
@@ -96,12 +96,12 @@ public:
 	void EnablePopup( bool enable );
 
 	/**
-	 * Sets an external widget to handle the popup-event.  
+	 * Sets an external widget to handle the popup-event.
 	 *
 	 * @param widget The widget which would recieve the event or NULL to disable.
 	 *
-	 * Setting the handler to a non-NULL pointer means that upon right-clicks, a 
-	 * right click event will be sent to that widget, so that it can create a 
+	 * Setting the handler to a non-NULL pointer means that upon right-clicks, a
+	 * right click event will be sent to that widget, so that it can create a
 	 * popup-menu. The coordinates will be fixed to fit onto the specified widget,
 	 * so no mapping is needed.
 	 */
@@ -117,17 +117,17 @@ protected:
 	 * Event handler for mouse motion (for highlighting the 'x')
 	 */
 	void OnMouseMotion(wxMouseEvent &event);
-	
+
 	/**
 	 * Event-handler for right-clicks that takes care of displaying the popup-menu.
-	 */	 
+	 */
 	void OnRMButton(wxMouseEvent& event);
 
 	/**
 	 * Event-handler fo the Close item on the popup-menu.
 	 */
 	void OnPopupClose(wxCommandEvent& evt);
-	
+
 	/**
 	 * Event-handler fo the CloseAll item on the popup-menu.
 	 */
@@ -147,7 +147,7 @@ protected:
 	DECLARE_EVENT_TABLE()
 };
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	#define MULE_NOTEBOOK_TAB_HEIGHT 26
 #else
 	#define MULE_NOTEBOOK_TAB_HEIGHT 40
diff --git a/src/MuleTextCtrl.cpp b/src/MuleTextCtrl.cpp
index a202529..3f10ab6 100644
--- a/src/MuleTextCtrl.cpp
+++ b/src/MuleTextCtrl.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -31,17 +31,17 @@
 /**
  * These are the IDs used to identify the different menu-items.
  *
- * Please note that I make use of predefined wxIDs for the first two, but not 
- * for Paste. This is because wxMenu poses some restrictions on what can be 
- * done with items using those IDs, and by default, Paste is enabled even if 
+ * Please note that I make use of predefined wxIDs for the first two, but not
+ * for Paste. This is because wxMenu poses some restrictions on what can be
+ * done with items using those IDs, and by default, Paste is enabled even if
  * there's nothing to paste!
- */ 
+ */
 enum CMTC_Events
 {
 	//! Cut text, uses provided ID
 	CMTCE_Cut	= wxID_CUT,
 	//! Copy text, uses privided ID
-	CMTCE_Copy 	= wxID_COPY,
+	CMTCE_Copy	= wxID_COPY,
 	//! Paste text, uses custom ID
 	CMTCE_Paste = wxID_HIGHEST + 666,	// Random satanic ID
 	//! Clear text, uses custom ID
@@ -55,9 +55,9 @@ BEGIN_EVENT_TABLE(CMuleTextCtrl, wxTextCtrl)
 #ifndef __WXGTK__
 	EVT_RIGHT_DOWN	(CMuleTextCtrl::OnRightDown)
 
-	EVT_MENU    	(CMTCE_Paste,	CMuleTextCtrl::OnPaste)
-	EVT_MENU    	(CMTCE_Clear,	CMuleTextCtrl::OnClear)
-	EVT_MENU    	(CMTCE_SelAll,	CMuleTextCtrl::OnSelAll)
+	EVT_MENU	(CMTCE_Paste,	CMuleTextCtrl::OnPaste)
+	EVT_MENU	(CMTCE_Clear,	CMuleTextCtrl::OnClear)
+	EVT_MENU	(CMTCE_SelAll,	CMuleTextCtrl::OnSelAll)
 #endif
 END_EVENT_TABLE()
 
@@ -75,14 +75,14 @@ void CMuleTextCtrl::OnRightDown( wxMouseEvent& evt )
 		SetFocus();
 
 	wxMenu popup_menu;
-	
+
 	popup_menu.Append( CMTCE_Cut, _("Cut") );
 	popup_menu.Append( CMTCE_Copy, _("Copy") );
 	popup_menu.Append( CMTCE_Paste, _("Paste") );
 	popup_menu.Append( CMTCE_Clear, _("Clear") );
-	
+
 	popup_menu.AppendSeparator();
-	
+
 	popup_menu.Append( CMTCE_SelAll, _("Select All") );
 
 
@@ -95,7 +95,7 @@ void CMuleTextCtrl::OnRightDown( wxMouseEvent& evt )
 		if ( wxTheClipboard->Open() ) {
 			if ( wxTheClipboard->IsSupported( wxDF_TEXT ) ) {
 				wxTextDataObject data;
-	 			wxTheClipboard->GetData( data );
+				wxTheClipboard->GetData( data );
 
 				canpaste = (data.GetTextLength() > 0);
 			}
diff --git a/src/MuleTextCtrl.h b/src/MuleTextCtrl.h
index ff5b707..f97ca06 100644
--- a/src/MuleTextCtrl.h
+++ b/src/MuleTextCtrl.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -68,8 +68,8 @@ protected:
 	 * This function takes care of creating the popup-menu.
 	 *
 	 * Please note that by using the RIGHT_DOWN event, I'm disabling the second
-	 * type of selection that the wxTextCtrl supports. However, I frankly only 
-	 * noticed that second selection type while implementing this, so I doubth 
+	 * type of selection that the wxTextCtrl supports. However, I frankly only
+	 * noticed that second selection type while implementing this, so I doubth
 	 * that anyone will be missing it ...
 	 */
 	void OnRightDown( wxMouseEvent& evt );
@@ -78,20 +78,20 @@ protected:
 	 * This function takes care of pasting text.
 	 *
 	 * Pleaes note that it is only needed because wxMenu disallows enabling and
-	 * disabling of items that use the predefined wxID_PASTE id. This is the 
-	 * only one of the already provided commands we need to override, since the 
+	 * disabling of items that use the predefined wxID_PASTE id. This is the
+	 * only one of the already provided commands we need to override, since the
 	 * others already work just fine.
 	 */
 	void OnPaste( wxCommandEvent& evt );
-	
+
 	/**
 	 * This functions takes care of selecting all text.
 	 */
 	void OnSelAll( wxCommandEvent& evt );
-	
+
 	/**
 	 * This functions takes care of clearing the text.
-	 */ 
+	 */
 	void OnClear( wxCommandEvent& evt );
 
 
diff --git a/src/MuleThread.h b/src/MuleThread.h
index c9b805a..29f1c66 100644
--- a/src/MuleThread.h
+++ b/src/MuleThread.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/MuleTrayIcon.cpp b/src/MuleTrayIcon.cpp
index b23ed86..72a9f65 100644
--- a/src/MuleTrayIcon.cpp
+++ b/src/MuleTrayIcon.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,8 +37,8 @@
 
 #include <wx/menu.h>
 
-#include "amule.h" 			// Needed for theApp
-#include "amuleDlg.h" 		// Needed for IsShown
+#include "amule.h"			// Needed for theApp
+#include "amuleDlg.h"		// Needed for IsShown
 #include "Preferences.h"	// Needed for thePrefs
 #include "ServerConnect.h"	// Needed for CServerConnect
 #include "Server.h"			// Needed for CServer
@@ -113,7 +113,7 @@ void CMuleTrayIcon::SetUploadSpeed(wxCommandEvent& event){
 }
 
 void CMuleTrayIcon::SetDownloadSpeed(wxCommandEvent& event){
-	
+
 	wxObject* obj=event.GetEventObject();
 	if (obj!=NULL) {
 		wxMenu *menu = dynamic_cast<wxMenu *>(obj);
@@ -140,7 +140,7 @@ void CMuleTrayIcon::SetDownloadSpeed(wxCommandEvent& event){
 
 
 void CMuleTrayIcon::ServerConnection(wxCommandEvent& WXUNUSED(event))
-{	
+{
 	wxCommandEvent evt;
 	theApp->amuledlg->OnBnConnect(evt);
 }
@@ -171,7 +171,7 @@ CMuleTrayIcon::CMuleTrayIcon()
 	Disconnected_Icon_size = wxIcon(mule_Tr_grey_big_ico_xpm).GetHeight();
 }
 
-CMuleTrayIcon::~CMuleTrayIcon() 
+CMuleTrayIcon::~CMuleTrayIcon()
 {
 }
 
@@ -186,13 +186,13 @@ void CMuleTrayIcon::SetTrayIcon(int Icon, uint32 percent)
 	switch (Icon) {
 		case TRAY_ICON_HIGHID:
 			// Most likely case, test first
-			Bar_ySize = HighId_Icon_size; 
+			Bar_ySize = HighId_Icon_size;
 			break;
 		case TRAY_ICON_LOWID:
-			Bar_ySize = LowId_Icon_size; 
+			Bar_ySize = LowId_Icon_size;
 			break;
 		case TRAY_ICON_DISCONNECTED:
-			Bar_ySize = Disconnected_Icon_size; 
+			Bar_ySize = Disconnected_Icon_size;
 			break;
 		default:
 			wxFAIL;
@@ -200,7 +200,7 @@ void CMuleTrayIcon::SetTrayIcon(int Icon, uint32 percent)
 
 	// Lookup this values for speed improvement: don't draw if not needed
 	int NewSize = (Bar_ySize * percent) / 100;
-	
+
 	if ((Old_Icon != Icon) || (Old_SpeedSize != NewSize)) {
 
 		if ((Old_SpeedSize > NewSize) || (Old_Icon != Icon)) {
@@ -223,44 +223,44 @@ void CMuleTrayIcon::SetTrayIcon(int Icon, uint32 percent)
 
 		Old_Icon = Icon;
 		Old_SpeedSize = NewSize;
-		
+
 		// Do whatever to the icon before drawing it (percent)
-		
+
 		wxBitmap TempBMP;
 		TempBMP.CopyFromIcon(CurrentIcon);
-		
+
 		TempBMP.SetMask(NULL);
 
 		IconWithSpeed.SelectObject(TempBMP);
 
-		
-		// Speed bar is: centered, taking 80% of the icon heigh, and 
+
+		// Speed bar is: centered, taking 80% of the icon heigh, and
 		// right-justified taking a 10% of the icon width.
-		
+
 		// X
-		int Bar_xSize = 4; 
-		int Bar_xPos = CurrentIcon.GetWidth() - 5; 
-		
+		int Bar_xSize = 4;
+		int Bar_xPos = CurrentIcon.GetWidth() - 5;
+
 		IconWithSpeed.SetBrush(*(wxTheBrushList->FindOrCreateBrush(CStatisticsDlg::getColors(11))));
 		IconWithSpeed.SetPen(*wxTRANSPARENT_PEN);
-		
+
 		IconWithSpeed.DrawRectangle(Bar_xPos + 1, Bar_ySize - NewSize, Bar_xSize -2 , NewSize);
-		
+
 		// Unselect the icon.
 		IconWithSpeed.SelectObject(wxNullBitmap);
-		
+
 		// Do transparency
 
 		// Set a new mask with transparency set to red.
 		wxMask* new_mask = new wxMask(TempBMP, wxColour(0xFF, 0x00, 0x00));
-		
+
 		TempBMP.SetMask(new_mask);
 		CurrentIcon.CopyFromBitmap(TempBMP);
 
 		UpdateTray();
 	}
 }
-		
+
 void CMuleTrayIcon::SetTrayToolTip(const wxString& Tip)
 {
 	CurrentTip = Tip;
@@ -275,20 +275,20 @@ void CMuleTrayIcon::UpdateTray()
 {
 	// Icon update and Tip update
 #ifndef __WXCOCOA__
-	if (IsOk()) 
+	if (IsOk())
 #endif
 	{
 		SetIcon(CurrentIcon, CurrentTip);
-	}	
+	}
 }
 
 
-wxMenu* CMuleTrayIcon::CreatePopupMenu() 
+wxMenu* CMuleTrayIcon::CreatePopupMenu()
 {
 	// Creates dinamically the menu to show the user.
 	wxMenu *traymenu = new wxMenu();
 	traymenu->SetTitle(_("aMule Tray Menu"));
-	
+
 	// Build the Top string name
 	wxString label = MOD_VERSION_LONG;
 	traymenu->Append(TRAY_MENU_INFO, label);
@@ -300,7 +300,7 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 	if ( max_upload == UNLIMITED ) {
 		label += _("UL: None");
 	}
-	else { 
+	else {
 		label += CFormat(_("UL: %u")) % max_upload;
 	}
 	label += wxT(", ");
@@ -331,11 +331,11 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 
 		ClientInfoMenu->Append(TRAY_MENU_CLIENTINFO_ITEM,temp);
 	}
-	
+
 	// Client ID
 	{
 		wxString temp = _("ClientID: ");
-		
+
 		if (theApp->IsConnectedED2K()) {
 			temp += CFormat(wxT("%u")) % theApp->GetED2KID();
 		} else {
@@ -348,7 +348,7 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 	{
 		wxString temp_name = _("ServerName: ");
 		wxString temp_ip   = _("ServerIP: ");
-		
+
 		if ( theApp->serverconnect->GetCurrentServer() ) {
 			temp_name += theApp->serverconnect->GetCurrentServer()->GetListName();
 			temp_ip   += theApp->serverconnect->GetCurrentServer()->GetFullIP();
@@ -359,7 +359,7 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 		ClientInfoMenu->Append(TRAY_MENU_CLIENTINFO_ITEM,temp_name);
 		ClientInfoMenu->Append(TRAY_MENU_CLIENTINFO_ITEM,temp_ip);
 	}
-	
+
 	// IP Address
 	{
 		wxString temp = CFormat(_("IP: %s")) % ( (theApp->GetPublicIP()) ? Uint32toStringIP(theApp->GetPublicIP()) : wxString(_("Unknown")) );
@@ -377,7 +377,7 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 		}
 		ClientInfoMenu->Append(TRAY_MENU_CLIENTINFO_ITEM,temp);
 	}
-	
+
 	// UDP PORT
 	{
 		wxString temp;
@@ -418,14 +418,14 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 		wxString temp = CFormat(_("Queued clients: %d")) % theStats::GetWaitingUserCount();
 		ClientInfoMenu->Append(TRAY_MENU_CLIENTINFO_ITEM,temp);
 	}
-	
+
 	// Total Downloaded
 	{
 		wxString temp = CastItoXBytes(theStats::GetTotalReceivedBytes());
 		temp = CFormat(_("Total DL: %s")) % temp;
 		ClientInfoMenu->Append(TRAY_MENU_CLIENTINFO_ITEM,temp);
 	}
-	
+
 	// Total Uploaded
 	{
 		wxString temp = CastItoXBytes(theStats::GetTotalSentBytes());
@@ -434,31 +434,31 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 	}
 
 	traymenu->Append(TRAY_MENU_CLIENTINFO,ClientInfoMenu->GetTitle(),ClientInfoMenu);
-	
+
 	// Separator
 	traymenu->AppendSeparator();
-	
+
 	// Upload Speed sub-menu
 	wxMenu* UploadSpeedMenu = new wxMenu();
 	UploadSpeedMenu->SetTitle(_("Upload limit"));
-	
+
 	// Download Speed sub-menu
 	wxMenu* DownloadSpeedMenu = new wxMenu();
 	DownloadSpeedMenu->SetTitle(_("Download limit"));
-	
+
 	// Upload Speed sub-menu
 	{
 		UploadSpeedMenu->Append(UPLOAD_ITEM1, _("Unlimited"));
 
 		uint32 max_ul_speed = thePrefs::GetMaxGraphUploadRate();
-		
+
 		if ( max_ul_speed == UNLIMITED ) {
 			max_ul_speed = 100;
 		}
 		else if ( max_ul_speed < 10 ) {
 			max_ul_speed = 10;
 		}
-			
+
 		for ( int i = 0; i < 5; i++ ) {
 			unsigned int tempspeed = (unsigned int)((double)max_ul_speed / 5) * (5 - i);
 			wxString temp = CFormat(wxT("%u %s")) % tempspeed % _("kB/s");
@@ -466,20 +466,20 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 		}
 	}
 	traymenu->Append(0,UploadSpeedMenu->GetTitle(),UploadSpeedMenu);
-	
+
 	// Download Speed sub-menu
-	{ 
+	{
 		DownloadSpeedMenu->Append(DOWNLOAD_ITEM1, _("Unlimited"));
 
 		uint32 max_dl_speed = thePrefs::GetMaxGraphDownloadRate();
-		
+
 		if ( max_dl_speed == UNLIMITED ) {
 			max_dl_speed = 100;
 		}
 		else if ( max_dl_speed < 10 ) {
 			max_dl_speed = 10;
 		}
-	
+
 		for ( int i = 0; i < 5; i++ ) {
 			unsigned int tempspeed = (unsigned int)((double)max_dl_speed / 5) * (5 - i);
 			wxString temp = CFormat(wxT("%d %s")) % tempspeed % _("kB/s");
@@ -490,7 +490,7 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 	traymenu->Append(0,DownloadSpeedMenu->GetTitle(),DownloadSpeedMenu);
 	// Separator
 	traymenu->AppendSeparator();
-	
+
 	if (theApp->IsConnected()) {
 		//Disconnection Speed item
 		traymenu->Append(TRAY_MENU_DISCONNECT, _("Disconnect"));
@@ -498,10 +498,10 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 		//Connect item
 		traymenu->Append(TRAY_MENU_CONNECT, _("Connect"));
 	}
-	
+
 	// Separator
 	traymenu->AppendSeparator();
-	
+
 	if (theApp->amuledlg->IsShown()) {
 		//hide item
 		traymenu->Append(TRAY_MENU_HIDE, _("Hide aMule"));
@@ -509,15 +509,15 @@ wxMenu* CMuleTrayIcon::CreatePopupMenu()
 		//show item
 		traymenu->Append(TRAY_MENU_SHOW, _("Show aMule"));
 	}
-	
+
 	// Separator
 	traymenu->AppendSeparator();
 
 	// Exit item
 	traymenu->Append(TRAY_MENU_EXIT, _("Exit"));
-	
+
 	return traymenu;
-}		
+}
 
 void CMuleTrayIcon::SwitchShow(wxTaskBarIconEvent&)
 {
diff --git a/src/MuleTrayIcon.h b/src/MuleTrayIcon.h
index 31e4627..9d45b34 100644
--- a/src/MuleTrayIcon.h
+++ b/src/MuleTrayIcon.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -56,7 +56,7 @@ enum {
 
 
 /**
- * The mule tray icon class is responsible for drawing the mule systray icon 
+ * The mule tray icon class is responsible for drawing the mule systray icon
  * and reacting to the user input on it.
  */
 class CMuleTrayIcon : public wxTaskBarIcon
@@ -73,17 +73,17 @@ public:
 	~CMuleTrayIcon();
 
 	/**
-	 * Set the Tray icon. 
+	 * Set the Tray icon.
 	 * @param Icon The wxIcon object with the new tray icon
 	 */
 	void SetTrayIcon(int Icon, uint32 percent);
-	
+
 	/**
 	 * Set the Tray tooltip
 	 * @param Tip The wxString object with the new tray tooltip
 	 */
 	void SetTrayToolTip(const wxString& Tip);
-	
+
 private:
 
 	virtual wxMenu* CreatePopupMenu();
@@ -96,7 +96,7 @@ private:
 	void ServerConnection(wxCommandEvent&);
 	void ShowHide(wxCommandEvent&);
 	void Close(wxCommandEvent&);
-	
+
 	int Old_Icon;
 	int Old_SpeedSize;
 
diff --git a/src/MuleUDPSocket.cpp b/src/MuleUDPSocket.cpp
index 496527c..64fb1e9 100644
--- a/src/MuleUDPSocket.cpp
+++ b/src/MuleUDPSocket.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -40,6 +40,7 @@
 #include "OtherFunctions.h"
 #include "kademlia/kademlia/Prefs.h"
 #include "ClientList.h"
+#include "Preferences.h"
 
 
 CMuleUDPSocket::CMuleUDPSocket(const wxString& name, int id, const amuleIPV4Address& address, const CProxyData* ProxyData)
@@ -66,14 +67,14 @@ CMuleUDPSocket::~CMuleUDPSocket()
 void CMuleUDPSocket::CreateSocket()
 {
 	wxCHECK_RET(!m_socket, wxT("Socket already opened."));
-	
+
 	m_socket = new CEncryptedDatagramSocket(m_addr, wxSOCKET_NOWAIT, m_proxy);
 	m_socket->SetClientData(this);
 	m_socket->SetEventHandler(*theApp, m_id);
 	m_socket->SetNotify(wxSOCKET_INPUT_FLAG | wxSOCKET_OUTPUT_FLAG | wxSOCKET_LOST_FLAG);
 	m_socket->Notify(true);
 
-	if (!m_socket->Ok()) {
+	if (!m_socket->IsOk()) {
 		AddDebugLogLineC(logMuleUDP, wxT("Failed to create valid ") + m_name);
 		DestroySocket();
 	} else {
@@ -92,7 +93,7 @@ void CMuleUDPSocket::DestroySocket()
 		m_socket->Destroy();
 		m_socket = NULL;
 	}
-}	
+}
 
 
 void CMuleUDPSocket::Open()
@@ -116,7 +117,7 @@ void CMuleUDPSocket::OnSend(int errorCode)
 	if (errorCode) {
 		return;
 	}
-	
+
 	{
 		wxMutexLocker lock(m_mutex);
 		m_busy = false;
@@ -129,36 +130,33 @@ void CMuleUDPSocket::OnSend(int errorCode)
 }
 
 
-const unsigned UDP_BUFFER_SIZE = 16384;
-
-
 void CMuleUDPSocket::OnReceive(int errorCode)
 {
 	AddDebugLogLineN(logMuleUDP, CFormat(wxT("Got UDP callback for read: Error %i Socket state %i"))
 		% errorCode % Ok());
-	
+
 	char buffer[UDP_BUFFER_SIZE];
-	wxIPV4address addr;
+	amuleIPV4Address addr;
 	unsigned length = 0;
 	bool error = false;
 	int lastError = 0;
-	
+
 	{
 		wxMutexLocker lock(m_mutex);
 
-		if (errorCode || (m_socket == NULL) || !m_socket->Ok()) {
+		if (errorCode || (m_socket == NULL) || !m_socket->IsOk()) {
 			DestroySocket();
 			CreateSocket();
 
 			return;
 		}
 
-		
-		length = m_socket->RecvFrom(addr, buffer, UDP_BUFFER_SIZE).LastCount();
-		error = m_socket->Error();
+
+		length = m_socket->RecvFrom(addr, buffer, UDP_BUFFER_SIZE);
 		lastError = m_socket->LastError();
+		error = lastError != 0;
 	}
-	
+
 	const uint32 ip = StringIPtoUint32(addr.IPAddress());
 	const uint16 port = addr.Service();
 	if (error) {
@@ -194,7 +192,7 @@ void CMuleUDPSocket::OnDisconnected(int WXUNUSED(errorCode))
 	/* Due to bugs in wxWidgets, UDP sockets will sometimes
 	 * be closed. This is caused by the fact that wx treats
 	 * zero-length datagrams as EOF, which is only the case
-	 * when dealing with streaming sockets. 
+	 * when dealing with streaming sockets.
 	 *
 	 * This has been reported as patch #1885472:
 	 * http://sourceforge.net/tracker/index.php?func=detail&aid=1885472&group_id=9863&atid=309863
@@ -215,7 +213,7 @@ void CMuleUDPSocket::SendPacket(CPacket* packet, uint32 IP, uint16 port, bool bE
 	if (!port || !IP) {
 		return;
 	}
-	
+
 	if (!Ok()) {
 		AddDebugLogLineN(logMuleUDP, (m_name + wxT(": Packet discarded, socket not Ok ("))
 			<< Uint32_16toStringIP_Port(IP, port) << wxT("): ") << packet->GetPacketSize() << wxT("b"));
@@ -223,18 +221,19 @@ void CMuleUDPSocket::SendPacket(CPacket* packet, uint32 IP, uint16 port, bool bE
 
 		return;
 	}
-	
+
 	AddDebugLogLineN(logMuleUDP, (m_name + wxT(": Packet queued ("))
 		<< Uint32_16toStringIP_Port(IP, port) << wxT("): ") << packet->GetPacketSize() << wxT("b"));
-	
+
 	UDPPack newpending;
 	newpending.IP = IP;
 	newpending.port = port;
 	newpending.packet = packet;
 	newpending.time = GetTickCount();
- 	newpending.bEncrypt = bEncrypt && (pachTargetClientHashORKadID != NULL || (bKad && nReceiverVerifyKey != 0));
+	newpending.bEncrypt = bEncrypt && (pachTargetClientHashORKadID != NULL || (bKad && nReceiverVerifyKey != 0))
+							&& thePrefs::IsClientCryptLayerSupported();
 	newpending.bKad = bKad;
-	newpending.nReceiverVerifyKey = nReceiverVerifyKey;   
+	newpending.nReceiverVerifyKey = nReceiverVerifyKey;
 	if (newpending.bEncrypt && pachTargetClientHashORKadID != NULL) {
 		md4cpy(newpending.pachTargetClientHashORKadID, pachTargetClientHashORKadID);
 	} else {
@@ -242,7 +241,7 @@ void CMuleUDPSocket::SendPacket(CPacket* packet, uint32 IP, uint16 port, bool bE
 	}
 
 	{
-		wxMutexLocker lock(m_mutex);		
+		wxMutexLocker lock(m_mutex);
 		m_queue.push_back(newpending);
 	}
 
@@ -254,7 +253,7 @@ bool CMuleUDPSocket::Ok()
 {
 	wxMutexLocker lock(m_mutex);
 
-	return m_socket && m_socket->Ok();
+	return m_socket && m_socket->IsOk();
 }
 
 
@@ -302,35 +301,31 @@ SocketSentBytes CMuleUDPSocket::SendControlData(uint32 maxNumberOfBytesToSend, u
 bool CMuleUDPSocket::SendTo(uint8_t *buffer, uint32_t length, uint32_t ip, uint16_t port)
 {
 	// Just pretend that we sent the packet in order to avoid infinite loops.
-	if (!(m_socket && m_socket->Ok())) {
+	if (!(m_socket && m_socket->IsOk())) {
 		return true;
 	}
-	
+
 	amuleIPV4Address addr;
 	addr.Hostname(ip);
 	addr.Service(port);
 
 	// We better clear this flag here, status might have been changed
 	// between the U.B.T. addition and the real sending happening later
-	m_busy = false; 
+	m_busy = false;
 	bool sent = false;
 	m_socket->SendTo(addr, buffer, length);
-	if (m_socket->Error()) {
-		wxSocketError error = m_socket->LastError();
-		
-		if (error == wxSOCKET_WOULDBLOCK) {
-			// Socket is busy and can't send this data right now,
-			// so we just return not sent and set the wouldblock 
-			// flag so it gets resent when socket is ready.
-			m_busy = true;
-		} else {
-			// An error which we can't handle happended, so we drop 
-			// the packet rather than risk entering an infinite loop.
-			AddLogLineN((wxT("WARNING! ") + m_name + wxT(": Packet to ")) 
-				<< Uint32_16toStringIP_Port(ip, port)
-				<< wxT(" discarded due to error (") << error << wxT(") while sending."));
-			sent = true;
-		}
+	if (m_socket->BlocksWrite()) {
+		// Socket is busy and can't send this data right now,
+		// so we just return not sent and set the wouldblock
+		// flag so it gets resent when socket is ready.
+		m_busy = true;
+	} else if (uint32 error = m_socket->LastError()) {
+		// An error which we can't handle happended, so we drop
+		// the packet rather than risk entering an infinite loop.
+		AddLogLineN((wxT("WARNING! ") + m_name + wxT(": Packet to "))
+			<< Uint32_16toStringIP_Port(ip, port)
+			<< wxT(" discarded due to error (") << error << wxT(") while sending."));
+		sent = true;
 	} else {
 		AddDebugLogLineN(logMuleUDP, (m_name + wxT(": Packet sent ("))
 			<< Uint32_16toStringIP_Port(ip, port) << wxT("): ")
diff --git a/src/MuleUDPSocket.h b/src/MuleUDPSocket.h
index e1a937d..2f4370d 100644
--- a/src/MuleUDPSocket.h
+++ b/src/MuleUDPSocket.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,7 +39,7 @@ class CPacket;
  *
  * The CMuleUDPSocket are created with the NOWAIT option and
  * handle both INPUT and OUTPUT events.
- * 
+ *
  * The following additional features are provided compared to CDatagramSocketProxy:
  *  - Goverened by the UBT.
  *  - Automatic sending/receiving of packets.
@@ -50,7 +50,7 @@ class CPacket;
  */
 class CMuleUDPSocket : public ThrottledControlSocket
 {
-	
+
 public:
 	/**
 	 * Opens a UDP socket at the specified address.
@@ -61,13 +61,13 @@ public:
 	 * @param ProxyData ProxyData assosiated with the socket.
 	 */
 	CMuleUDPSocket(const wxString& name, int id, const amuleIPV4Address& address, const CProxyData* ProxyData = NULL);
-	
+
 	/**
 	 * Destructor, safely closes the socket if opened.
 	 */
 	virtual ~CMuleUDPSocket();
 
-	
+
 	/**
 	 * Opens the socket.
 	 *
@@ -75,7 +75,7 @@ public:
 	 * the constructor.
 	 */
 	void Open();
-	
+
 	/**
 	 * Closes the socket.
 	 *
@@ -83,8 +83,8 @@ public:
 	 * already closed socket is an illegal operation.
 	 */
 	void Close();
-	
-	
+
+
 	/** This function is called by aMule when the socket may send. */
 	virtual void OnSend(int errorCode);
 	/** This function is called by aMule when there are data to be received. */
@@ -101,7 +101,7 @@ public:
 	 * @param IP The target IP address.
 	 * @param port The target port.
 	 * @param bEncrypt If the packet must be encrypted
-	 * @param port The target port.	 
+	 * @param port The target port.
 	 * @param pachTargetClientHashORKadID The client hash or Kad ID
 	 * @param bKad
 	 * @param nReceiverVerifyKey
@@ -118,6 +118,9 @@ public:
 	 */
 	bool	Ok();
 
+	/** Read buffer size */
+	static const unsigned UDP_BUFFER_SIZE = 16384;
+
 protected:
 	/**
 	 * This function is called when a packet has been received.
@@ -128,10 +131,10 @@ protected:
 	 */
 	virtual void OnPacketReceived(uint32 ip, uint16 port, byte* buffer, size_t length) = 0;
 
-	
+
 	/** See ThrottledControlSocket::SendControlData */
 	SocketSentBytes  SendControlData(uint32 maxNumberOfBytesToSend, uint32 minFragSize);
-	    
+
 private:
 	/**
 	 * Sends a packet to the specified address.
@@ -157,7 +160,7 @@ private:
 	 */
 	void	DestroySocket();
 
-	
+
 	//! Specifies if the last write attempt would cause the socket to block.
 	bool					m_busy;
 	//! The name of the socket, used for debugging messages.
@@ -172,7 +175,7 @@ private:
 	wxMutex					m_mutex;
 	//! The currently opened socket, if any.
 	CEncryptedDatagramSocket*	m_socket;
-	
+
 	//! Storage struct used for queueing packets.
 	struct UDPPack
 	{
@@ -191,9 +194,9 @@ private:
 		// The verification key for RC4 encryption.
 		uint32 nReceiverVerifyKey;
 		// Client hash or kad ID.
-		uint8 pachTargetClientHashORKadID[16];		
+		uint8 pachTargetClientHashORKadID[16];
 	} ;
-	
+
 	//! The queue of packets waiting to be sent.
 	std::list<UDPPack> m_queue;
 };
diff --git a/src/NetworkFunctions.cpp b/src/NetworkFunctions.cpp
index 562df19..831355e 100644
--- a/src/NetworkFunctions.cpp
+++ b/src/NetworkFunctions.cpp
@@ -18,13 +18,14 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //
 
 #include "NetworkFunctions.h"	// Interface declaration
+#include "amuleIPV4Address.h"
 
 bool StringIPtoUint32(const wxString &strIP, uint32& Ip)
 {
@@ -43,7 +44,7 @@ bool StringIPtoUint32(const wxString &strIP, uint32& Ip)
 	wxString str = strIP.Strip( wxString::both );
 	for (size_t i = 0; i < str.Length(); i++) {
 		wxChar c = str.GetChar( i );
-		
+
 		if ( c >= wxT('0') && c <= wxT('9') && (value >> 8) == 0) {
 			value = ( value * 10 ) + ( c - wxT('0') );
 			++digit;
@@ -77,16 +78,15 @@ uint32 StringHosttoUint32(const wxString &Host)
 	if (Host.IsEmpty()) {
 		return 0;
 	}
-	// Why using native things when we have a wrapper for it :)
-	wxIPV4address solver;
-	solver.Hostname(Host);
-	uint32 result = StringIPtoUint32(solver.IPAddress());
-	if (result != (uint32)-1) {
-		return result;
-	} else {
-		// This actually happens on wrong hostname
-		return 0;
+	amuleIPV4Address solver;
+	if (solver.Hostname(Host)) {
+		uint32 result = StringIPtoUint32(solver.IPAddress());
+		if (result != (uint32)-1) {	// should not happen
+			return result;
+		}
 	}
+	// This actually happens on wrong hostname
+	return 0;
 }
 
 /**
@@ -119,7 +119,7 @@ const IPRange ranges[] = {
 { wxT("172.16.0.0"),    12, true  }, // Private-Use Networks               [RFC1918]
 { wxT("191.255.0.0"),   16, false }, // Reserved but subject
                                      //    to allocation                          --
-{ wxT("192.0.0.0"),     24, false }, // Reserved but subject          
+{ wxT("192.0.0.0"),     24, false }, // Reserved but subject
                                      //    to allocation                          --
 { wxT("192.0.2.0"),     24, false }, // Test-Net
 { wxT("192.88.99.0"),   24, false }, // 6to4 Relay Anycast                 [RFC3068]
diff --git a/src/NetworkFunctions.h b/src/NetworkFunctions.h
index 5d0e6e2..1342980 100644
--- a/src/NetworkFunctions.h
+++ b/src/NetworkFunctions.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -41,7 +41,7 @@ inline wxString Uint32toStringIP(uint32 ip)
 
 inline wxString Uint32_16toStringIP_Port(uint32 ip, uint16 port)
 {
-	return CFormat(wxT("%u.%u.%u.%u:%u")) % (uint8)ip % (uint8)(ip>>8) % (uint8)(ip>>16) % (uint8)(ip>>24) % port;	
+	return CFormat(wxT("%u.%u.%u.%u:%u")) % (uint8)ip % (uint8)(ip>>8) % (uint8)(ip>>16) % (uint8)(ip>>24) % port;
 }
 
 // These functions take IPs in host-order
@@ -59,17 +59,17 @@ inline wxString KadIPPortToString(uint32_t ip, uint16_t port)
  * Parses a String-IP and saves the IP in the referenced variable.
  *
  * @param strIP A string-ip in the format "a.b.c.d".
- * @param Ip The value to save the result in. 
+ * @param Ip The value to save the result in.
  * @return True if the string was parsed, false otherwise.
  *
- * When parsing the IP address, whitespace before or after the 
- * ip-address is ignored and the resulting IP is saved in 
+ * When parsing the IP address, whitespace before or after the
+ * ip-address is ignored and the resulting IP is saved in
  * anti-host order.
  *
  * The reason for the existance of this function is the fact that
  * the standard inet_aton function treats numbers with 0 prefixed
  * as octals, which is desirable.
- * 
+ *
  * Note: The reference value will not be changed unless the string
  *       contains a valid IP adress.
  */
@@ -78,25 +78,25 @@ bool	StringIPtoUint32(const wxString &strIP, uint32& Ip);
 
 /**
  * Parses a String-IP and returns the IP or 0 if it was invalid.
- * 
+ *
  * @param strIP A string-ip in the format "a.b.c.d".
  * @return The resulting IP-address or zero if invalid (or 0.0.0.0).
- * 
+ *
  * The IP will be saved in anti-host order.
  */
 inline uint32 StringIPtoUint32(const wxString &strIP)
 {
 	uint32 ip = 0;
 	StringIPtoUint32( strIP, ip );
-	
+
 	return ip;
 }
 /**
  * Parses a String-IHost and returns the IP or 0 if it was invalid.
- * 
+ *
  * @param Host A string with the Host to convert.
  * @return The resulting IP-address or zero if invalid (or 0.0.0.0).
- * 
+ *
  * The IP will be saved in anti-host order.
  */
 uint32 StringHosttoUint32(const wxString &Host);
@@ -107,7 +107,7 @@ uint32 StringHosttoUint32(const wxString &Host);
  * @param IP the IP-address to check.
  * @param filterLAN Specifies if LAN IP-ranges should be filtered.
  * @return True if it was valid, false otherwise.
- * 
+ *
  * Note: IP must be in anti-host order (BE on LE platform, LE on BE platform).
  */
 bool IsGoodIP( uint32 IP, bool filterLAN );
diff --git a/src/OScopeCtrl.cpp b/src/OScopeCtrl.cpp
index 1da9909..fd7d842 100644
--- a/src/OScopeCtrl.cpp
+++ b/src/OScopeCtrl.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -45,8 +45,8 @@ END_EVENT_TABLE()
 
 
 const wxColour crPreset [ 16 ] = {
-	wxColour( 0xFF, 0x00, 0x00 ),  wxColour( 0xFF, 0xC0, 0xC0 ),  
-	wxColour( 0xFF, 0xFF, 0x00 ),  wxColour( 0xFF, 0xA0, 0x00 ),  
+	wxColour( 0xFF, 0x00, 0x00 ),  wxColour( 0xFF, 0xC0, 0xC0 ),
+	wxColour( 0xFF, 0xFF, 0x00 ),  wxColour( 0xFF, 0xA0, 0x00 ),
 	wxColour( 0xA0, 0x60, 0x00 ),  wxColour( 0x00, 0xFF, 0x00 ),
 	wxColour( 0x00, 0xA0, 0x00 ),  wxColour( 0x00, 0x00, 0xFF ),
 	wxColour( 0x00, 0xA0, 0xFF ),  wxColour( 0x00, 0xFF, 0xFF ),
@@ -64,7 +64,7 @@ COScopeCtrl::COScopeCtrl(int cntTrends, int nDecimals, StatsGraphType type, wxWi
 	// use 0.0 as the default first point.
 	// these are public member variables, and can be changed outside
 	// (after construction).
-	
+
 	// G.Hayduk: NTrends is the number of trends that will be drawn on
 	// the plot. First 15 plots have predefined colors, but others will
 	// be drawn with white, unless you call SetPlotColor
@@ -73,7 +73,7 @@ COScopeCtrl::COScopeCtrl(int cntTrends, int nDecimals, StatsGraphType type, wxWi
 
 	PlotData_t* ppds = pdsTrends;
 	for(unsigned i=0; i<nTrends; ++i, ++ppds){
-		ppds->crPlot = (i<15 ? crPreset[i] : *wxWHITE); 
+		ppds->crPlot = (i<15 ? crPreset[i] : *wxWHITE);
 		ppds->penPlot=*(wxThePenList->FindOrCreatePen(ppds->crPlot, 1, wxSOLID));
 		ppds->fPrev = ppds->fLowerLimit = ppds->fUpperLimit = 0.0;
 	}
@@ -83,7 +83,7 @@ COScopeCtrl::COScopeCtrl(int cntTrends, int nDecimals, StatsGraphType type, wxWi
 	nDelayedPoints = 0;
 	sLastTimestamp = 0.0;
 	sLastPeriod = 1.0;
-	nShiftPixels = 1;  
+	nShiftPixels = 1;
 	nYDecimals = nDecimals;
 	m_bgColour  = wxColour(  0,   0,   0) ;  // see also SetBackgroundColor
 	m_gridColour  = wxColour(  0, 255, 255) ;  // see also SetGridColor
@@ -94,7 +94,7 @@ COScopeCtrl::COScopeCtrl(int cntTrends, int nDecimals, StatsGraphType type, wxWi
 
 	nXGrids = 6;
 	nYGrids = 5;
-	
+
 	graph_type = type;
 
 	// Connect the timer (dynamically, so the Controls don't have to share a common timer id)
@@ -120,9 +120,9 @@ void COScopeCtrl::SetRange(float fLower, float fUpper, unsigned iTrend)
 		return;
 	ppds->fLowerLimit = fLower;
 	ppds->fUpperLimit = fUpper;
-	ppds->fVertScale = (float)m_rectPlot.GetHeight() / (fUpper-fLower); 
+	ppds->fVertScale = (float)m_rectPlot.GetHeight() / (fUpper-fLower);
 	ppds->yPrev = GetPlotY(ppds->fPrev, ppds);
-	
+
 	if (iTrend == 0) {
 		InvalidateCtrl();
 	} else {
@@ -154,7 +154,7 @@ void COScopeCtrl::SetGridColor(const wxColour& cr)
 	if (cr == m_gridColour) {
 		return;
 	}
-	
+
 	m_gridColour = cr;
 	InvalidateGrid() ;
 }
@@ -186,7 +186,7 @@ void COScopeCtrl::SetBackgroundColor(const wxColour& cr)
 
 void COScopeCtrl::RecreateGrid()
 {
-	// There is a lot of drawing going on here - particularly in terms of 
+	// There is a lot of drawing going on here - particularly in terms of
 	// drawing the grid.  Don't panic, this is all being drawn (only once)
 	// to a bitmap.  The result is then BitBlt'd to the control whenever needed.
 	bRecreateGrid = false;
@@ -196,7 +196,6 @@ void COScopeCtrl::RecreateGrid()
 
 	wxMemoryDC dcGrid(m_bmapGrid);
 
-	int nCharacters ;
 	wxPen solidPen = *(wxThePenList->FindOrCreatePen(m_gridColour, 1, wxSOLID));
 	wxString strTemp;
 
@@ -204,10 +203,6 @@ void COScopeCtrl::RecreateGrid()
 	dcGrid.SetBrush(brushBack);
 	dcGrid.SetPen(*wxTRANSPARENT_PEN);
 	dcGrid.DrawRectangle(m_rectClient);
-	// draw the plot rectangle: determine how wide the y axis scaling values are,
-	// add the units digit, decimal point, one decimal place, and an extra space
-	nCharacters = std::abs((int)std::log10(std::fabs(pdsTrends[0].fUpperLimit))) ;
-	nCharacters = std::max(nCharacters, std::abs((int)std::log10(std::fabs(pdsTrends[0].fLowerLimit)))) + 4;
 
 	// adjust the plot rectangle dimensions
 	// assume 6 pixels per character (this may need to be adjusted)
@@ -247,8 +242,8 @@ void COScopeCtrl::RecreateGrid()
 		strXUnits = CFormat( _("Disabled [%s]") ) % strTemp;
 	} else {
 		strXUnits = strTemp;
-	}	
-	
+	}
+
 	dcGrid.GetTextExtent(strXUnits,&sizX,&sizY);
 	dcGrid.DrawText(strXUnits,(m_rectPlot.GetLeft() + m_rectPlot.GetRight())/2-sizX/2,m_rectPlot.GetBottom()+4);
 
@@ -258,7 +253,7 @@ void COScopeCtrl::RecreateGrid()
 		dcGrid.DrawText(strYUnits, m_rectPlot.GetLeft()-4-sizX, (m_rectPlot.GetTop()+m_rectPlot.GetBottom())/2-sizY/2);
 	}
 	// no more drawing to this bitmap is needed until the setting are changed
-	
+
 	if (bRecreateGraph) {
 		RecreateGraph(false);
 	}
@@ -277,13 +272,13 @@ void COScopeCtrl::AppendPoints(double sTimestamp, const std::vector<float *> &ap
 		// We do this by simply drawing the history up to and including
 		// the new point.
 		int n = std::min(m_rectPlot.GetWidth(), nDelayedPoints + 1);
-		nDelayedPoints = 0; 
+		nDelayedPoints = 0;
 		PlotHistory(n, true, false);
 	} else {
 		ShiftGraph(1);
 		DrawPoints(apf, 1);
 	}
-	
+
 	Refresh(false);
 }
 
@@ -293,7 +288,7 @@ void COScopeCtrl::OnPaint(wxPaintEvent& WXUNUSED(evt))
 	m_onPaint = true;
 
 	// no real plotting work is performed here unless we are coming out of a hidden state;
-	// normally, just putting the existing bitmaps on the client to avoid flicker, 
+	// normally, just putting the existing bitmaps on the client to avoid flicker,
 	// establish a memory dc and then BitBlt it to the client
 	wxBufferedPaintDC dc(this);
 
@@ -306,17 +301,17 @@ void COScopeCtrl::OnPaint(wxPaintEvent& WXUNUSED(evt))
 	} else if (bRecreateGraph) {
 		RecreateGraph(true);
 	}
-	
+
 	if (nDelayedPoints) {				// we've just come out of hiding, so catch up
-		int n = std::min(m_rectPlot.GetWidth(), nDelayedPoints);		
-		nDelayedPoints = 0;				// (this is more efficient than plotting in the 
-		PlotHistory(n, true, false);	// background because the bitmap is shifted only 
+		int n = std::min(m_rectPlot.GetWidth(), nDelayedPoints);
+		nDelayedPoints = 0;				// (this is more efficient than plotting in the
+		PlotHistory(n, true, false);	// background because the bitmap is shifted only
 	}									// once for all delayed points together)
-	
-	// We have assured that we have a valid and resized if needed 
+
+	// We have assured that we have a valid and resized if needed
 	// wxDc and bitmap. Proceed to blit.
 	dc.DrawBitmap(m_bmapGrid, 0, 0, false);
-	
+
 	// Overwrites the plot section of the image
 	dc.DrawBitmap(m_bmapPlot, m_rectPlot.x, m_rectPlot.y, false);
 
@@ -328,7 +323,7 @@ void COScopeCtrl::OnPaint(wxPaintEvent& WXUNUSED(evt))
 	dc.SetPen(*(wxThePenList->FindOrCreatePen(m_gridColour, 1, wxLONG_DASH)));
 	for (unsigned j = 1; j < (nYGrids + 1); ++j) {
 		unsigned GridPos = (m_rectPlot.GetHeight())*j/( nYGrids + 1 ) + m_rectPlot.GetTop();
-		
+
 		dc.DrawLine(m_rectPlot.GetLeft(), GridPos, m_rectPlot.GetRight(), GridPos);
 	}
 }
@@ -350,14 +345,14 @@ void COScopeCtrl::OnSize(wxSizeEvent& WXUNUSED(evt))
 
 	// the "left" coordinate and "width" will be modified in
 	// InvalidateCtrl to be based on the y axis scaling
-	m_rectPlot.SetLeft(20); 
+	m_rectPlot.SetLeft(20);
 	m_rectPlot.SetTop(10);
 	m_rectPlot.SetRight(std::max<int>(m_rectPlot.GetLeft() + 1, m_rectClient.GetRight() - 40));
 	m_rectPlot.SetBottom(std::max<int>(m_rectPlot.GetTop() + 1, m_rectClient.GetBottom() - 25));
-	
+
 	PlotData_t* ppds = pdsTrends;
 	for(unsigned iTrend=0; iTrend<nTrends; ++iTrend, ++ppds) {
-		ppds->fVertScale = (float)m_rectPlot.GetHeight() / (ppds->fUpperLimit-ppds->fLowerLimit); 
+		ppds->fVertScale = (float)m_rectPlot.GetHeight() / (ppds->fUpperLimit-ppds->fLowerLimit);
 		ppds->yPrev = GetPlotY(ppds->fPrev, ppds);
 	}
 
@@ -387,7 +382,7 @@ void COScopeCtrl::ShiftGraph(unsigned cntPoints)
 	// clear a rectangle over the right side of plot prior to adding the new points
 	dcPlot.SetPen(*wxTRANSPARENT_PEN);
 	dcPlot.SetBrush(brushBack);	// fill with background color
-	dcPlot.DrawRectangle(m_rectPlot.GetWidth()-cntPixelOffset, 0, 
+	dcPlot.DrawRectangle(m_rectPlot.GetWidth()-cntPixelOffset, 0,
 		cntPixelOffset, m_rectPlot.GetHeight());
 }
 
@@ -405,8 +400,8 @@ unsigned COScopeCtrl::GetPlotY(float fPlot, PlotData_t* ppds)
 
 
 void COScopeCtrl::DrawPoints(const std::vector<float *> &apf, unsigned cntPoints)
-{	
-	// this appends a new set of data points to a graph; all of the plotting is 
+{
+	// this appends a new set of data points to a graph; all of the plotting is
 	// directed to the memory based bitmap associated with dcPlot
 	// the will subsequently be BitBlt'd to the client in OnPaint
 	// draw the next line segement
@@ -425,7 +420,7 @@ void COScopeCtrl::DrawPoints(const std::vector<float *> &apf, unsigned cntPoints
 			y = GetPlotY(*pf--, ppds);
 
 			// Map onto the smaller bitmap
-			dcPlot.DrawLine(x - nShiftPixels - m_rectPlot.GetX(), 
+			dcPlot.DrawLine(x - nShiftPixels - m_rectPlot.GetX(),
 					yPrev - m_rectPlot.GetY(),
 					x - m_rectPlot.GetX(),
 					y - m_rectPlot.GetY());
@@ -439,10 +434,10 @@ void COScopeCtrl::DrawPoints(const std::vector<float *> &apf, unsigned cntPoints
 
 
 #ifndef CLIENT_GUI
-void COScopeCtrl::PlotHistory(unsigned cntPoints, bool bShiftGraph, bool bRefresh) 
+void COScopeCtrl::PlotHistory(unsigned cntPoints, bool bShiftGraph, bool bRefresh)
 {
 	wxASSERT(graph_type != GRAPH_INVALID);
-	
+
 	if (graph_type != GRAPH_INVALID) {
 		unsigned i;
 		unsigned cntFilled;
@@ -457,7 +452,7 @@ void COScopeCtrl::PlotHistory(unsigned cntPoints, bool bShiftGraph, bool bRefres
 				if (bShiftGraph) {  // delayed points - we have an fPrev
 					ShiftGraph(cntFilled);
 				} else {  // fresh graph, we need to preset fPrev, yPrev
-					PlotData_t* ppds = pdsTrends;	
+					PlotData_t* ppds = pdsTrends;
 					for(i=0; i<nTrends; ++i, ++ppds)
 						ppds->yPrev = GetPlotY(ppds->fPrev = *(apf[i] + cntFilled - 1), ppds);
 					cntFilled--;
@@ -484,7 +479,7 @@ void COScopeCtrl::PlotHistory(unsigned cntPoints, bool bShiftGraph, bool bRefres
 }
 #else
 //#warning CORE/GUI -- EC needed
-void COScopeCtrl::PlotHistory(unsigned, bool, bool) 
+void COScopeCtrl::PlotHistory(unsigned, bool, bool)
 {
 }
 #endif
@@ -494,35 +489,35 @@ void COScopeCtrl::RecreateGraph(bool bRefresh)
 {
 	bRecreateGraph = false;
 	nDelayedPoints = 0;
-	
+
 	wxMemoryDC dcPlot(m_bmapPlot);
 	dcPlot.SetBackground(brushBack);
 	dcPlot.Clear();
-	
+
 	PlotHistory(m_rectPlot.GetWidth(), false, bRefresh);
 }
 
 
 void COScopeCtrl::Reset(double sNewPeriod)
-{ 
+{
 	bool bStoppedPrev = bStopped;
 	bStopped = false;
 	if (sLastPeriod != sNewPeriod  ||  bStoppedPrev) {
 		sLastPeriod = sNewPeriod;
 		InvalidateCtrl();
-	}		
+	}
 }
 
 
 void COScopeCtrl::Stop()
-{ 
+{
 	bStopped = true;
 	bRecreateGraph = false;
 	RecreateGrid();
 }
 
 
-void COScopeCtrl::InvalidateCtrl(bool bInvalidateGraph, bool bInvalidateGrid) 
+void COScopeCtrl::InvalidateCtrl(bool bInvalidateGraph, bool bInvalidateGrid)
 {
 	bRecreateGraph |= bInvalidateGraph;
 	bRecreateGrid |= bInvalidateGrid;
@@ -541,9 +536,9 @@ void COScopeCtrl::InvalidateCtrl(bool bInvalidateGraph, bool bInvalidateGrid)
 void COScopeCtrl::OnTimer(wxTimerEvent& WXUNUSED(evt))
 /*	The timer is used to consolidate redrawing of the graphs:  when the user resizes
 	the application, we get multiple calls to OnSize.  If he changes several parameters
-	in the Preferences, we get several individual SetXYZ calls.  If we were to try to 
-	recreate the graphs for each such event, performance would be sluggish, but with 
-	the timer, each event (if they come in quick succession) simply restarts the timer 
+	in the Preferences, we get several individual SetXYZ calls.  If we were to try to
+	recreate the graphs for each such event, performance would be sluggish, but with
+	the timer, each event (if they come in quick succession) simply restarts the timer
 	until there is a little pause and OnTimer actually gets called and does its work.
 */
 {
diff --git a/src/OScopeCtrl.h b/src/OScopeCtrl.h
index 1ffc2b2..62cd69b 100644
--- a/src/OScopeCtrl.h
+++ b/src/OScopeCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -47,7 +47,7 @@ class wxMemoryDC;
 class COScopeCtrl : public wxControl
 {
 	friend class CStatisticsDlg;
-		
+
 public:
 	COScopeCtrl(int NTrends, int nDecimals, StatsGraphType type, wxWindow* parent = NULL);
 	~COScopeCtrl();
@@ -68,12 +68,12 @@ public:
 	void DelayPoints()		{ nDelayedPoints++; }
 
 	StatsGraphType graph_type;
-	
+
 public:
 	unsigned nTrends;
 	unsigned nXGrids;
 	unsigned nYGrids;
-	unsigned nShiftPixels;         // amount to shift with each new point 
+	unsigned nShiftPixels;         // amount to shift with each new point
 	unsigned nYDecimals;
 
 	wxString strXUnits;
@@ -82,7 +82,7 @@ public:
 	wxColour m_gridColour;
 
 	typedef struct PlotDataStruct {
-		wxColour crPlot;	       // data plot color  
+		wxColour crPlot;	       // data plot color
 		wxPen  penPlot;
 		unsigned yPrev;
 		float fPrev;
diff --git a/src/Observable.h b/src/Observable.h
index 71f1a39..312ecf9 100644
--- a/src/Observable.h
+++ b/src/Observable.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -45,10 +45,10 @@ template <typename TEST> class CObservable;
  * In order to simplify matters for subclasses, both the Observer and the
  * Observable class keep track of which objects are observing what, so that
  * instances can safely be created and destroyed without having to manually
- * keep the observers and observables in sync. 
+ * keep the observers and observables in sync.
  */
 template <typename EventType>
-class CObserver 
+class CObserver
 {
 	friend class CObservable<EventType>;
 public:
@@ -61,7 +61,7 @@ public:
 	 * as to avoid dangling pointers. This will not result in actual
 	 * events.
 	 */
-	virtual ~CObserver();	
+	virtual ~CObserver();
 
 
 protected:
@@ -72,8 +72,8 @@ protected:
 	 * @param e The actual event.
 	 */
 	virtual void ReceiveNotification( const ObservableType* o, const EventType& e ) = 0;
-	
-	
+
+
 private:
 	//! Mutex used to make access to the list of observed objects thread safe.
 	wxMutex m_mutex;
@@ -120,19 +120,19 @@ public:
 	 *
 	 * @param o The observer to unsubscribe from this observable.
 	 * @return True if the observer was removed, false otherwise.
-	 * 
+	 *
 	 * ObserverRemoved() will be called for the observer "o", allowing
-	 * the subclass to take steps to avoid outdated data being kept. 
+	 * the subclass to take steps to avoid outdated data being kept.
 	 */
 	bool RemoveObserver( ObserverType* o );
 
 protected:
 	/**
 	 * This function notifies all or an specific observer of an event.
-	 * 
+	 *
 	 * @param e The event to be published.
 	 * @param o A specific subscribing observer or NULL for all subscribers.
-	 * 
+	 *
 	 * The purpose of the second parameter is to allow notifications of
 	 * specific observers when the ObserverAdded() or ObserverRemoved()
 	 * functions are called and it should not be used outside of these
@@ -147,14 +147,14 @@ protected:
 	 * ObserverRemoved is called on each observer.
 	 */
 	void RemoveAllObservers();
-	
-	
+
+
 	/**
 	 * This function is called when an observer has been added to the observable.
 	 */
 	virtual void ObserverAdded( ObserverType* ) {};
-	
-	
+
+
 	/**
 	 * This function is called when observers are removed from the observable.
 	 *
@@ -164,12 +164,12 @@ protected:
 	 */
 	virtual void ObserverRemoved( ObserverType* ) {};
 
-	
+
 private:
 	//! Mutex used to ensure thread-safety of the basic operations.
 	wxMutex m_mutex;
 
-	typedef std::set<ObserverType*> ObserverSetType;	
+	typedef std::set<ObserverType*> ObserverSetType;
 	typedef typename ObserverSetType::iterator myIteratorType;
 
 	//! Set of all observers subscribing to this observable.
@@ -182,21 +182,21 @@ private:
 ///////////////////////////////////////////////////////////////////////////////
 
 
-	
+
 
 template <typename EventType>
 CObserver<EventType>::~CObserver()
 {
 	wxMutexLocker lock( m_mutex );
-	
+
 	while ( !m_list.empty() ) {
 		ObservableType* o = *m_list.begin();
-		
+
 		{
 			wxMutexLocker oLock(o->m_mutex);
 			o->m_list.erase( this );
 		}
-		
+
 		m_list.erase( m_list.begin() );
 	}
 }
@@ -209,7 +209,7 @@ CObservable<EventType>::~CObservable()
 
 	while ( !m_list.empty() ) {
 		ObserverType* o = *m_list.begin();
-		
+
 		{
 			wxMutexLocker oLock(o->m_mutex);
 			o->m_list.erase( this );
@@ -238,7 +238,7 @@ bool CObservable<EventType>::AddObserver( CObserver<EventType>* o )
 	}
 
 	ObserverAdded( o );
-	
+
 	return true;
 }
 
@@ -287,12 +287,12 @@ template <typename EventType>
 void CObservable<EventType>::RemoveAllObservers()
 {
 	wxMutexLocker lock(m_mutex);
-	
+
 	while ( !m_list.empty() ) {
 		ObserverType* o = *m_list.begin();
 		m_list.erase( m_list.begin() );
 		CMutexUnlocker unlocker(m_mutex);
-		
+
 		{
 			wxMutexLocker oLock(o->m_mutex);
 			o->m_list.erase( this );
diff --git a/src/ObservableQueue.h b/src/ObservableQueue.h
index 0be9ae1..70d67da 100644
--- a/src/ObservableQueue.h
+++ b/src/ObservableQueue.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -40,10 +40,10 @@ class CQueueObserver;
  * This specific protocol can be used by a class to make changes to its
  * contents visible, assuming that said contents does not rely on being
  * in a specific order, as insertions commands do not specify positions.
- * 
+ *
  * The class CQueueObserver implements a queue that will always be kept
  * in sync with the class observed, so that it is possible to handle all
- * elements in a container object over a longer period of time, which 
+ * elements in a container object over a longer period of time, which
  * would normally result in problems with changes accomulating in the list.
  */
 template <typename ValueType>
@@ -74,13 +74,13 @@ public:
 		INITIAL
 	};
 
-	
+
 	/**
 	 * Constructor for misc events.
 	 */
 	CQueueEvent( Type event );
-	
-	
+
+
 	/**
 	 * Constructor for events regarding multiple values.
 	 *
@@ -111,14 +111,14 @@ public:
 	 * Returns a copy of the ith value.
 	 */
 	ValueType GetValue( size_t i ) const;
-	
-	
+
+
 private:
 	//! Pointer to a list of values. May be NULL.
 	const ValueList* m_list;
 	//! Pointer to a single value. May be NULL.
 	const ValueType* m_value;
-	//! The actual event-type.	
+	//! The actual event-type.
 	Type m_type;
 };
 
@@ -128,9 +128,9 @@ private:
  * This class forms the superclass for observable queues or lists.
  *
  * The protocol defined above is used (CQueueEvent).
- * 
- * By subclassing this class, a container object can ensure that classes 
- * observing it are able to keep in sync with the changes made to the 
+ *
+ * By subclassing this class, a container object can ensure that classes
+ * observing it are able to keep in sync with the changes made to the
  * contents, with a few limits.
  *
  * For one thing, the value is assumed to be both key and value, so
@@ -153,13 +153,13 @@ public:
 	 * Sends STOPPING to all observers.
 	 */
 	virtual ~CObservableQueue();
-	
+
 protected:
 	typedef CQueueEvent< ValueType > EventType;
 	typedef CObserver< EventType > ObserverType;
 	typedef typename EventType::ValueList ValueList;
 
-	
+
 	/**
 	 * Sends a STARTING event to new observers.
 	 */
@@ -177,8 +177,8 @@ protected:
  * This class is an automatically synchronized queue connected with an ObservableQueue.
  *
  * Note that this observer can only be assigned to ONE observable at a time!
- * 
- * This class implements a queue (out-order not specified) that allows an 
+ *
+ * This class implements a queue (out-order not specified) that allows an
  * ObservableQueue object to be object to be used as a queue without making
  * by another object in a safe manner. Changes to the contents of the original
  * queue are propagated to this queue, such that it will never contain values
@@ -186,8 +186,8 @@ protected:
  * to the original queue.
  *
  * This allows the contents to be accessed safely, when for instance it is
- * needed to iterate over the contents over a period of time, where one 
- * cannot be certain of the current state of the actual contents of the 
+ * needed to iterate over the contents over a period of time, where one
+ * cannot be certain of the current state of the actual contents of the
  * original lists.
  *
  * This class supersedes such broken solutions such as remembering the last
@@ -210,21 +210,21 @@ public:
 	 * Constructor.
 	 */
 	CQueueObserver();
-	
-	
+
+
 	/**
 	 * Overloaded notification function.
 	 */
 	virtual void ReceiveNotification( const ObservableType*, const EventType& e );
 
-	
+
 	/**
 	 * Returns the next element from the queue.
 	 *
-	 * Note: Objects will not be returned in the same order as 
-	 * they were found in the original observable. Also, note 
+	 * Note: Objects will not be returned in the same order as
+	 * they were found in the original observable. Also, note
 	 * that calling GetNext() on an empty queue should only be
-	 * done if the default contructed value does not match a 
+	 * done if the default contructed value does not match a
 	 * valid object and can be used to check for End of Queue.
 	 */
 	ValueType GetNext();
@@ -243,11 +243,11 @@ public:
 	 * Clears the queue and readds itself to the current object being observed.
 	 */
 	void Reset();
-	
+
 private:
 	//! Lock used to ensure the threadsafety of the class
 	mutable wxMutex m_mutex;
-	
+
 	typedef std::multiset<ValueType> Queue;
 	typedef typename Queue::iterator QueueIterator;
 	//! The remaining items.
@@ -331,14 +331,14 @@ CObservableQueue<ValueType>::~CObservableQueue()
 template <typename ValueType>
 void CObservableQueue<ValueType>::ObserverAdded( ObserverType* o )
 {
-	NotifyObservers( EventType( EventType::STARTING ), o );
+	this->NotifyObservers( EventType( EventType::STARTING ), o );
 }
 
 
 template <typename ValueType>
 void CObservableQueue<ValueType>::ObserverRemoved( ObserverType* o )
 {
-	NotifyObservers( EventType( EventType::STOPPING ), o );
+	this->NotifyObservers( EventType( EventType::STOPPING ), o );
 }
 
 
@@ -386,8 +386,8 @@ template <typename ValueType>
 ValueType CQueueObserver<ValueType>::GetNext()
 {
 	wxMutexLocker lock( m_mutex );
-	
-	if ( m_queue.size() ) {
+
+	if (!m_queue.empty()) {
 		ValueType v = *m_queue.begin();
 		m_queue.erase( m_queue.begin() );
 
@@ -402,7 +402,7 @@ template <typename ValueType>
 size_t CQueueObserver<ValueType>::GetRemaining() const
 {
 	wxMutexLocker lock( m_mutex );
-	
+
 	return m_queue.size();
 }
 
@@ -418,15 +418,15 @@ template <typename ValueType>
 void CQueueObserver<ValueType>::Reset()
 {
 	ObservableType* owner;
-	
+
 	{
 		wxMutexLocker lock(m_mutex);
-		m_queue.clear();	
+		m_queue.clear();
 		owner = const_cast<ObservableType*>( m_owner );
 	}
 
 	owner->RemoveObserver( this );
-	owner->AddObserver( this );	
+	owner->AddObserver( this );
 }
 
 
diff --git a/src/OtherFunctions.cpp b/src/OtherFunctions.cpp
index a4f55ca..4668df4 100644
--- a/src/OtherFunctions.cpp
+++ b/src/OtherFunctions.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,10 +37,9 @@
 
 #include <wx/stdpaths.h> // Do_not_auto_remove
 #include <common/StringFunctions.h>
-#include <common/ClientVersion.h>	
+#include <common/ClientVersion.h>
 #include <common/MD5Sum.h>
 #include <common/Path.h>
-#include "MD4Hash.h"
 #include "Logger.h"
 #include "BitVector.h"		// Needed for BitVector
 
@@ -52,16 +51,16 @@
 	#include <cerrno>
 #else
 	#include <wx/utils.h>
-#endif	
+#endif
 
 
 wxString GetMuleVersion()
 {
 	wxString ver(wxT(VERSION));
-	
+
 	ver += wxT(" compiled with ");
 
-	
+
 	// Figure out the wx build-type
 	#if   defined(__WXGTK20__)
 		ver += wxT("wxGTK2");
@@ -78,22 +77,28 @@ wxString GetMuleVersion()
 	// 2.8 Mac
 	#elif defined(__WXMAC__)
 		ver += wxT("wxMac");
-	#elif defined(__WXMSW__) && defined(__VISUALC__)
+	#elif defined(__WXBASE__)
+		ver += wxT("wxBase");
+	#elif defined(__WINDOWS__) && defined(__VISUALC__)
 		ver += wxT("wxMSW VC");
-	#elif defined(__WXMSW__)
+	#elif defined(__WINDOWS__)
 		ver += wxT("wxMSW");
 	#endif
 
 	ver += CFormat(wxT(" v%d.%d.%d")) % wxMAJOR_VERSION % wxMINOR_VERSION % wxRELEASE_NUMBER;
 
+	if (!MuleBoostVersion.IsEmpty()) {
+		ver += wxT(" and Boost ") + MuleBoostVersion;
+	}
+
 #ifdef __DEBUG__
 	ver += wxT(" (Debugging)");
 #endif
-	
+
 #ifdef SVNDATE
 	ver += CFormat(wxT(" (Snapshot: %s)")) % wxT(SVNDATE);
 #endif
-	
+
 	return ver;
 }
 
@@ -153,7 +158,7 @@ wxString CastSecondsToHM(uint32 count, uint16 msecs)
 				% (count + ((float)msecs/1000)) % _("secs");
 		}
 	} else if (count < 3600) {
-		return CFormat(wxT("%u:%02u %s")) 
+		return CFormat(wxT("%u:%02u %s"))
 			% (count/60) % (count % 60) % _("mins");
 	} else if (count < 86400) {
 		return CFormat(wxT("%u:%02u %s"))
@@ -187,7 +192,7 @@ FileType GetFiletype(const CPath& filename)
 wxString GetFiletypeDesc(FileType type, bool translated)
 {
 	switch ( type ) {
-		case ftVideo:	
+		case ftVideo:
 			if (translated) {
 				return _("Videos");
 			} else {
@@ -200,49 +205,49 @@ wxString GetFiletypeDesc(FileType type, bool translated)
 			} else {
 				return wxT("Audio");
 			}
-			break;			
-		case ftArchive:	
+			break;
+		case ftArchive:
 			if (translated) {
 				return _("Archives");
 			} else {
 				return wxT("Archives");
 			}
-			break;			
+			break;
 		case ftCDImage:
 			if (translated) {
 				return _("CD-Images");
 			} else {
 				return wxT("CD-Images");
 			}
-			break;			
+			break;
 		case ftPicture:
 			if (translated) {
 				return _("Pictures");
 			} else {
 				return wxT("Pictures");
 			}
-			break;			
+			break;
 		case ftText:
 			if (translated) {
 				return _("Texts");
 			} else {
 				return wxT("Texts");
 			}
-			break;			
+			break;
 		case ftProgram:
 			if (translated) {
 				return _("Programs");
 			} else {
 				return wxT("Programs");
 			}
-			break;			
+			break;
 		default:
 			if (translated) {
 				return _("Any");
 			} else {
 				return wxT("Any");
 			}
-			break;			
+			break;
 	}
 }
 
@@ -492,7 +497,7 @@ wxString EncodeBase64(const char *pbBufferIn, unsigned int bufLen)
 {
 	wxString pbBufferOut;
 	wxString strHeader;
-	
+
 	if( !strHeaderLine.IsEmpty() ) {
 		strHeader = wxT("-----BEGIN ") + strHeaderLine + wxT("-----");
 		if( g_fUseCRLF ) {
@@ -504,12 +509,12 @@ wxString EncodeBase64(const char *pbBufferIn, unsigned int bufLen)
 	unsigned long nDiv = ((unsigned long)bufLen) / 3;
 	unsigned long nRem = ((unsigned long)bufLen) % 3;
 	unsigned int NewLineSize = g_fUseCRLF ? 2 : 1;
-	
+
 	// Allocate enough space in the output buffer to speed up things
 	pbBufferOut.Alloc(
 		strHeader.Len() * 2 +		// header/footer
-		(bufLen * 4) / 3 + 1 + 		// Number of codes
-		nDiv           * NewLineSize + 	// Number of new lines
+		(bufLen * 4) / 3 + 1 +		// Number of codes
+		nDiv           * NewLineSize +	// Number of new lines
 		(nRem ? 1 : 0) * NewLineSize );	// Last line
 	pbBufferOut = strHeader;
 
@@ -578,7 +583,7 @@ wxString EncodeBase64(const char *pbBufferIn, unsigned int bufLen)
 		}
 		pbBufferOut += wxT("\n");
 	}
-	
+
 	return pbBufferOut;
 }
 
@@ -593,7 +598,7 @@ unsigned int DecodeBase64(const wxString &base64Buffer, unsigned int base64BufLe
 		*buffer = 0;
 		nData = 1;
 	}
-	
+
 	for(unsigned int j = 0; j < base64BufLen; ++j) {
 		wxChar c = base64Buffer[j];
 		wxChar bits = wxT('z');
@@ -659,7 +664,7 @@ unsigned int DecodeBase64(const wxString &base64Buffer, unsigned int base64BufLe
 	} else {
 		buffer[i+nData] = 0;
 	}
-	
+
 	return i + nData;
 }
 
@@ -668,7 +673,7 @@ unsigned int DecodeBase64(const wxString &base64Buffer, unsigned int base64BufLe
 wxString GetCatTitle(AllCategoryFilter cat)
 {
 	switch (cat) {
-		case acfAll:	 	 return _("all");
+		case acfAll:		 return _("all");
 		case acfAllOthers:   return _("all others");
 		case acfIncomplete:	 return _("Incomplete");
 		case acfCompleted:	 return _("Completed");
@@ -676,14 +681,14 @@ wxString GetCatTitle(AllCategoryFilter cat)
 		case acfDownloading: return _("Downloading");
 		case acfErroneous:	 return _("Erroneous");
 		case acfPaused:		 return _("Paused");
-		case acfStopped:	 return _("Stopped");		
+		case acfStopped:	 return _("Stopped");
 		case acfVideo:		 return _("Video");
 		case acfAudio:		 return _("Audio");
 		case acfArchive:	 return _("Archive");
 		case acfCDImages:	 return _("CD-Images");
 		case acfPictures:	 return _("Pictures");
 		case acfText:		 return _("Text");
-		case acfActive:		 return _("Active");		
+		case acfActive:		 return _("Active");
 		default: return wxT("?");
 	}
 }
@@ -902,14 +907,17 @@ public:
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".sub"),   ED2KFT_CDIMAGE));	// Subtitle File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".toast"), ED2KFT_CDIMAGE));	// Toast Disc Image
 
+		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".azw"),   ED2KFT_DOCUMENT));	// EBook File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".chm"),   ED2KFT_DOCUMENT));	// Compiled HTML Help File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".css"),   ED2KFT_DOCUMENT));	// Cascading Style Sheet
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".diz"),   ED2KFT_DOCUMENT));	// Description in Zip File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".doc"),   ED2KFT_DOCUMENT));	// Document File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".dot"),   ED2KFT_DOCUMENT));	// Document Template File
+		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".epub"),  ED2KFT_DOCUMENT));	// EBook File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".hlp"),   ED2KFT_DOCUMENT));	// Help File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".htm"),   ED2KFT_DOCUMENT));	// HTML File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".html"),  ED2KFT_DOCUMENT));	// HTML File
+		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".mobi"),  ED2KFT_DOCUMENT));	// EBook File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".nfo"),   ED2KFT_DOCUMENT));	// Warez Information File
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".odp"),   ED2KFT_DOCUMENT));	// OpenDocument Presentation
 		ED2KFileTypesMap.insert(SED2KFileTypeMapElement(wxT(".ods"),   ED2KFT_DOCUMENT));	// OpenDocument Spreadsheet
@@ -947,7 +955,7 @@ EED2KFileType GetED2KFileTypeID(const CPath& fileName)
 	if (ext.IsEmpty()) {
 		return ED2KFT_ANY;
 	}
-	
+
 	SED2KFileTypeMap::iterator it = ED2KFileTypesMap.find(wxT(".") + ext);
 	if (it != ED2KFileTypesMap.end()) {
 		return it->second.GetType();
@@ -1015,10 +1023,10 @@ wxString DumpMemToStr(const void *buff, int n, const wxString& msg, bool ok)
 {
 	const unsigned char *p = (const unsigned char *)buff;
 	int lines = (n + 15)/ 16;
-	
+
 	wxString result;
 	// Allocate aproximetly what is needed
-	result.Alloc( ( lines + 1 ) * 80 ); 
+	result.Alloc( ( lines + 1 ) * 80 );
 	if ( !msg.IsEmpty() ) {
 		result += msg + wxT(" - ok=") + ( ok ? wxT("true, ") : wxT("false, ") );
 	}
@@ -1027,12 +1035,12 @@ wxString DumpMemToStr(const void *buff, int n, const wxString& msg, bool ok)
 	for ( int i = 0; i < lines; ++i) {
 		// Show address
 		result += CFormat(wxT("%08x  ")) % (i * 16);
-		
+
 		// Show two columns of hex-values
 		for ( int j = 0; j < 2; ++j) {
 			for ( int k = 0; k < 8; ++k) {
 				int pos = 16 * i + 8 * j + k;
-				
+
 				if ( pos < n ) {
 					result += CFormat(wxT("%02x ")) % p[pos];
 				} else {
@@ -1061,7 +1069,7 @@ wxString DumpMemToStr(const void *buff, int n, const wxString& msg, bool ok)
 		result += wxT("|\n");
 	}
 	result.Shrink();
-	
+
 	return result;
 }
 
@@ -1116,7 +1124,7 @@ wxString GetConfigDir(const wxString &configFileBase)
 
 /*************************** Locale specific stuff ***************************/
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 #	define	SETWINLANG(LANG, SUBLANG)
 #else
 #	define	SETWINLANG(LANG, SUBLANG) \
@@ -1144,9 +1152,9 @@ void InitCustomLanguages()
 
 void InitLocale(wxLocale& locale, int language)
 {
-	locale.Init(language, wxLOCALE_LOAD_DEFAULT); 
-	
-#if defined(__WXMAC__) || defined(__WXMSW__)
+	locale.Init(language, wxLOCALE_LOAD_DEFAULT);
+
+#if defined(__WXMAC__) || defined(__WINDOWS__ )
 	locale.AddCatalogLookupPathPrefix(JoinPaths(wxStandardPaths::Get().GetDataDir(), wxT("locale")));
 #endif
 	locale.AddCatalog(wxT(PACKAGE));
@@ -1165,7 +1173,7 @@ int StrLang2wx(const wxString& language)
 			// Traditional Chinese: original Chinese, used in Taiwan, Hong Kong and Macau.
 			// Simplified Chinese: simplified Chinese characters used in Mainland China since 1950s, and in some other places such as Singapore and Malaysia.
 			//
-			// Chinese (Traditional) contains zh_TW, zh_HK and zh_MO (but there are differences in some words). 
+			// Chinese (Traditional) contains zh_TW, zh_HK and zh_MO (but there are differences in some words).
 			// Because of most Traditional Chinese user are in Taiwan, zh_TW becomes the representation of Traditional Chinese.
 			// Chinese (Simplified) contains zh_CN, zh_SG and zh_MY. In the same reason, zh_CN becomes the representation of Simplified Chinese.
 			// (see http://forum.amule.org/index.php?topic=13208.msg98043#msg98043 )
@@ -1200,30 +1208,35 @@ wxString wxLang2Str(const int lang)
 
 /*****************************************************************************/
 
-wxString GetPassword() {
-wxString pass_plain;
-CMD4Hash password;
-		#ifndef __WXMSW__
-			pass_plain = char2unicode(getpass("Enter password for mule connection: "));
-		#else
-			//#warning This way, pass enter is not hidden on windows. Bad thing.
-			char temp_str[512];
-			fflush(stdin);
-			printf("Enter password for mule connection: \n");
-			fflush(stdout);
-			fgets(temp_str, 512, stdin);
-			temp_str[strlen(temp_str)-1] = '\0';
-			pass_plain = char2unicode(temp_str);
-		#endif
-		wxCHECK2(password.Decode(MD5Sum(pass_plain).GetHash()), /* Do nothing. */ );
+CMD4Hash GetPassword(bool allowEmptyPassword)
+{
+	wxString pass_plain;
+	CMD4Hash password;
+#ifndef __WINDOWS__ 
+	pass_plain = char2unicode(getpass("Enter password for mule connection: "));
+#else
+	//#warning This way, pass enter is not hidden on windows. Bad thing.
+	char temp_str[512];
+	// Though fflush() on an input stream is undefined behaviour by the standard,
+	// the MSVCRT version does seem to clear the input buffers.
+	// cppcheck-suppress fflushOnInputStream
+	fflush(stdin);
+	printf("Enter password for mule connection: \n");
+	fflush(stdout);
+	fgets(temp_str, 512, stdin);
+	temp_str[strlen(temp_str)-1] = '\0';
+	pass_plain = char2unicode(temp_str);
+#endif
+	wxCHECK2(password.Decode(MD5Sum(pass_plain).GetHash()), /* Do nothing. */ );
+	if (!allowEmptyPassword) {
 		// MD5 hash for an empty string, according to rfc1321.
 		if (password.Encode() == wxT("D41D8CD98F00B204E9800998ECF8427E")) {
 			printf("No empty password allowed.\n");
-			return GetPassword();
+			return GetPassword(false);
 		}
+	}
 
-
-return password.Encode();
+	return password;
 }
 
 
diff --git a/src/OtherFunctions.h b/src/OtherFunctions.h
index 36c71e0..a26127c 100644
--- a/src/OtherFunctions.h
+++ b/src/OtherFunctions.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,6 +30,7 @@
 
 #include "Types.h"		// Needed for uint16, uint32 and uint64
 #include "Preferences.h"	// Needed for AllCategoryFilter enumeration
+#include "MD4Hash.h"		// Needed for CMD4Hash
 
 #include <algorithm>		// Needed for std::for_each	// Do_not_auto_remove (mingw-gcc-3.4.5)
 
@@ -44,9 +45,9 @@ class CPath;
  * @param ArgB The value to compare ArgA against.
  * @return See below.
  *
- * Use this function to safely compare two arguments of a type that supports 
+ * Use this function to safely compare two arguments of a type that supports
  * the "<" operator. It works like strcmp and returns a negative value if ArgA
- * is less than ArgB, zero if ArgA is equal to ArgB and a positive value if 
+ * is less than ArgB, zero if ArgA is equal to ArgB and a positive value if
  * ArgA is greater than ArgB.
  */
 template <class TYPE>
@@ -97,7 +98,7 @@ unsigned int EraseFirstValue( LIST& list, const ITEM& item )
 	for (; it != list.end(); ++it) {
 		if (*it == item) {
 			list.erase(it);
-			
+
 			return true;
 		}
 	}
@@ -145,7 +146,7 @@ struct SDoDelete
 	template <typename FIRST, typename SECOND>
 	void operator()(const std::pair<FIRST, SECOND>& pair) {
 		delete pair.second;
-	}		
+	}
 };
 
 
@@ -156,7 +157,7 @@ void DeleteContents(STL_CONTAINER& container)
 	// Ensure that the actual container wont contain dangling pointers during
 	// this operation, to ensure that the destructors cant access them.
 	STL_CONTAINER copy;
-	
+
 	std::swap(copy, container);
 	std::for_each(copy.begin(), copy.end(), SDoDelete());
 }
@@ -183,6 +184,8 @@ OutputIterator STLCopy_n(InputIterator first, size_t n, OutputIterator result)
  */
 wxString GetMuleVersion();
 
+extern wxString MuleBoostVersion;
+
 
 /**
  * Helperfunction for accessing a child of the calling widget.
@@ -196,7 +199,7 @@ wxString GetMuleVersion();
  *
  * It has the advantage of validating the cast in debug builds and being much
  * shorter than than manually typing wxStaticCast + FindWindow. This mean that
- * we will be alerted in case of widget changing type, instead of getting just 
+ * we will be alerted in case of widget changing type, instead of getting just
  * getting bad mojo due to casting a pointer to the wrong type.
  */
 #define CastChild( IdOrName, type )			dynamic_cast<type*>( FindWindow( IdOrName ) )
@@ -262,12 +265,6 @@ wxString GetFiletypeByName(const CPath& filename, bool translated = true);
 // Returns the name associated with a category value.
 wxString GetCatTitle(AllCategoryFilter cat);
 
-/* Other */
-
-
-//! Returns the number of items in an array.
-#define itemsof(x) (sizeof(x)/sizeof(x[0]))
-
 
 ///////////////////////////////////////////////////////////////////////////////
 // ED2K File Type
@@ -300,7 +297,7 @@ public:
 	{
 		return s_t;
 	}
-	
+
 private:
 	EED2KFileType s_t;
 };
@@ -384,7 +381,7 @@ wxString wxLang2Str(const int lang);
 /**
  * Generate MD5Hash of prompt input
  */
-wxString GetPassword();
+CMD4Hash GetPassword(bool allowEmptyPassword = false);
 
 
 #if wxUSE_THREADS
diff --git a/src/OtherStructs.h b/src/OtherStructs.h
index 0ca23ec..bc99cd7 100644
--- a/src/OtherStructs.h
+++ b/src/OtherStructs.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -85,7 +85,7 @@ struct Pending_Block_Struct{
 	struct z_stream_s*       zStream;       // Barry - Used to unzip packets
 	uint32		totalUnzipped; // Barry - This holds the total unzipped bytes for all packets so far
 	uint32		fZStreamError : 1,
-				fRecovered    : 1;	
+				fRecovered    : 1;
 };
 
 struct Gap_Struct{
@@ -114,7 +114,7 @@ struct TransferredData {
 };
 
 
-//Kry import of 0.30d 
+//Kry import of 0.30d
 // Maella -Enhanced Chunk Selection- (based on jicxicmic)
 #if defined(_MSC_VER) || defined(__SUNPRO_CC)
 #pragma pack(1)
diff --git a/src/Packet.cpp b/src/Packet.cpp
index c1ca478..d0e93b4 100644
--- a/src/Packet.cpp
+++ b/src/Packet.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,20 +37,20 @@
 // Copy constructor
 CPacket::CPacket(CPacket &p)
 {
-	size 		= p.size;
+	size		= p.size;
 	opcode		= p.opcode;
-	prot 		= p.prot;
-	m_bSplitted 	= p.m_bSplitted;
+	prot		= p.prot;
+	m_bSplitted	= p.m_bSplitted;
 	m_bLastSplitted = p.m_bLastSplitted;
-	m_bPacked 	= p.m_bPacked;
-	m_bFromPF 	= p.m_bFromPF;
+	m_bPacked	= p.m_bPacked;
+	m_bFromPF	= p.m_bFromPF;
 	memcpy(head, p.head, sizeof head);
 	tempbuffer	= NULL;
 	if (p.completebuffer) {
-		completebuffer 	= new byte[size + 10];;
-		pBuffer 	= completebuffer + sizeof(Header_Struct);
+		completebuffer	= new byte[size + 10];;
+		pBuffer	= completebuffer + sizeof(Header_Struct);
 	} else {
-		completebuffer 	= NULL;
+		completebuffer	= NULL;
 		if (p.pBuffer) {
 			pBuffer = new byte[size];
 		} else {
@@ -63,34 +63,34 @@ CPacket::CPacket(CPacket &p)
 
 CPacket::CPacket(uint8 protocol)
 {
-	size 		= 0;
+	size		= 0;
 	opcode		= 0;
-	prot 		= protocol;
-	m_bSplitted 	= false;
+	prot		= protocol;
+	m_bSplitted	= false;
 	m_bLastSplitted = false;
-	m_bPacked 	= false;
-	m_bFromPF 	= false;
+	m_bPacked	= false;
+	m_bFromPF	= false;
 	memset(head, 0, sizeof head);
 	tempbuffer	= NULL;
-	completebuffer 	= NULL;
-	pBuffer 	= NULL;
+	completebuffer	= NULL;
+	pBuffer	= NULL;
 }
 
 // only used for receiving packets
 CPacket::CPacket(byte* rawHeader, byte *buf)
 {
 	memset(head, 0, sizeof head);
-	Header_Struct* header = (Header_Struct*)rawHeader;
-	size 		= ENDIAN_SWAP_32(header->packetlength) - 1;
+	Header_Struct* header = reinterpret_cast<Header_Struct*>(rawHeader);
+	size		= ENDIAN_SWAP_32(header->packetlength) - 1;
 	opcode		= header->command;
 	prot		= header->eDonkeyID;
-	m_bSplitted 	= false;
+	m_bSplitted	= false;
 	m_bLastSplitted = false;
-	m_bPacked 	= false;
-	m_bFromPF 	= false;
+	m_bPacked	= false;
+	m_bFromPF	= false;
 	tempbuffer	= NULL;
-	completebuffer 	= NULL;
-	pBuffer 	= buf;
+	completebuffer	= NULL;
+	pBuffer	= buf;
 }
 
 CPacket::CPacket(const CMemFile& datafile, uint8 protocol, uint8 ucOpcode)
@@ -98,15 +98,15 @@ CPacket::CPacket(const CMemFile& datafile, uint8 protocol, uint8 ucOpcode)
 	size		= datafile.GetLength();
 	opcode		= ucOpcode;
 	prot		= protocol;
-	m_bSplitted 	= false;
+	m_bSplitted	= false;
 	m_bLastSplitted = false;
-	m_bPacked 	= false;
-	m_bFromPF 	= false;
+	m_bPacked	= false;
+	m_bFromPF	= false;
 	memset(head, 0, sizeof head);
 	tempbuffer = NULL;
 	completebuffer = new byte[size + sizeof(Header_Struct)/*Why this 4?*/];
 	pBuffer = completebuffer + sizeof(Header_Struct);
-	
+
 	// Write contents of MemFile to buffer (while keeping original position in file)
 	off_t position = datafile.GetPosition();
 	datafile.Seek(0, wxFromStart);
@@ -119,9 +119,9 @@ CPacket::CPacket(int8 in_opcode, uint32 in_size, uint8 protocol, bool bFromPF)
 	size		= in_size;
 	opcode		= in_opcode;
 	prot		= protocol;
-	m_bSplitted 	= false;
+	m_bSplitted	= false;
 	m_bLastSplitted = false;
-	m_bPacked 	= false;
+	m_bPacked	= false;
 	m_bFromPF	= bFromPF;
 	memset(head, 0, sizeof head);
 	tempbuffer	= NULL;
@@ -157,10 +157,10 @@ CPacket::~CPacket()
 	if (completebuffer) {
 		delete [] completebuffer;
 	} else if (pBuffer) {
-	// On the other hand, if completebuffer is NULL and pBuffer is not NULL 
+	// On the other hand, if completebuffer is NULL and pBuffer is not NULL
 		delete [] pBuffer;
 	}
-	
+
 	if (tempbuffer) {
 		delete [] tempbuffer;
 	}
@@ -168,7 +168,7 @@ CPacket::~CPacket()
 
 uint32 CPacket::GetPacketSizeFromHeader(const byte* rawHeader)
 {
-	Header_Struct* header = (Header_Struct*)rawHeader;
+	const Header_Struct* header = reinterpret_cast<const Header_Struct*>(rawHeader);
 	uint32 size = ENDIAN_SWAP_32(header->packetlength);
 	if (size < 1 || size >= 0x7ffffff0u)
 		return 0;
@@ -224,7 +224,7 @@ byte* CPacket::DetachPacket() {
 byte* CPacket::GetHeader() {
 	wxASSERT( !m_bSplitted );
 
-	Header_Struct* header = (Header_Struct*) head;
+	Header_Struct* header = reinterpret_cast<Header_Struct*>(head);
 	header->command = opcode;
 	header->eDonkeyID =  prot;
 	header->packetlength = ENDIAN_SWAP_32(size + 1);
@@ -236,7 +236,7 @@ byte* CPacket::GetUDPHeader() {
 	wxASSERT( !m_bSplitted );
 
 	memset(head, 0, 6);
-	UDP_Header_Struct* header = (UDP_Header_Struct*) head;
+	UDP_Header_Struct* header = reinterpret_cast<UDP_Header_Struct*>(head);
 	header->eDonkeyID =  prot;
 	header->command = opcode;
 
@@ -263,11 +263,11 @@ void CPacket::PackPacket()
 	} else {
 		prot = OP_PACKEDPROT;
 	}
-	
+
 	memcpy(pBuffer, output, newsize);
 	delete[] output;
 	m_bPacked = true;
-	
+
 	size = newsize;
 }
 
@@ -314,7 +314,7 @@ void CPacket::Copy16ToDataBuffer(const void* data)
 
 
 void CPacket::CopyUInt32ToDataBuffer(uint32 data, unsigned int offset)
-{ 
+{
 	wxCHECK_RET(offset <= size - sizeof(uint32), wxT("Bad offset in CopyUInt32ToDataBuffer."));
 	PokeUInt32( pBuffer + offset, data );
 }
diff --git a/src/Packet.h b/src/Packet.h
index 2d642a3..3e0fe71 100644
--- a/src/Packet.h
+++ b/src/Packet.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -47,12 +47,12 @@ public:
 	CPacket(byte* pPacketPart, uint32 nSize, bool bLast, bool bFromPF = true); // only used for splitted packets!
 
 	~CPacket();
-	
+
 	byte*			GetHeader();
 	byte*			GetUDPHeader();
 	byte*			GetPacket();
 	byte*			DetachPacket();
-	uint32 			GetRealPacketSize() const	{ return size + 6; }
+	uint32			GetRealPacketSize() const	{ return size + 6; }
 	static uint32		GetPacketSizeFromHeader(const byte* rawHeader);
 	bool			IsSplitted()		{ return m_bSplitted; }
 	bool			IsLastSplitted()	{ return m_bLastSplitted; }
@@ -60,21 +60,21 @@ public:
 	bool			UnPackPacket(uint32 uMaxDecompressedSize = 50000);
 	// -khaos--+++> Returns either -1, 0 or 1.  -1 is unset, 0 is from complete file, 1 is from part file
 	bool			IsFromPF()		{ return m_bFromPF; }
-	
+
 	uint8			GetOpCode() const	{ return opcode; }
 	void			SetOpCode(uint8 oc)	{ opcode = oc; }
 	uint32			GetPacketSize() const	{ return size; }
 	uint8			GetProtocol() const	{ return prot; }
 	void			SetProtocol(uint8 p)	{ prot = p; }
-	const byte* 	GetDataBuffer(void) const { return pBuffer; }
-	void 			Copy16ToDataBuffer(const void* data);
-	void 			CopyToDataBuffer(unsigned int offset, const byte* data, unsigned int n);
+	const byte*	GetDataBuffer(void) const { return pBuffer; }
+	void			Copy16ToDataBuffer(const void* data);
+	void			CopyToDataBuffer(unsigned int offset, const byte* data, unsigned int n);
 	void			CopyUInt32ToDataBuffer(uint32 data, unsigned int offset = 0);
-	
+
 private:
 	//! CPacket is not assignable.
 	CPacket& operator=(const CPacket&);
-	
+
 	uint32		size;
 	uint8		opcode;
 	uint8		prot;
diff --git a/src/Parser.cpp b/src/Parser.cpp
index 4306e23..80e6b83 100644
--- a/src/Parser.cpp
+++ b/src/Parser.cpp
@@ -1,23 +1,22 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
+/* A Bison parser, made by GNU Bison 2.4.2.  */
 
 /* Skeleton implementation for Bison's Yacc-like parsers in C
-
-   Copyright (c) 1984-2008 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
+   
+      Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
+   Foundation, Inc.
+   
+   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.
-
+   the Free Software Foundation, either version 3 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., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -28,7 +27,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -46,7 +45,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.4.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -54,39 +53,26 @@
 /* Pure parsers.  */
 #define YYPURE 0
 
+/* Push parsers.  */
+#define YYPUSH 0
+
+/* Pull parsers.  */
+#define YYPULL 1
+
 /* Using locations.  */
 #define YYLSP_NEEDED 0
 
 
 
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     TOK_STRING = 258,
-     TOK_AND = 259,
-     TOK_OR = 260,
-     TOK_NOT = 261,
-     TOK_ED2K_LINK = 262
-   };
-#endif
-/* Tokens.  */
-#define TOK_STRING 258
-#define TOK_AND 259
-#define TOK_OR 260
-#define TOK_NOT 261
-#define TOK_ED2K_LINK 262
 /* Copy the first part of user declarations.  */
-#line 1 "./Parser.y"
 
-class wxString;
+/* Line 189 of yacc.c  */
+#line 1 "./Parser.y"
 
+#include "SearchExpr.h"
 #include "Scanner.h.in"
 #include "Scanner.h"
 #include "OtherFunctions.h"
-#include "SearchExpr.h"
 
 #include "libs/common/StringFunctions.h"
 
@@ -103,6 +89,9 @@ int yyerror(wxString errstr);
 
 
 
+/* Line 189 of yacc.c  */
+#line 94 "Parser.cpp"
+
 /* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 1
@@ -121,28 +110,49 @@ int yyerror(wxString errstr);
 # define YYTOKEN_TABLE 0
 #endif
 
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     TOK_STRING = 258,
+     TOK_AND = 259,
+     TOK_OR = 260,
+     TOK_NOT = 261,
+     TOK_ED2K_LINK = 262
+   };
+#endif
+
+
+
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 23 "./Parser.y"
 {
+
+/* Line 214 of yacc.c  */
+#line 22 "./Parser.y"
+
 	wxString*		pstr;
 	CSearchExpr*	pexpr;
-}
-/* Line 187 of yacc.c.  */
-#line 137 "Parser.cpp"
-	YYSTYPE;
+
+
+
+/* Line 214 of yacc.c  */
+#line 144 "Parser.cpp"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 
-
 /* Copy the second part of user declarations.  */
 
 
-/* Line 216 of yacc.c.  */
-#line 150 "Parser.cpp"
+/* Line 264 of yacc.c  */
+#line 156 "Parser.cpp"
 
 #ifdef short
 # undef short
@@ -192,7 +202,7 @@ typedef short int yytype_int16;
 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -217,14 +227,14 @@ typedef short int yytype_int16;
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static int
-YYID (int i)
+YYID (int yyi)
 #else
 static int
-YYID (i)
-    int i;
+YYID (yyi)
+    int yyi;
 #endif
 {
-  return i;
+  return yyi;
 }
 #endif
 
@@ -305,9 +315,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  yytype_int16 yyss;
-  YYSTYPE yyvs;
-  };
+  yytype_int16 yyss_alloc;
+  YYSTYPE yyvs_alloc;
+};
 
 /* The size of the maximum gap between one aligned stack and the next.  */
 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -341,12 +351,12 @@ union yyalloc
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack)					\
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
     do									\
       {									\
 	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack, Stack, yysize);				\
-	Stack = &yyptr->Stack;						\
+	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
+	Stack = &yyptr->Stack_alloc;					\
 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 	yyptr += yynewbytes / sizeof (*yyptr);				\
       }									\
@@ -430,8 +440,8 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint8 yyrline[] =
 {
-       0,    42,    42,    48,    57,    66,    67,    77,    87,    97,
-     102,   108,   114,   119,   125,   130,   135,   142,   147
+       0,    41,    41,    47,    56,    65,    66,    76,    86,    96,
+     101,   107,   113,   118,   124,   129,   134,   141,   146
 };
 #endif
 
@@ -547,9 +557,18 @@ static const yytype_uint8 yystos[] =
 
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
+   Once GCC version 2 has supplanted version 1, this can go.  However,
+   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
+   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+   discussed.  */
 
 #define YYFAIL		goto yyerrlab
+#if defined YYFAIL
+  /* This is here to suppress warnings from the GCC cpp's
+     -Wunused-macros.  Normally we don't worry about that warning, but
+     some users do, and we want to make it easy for users to remove
+     YYFAIL uses, which will produce warnings from Bison 2.5.  */
+#endif
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
@@ -606,7 +625,7 @@ while (YYID (0))
    we won't break user code: when these are the locations we know.  */
 
 #ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
 #  define YY_LOCATION_PRINT(File, Loc)			\
      fprintf (File, "%d.%d-%d.%d",			\
 	      (Loc).first_line, (Loc).first_column,	\
@@ -717,17 +736,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
 #else
 static void
-yy_stack_print (bottom, top)
-    yytype_int16 *bottom;
-    yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
   YYFPRINTF (stderr, "\n");
 }
 
@@ -761,11 +783,11 @@ yy_reduce_print (yyvsp, yyrule)
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
-      fprintf (stderr, "   $%d = ", yyi + 1);
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
 		       &(yyvsp[(yyi + 1) - (yynrhs)])
 		       		       );
-      fprintf (stderr, "\n");
+      YYFPRINTF (stderr, "\n");
     }
 }
 
@@ -1045,10 +1067,8 @@ yydestruct (yymsg, yytype, yyvaluep)
 	break;
     }
 }
-

 
 /* Prevent warnings from -Wmissing-prototypes.  */
-
 #ifdef YYPARSE_PARAM
 #if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
@@ -1064,11 +1084,10 @@ int yyparse ();
 #endif /* ! YYPARSE_PARAM */
 
 
-
-/* The look-ahead symbol.  */
+/* The lookahead symbol.  */
 int yychar;
 
-/* The semantic value of the look-ahead symbol.  */
+/* The semantic value of the lookahead symbol.  */
 YYSTYPE yylval;
 
 /* Number of syntax errors so far.  */
@@ -1076,9 +1095,9 @@ int yynerrs;
 
 
 
-/*----------.
-| yyparse.  |
-`----------*/
+/*-------------------------.
+| yyparse or yypush_parse.  |
+`-------------------------*/
 
 #ifdef YYPARSE_PARAM
 #if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1102,66 +1121,68 @@ yyparse ()
 #endif
 #endif
 {
-  
-  int yystate;
-  int yyn;
-  int yyresult;
-  /* Number of tokens to shift before error messages enabled.  */
-  int yyerrstatus;
-  /* Look-ahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
 
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
 
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
+    int yystate;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus;
 
-  /* The state stack.  */
-  yytype_int16 yyssa[YYINITDEPTH];
-  yytype_int16 *yyss = yyssa;
-  yytype_int16 *yyssp;
+    /* The stacks and their tools:
+       `yyss': related to states.
+       `yyvs': related to semantic values.
 
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
-  YYSTYPE *yyvsp;
+       Refer to the stacks thru separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
 
+    /* The state stack.  */
+    yytype_int16 yyssa[YYINITDEPTH];
+    yytype_int16 *yyss;
+    yytype_int16 *yyssp;
 
+    /* The semantic value stack.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs;
+    YYSTYPE *yyvsp;
 
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  YYSIZE_T yystacksize = YYINITDEPTH;
+    YYSIZE_T yystacksize;
 
+  int yyn;
+  int yyresult;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
   /* The number of symbols on the RHS of the reduced rule.
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
+  yytoken = 0;
+  yyss = yyssa;
+  yyvs = yyvsa;
+  yystacksize = YYINITDEPTH;
+
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
   yynerrs = 0;
-  yychar = YYEMPTY;		/* Cause a token to be read.  */
+  yychar = YYEMPTY; /* Cause a token to be read.  */
 
   /* Initialize stack pointers.
      Waste one element of value and location stack
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
-
   yyssp = yyss;
   yyvsp = yyvs;
 
@@ -1191,7 +1212,6 @@ yyparse ()
 	YYSTYPE *yyvs1 = yyvs;
 	yytype_int16 *yyss1 = yyss;
 
-
 	/* Each stack pointer address is followed by the size of the
 	   data in use in that stack, in bytes.  This used to be a
 	   conditional around just the two extra args, but that might
@@ -1199,7 +1219,6 @@ yyparse ()
 	yyoverflow (YY_("memory exhausted"),
 		    &yyss1, yysize * sizeof (*yyssp),
 		    &yyvs1, yysize * sizeof (*yyvsp),
-
 		    &yystacksize);
 
 	yyss = yyss1;
@@ -1222,9 +1241,8 @@ yyparse ()
 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
 	if (! yyptr)
 	  goto yyexhaustedlab;
-	YYSTACK_RELOCATE (yyss);
-	YYSTACK_RELOCATE (yyvs);
-
+	YYSTACK_RELOCATE (yyss_alloc, yyss);
+	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
 	if (yyss1 != yyssa)
 	  YYSTACK_FREE (yyss1);
@@ -1235,7 +1253,6 @@ yyparse ()
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
-
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
 		  (unsigned long int) yystacksize));
 
@@ -1245,6 +1262,9 @@ yyparse ()
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
+  if (yystate == YYFINAL)
+    YYACCEPT;
+
   goto yybackup;
 
 /*-----------.
@@ -1253,16 +1273,16 @@ yyparse ()
 yybackup:
 
   /* Do appropriate processing given the current state.  Read a
-     look-ahead token if we need one and don't already have one.  */
+     lookahead token if we need one and don't already have one.  */
 
-  /* First try to decide what to do without reference to look-ahead token.  */
+  /* First try to decide what to do without reference to lookahead token.  */
   yyn = yypact[yystate];
   if (yyn == YYPACT_NINF)
     goto yydefault;
 
-  /* Not known => get a look-ahead token if don't already have one.  */
+  /* Not known => get a lookahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
@@ -1294,20 +1314,16 @@ yybackup:
       goto yyreduce;
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
-  /* Shift the look-ahead token.  */
+  /* Shift the lookahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
-  /* Discard the shifted token unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
 
   yystate = yyn;
   *++yyvsp = yylval;
@@ -1347,7 +1363,9 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 43 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 42 "./Parser.y"
     {
 						ParsedSearchExpression((yyvsp[(1) - (1)].pexpr));
 						delete (yyvsp[(1) - (1)].pexpr);
@@ -1356,7 +1374,9 @@ yyreduce:
     break;
 
   case 3:
-#line 49 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 48 "./Parser.y"
     {
 						CSearchExpr* pexpr = new CSearchExpr(*(yyvsp[(1) - (1)].pstr));
 						ParsedSearchExpression(pexpr);
@@ -1367,7 +1387,9 @@ yyreduce:
     break;
 
   case 4:
-#line 58 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 57 "./Parser.y"
     {
 						yyerror(wxT("Undefined search expression error"));
 						delete (yyvsp[(1) - (2)].pexpr);
@@ -1376,7 +1398,9 @@ yyreduce:
     break;
 
   case 6:
-#line 68 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 67 "./Parser.y"
     {
 						CSearchExpr* pexpr = new CSearchExpr;
 						pexpr->Add(SEARCHOP_AND);
@@ -1389,7 +1413,9 @@ yyreduce:
     break;
 
   case 7:
-#line 78 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 77 "./Parser.y"
     {
 						CSearchExpr* pexpr = new CSearchExpr;
 						pexpr->Add(SEARCHOP_OR);
@@ -1402,7 +1428,9 @@ yyreduce:
     break;
 
   case 8:
-#line 88 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 87 "./Parser.y"
     {
 						CSearchExpr* pexpr = new CSearchExpr;
 						pexpr->Add(SEARCHOP_NOT);
@@ -1415,14 +1443,18 @@ yyreduce:
     break;
 
   case 9:
-#line 98 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 97 "./Parser.y"
     {
 						(yyval.pexpr) = (yyvsp[(2) - (3)].pexpr);
 					;}
     break;
 
   case 10:
-#line 103 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 102 "./Parser.y"
     {
 						yyerror(wxT("Missing right operand for OR on search expression"));
 						delete (yyvsp[(1) - (3)].pexpr);
@@ -1431,7 +1463,9 @@ yyreduce:
     break;
 
   case 11:
-#line 109 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 108 "./Parser.y"
     {
 						yyerror(wxT("Missing operand for NOT on search expression"));
 						delete (yyvsp[(1) - (3)].pexpr);
@@ -1440,7 +1474,9 @@ yyreduce:
     break;
 
   case 12:
-#line 115 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 114 "./Parser.y"
     {
 						yyerror(wxT("Missing left parenthesis on search expression"));
 						return 1;
@@ -1448,7 +1484,9 @@ yyreduce:
     break;
 
   case 13:
-#line 120 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 119 "./Parser.y"
     {
 						yyerror(wxT("Missing closing parenthesis on search expression"));
 						delete (yyvsp[(2) - (3)].pexpr);
@@ -1457,7 +1495,9 @@ yyreduce:
     break;
 
   case 14:
-#line 126 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 125 "./Parser.y"
     {
 						yyerror(wxT("Missing left operand for AND on search expression"));
 						return 1;
@@ -1465,7 +1505,9 @@ yyreduce:
     break;
 
   case 15:
-#line 131 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 130 "./Parser.y"
     {
 						yyerror(wxT("Missing left operand for OR on search expression"));
 						return 1;
@@ -1473,7 +1515,9 @@ yyreduce:
     break;
 
   case 16:
-#line 136 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 135 "./Parser.y"
     {
 						yyerror(wxT("Missing left operand for NOT on search expression (?)"));
 						return 1;
@@ -1481,7 +1525,9 @@ yyreduce:
     break;
 
   case 17:
-#line 143 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 142 "./Parser.y"
     {
 						(yyval.pexpr) = new CSearchExpr(*(yyvsp[(1) - (1)].pstr));
 						delete (yyvsp[(1) - (1)].pstr);
@@ -1489,7 +1535,9 @@ yyreduce:
     break;
 
   case 18:
-#line 148 "./Parser.y"
+
+/* Line 1464 of yacc.c  */
+#line 147 "./Parser.y"
     {
 						/*$1->Concatenate($2);
 						delete $2;*/
@@ -1504,8 +1552,9 @@ yyreduce:
     break;
 
 
-/* Line 1267 of yacc.c.  */
-#line 1513 "Parser.cpp"
+
+/* Line 1464 of yacc.c  */
+#line 1558 "Parser.cpp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -1516,7 +1565,6 @@ yyreduce:
 
   *++yyvsp = yyval;
 
-
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
@@ -1581,7 +1629,7 @@ yyerrlab:
 
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse look-ahead token after an
+      /* If just tried and failed to reuse lookahead token after an
 	 error, discard it.  */
 
       if (yychar <= YYEOF)
@@ -1598,7 +1646,7 @@ yyerrlab:
 	}
     }
 
-  /* Else will try to reuse look-ahead token after shifting the error
+  /* Else will try to reuse lookahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
@@ -1655,9 +1703,6 @@ yyerrlab1:
       YY_STACK_PRINT (yyss, yyssp);
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   *++yyvsp = yylval;
 
 
@@ -1682,7 +1727,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -1693,7 +1738,7 @@ yyexhaustedlab:
 #endif
 
 yyreturn:
-  if (yychar != YYEOF && yychar != YYEMPTY)
+  if (yychar != YYEMPTY)
      yydestruct ("Cleanup: discarding lookahead",
 		 yytoken, &yylval);
   /* Do not reclaim the symbols of the rule which action triggered
@@ -1719,7 +1764,9 @@ yyreturn:
 }
 
 
-#line 161 "./Parser.y"
+
+/* Line 1684 of yacc.c  */
+#line 160 "./Parser.y"
 
 
 int yyerror(const char* errstr)
diff --git a/src/Parser.hpp b/src/Parser.hpp
index 2e48bc8..e4f7a33 100644
--- a/src/Parser.hpp
+++ b/src/Parser.hpp
@@ -1,23 +1,22 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
+/* A Bison parser, made by GNU Bison 2.4.2.  */
 
 /* Skeleton interface for Bison's Yacc-like parsers in C
-
-   Copyright (c) 1984-2008 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
+   
+      Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
+   Foundation, Inc.
+   
+   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.
-
+   the Free Software Foundation, either version 3 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., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -28,10 +27,11 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
+
 /* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
@@ -45,30 +45,29 @@
      TOK_ED2K_LINK = 262
    };
 #endif
-/* Tokens.  */
-#define TOK_STRING 258
-#define TOK_AND 259
-#define TOK_OR 260
-#define TOK_NOT 261
-#define TOK_ED2K_LINK 262
-
 
 
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 23 "./Parser.y"
 {
+
+/* Line 1685 of yacc.c  */
+#line 22 "./Parser.y"
+
 	wxString*		pstr;
 	CSearchExpr*	pexpr;
-}
-/* Line 1489 of yacc.c.  */
-#line 68 "Parser.hpp"
-	YYSTYPE;
+
+
+
+/* Line 1685 of yacc.c  */
+#line 65 "Parser.hpp"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 extern YYSTYPE yylval;
 
+
diff --git a/src/PartFile.cpp b/src/PartFile.cpp
index db8e8d8..3d6a9e3 100644
--- a/src/PartFile.cpp
+++ b/src/PartFile.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -145,20 +145,20 @@ CPartFile::CPartFile()
 CPartFile::CPartFile(CSearchFile* searchresult)
 {
 	Init();
-	
+
 	m_abyFileHash = searchresult->GetFileHash();
 	SetFileName(searchresult->GetFileName());
 	SetFileSize(searchresult->GetFileSize());
-	
+
 	for (unsigned int i = 0; i < searchresult->m_taglist.size(); ++i){
 		const CTag& pTag = searchresult->m_taglist[i];
-		
+
 		bool bTagAdded = false;
 		if (pTag.GetNameID() == 0 && !pTag.GetName().IsEmpty() && (pTag.IsStr() || pTag.IsInt())) {
 			static const struct {
 				wxString	pszName;
 				uint8	nType;
-			} _aMetaTags[] = 
+			} _aMetaTags[] =
 				{
 					{ wxT(FT_ED2K_MEDIA_ARTIST),  2 },
 					{ wxT(FT_ED2K_MEDIA_ALBUM),   2 },
@@ -167,7 +167,7 @@ CPartFile::CPartFile(CSearchFile* searchresult)
 					{ wxT(FT_ED2K_MEDIA_BITRATE), 3 },
 					{ wxT(FT_ED2K_MEDIA_CODEC),   2 }
 				};
-			
+
 			for (unsigned int t = 0; t < itemsof(_aMetaTags); ++t) {
 				if (	pTag.GetType() == _aMetaTags[t].nType &&
 					(pTag.GetName() == _aMetaTags[t].pszName)) {
@@ -201,7 +201,7 @@ CPartFile::CPartFile(CSearchFile* searchresult)
 			static const struct {
 				uint8	nID;
 				uint8	nType;
-			} _aMetaTags[] = 
+			} _aMetaTags[] =
 				{
 					{ FT_FILETYPE,		2 },
 					{ FT_FILEFORMAT,	2 }
@@ -237,7 +237,7 @@ CPartFile::CPartFile(CSearchFile* searchresult)
 CPartFile::CPartFile(const CED2KFileLink* fileLink)
 {
 	Init();
-	
+
 	SetFileName(CPath(fileLink->GetName()));
 	SetFileSize(fileLink->GetSize());
 	m_abyFileHash = fileLink->GetHashKey();
@@ -255,11 +255,11 @@ CPartFile::CPartFile(const CED2KFileLink* fileLink)
 CPartFile::~CPartFile()
 {
 	// if it's not opened, it was completed or deleted
-	if (m_hpartfile.IsOpened()) { 
+	if (m_hpartfile.IsOpened()) {
 		FlushBuffer();
 		m_hpartfile.Close();
 		// Update met file (with current directory entry)
-		SavePartFile();			
+		SavePartFile();
 	}
 
 	DeleteContents(m_BufferedData_list);
@@ -272,20 +272,20 @@ CPartFile::~CPartFile()
 void CPartFile::CreatePartFile()
 {
 	// use lowest free partfilenumber for free file (InterCeptor)
-	int i = 0; 
-	do { 
-		++i; 
+	int i = 0;
+	do {
+		++i;
 		m_partmetfilename = CPath(CFormat(wxT("%03i.part.met")) % i);
 		m_fullname = thePrefs::GetTempDir().JoinPaths(m_partmetfilename);
 	} while (m_fullname.FileExists());
 
 	m_CorruptionBlackBox->SetPartFileInfo(GetFileName().GetPrintable(), m_partmetfilename.RemoveAllExt().GetPrintable());
-	
+
 	wxString strPartName = m_partmetfilename.RemoveExt().GetRaw();
 	m_taglist.push_back(CTagString(FT_PARTFILENAME, strPartName ));
-	
+
 	m_gaplist.Init(GetFileSize(), true);	// Init empty
-	
+
 	m_PartPath = m_fullname.RemoveExt();
 	bool fileCreated;
 	if (thePrefs::GetAllocFullFile()) {
@@ -300,16 +300,16 @@ void CPartFile::CreatePartFile()
 	}
 
 	SetFilePath(thePrefs::GetTempDir());
-			
+
 	if (thePrefs::GetAllocFullFile()) {
 		SetStatus(PS_ALLOCATING);
 		CThreadScheduler::AddTask(new CAllocateFileTask(this, thePrefs::AddNewFilesPaused()));
 	} else {
 		AllocationFinished();
 	}
-	
+
 	m_hashsetneeded = (GetED2KPartHashCount() > 0);
-	
+
 	SavePartFile(true);
 	SetActive(theApp->IsConnected());
 }
@@ -319,16 +319,16 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 {
 	bool isnewstyle = false;
 	uint8 version,partmettype=PMT_UNKNOWN;
-	
+
 	std::map<uint16, Gap_Struct*> gap_map; // Slugfiller
 	transferred = 0;
-	
+
 	m_partmetfilename = filename;
 	m_CorruptionBlackBox->SetPartFileInfo(GetFileName().GetPrintable(), m_partmetfilename.RemoveAllExt().GetPrintable());
 	m_filePath = in_directory;
 	m_fullname = m_filePath.JoinPaths(m_partmetfilename);
 	m_PartPath = m_fullname.RemoveExt();
-	
+
 	// readfile data form part.met file
 	CPath curMetFilename = m_fullname;
 	if (from_backup) {
@@ -336,7 +336,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 		AddLogLineN(CFormat( _("Trying to load backup of met-file from %s") )
 			% curMetFilename );
 	}
-	
+
 	try {
 		CFile metFile(curMetFilename, CFile::read);
 		if (!metFile.IsOpened()) {
@@ -349,7 +349,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 			AddLogLineN(CFormat( _("ERROR: part.met file is 0 size: %s ==> %s") )
 				% m_partmetfilename
 				% GetFileName() );
-			
+
 			return false;
 		}
 
@@ -358,29 +358,29 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 			metFile.Close();
 			//if (version == 83) return ImportShareazaTempFile(...)
 			AddLogLineN(CFormat( _("ERROR: Invalid part.met file version: %s ==> %s") )
-				% m_partmetfilename 
+				% m_partmetfilename
 				% GetFileName() );
 			return false;
 		}
 
 		isnewstyle = (version == PARTFILE_SPLITTEDVERSION);
 		partmettype = isnewstyle ? PMT_SPLITTED : PMT_DEFAULTOLD;
-		
+
 		if (version == PARTFILE_VERSION) {// Do we still need this check ?
 			uint8 test[4];									// It will fail for certain files.
 			metFile.Seek(24, wxFromStart);
 			metFile.Read(test,4);
-		
+
 			metFile.Seek(1, wxFromStart);
 			if (test[0]==0 && test[1]==0 && test[2]==2 && test[3]==1) {
 				isnewstyle=true;	// edonkeys so called "old part style"
 				partmettype=PMT_NEWOLD;
 			}
 		}
-		
+
 		if (isnewstyle) {
 			uint32 temp = metFile.ReadUInt32();
-	
+
 			if (temp==0) {	// 0.48 partmets - different again
 				LoadHashsetFromFile(&metFile, false);
 			} else {
@@ -392,15 +392,15 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 		} else {
 			LoadDateFromFile(&metFile);
 			LoadHashsetFromFile(&metFile, false);
-		}	
+		}
 
 		uint32 tagcount = metFile.ReadUInt32();
 
 		for (uint32 j = 0; j < tagcount; ++j) {
 			CTag newtag(metFile,true);
 			if (	!getsizeonly ||
-				(getsizeonly && 
-				 	(newtag.GetNameID() == FT_FILESIZE ||
+				(getsizeonly &&
+					(newtag.GetNameID() == FT_FILESIZE ||
 					 newtag.GetNameID() == FT_FILENAME))) {
 				switch(newtag.GetNameID()) {
 					case FT_FILENAME: {
@@ -411,7 +411,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 						break;
 					}
 					case FT_LASTSEENCOMPLETE: {
-						lastseencomplete = newtag.GetInt();		
+						lastseencomplete = newtag.GetInt();
 						break;
 					}
 					case FT_FILESIZE: {
@@ -426,7 +426,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 						//#warning needs setfiletype string
 						//SetFileType(newtag.GetStr());
 						break;
-					}					
+					}
 					case FT_CATEGORY: {
 						m_category = newtag.GetInt();
 						if (m_category > theApp->glob_prefs->GetCatCount() - 1 ) {
@@ -458,7 +458,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 						break;
 					}
 					case FT_OLDULPRIORITY:
-					case FT_ULPRIORITY: {			
+					case FT_ULPRIORITY: {
 						if (!isnewstyle){
 							SetUpPriority(newtag.GetInt(), false);
 							if( GetUpPriority() == PR_AUTO ){
@@ -467,9 +467,9 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 							} else {
 								SetAutoUpPriority(false);
 							}
-						}					
+						}
 						break;
-					}				
+					}
 					case FT_KADLASTPUBLISHSRC:{
 						SetLastPublishTimeKadSrc(newtag.GetInt(), 0);
 						if(GetLastPublishTimeKadSrc() > (uint32)time(NULL)+KADEMLIAREPUBLISHTIMES) {
@@ -481,7 +481,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 					case FT_KADLASTPUBLISHNOTES:{
 						SetLastPublishTimeKadNotes(newtag.GetInt());
 						break;
-					}					
+					}
 					// old tags: as long as they are not needed, take the chance to purge them
 					case FT_PERMISSIONS:
 					case FT_KADLASTPUBLISHKEY:
@@ -521,7 +521,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 						break;
 					}
 					case FT_ATTRANSFERREDHI:{
-						statistic.SetAllTimeTransferred(statistic.GetAllTimeTransferred() + (((uint64)newtag.GetInt()) << 32));	
+						statistic.SetAllTimeTransferred(statistic.GetAllTimeTransferred() + (((uint64)newtag.GetInt()) << 32));
 						break;
 					}
 					case FT_ATREQUESTED:{
@@ -534,7 +534,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 					}
 					default: {
 						// Start Changes by Slugfiller for better exception handling
-						
+
 						wxCharBuffer tag_ansi_name = newtag.GetName().ToAscii();
 						char gap_mark = tag_ansi_name ? tag_ansi_name[0u] : 0;
 						if ( newtag.IsInt() && (newtag.GetName().Length() > 1) &&
@@ -571,13 +571,13 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 				// Nothing. Else, nothing.
 			}
 		}
-		
+
 		// load the hashsets from the hybridstylepartmet
 		if (isnewstyle && !getsizeonly && (metFile.GetPosition()<metFile.GetLength()) ) {
 			metFile.Seek(1, wxFromCurrent);
-			
+
 			uint16 parts=GetPartCount();	// assuming we will get all hashsets
-			
+
 			for (uint16 i = 0; i < parts && (metFile.GetPosition()+16<metFile.GetLength()); ++i){
 				CMD4Hash cur_hash = metFile.ReadHash();
 				m_hashlist.push_back(cur_hash);
@@ -590,13 +590,13 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 			if (m_abyFileHash != checkhash) {
 				m_hashlist.clear();
 			}
-		}			
+		}
 	} catch (const CInvalidPacket& e) {
-		AddLogLineC(CFormat(_("Error: %s (%s) is corrupt (bad tags: %s), unable to load file.")) 
+		AddLogLineC(CFormat(_("Error: %s (%s) is corrupt (bad tags: %s), unable to load file."))
 			% m_partmetfilename
 			% GetFileName()
 			% e.what());
-		return false;		
+		return false;
 	} catch (const CIOFailureException& e) {
 		AddDebugLogLineC(logPartFile, CFormat( wxT("IO failure while loading '%s': %s") )
 			% m_partmetfilename
@@ -607,16 +607,16 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 			% m_partmetfilename
 			% GetFileName() );
 		AddLogLineC(_("Trying to recover file info..."));
-		
-		// Safe file is that who have 
+
+		// Safe file is that who have
 		// - FileSize
 		if (GetFileSize()) {
 			// We have filesize, try other needed info
 
 			// Do we need to check gaps? I think not,
-			// because they are checked below. Worst 
+			// because they are checked below. Worst
 			// scenario will only mark file as 0 bytes downloaded.
-				
+
 			// -Filename
 			if (!GetFileName().IsOk()) {
 				// Not critical, let's put a random filename.
@@ -624,12 +624,12 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 					"Recovering no-named file - will try to recover it as RecoveredFile.dat"));
 				SetFileName(CPath(wxT("RecoveredFile.dat")));
 			}
-		
+
 			AddLogLineC(_("Recovered all available file info :D - Trying to use it..."));
 		} else {
 			AddLogLineC(_("Unable to recover file info :("));
-			return false;			
-		}		
+			return false;
+		}
 	}
 
 	if (getsizeonly) {
@@ -667,7 +667,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 			% GetFileName() );
 		return false;
 	}
-	
+
 	SetStatus(PS_EMPTY);
 
 	try {
@@ -687,9 +687,9 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 
 	// now close the file again until needed
 	m_hpartfile.Release(true);
-	
+
 	// check hashcount, file status etc
-	if (GetHashCount() != GetED2KPartHashCount()){	
+	if (GetHashCount() != GetED2KPartHashCount()){
 		m_hashsetneeded = true;
 		return true;
 	} else {
@@ -700,13 +700,13 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 			}
 		}
 	}
-	
+
 	if (m_gaplist.IsComplete()) { // is this file complete already?
 		CompleteFile(false);
 		return true;
 	}
 
-	if (!isnewstyle) { // not for importing	
+	if (!isnewstyle) { // not for importing
 		const time_t file_date = CPath::GetModificationTime(m_PartPath);
 		if (m_lastDateChanged != file_date) {
 			// It's pointless to rehash an empty file, since the case
@@ -717,7 +717,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 					% (m_lastDateChanged - file_date) );
 				// rehash
 				SetStatus(PS_WAITINGFORHASH);
-			
+
 				CPath partFileName = m_partmetfilename.RemoveExt();
 				CThreadScheduler::AddTask(new CHashingTask(m_filePath, partFileName, this));
 			}
@@ -730,7 +730,7 @@ uint8 CPartFile::LoadPartFile(const CPath& in_directory, const CPath& filename,
 	} else if (completedsize != transferred) {
 		m_iLostDueToCorruption = transferred - completedsize;
 	}
-	
+
 	return true;
 }
 
@@ -743,26 +743,26 @@ bool CPartFile::SavePartFile(bool Initial)
 		case PS_COMPLETE:
 			return false;
 	}
-	
+
 	/* Don't write anything to disk if less than 100 KB of free space is left. */
 	sint64 free = CPath::GetFreeSpaceAt(GetFilePath());
 	if ((free != wxInvalidOffset) && (free < (100 * 1024))) {
 		return false;
 	}
-	
+
 	CFile file;
 	try {
 		if (!m_PartPath.FileExists()) {
 			throw wxString(wxT(".part file not found"));
 		}
-		
+
 		uint32 lsc = lastseencomplete;
 
 		if (!Initial) {
 			CPath::BackupFile(m_fullname, wxT(".backup"));
 			CPath::RemoveFile(m_fullname);
 		}
-		
+
 		file.Open(m_fullname, CFile::write);
 		if (!file.IsOpened()) {
 			throw wxString(wxT("Failed to open part.met file"));
@@ -770,7 +770,7 @@ bool CPartFile::SavePartFile(bool Initial)
 
 		// version
 		file.WriteUInt8(IsLargeFile() ? PARTFILE_VERSION_LARGEFILE : PARTFILE_VERSION);
-		
+
 		file.WriteUInt32(CPath::GetModificationTime(m_PartPath));
 		// hash
 		file.WriteHash(m_abyFileHash);
@@ -779,34 +779,34 @@ bool CPartFile::SavePartFile(bool Initial)
 		for (int x = 0; x < parts; ++x) {
 			file.WriteHash(m_hashlist[x]);
 		}
-		// tags		
+		// tags
 		#define FIXED_TAGS 15
 		uint32 tagcount = m_taglist.size() + FIXED_TAGS + (m_gaplist.size()*2);
-		if (!m_corrupted_list.empty()) {			
+		if (!m_corrupted_list.empty()) {
 			++tagcount;
 		}
-		
-		if (m_pAICHHashSet->HasValidMasterHash() && (m_pAICHHashSet->GetStatus() == AICH_VERIFIED)){			
+
+		if (m_pAICHHashSet->HasValidMasterHash() && (m_pAICHHashSet->GetStatus() == AICH_VERIFIED)){
 			++tagcount;
 		}
-		
+
 		if (GetLastPublishTimeKadSrc()){
 			++tagcount;
 		}
-		
+
 		if (GetLastPublishTimeKadNotes()){
 			++tagcount;
 		}
-		
+
 		if (GetDlActiveTime()){
 			++tagcount;
 		}
-		
+
 		file.WriteUInt32(tagcount);
 
 		//#warning Kry - Where are lost by coruption and gained by compression?
-		
-		// 0 (unicoded part file name) 
+
+		// 0 (unicoded part file name)
 		// We write it with BOM to keep eMule compatibility. Note that the 'printable' filename is saved,
 		// as presently the filename does not represent an actual file.
 		CTagString(	FT_FILENAME,	GetFileName().GetPrintable()).WriteTagToFile( &file, utf8strOptBOM );
@@ -833,7 +833,7 @@ bool CPartFile::SavePartFile(bool Initial)
 			CTagInt32( FT_ULPRIORITY,	GetUpPriority() ).WriteTagToFile( &file );	// 8
 			CTagInt32( FT_OLDULPRIORITY,	GetUpPriority() ).WriteTagToFile( &file );	// 9
 		}
-	
+
 		CTagInt32(FT_CATEGORY,       m_category).WriteTagToFile( &file );                       // 10
 		CTagInt32(FT_ATTRANSFERRED,   statistic.GetAllTimeTransferred() & 0xFFFFFFFF).WriteTagToFile( &file );// 11
 		CTagInt32(FT_ATTRANSFERREDHI, statistic.GetAllTimeTransferred() >>32).WriteTagToFile( &file );// 12
@@ -852,7 +852,7 @@ bool CPartFile::SavePartFile(bool Initial)
 				strCorruptedParts += CFormat(wxT("%u")) % uCorruptedPart;
 			}
 			wxASSERT( !strCorruptedParts.IsEmpty() );
-			
+
 			CTagString( FT_CORRUPTEDPARTS, strCorruptedParts ).WriteTagToFile( &file); // 11?
 		}
 
@@ -861,15 +861,15 @@ bool CPartFile::SavePartFile(bool Initial)
 			CTagString aichtag(FT_AICH_HASH, m_pAICHHashSet->GetMasterHash().GetString() );
 			aichtag.WriteTagToFile(&file); // 12?
 		}
-		
+
 		if (GetLastPublishTimeKadSrc()){
-			CTagInt32(FT_KADLASTPUBLISHSRC, GetLastPublishTimeKadSrc()).WriteTagToFile(&file); // 15? 
+			CTagInt32(FT_KADLASTPUBLISHSRC, GetLastPublishTimeKadSrc()).WriteTagToFile(&file); // 15?
 		}
-		
+
 		if (GetLastPublishTimeKadNotes()){
-			CTagInt32(FT_KADLASTPUBLISHNOTES, GetLastPublishTimeKadNotes()).WriteTagToFile(&file); // 16? 
-		}		
-		
+			CTagInt32(FT_KADLASTPUBLISHNOTES, GetLastPublishTimeKadNotes()).WriteTagToFile(&file); // 16?
+		}
+
 		if (GetDlActiveTime()){
 			CTagInt32(FT_DL_ACTIVE_TIME, GetDlActiveTime()).WriteTagToFile(&file); // 17
 		}
@@ -877,20 +877,20 @@ bool CPartFile::SavePartFile(bool Initial)
 		for (uint32 j = 0; j < (uint32)m_taglist.size();++j) {
 			m_taglist[j].WriteTagToFile(&file);
 		}
-		
+
 		// gaps
 		unsigned i_pos = 0;
 		for (CGapList::const_iterator it = m_gaplist.begin(); it != m_gaplist.end(); ++it) {
 			wxString tagName = CFormat(wxT(" %u")) % i_pos;
-			
+
 			// gap start = first missing byte but gap ends = first non-missing byte
 			// in edonkey but I think its easier to user the real limits
 			tagName[0] = FT_GAPSTART;
 			CTagIntSized(tagName, it.start(),	IsLargeFile() ? 64 : 32).WriteTagToFile( &file );
-			
+
 			tagName[0] = FT_GAPEND;
 			CTagIntSized(tagName, it.end() + 1, IsLargeFile() ? 64 : 32).WriteTagToFile( &file );
-			
+
 			++i_pos;
 		}
 	} catch (const wxString& error) {
@@ -902,16 +902,16 @@ bool CPartFile::SavePartFile(bool Initial)
 		return false;
 	} catch (const CIOFailureException& e) {
 		AddLogLineCS(_("IO failure while saving partfile: ") + e.what());
-		
+
 		return false;
 	}
-	
+
 	file.Close();
 
 	if (!Initial) {
 		CPath::RemoveFile(m_fullname.AppendExt(wxT(".backup")));
 	}
-	
+
 	sint64 metLength = m_fullname.GetFileSize();
 	if (metLength == wxInvalidOffset) {
 		theApp->ShowAlert( CFormat( _("Could not retrieve length of '%s' - using %s file.") )
@@ -926,7 +926,7 @@ bool CPartFile::SavePartFile(bool Initial)
 			% m_fullname
 			% PARTMET_BAK_EXT,
 			_("Message"), wxOK);
-				
+
 		CPath::CloneFile(m_fullname.AppendExt(PARTMET_BAK_EXT), m_fullname, true);
 	} else {
 		// no error, just backup
@@ -940,9 +940,9 @@ bool CPartFile::SavePartFile(bool Initial)
 void CPartFile::SaveSourceSeeds()
 {
 	#define MAX_SAVED_SOURCES 10
-	
+
 	// Kry - Sources seeds
-	// Based on a Feature request, this saves the last MAX_SAVED_SOURCES 
+	// Based on a Feature request, this saves the last MAX_SAVED_SOURCES
 	// sources of the file, giving a 'seed' for the next run.
 	// We save the last sources because:
 	// 1 - They could be the hardest to get
@@ -951,15 +951,15 @@ void CPartFile::SaveSourceSeeds()
 	// we probably have more credits on them.
 	// Anyway, source exchange will get us the rest of the sources
 	// This feature is currently used only on rare files (< 20 sources)
-	// 
-	
+	//
+
 	if (GetSourceCount()>20) {
-		return;	
-	}	
-	
+		return;
+	}
+
 	CClientRefList source_seeds;
 	int n_sources = 0;
-	
+
 	CClientRefList::iterator it = m_downloadingSourcesList.begin();
 	for( ; it != m_downloadingSourcesList.end() && n_sources < MAX_SAVED_SOURCES; ++it) {
 		if (!it->HasLowID()) {
@@ -969,7 +969,7 @@ void CPartFile::SaveSourceSeeds()
 	}
 
 	if (n_sources < MAX_SAVED_SOURCES) {
-		// Not enough downloading sources to fill the list, going to sources list	
+		// Not enough downloading sources to fill the list, going to sources list
 		if (GetSourceCount() > 0) {
 			SourceSet::reverse_iterator rit = m_SrcList.rbegin();
 			for ( ; ((rit != m_SrcList.rend()) && (n_sources<MAX_SAVED_SOURCES)); ++rit) {
@@ -980,12 +980,12 @@ void CPartFile::SaveSourceSeeds()
 			}
 		}
 	}
-	
+
 	// Write the file
 	if (!n_sources) {
 		return;
-	} 
-	
+	}
+
 	const CPath seedsPath = m_fullname.AppendExt(wxT(".seeds"));
 
 	CFile file;
@@ -994,15 +994,15 @@ void CPartFile::SaveSourceSeeds()
 		AddLogLineN(CFormat( _("Failed to save part.met.seeds file for %s") )
 			% m_fullname);
 		return;
-	}	
+	}
 
 	try {
 		file.WriteUInt8(0); // v3, to avoid v2 clients choking on it.
 		file.WriteUInt8(source_seeds.size());
-		
+
 		CClientRefList::iterator it2 = source_seeds.begin();
 		for (; it2 != source_seeds.end(); ++it2) {
-			CUpDownClient* cur_src = it2->GetClient();		
+			CUpDownClient* cur_src = it2->GetClient();
 			file.WriteUInt32(cur_src->GetUserIDHybrid());
 			file.WriteUInt16(cur_src->GetUserPort());
 			file.WriteHash(cur_src->GetUserHash());
@@ -1011,12 +1011,12 @@ void CPartFile::SaveSourceSeeds()
 			const uint8 uRequestsCryptLayer	= cur_src->RequestsCryptLayer() ? 1 : 0;
 			const uint8 uRequiresCryptLayer	= cur_src->RequiresCryptLayer() ? 1 : 0;
 			const uint8 byCryptOptions = (uRequiresCryptLayer << 2) | (uRequestsCryptLayer << 1) | (uSupportsCryptLayer << 0);
-			file.WriteUInt8(byCryptOptions);		
+			file.WriteUInt8(byCryptOptions);
 		}
 
 		/* v2: Added to keep track of too old seeds */
 		file.WriteUInt32(wxDateTime::Now().GetTicks());
-		
+
 		AddLogLineN(CFormat( wxPLURAL("Saved %i source seed for partfile: %s (%s)", "Saved %i source seeds for partfile: %s (%s)", n_sources) )
 			% n_sources
 			% m_fullname
@@ -1026,41 +1026,36 @@ void CPartFile::SaveSourceSeeds()
 				% m_partmetfilename
 				% GetFileName()
 				% e.what() );
-		
+
 		n_sources = 0;
 		file.Close();
 		CPath::RemoveFile(seedsPath);
 	}
-}	
+}
 
 void CPartFile::LoadSourceSeeds()
-{	
+{
 	CMemFile sources_data;
-	
+
 	bool valid_sources = false;
-	
+
 	const CPath seedsPath = m_fullname.AppendExt(wxT(".seeds"));
 	if (!seedsPath.FileExists()) {
 		return;
-	} 
-	
+	}
+
 	CFile file(seedsPath, CFile::read);
 	if (!file.IsOpened()) {
-		AddLogLineN(CFormat( _("Partfile %s (%s) has no seeds file") )
+		// Exists but can't be opened. Should not happen. Probably permission problem, try to remove it.
+		AddLogLineN(CFormat( _("Can't read seeds file for Partfile %s (%s)") )
 			% m_partmetfilename
 			% GetFileName() );
+		CPath::RemoveFile(seedsPath);
 		return;
-	}	
-	
-		
-	try {
-		if (file.GetLength() <= 1) {
-			AddLogLineN(CFormat( _("Partfile %s (%s) has a void seeds file") )
-				% m_partmetfilename
-				% GetFileName() );
-			return;
-		}
+	}
 
+	bool badSeedsFile = false;
+	try {
 		uint8 src_count = file.ReadUInt8();
 
 		bool bUseSX2Format = (src_count == 0);
@@ -1069,56 +1064,61 @@ void CPartFile::LoadSourceSeeds()
 			// v3 sources seeds
 			src_count = file.ReadUInt8();
 		}
-		
+
 		sources_data.WriteUInt16(src_count);
-	
-		for (int i = 0; i< src_count; ++i) {		
+
+		for (int i = 0; i< src_count; ++i) {
 			uint32 dwID = file.ReadUInt32();
 			uint16 nPort = file.ReadUInt16();
 
 			sources_data.WriteUInt32(bUseSX2Format ? dwID : wxUINT32_SWAP_ALWAYS(dwID));
 			sources_data.WriteUInt16(nPort);
 			sources_data.WriteUInt32(0);
-			sources_data.WriteUInt16(0);	
+			sources_data.WriteUInt16(0);
 
 			if (bUseSX2Format) {
 				sources_data.WriteHash(file.ReadHash());
 				sources_data.WriteUInt8(file.ReadUInt8());
 			}
-			
+
 		}
-		
+
 		if (!file.Eof()) {
-	
-			// v2: Added to keep track of too old seeds 
+
+			// v2: Added to keep track of too old seeds
 			time_t time = (time_t)file.ReadUInt32();
-	
+
 			// Time frame is 2 hours. More than enough to compile
 			// your new aMule version!.
 			if ((time + MIN2S(120)) >= wxDateTime::Now().GetTicks()) {
 				valid_sources = true;
 			}
-			
+
 		} else {
 			// v1 has no time data. We can safely use
 			// the sources, next time will be saved.
 			valid_sources = true;
 		}
-		
+
 		if (valid_sources) {
 			sources_data.Seek(0);
-			AddClientSources(&sources_data, SF_SOURCE_SEEDS, bUseSX2Format ? 4 : 1, bUseSX2Format);		
+			AddClientSources(&sources_data, SF_SOURCE_SEEDS, bUseSX2Format ? 4 : 1, bUseSX2Format);
 		}
-	
+
 	} catch (const CSafeIOException& e) {
 		AddLogLineN(CFormat( _("Error reading partfile's seeds file (%s - %s): %s") )
 				% m_partmetfilename
 				% GetFileName()
-				% e.what() );		
+				% e.what() );
+		badSeedsFile = true;
 	}
 
 	file.Close();
-}		
+	if (badSeedsFile) {
+		// If we got an exception reading it remove it.
+		CPath::RemoveFile(seedsPath);
+	}
+}
 
 void CPartFile::PartFileHashFinished(CKnownFile* result)
 {
@@ -1127,6 +1127,7 @@ void CPartFile::PartFileHashFinished(CKnownFile* result)
 	if (GetED2KPartHashCount() == 0){
 		if (IsComplete(0, GetFileSize()-1)){
 			if (result->GetFileHash() != GetFileHash()){
+				// cppcheck-suppress zerodiv
 				AddLogLineN(CFormat(wxPLURAL(
 						"Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |%s|",
 						"Found corrupted part (%d) in %d parts file %s - FileResultHash |%s| FileHash |%s|",
@@ -1147,7 +1148,7 @@ void CPartFile::PartFileHashFinished(CKnownFile* result)
 			// Kry - trel_ar's completed parts check on rehashing.
 			// Very nice feature, if a file is completed but .part.met don't believe it,
 			// update it.
-			
+
 			uint64 partStart = i * PARTSIZE;
 			uint64 partEnd   = partStart + GetPartSize(i) - 1;
 			if (!( i < result->GetHashCount() && (result->GetPartHash(i) == GetPartHash(i)))){
@@ -1155,7 +1156,7 @@ void CPartFile::PartFileHashFinished(CKnownFile* result)
 					CMD4Hash wronghash;
 					if ( i < result->GetHashCount() )
 						wronghash = result->GetPartHash(i);
-			
+
 					AddLogLineN(CFormat(wxPLURAL(
 							"Found corrupted part (%d) in %d part file %s - FileResultHash |%s| FileHash |%s|",
 							"Found corrupted part (%d) in %d parts file %s - FileResultHash |%s| FileHash |%s|",
@@ -1166,7 +1167,7 @@ void CPartFile::PartFileHashFinished(CKnownFile* result)
 						% GetFileName()
 						% wronghash.Encode()
 						% GetPartHash(i).Encode() );
-				
+
 					AddGap(i);
 					errorfound = true;
 				}
@@ -1179,7 +1180,7 @@ void CPartFile::PartFileHashFinished(CKnownFile* result)
 					FillGap(i);
 					RemoveBlockFromList(partStart, partEnd);
 				}
-			}						
+			}
 		}
 	}
 
@@ -1189,7 +1190,7 @@ void CPartFile::PartFileHashFinished(CKnownFile* result)
 		delete m_pAICHHashSet;
 		m_pAICHHashSet = result->GetAICHHashset();
 		result->SetAICHHashset(NULL);
-		m_pAICHHashSet->SetOwner(this); 
+		m_pAICHHashSet->SetOwner(this);
 	}
 	else if (status == PS_COMPLETING) {
 		AddDebugLogLineN(logPartFile,
@@ -1197,7 +1198,7 @@ void CPartFile::PartFileHashFinished(CKnownFile* result)
 				% GetFileName());
 	}
 
-	
+
 	delete result;
 	if (!errorfound){
 		if (status == PS_COMPLETING){
@@ -1215,7 +1216,7 @@ void CPartFile::PartFileHashFinished(CKnownFile* result)
 	}
 	SetStatus(PS_READY);
 	SavePartFile();
-	theApp->sharedfiles->SafeAddKFile(this);		
+	theApp->sharedfiles->SafeAddKFile(this);
 }
 
 void CPartFile::AddGap(uint64 start, uint64 end)
@@ -1261,7 +1262,7 @@ bool CPartFile::GetNextEmptyBlockInPart(uint16 partNumber, Requested_Block_Struc
 		for (; it != m_gaplist.end(); ++it) {
 			gapStart = it.start();
 			end = it.end();
-			
+
 			// Want gaps that overlap start<->partEnd
 			if (gapStart <= partEnd && end >= start) {
 				noGap = false;
@@ -1394,7 +1395,7 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 			switch (cur_src->GetDownloadState()) {
 				case DS_DOWNLOADING: {
 					++transferingsrc;
-					kBpsDown += cur_src->SetDownloadLimit(reducedownload);			
+					kBpsDown += cur_src->SetDownloadLimit(reducedownload);
 					break;
 				}
 				case DS_BANNED: {
@@ -1406,7 +1407,7 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 				case DS_LOWTOLOWIP: {
 					if (cur_src->HasLowID() && !theApp->CanDoCallback(cur_src->GetServerIP(), cur_src->GetServerPort())) {
 						// If we are almost maxed on sources,
-						// slowly remove these client to see 
+						// slowly remove these client to see
 						// if we can find a better source.
 						if (((dwCurTick - lastpurgetime) > 30000) &&
 							(GetSourceCount() >= (thePrefs::GetMaxSourcePerFile()*.8))) {
@@ -1417,7 +1418,7 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 					} else {
 						cur_src->SetDownloadState(DS_ONQUEUE);
 					}
-					
+
 					break;
 				}
 				case DS_NONEEDEDPARTS: {
@@ -1443,7 +1444,7 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 					// Recheck this client to see if still NNP..
 					// Set to DS_NONE so that we force a TCP reask next time..
 					cur_src->SetDownloadState(DS_NONE);
-					
+
 					break;
 				}
 				case DS_ONQUEUE: {
@@ -1454,8 +1455,8 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 							lastpurgetime = dwCurTick;
 							break; //Johnny-B - nothing more to do here (good eye!)
 						}
-					} 
-					
+					}
+
 					// Give up to 1 min for UDP to respond..
 					// If we are within on min on TCP, do not try..
 					if (	theApp->IsConnected() &&
@@ -1463,14 +1464,14 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 							(dwCurTick - cur_src->GetLastAskedTime()) > FILEREASKTIME-20000)) {
 						cur_src->UDPReaskForDownload();
 					}
-					
+
 					// No break here, since the next case takes care of asking for downloads.
 				}
-				case DS_CONNECTING: 
-				case DS_TOOMANYCONNS: 
-				case DS_NONE: 
-				case DS_WAITCALLBACK: 
-				case DS_WAITCALLBACKKAD:	{							
+				case DS_CONNECTING:
+				case DS_TOOMANYCONNS:
+				case DS_NONE:
+				case DS_WAITCALLBACK:
+				case DS_WAITCALLBACKKAD:	{
 					if (	theApp->IsConnected() &&
 						(	(!cur_src->GetLastAskedTime()) ||
 							(dwCurTick - cur_src->GetLastAskedTime()) > FILEREASKTIME)) {
@@ -1492,7 +1493,7 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 				CUpDownClient *cur_source = it++->GetClient();
 				uint8 download_state=cur_source->GetDownloadState();
 				if( download_state != DS_DOWNLOADING
-				&& cur_source->GetRequestFile() 
+				&& cur_source->GetRequestFile()
 				&& ((!cur_source->GetRequestFile()->IsA4AFAuto()) || download_state == DS_NONEEDEDPARTS))
 				{
 					cur_source->SwapToAnotherFile(false, false, false, this);
@@ -1500,26 +1501,26 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 			}
 		}
 		/* eMule 0.30c implementation, i give it a try (Creteil) END ... */
-		
+
 		// swap No needed partfiles if possible
 
 		if (((old_trans==0) && (transferingsrc>0)) || ((old_trans>0) && (transferingsrc==0))) {
 			SetStatus(status);
 		}
-	
-		// Kad source search		
+
+		// Kad source search
 		if( GetMaxSourcePerFileUDP() > GetSourceCount()){
 			//Once we can handle lowID users in Kad, we remove the second IsConnected
-			if (theApp->downloadqueue->DoKademliaFileRequest() && (Kademlia::CKademlia::GetTotalFile() < KADEMLIATOTALFILE) && (dwCurTick > m_LastSearchTimeKad) &&  Kademlia::CKademlia::IsConnected() && theApp->IsConnected() && !IsStopped()){ 
+			if (theApp->downloadqueue->DoKademliaFileRequest() && (Kademlia::CKademlia::GetTotalFile() < KADEMLIATOTALFILE) && (dwCurTick > m_LastSearchTimeKad) &&  Kademlia::CKademlia::IsConnected() && theApp->IsConnected() && !IsStopped()){
 				//Kademlia
 				theApp->downloadqueue->SetLastKademliaFileRequest();
-			
+
 				if (GetKadFileSearchID()) {
-					/*	This will never happen anyway. We're talking a 
+					/*	This will never happen anyway. We're talking a
 						1h timespan and searches are at max 45secs */
 					Kademlia::CSearchManager::StopSearch(GetKadFileSearchID(), false);
 				}
-			
+
 				Kademlia::CUInt128 kadFileID(GetFileHash().GetHash());
 				Kademlia::CSearch* pSearch = Kademlia::CSearchManager::PrepareLookup(Kademlia::CSearch::FILE, true, kadFileID);
 				AddDebugLogLineN(logKadSearch, CFormat(wxT("Preparing a Kad Search for '%s'")) % GetFileName());
@@ -1537,7 +1538,7 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 				Kademlia::CSearchManager::StopSearch(GetKadFileSearchID(), true);
 			}
 		}
-		
+
 		// check if we want new sources from server
 		if (	!m_localSrcReqQueued &&
 			(	(!m_lastsearchtime) ||
@@ -1548,12 +1549,12 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 			m_localSrcReqQueued = true;
 			theApp->downloadqueue->SendLocalSrcRequest(this);
 		}
-	
+
 		// calculate datarate, set limit etc.
 	}
 
 	++m_count;
-	
+
 	// Kry - does the 3 / 30 difference produce too much flickering or CPU?
 	if (m_count >= 30) {
 		m_count = 0;
@@ -1567,14 +1568,14 @@ uint32 CPartFile::Process(uint32 reducedownload/*in percent*/,uint8 m_icounter)
 
 	// release file handle if unused for some time
 	m_hpartfile.Release();
-	
+
 	return (uint32)(kBpsDown*1024.0);
 }
 
 bool CPartFile::CanAddSource(uint32 userid, uint16 port, uint32 serverip, uint16 serverport, uint8* pdebug_lowiddropped, bool ed2kID)
 {
 
-	//The incoming ID could have the userid in the Hybrid format.. 
+	//The incoming ID could have the userid in the Hybrid format..
 	uint32 hybridID = 0;
 	if( ed2kID ) {
 		if (IsLowID(userid)) {
@@ -1588,7 +1589,7 @@ bool CPartFile::CanAddSource(uint32 userid, uint16 port, uint32 serverip, uint16
 			userid = wxUINT32_SWAP_ALWAYS(userid);
 		}
 	}
-	
+
 	// MOD Note: Do not change this part - Merkur
 	if (theApp->IsConnectedED2K()) {
 		if(::IsLowID(theApp->GetED2KID())) {
@@ -1604,7 +1605,7 @@ bool CPartFile::CanAddSource(uint32 userid, uint16 port, uint32 serverip, uint16
 			}
 		}
 	}
-	
+
 	if (Kademlia::CKademlia::IsConnected()) {
 		if(!Kademlia::CKademlia::IsFirewalled()) {
 			if(Kademlia::CKademlia::GetIPAddress() == hybridID && thePrefs::GetPort() == port) {
@@ -1630,7 +1631,7 @@ void CPartFile::AddSources(CMemFile& sources,uint32 serverip, uint16 serverport,
 	uint8 debug_lowiddropped = 0;
 	uint8 debug_possiblesources = 0;
 	CMD4Hash achUserHash;
-	
+
 	if (m_stopped) {
 		// since we may received multiple search source UDP results we have to "consume" all data of that packet
 		AddDebugLogLineN(logPartFile, wxT("Trying to add sources for a stopped file"));
@@ -1641,7 +1642,7 @@ void CPartFile::AddSources(CMemFile& sources,uint32 serverip, uint16 serverport,
 	for (int i = 0;i != count;++i) {
 		uint32 userid = sources.ReadUInt32();
 		uint16 port   = sources.ReadUInt16();
-		
+
 		uint8 byCryptOptions = 0;
 		if (bWithObfuscationAndHash){
 			byCryptOptions = sources.ReadUInt8();
@@ -1656,8 +1657,8 @@ void CPartFile::AddSources(CMemFile& sources,uint32 serverip, uint16 serverport,
 				AddDebugLogLineN(logPartFile, CFormat(wxT("Server provided UserHash for source %u, even if it wasn't expected to (or local obfuscationsettings changed during serverconnect")) % userid);
 			}
 		}
-			
-		
+
+
 		// "Filter LAN IPs" and "IPfilter" the received sources IP addresses
 		if (!IsLowID(userid)) {
 			// check for 0-IP, localhost and optionally for LAN addresses
@@ -1672,7 +1673,7 @@ void CPartFile::AddSources(CMemFile& sources,uint32 serverip, uint16 serverport,
 		if (!CanAddSource(userid, port, serverip, serverport, &debug_lowiddropped)) {
 			continue;
 		}
-		
+
 		if(thePrefs::GetMaxSourcePerFile() > GetSourceCount()) {
 			++debug_possiblesources;
 			CUpDownClient* newsource = new CUpDownClient(port,userid,serverip,serverport,this, true, true);
@@ -1704,10 +1705,10 @@ void CPartFile::UpdatePartsInfo()
 		CKnownFile::UpdatePartsInfo();
 		return;
 	}
-	
+
 	// Cache part count
 	uint16 partcount = GetPartCount();
-	bool flag = (time(NULL) - m_nCompleteSourcesTime > 0); 
+	bool flag = (time(NULL) - m_nCompleteSourcesTime > 0);
 
 	// Ensure the frequency-list is ready
 	if ( m_SrcpartFrequency.size() != GetPartCount() ) {
@@ -1717,31 +1718,31 @@ void CPartFile::UpdatePartsInfo()
 
 	// Find number of available parts
 	uint16 availablecounter = 0;
-	for ( uint16 i = 0; i < partcount; ++i ) {		
+	for ( uint16 i = 0; i < partcount; ++i ) {
 		if ( m_SrcpartFrequency[i] )
 			++availablecounter;
 	}
-	
+
 	if ( ( availablecounter == partcount ) && ( m_availablePartsCount < partcount ) ) {
 		lastseencomplete = time(NULL);
 	}
-		
+
 	m_availablePartsCount = availablecounter;
 
 	if ( flag ) {
-		ArrayOfUInts16 count;	
-	
-		count.reserve(GetSourceCount());	
-	
+		ArrayOfUInts16 count;
+
+		count.reserve(GetSourceCount());
+
 		for ( SourceSet::iterator it = m_SrcList.begin(); it != m_SrcList.end(); ++it ) {
 			CUpDownClient* client = it->GetClient();
 			if ( !client->GetUpPartStatus().empty() && client->GetUpPartCount() == partcount ) {
 				count.push_back(client->GetUpCompleteSourcesCount());
 			}
 		}
-	
+
 		m_nCompleteSourcesCount = m_nCompleteSourcesCountLo = m_nCompleteSourcesCountHi = 0;
-	
+
 		for (uint16 i = 0; i < partcount; ++i)	{
 			if( !i )	{
 				m_nCompleteSourcesCount = m_SrcpartFrequency[i];
@@ -1751,29 +1752,29 @@ void CPartFile::UpdatePartsInfo()
 			}
 		}
 		count.push_back(m_nCompleteSourcesCount);
-	
+
 		int32 n = count.size();
 		if (n > 0) {
 			std::sort(count.begin(), count.end(), std::less<uint16>());
-			
+
 			// calculate range
 			int32 i= n >> 1;		// (n / 2)
 			int32 j= (n * 3) >> 2;	// (n * 3) / 4
 			int32 k= (n * 7) >> 3;	// (n * 7) / 8
-			
+
 			//When still a part file, adjust your guesses by 20% to what you see..
 
-			
+
 			if (n < 5) {
 				//Not many sources, so just use what you see..
 				// welcome to 'plain stupid code'
-				// m_nCompleteSourcesCount; 
+				// m_nCompleteSourcesCount;
 				m_nCompleteSourcesCountLo= m_nCompleteSourcesCount;
 				m_nCompleteSourcesCountHi= m_nCompleteSourcesCount;
 			} else if (n < 20) {
 				// For low guess and normal guess count
 				//	 If we see more sources then the guessed low and normal, use what we see.
-				//	 If we see less sources then the guessed low, adjust network accounts for 80%, 
+				//	 If we see less sources then the guessed low, adjust network accounts for 80%,
 				//  we account for 20% with what we see and make sure we are still above the normal.
 				// For high guess
 				//  Adjust 80% network and 20% what we see.
@@ -1789,18 +1790,18 @@ void CPartFile::UpdatePartsInfo()
 					(uint16)((float)(count[j]*.8) +
 						 (float)(m_nCompleteSourcesCount*.2));
 				if( m_nCompleteSourcesCountHi < m_nCompleteSourcesCount ) {
-					m_nCompleteSourcesCountHi = m_nCompleteSourcesCount;	
-				}					
+					m_nCompleteSourcesCountHi = m_nCompleteSourcesCount;
+				}
 			} else {
 				// Many sources
 				// ------------
 				// For low guess
 				//	 Use what we see.
 				// For normal guess
-				//	 Adjust network accounts for 80%, we account for 20% with what 
+				//	 Adjust network accounts for 80%, we account for 20% with what
 				//  we see and make sure we are still above the low.
 				// For high guess
-				//  Adjust network accounts for 80%, we account for 20% with what 
+				//  Adjust network accounts for 80%, we account for 20% with what
 				//  we see and make sure we are still above the normal.
 
 				m_nCompleteSourcesCountLo= m_nCompleteSourcesCount;
@@ -1817,37 +1818,37 @@ void CPartFile::UpdatePartsInfo()
 		m_nCompleteSourcesTime = time(NULL) + (60);
 	}
 	UpdateDisplayedInfo();
-}	
+}
 
 // [Maella -Enhanced Chunk Selection- (based on jicxicmic)]
-bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender, 
+bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 							std::vector<Requested_Block_Struct*>& toadd, uint16& count)
 {
 
 	// The purpose of this function is to return a list of blocks (~180KB) to
-	// download. To avoid a prematurely stop of the downloading, all blocks that 
-	// are requested from the same source must be located within the same 
+	// download. To avoid a prematurely stop of the downloading, all blocks that
+	// are requested from the same source must be located within the same
 	// chunk (=> part ~9MB).
-	//  
-	// The selection of the chunk to download is one of the CRITICAL parts of the 
+	//
+	// The selection of the chunk to download is one of the CRITICAL parts of the
 	// edonkey network. The selection algorithm must insure the best spreading
 	// of files.
-	//  
+	//
 	// The selection is based on 4 criteria:
-	//  1.  Frequency of the chunk (availability), very rare chunks must be downloaded 
+	//  1.  Frequency of the chunk (availability), very rare chunks must be downloaded
 	//      as quickly as possible to become a new available source.
-	//  2.  Parts used for preview (first + last chunk), preview or check a 
+	//  2.  Parts used for preview (first + last chunk), preview or check a
 	//      file (e.g. movie, mp3)
-	//  3.  Request state (downloading in process), try to ask each source for another 
+	//  3.  Request state (downloading in process), try to ask each source for another
 	//      chunk. Spread the requests between all sources.
-	//  4.  Completion (shortest-to-complete), partially retrieved chunks should be 
+	//  4.  Completion (shortest-to-complete), partially retrieved chunks should be
 	//      completed before starting to download other one.
-	//  
+	//
 	// The frequency criterion defines three zones: very rare (<10%), rare (<50%)
-	// and common (>30%). Inside each zone, the criteria have a specific weight, used 
-	// to calculate the priority of chunks. The chunk(s) with the highest 
+	// and common (>30%). Inside each zone, the criteria have a specific weight, used
+	// to calculate the priority of chunks. The chunk(s) with the highest
 	// priority (highest=0, lowest=0xffff) is/are selected first.
-	//  
+	//
 	//          very rare   (preview)       rare                      common
 	//    0% <---- +0 pt ----> 10% <----- +10000 pt -----> 50% <---- +20000 pt ----> 100%
 	// 1.  <------- frequency: +25*frequency pt ----------->
@@ -1855,9 +1856,9 @@ bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 	// 3.                       <------ request: download in progress +20000 pt ------>
 	// 4a. <- completion: 0% +100, 25% +75 .. 100% +0 pt --><-- !req => completion --->
 	// 4b.                                                  <--- req => !completion -->
-	//  
+	//
 	// Unrolled, the priority scale is:
-	//  
+	//
 	// 0..xxxx       unrequested and requested very rare chunks
 	// 10000..1xxxx  unrequested rare chunks + unrequested preview chunks
 	// 20000..2xxxx  unrequested common chunks (priority to the most complete)
@@ -1865,7 +1866,7 @@ bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 	// 40000..4xxxx  requested common chunks (priority to the least complete)
 	//
 	// This algorithm usually selects first the rarest chunk(s). However, partially
-	// complete chunk(s) that is/are close to completion may overtake the priority 
+	// complete chunk(s) that is/are close to completion may overtake the priority
 	// (priority inversion).
 	// For the common chuncks, the algorithm tries to spread the dowload between
 	// the sources
@@ -1878,7 +1879,7 @@ bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 	// Define and create the list of the chunks to download
 	const uint16 partCount = GetPartCount();
 	ChunkList chunksList;
-	
+
 	// Main loop
 	uint16 newBlockCount = 0;
 	while(newBlockCount != count) {
@@ -1903,7 +1904,7 @@ bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 
 		// Check if a new chunk must be selected (e.g. download starting, previous chunk complete)
 		if(sender->GetLastPartAsked() == 0xffff) {
-			// Quantify all chunks (create list of chunks to download) 
+			// Quantify all chunks (create list of chunks to download)
 			// This is done only one time and only if it is necessary (=> CPU load)
 			if(chunksList.empty()) {
 				// Indentify the locally missing part(s) that this source has
@@ -1942,17 +1943,17 @@ bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 				const bool isPreviewEnable =
 					thePrefs::GetPreviewPrio() &&
 					(type == ftArchive || type == ftVideo);
-					
+
 				// Collect and calculate criteria for all chunks
 				for (ChunkList::iterator it = chunksList.begin(); it != chunksList.end(); ++it) {
 					Chunk& cur_chunk = *it;
-					
+
 					// Offsets of chunk
 					const uint64 uStart = cur_chunk.part * PARTSIZE;
 					const uint64 uEnd   = uStart + GetPartSize(cur_chunk.part) - 1;
 					// Criterion 2. Parts used for preview
 					// Remark: - We need to download the first part and the last part(s).
-					//        - When the last part is very small, it's necessary to 
+					//        - When the last part is very small, it's necessary to
 					//          download the two last parts.
 					bool critPreview = false;
 					if(isPreviewEnable == true) {
@@ -1994,7 +1995,7 @@ bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 					} else if(cur_chunk.frequency <= rareBound) {
 						// 10101..1xxxx  unrequested rare chunks
 						// 30101..3xxxx  requested rare chunks
-						cur_chunk.rank = (25 * cur_chunk.frequency) +                 // Criterion 1 
+						cur_chunk.rank = (25 * cur_chunk.frequency) +                 // Criterion 1
 						((critRequested == false) ? 10101 : 30101) + // Criterion 3
 						(100 - critCompletion); // Criterion 4
 					} else {
@@ -2033,7 +2034,7 @@ bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 					}
 				}
 
-				// Use a random access to avoid that everybody tries to download the 
+				// Use a random access to avoid that everybody tries to download the
 				// same chunks at the same time (=> spread the selected chunk among clients)
 				uint16 randomness = 1 + (int) (((float)(chunkCount-1))*rand()/(RAND_MAX+1.0));
 
@@ -2047,7 +2048,7 @@ bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 							// Remark: this list might be reused up to *count times
 							chunksList.erase(it);
 							break; // exit loop for()
-						}  
+						}
 					}
 				}
 			} else {
@@ -2056,7 +2057,7 @@ bool CPartFile::GetNextRequestedBlock(CUpDownClient* sender,
 			}
 		}
 	}
-	// Return the number of the blocks 
+	// Return the number of the blocks
 	count = newBlockCount;
 	// Return
 	return (newBlockCount > 0);
@@ -2092,7 +2093,7 @@ void CPartFile::CompleteFile(bool bIsHashingDone)
 	theApp->downloadqueue->RemoveLocalServerRequest(this);
 
 	AddDebugLogLineN( logPartFile, wxString( wxT("CPartFile::CompleteFile: Hash ") ) + ( bIsHashingDone ? wxT("done") : wxT("not done") ) );
-			  
+
 	if (!bIsHashingDone) {
 		SetStatus(PS_COMPLETING);
 		kBpsDown = 0.0;
@@ -2115,13 +2116,13 @@ void CPartFile::CompleteFile(bool bIsHashingDone)
 	}
 	if (thePrefs::ShowCatTabInfos()) {
 		Notify_ShowUpdateCatTabTitles();
-	}			
+	}
 	UpdateDisplayedInfo(true);
 }
 
 
 void CPartFile::CompleteFileEnded(bool errorOccured, const CPath& newname)
-{	
+{
 	if (errorOccured) {
 		m_paused = true;
 		SetStatus(PS_ERROR);
@@ -2132,11 +2133,11 @@ void CPartFile::CompleteFileEnded(bool errorOccured, const CPath& newname)
 		SetFilePath(m_fullname.GetPath());
 		SetFileName(m_fullname.GetFullName());
 		m_lastDateChanged = CPath::GetModificationTime(m_fullname);
-		
+
 		SetStatus(PS_COMPLETE);
 		m_paused = false;
 		ClearPriority();
-		
+
 
 		// Remove from list of canceled files in case it was canceled once upon a time
 		if (theApp->canceledfiles->Remove(GetFileHash())) {
@@ -2145,17 +2146,17 @@ void CPartFile::CompleteFileEnded(bool errorOccured, const CPath& newname)
 
 		// Mark as known (checks if it's already known),
 		// also updates search files
-		theApp->knownfiles->SafeAddKFile(this);		
+		theApp->knownfiles->SafeAddKFile(this);
 
 		// remove the file from the suspended uploads list
-		theApp->uploadqueue->ResumeUpload(GetFileHash());		
+		theApp->uploadqueue->ResumeUpload(GetFileHash());
 		theApp->downloadqueue->RemoveFile(this, true);
 		theApp->sharedfiles->SafeAddKFile(this);
 		UpdateDisplayedInfo(true);
 
 		// republish that file to the ed2k-server to update the 'FT_COMPLETE_SOURCES' counter on the server.
-		theApp->sharedfiles->RepublishFile(this);		
-		
+		theApp->sharedfiles->RepublishFile(this);
+
 		// Ensure that completed shows the correct value
 		completedsize = GetFileSize();
 
@@ -2164,8 +2165,8 @@ void CPartFile::CompleteFileEnded(bool errorOccured, const CPath& newname)
 
 		AddLogLineC(CFormat( _("Finished downloading: %s") ) % GetFileName() );
 	}
-	
-	theApp->downloadqueue->StartNextFile(this);	
+
+	theApp->downloadqueue->StartNextFile(this);
 }
 
 
@@ -2192,15 +2193,15 @@ void  CPartFile::RemoveAllSources(bool bTryToSwap)
 		if (bTryToSwap) {
 			if (!cur_src->SwapToAnotherFile(true, true, true, NULL)) {
 				RemoveSource(cur_src,true,false);
-				// If it was not swapped, it's not on any file anymore, and should die 
+				// If it was not swapped, it's not on any file anymore, and should die
 			}
 		} else {
 			RemoveSource(cur_src,true,false);
 		}
 	}
 
-	UpdatePartsInfo(); 
-	
+	UpdatePartsInfo();
+
 	/* eMule 0.30c implementation, i give it a try (Creteil) BEGIN ... */
 	// remove all links A4AF in sources to this file
 	if(!m_A4AFsrclist.empty()) {
@@ -2239,35 +2240,39 @@ void CPartFile::Delete()
 		theApp->canceledfiles->Save();
 	}
 	AddDebugLogLineN(logPartFile, wxT("\tAdded to canceled file list"));
-	theApp->searchlist->UpdateSearchFileByHash(GetFileHash()); 	// Update file in the search dialog if it's still open
+	theApp->searchlist->UpdateSearchFileByHash(GetFileHash());	// Update file in the search dialog if it's still open
 
 	if (m_hpartfile.IsOpened()) {
 		m_hpartfile.Close();
 	}
 
 	AddDebugLogLineN(logPartFile, wxT("\tClosed"));
-	
+
+	// cppcheck-suppress duplicateBranch
 	if (!CPath::RemoveFile(m_fullname)) {
 		AddDebugLogLineC(logPartFile, CFormat(wxT("\tFailed to delete '%s'")) % m_fullname);
 	} else {
 		AddDebugLogLineN(logPartFile, wxT("\tRemoved .part.met"));
 	}
 
+	// cppcheck-suppress duplicateBranch
 	if (!CPath::RemoveFile(m_PartPath)) {
 		AddDebugLogLineC(logPartFile, CFormat(wxT("Failed to delete '%s'")) % m_PartPath);
 	} else {
 		AddDebugLogLineN(logPartFile, wxT("\tRemoved .part"));
 	}
-	
+
 	CPath BAKName = m_fullname.AppendExt(PARTMET_BAK_EXT);
+	// cppcheck-suppress duplicateBranch
 	if (!CPath::RemoveFile(BAKName)) {
 		AddDebugLogLineC(logPartFile, CFormat(wxT("Failed to delete '%s'")) % BAKName);
 	} else {
 		AddDebugLogLineN(logPartFile, wxT("\tRemoved .bak"));
 	}
-	
+
 	CPath SEEDSName = m_fullname.AppendExt(wxT(".seeds"));
 	if (SEEDSName.FileExists()) {
+		// cppcheck-suppress duplicateBranch
 		if (CPath::RemoveFile(SEEDSName)) {
 			AddDebugLogLineN(logPartFile, wxT("\tRemoved .seeds"));
 		} else {
@@ -2276,7 +2281,7 @@ void CPartFile::Delete()
 	}
 
 	AddDebugLogLineN(logPartFile, wxT("Done"));
-	
+
 	delete this;
 }
 
@@ -2291,7 +2296,7 @@ bool CPartFile::HashSinglePart(uint16 partnumber)
 	} else if ((GetHashCount() <= partnumber) && GetPartCount() != 1) {
 		AddLogLineC(CFormat( _("ERROR: Unable to hash downloaded part - hashset incomplete (%s). This should never happen")) % GetFileName() );
 		m_hashsetneeded = true;
-		return true;		
+		return true;
 	} else {
 		CMD4Hash hashresult;
 		uint64 offset = PARTSIZE * partnumber;
@@ -2331,7 +2336,7 @@ bool CPartFile::HashSinglePart(uint16 partnumber)
 
 bool CPartFile::IsCorruptedPart(uint16 partnumber)
 {
-	return std::find(m_corrupted_list.begin(), m_corrupted_list.end(), partnumber) 
+	return std::find(m_corrupted_list.begin(), m_corrupted_list.end(), partnumber)
 		!= m_corrupted_list.end();
 }
 
@@ -2351,22 +2356,22 @@ void CPartFile::SetDownPriority(uint8 np, bool bSave, bool bRefresh )
 void CPartFile::StopFile(bool bCancel)
 {
 	// Kry - Need to set it here to get into SetStatus(status) correctly
-	m_stopped = true; 
-	
+	m_stopped = true;
+
 	// Barry - Need to tell any connected clients to stop sending the file
 	PauseFile();
-	
+
 	m_LastSearchTimeKad = 0;
 	m_TotalSearchesKad = 0;
-	
+
 	RemoveAllSources(true);
 	kBpsDown = 0.0;
 	transferingsrc = 0;
-	
+
 	if (!bCancel) {
 		FlushBuffer();
 	}
-	
+
 	UpdateDisplayedInfo(true);
 }
 
@@ -2394,7 +2399,7 @@ void CPartFile::StopPausedFile()
 void CPartFile::PauseFile(bool bInsufficient)
 {
 	SetActive(false);
-	
+
 	if ( status == PS_COMPLETE || status == PS_COMPLETING ) {
 		return;
 	}
@@ -2402,18 +2407,18 @@ void CPartFile::PauseFile(bool bInsufficient)
 	if (GetKadFileSearchID()) {
 		Kademlia::CSearchManager::StopSearch(GetKadFileSearchID(), true);
 		// If we were in the middle of searching, reset timer so they can resume searching.
-		m_LastSearchTimeKad = 0; 
+		m_LastSearchTimeKad = 0;
 	}
 
 	m_iLastPausePurge = time(NULL);
-	
+
 	theApp->downloadqueue->RemoveLocalServerRequest(this);
 
 	CPacket packet( OP_CANCELTRANSFER, 0, OP_EDONKEYPROT );
 	for( SourceSet::iterator it = m_SrcList.begin(); it != m_SrcList.end(); ) {
 		CUpDownClient* cur_src = it++->GetClient();
 		if (cur_src->GetDownloadState() == DS_DOWNLOADING) {
-			if (!cur_src->GetSentCancelTransfer()) {				
+			if (!cur_src->GetSentCancelTransfer()) {
 				theStats::AddUpOverheadOther( packet.GetPacketSize() );
 				AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_CANCELTRANSFER to ") + cur_src->GetFullIP() );
 				cur_src->SendPacket( &packet, false, true );
@@ -2425,11 +2430,11 @@ void CPartFile::PauseFile(bool bInsufficient)
 		}
 	}
 
-	
+
 	m_insufficient = bInsufficient;
 	m_paused = true;
-	
-	
+
+
 	kBpsDown = 0.0;
 	transferingsrc = 0;
 
@@ -2447,11 +2452,11 @@ void CPartFile::ResumeFile()
 		// Still not enough free discspace
 		return;
 	}
-	
+
 	m_paused = false;
 	m_stopped = false;
 	m_insufficient = false;
-		
+
 	m_lastsearchtime = 0;
 	SetStatus(status);
 	SetActive(theApp->IsConnected());
@@ -2460,7 +2465,7 @@ void CPartFile::ResumeFile()
 		// The file has already been hashed at this point
 		CompleteFile(true);
 	}
-	
+
 	UpdateDisplayedInfo(true);
 }
 
@@ -2472,25 +2477,25 @@ bool CPartFile::CheckFreeDiskSpace( uint64 neededSpace )
 		// If GetFreeSpaceAt() fails, then the path probably does not exist.
 		return false;
 	}
-	
+
 	// The very least acceptable diskspace is a single PART
 	if ( free < PARTSIZE ) {
 		// Always fail in this case, since we risk losing data if we try to
 		// write on a full partition.
 		return false;
 	}
-	
+
 	// All other checks are only made if the user has enabled them
 	if ( thePrefs::IsCheckDiskspaceEnabled() ) {
 		neededSpace += thePrefs::GetMinFreeDiskSpace();
-		
+
 		// Due to the the existance of sparse files, we cannot assume that
 		// writes within the file doesn't cause new blocks to be allocated.
 		// Therefore, we have to simply stop writing the moment the limit has
 		// been exceeded.
 		return free >= neededSpace;
 	}
-	
+
 	return true;
 }
 
@@ -2501,7 +2506,7 @@ void CPartFile::SetLastAnsweredTime()
 }
 
 void CPartFile::SetLastAnsweredTimeTimeout()
-{ 
+{
 	m_ClientSrcAnswered = 2 * CONNECTION_LATENCY + ::GetTickCount() - SOURCECLIENTREASKS;
 }
 
@@ -2515,7 +2520,7 @@ CPacket *CPartFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 by
 	if(!IsPartFile())  {
 		return CKnownFile::CreateSrcInfoPacket(forClient, byRequestedVersion, nRequestedOptions);
 	}
-	
+
 	if (((forClient->GetRequestFile() != this)
 		&& (forClient->GetUploadFile() != this)) || forClient->GetUploadFileID() != GetFileHash()) {
 		wxString file1 = _("Unknown");
@@ -2546,10 +2551,10 @@ CPacket *CPartFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 by
 			AddDebugLogLineN(logKnownFiles, CFormat(wxT("Impossible situation: different partcounts: %i (client) and %i (file) for %s")) % reqstatus.size() % GetPartCount() % GetFileName());
 		}
 		return NULL;
-	}	
-	
+	}
+
 	CMemFile data(1024);
-	
+
 	uint8 byUsedVersion;
 	bool bIsSX2Packet;
 	if (forClient->SupportsSourceExchange2() && byRequestedVersion > 0){
@@ -2570,7 +2575,7 @@ CPacket *CPartFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 by
 			AddDebugLogLineN(logKnownFiles, wxT("Client which announced to support SX2 sent SX1 packet instead"));
 		}
 	}
-	
+
 	uint16 nCount = 0;
 
 	data.WriteHash(m_abyFileHash);
@@ -2579,14 +2584,14 @@ CPacket *CPartFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 by
 	for (SourceSet::iterator it = m_SrcList.begin(); it != m_SrcList.end(); ++it ) {
 		bNeeded = false;
 		CUpDownClient* cur_src = it->GetClient();
-		
+
 		int state = cur_src->GetDownloadState();
 		int valid = ( state == DS_DOWNLOADING ) || ( state == DS_ONQUEUE && !cur_src->IsRemoteQueueFull() );
-		
+
 		if ( cur_src->HasLowID() || !valid ) {
 			continue;
 		}
-		
+
 		// only send source which have needed parts for this client if possible
 		const BitVector& srcstatus = cur_src->GetPartStatus();
 		if ( !srcstatus.empty() ) {
@@ -2603,8 +2608,8 @@ CPacket *CPartFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 by
 					}
 				}
 			} else {
-				// if we don't know the need parts for this client, 
-				// return any source currently a client sends it's 
+				// if we don't know the need parts for this client,
+				// return any source currently a client sends it's
 				// file status only after it has at least one complete part
 				if (srcstatus.size() != GetPartCount()) {
 					continue;
@@ -2629,11 +2634,11 @@ CPacket *CPartFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 by
 			data.WriteUInt16(cur_src->GetUserPort());
 			data.WriteUInt32(cur_src->GetServerIP());
 			data.WriteUInt16(cur_src->GetServerPort());
-			
+
 			if (byUsedVersion >= 2) {
 			    data.WriteHash(cur_src->GetUserHash());
 			}
-			
+
 			if (byUsedVersion >= 4){
 				// CryptSettings - SourceExchange V4
 				// 5 Reserved (!)
@@ -2645,8 +2650,8 @@ CPacket *CPartFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 by
 				const uint8 uRequiresCryptLayer	= cur_src->RequiresCryptLayer() ? 1 : 0;
 				const uint8 byCryptOptions = (uRequiresCryptLayer << 2) | (uRequestsCryptLayer << 1) | (uSupportsCryptLayer << 0);
 				data.WriteUInt8(byCryptOptions);
-			}			
-			
+			}
+
 			if (nCount > 500) {
 				break;
 			}
@@ -2664,14 +2669,14 @@ CPacket *CPartFile::CreateSrcInfoPacket(const CUpDownClient* forClient, uint8 by
 	if (result->GetPacketSize() > 354) {
 		result->PackPacket();
 	}
-	
+
 	return result;
 }
 
 void CPartFile::AddClientSources(CMemFile* sources, unsigned nSourceFrom, uint8 uClientSXVersion, bool bSourceExchange2, const CUpDownClient* /*pClient*/)
 {
 	// Kad reviewed
-	
+
 	if (m_stopped) {
 		return;
 	}
@@ -2680,12 +2685,12 @@ void CPartFile::AddClientSources(CMemFile* sources, unsigned nSourceFrom, uint8
 	uint8 uPacketSXVersion = 0;
 	if (!bSourceExchange2) {
 		nCount = sources->ReadUInt16();
-		
+
 		// Check if the data size matches the 'nCount' for v1 or v2 and eventually correct the source
 		// exchange version while reading the packet data. Otherwise we could experience a higher
 		// chance in dealing with wrong source data, userhashs and finally duplicate sources.
 		uint32 uDataSize = sources->GetLength() - sources->GetPosition();
-		
+
 		if ((uint32)(nCount*(4+2+4+2)) == uDataSize) { //Checks if version 1 packet is correct size
 			if(uClientSXVersion != 1) {
 				return;
@@ -2706,7 +2711,7 @@ void CPartFile::AddClientSources(CMemFile* sources, unsigned nSourceFrom, uint8
 			uPacketSXVersion = 4;
 		} else {
 			// If v5 inserts additional data (like v2), the above code will correctly filter those packets.
-			// If v5 appends additional data after <count>(<Sources>)[count], we are in trouble with the 
+			// If v5 appends additional data after <count>(<Sources>)[count], we are in trouble with the
 			// above code. Though a client which does not understand v5+ should never receive such a packet.
 			AddDebugLogLineN(logClient, CFormat(wxT("Received invalid source exchange packet (v%u) of data size %u for %s")) % uClientSXVersion % uDataSize % GetFileName());
 			return;
@@ -2719,10 +2724,10 @@ void CPartFile::AddClientSources(CMemFile* sources, unsigned nSourceFrom, uint8
 			AddDebugLogLineN(logPartFile, CFormat(wxT("Invalid source exchange type version: %i")) % uClientSXVersion);
 			return;
 		}
-		
+
 		// all known versions use the first 2 bytes as count and unknown version are already filtered above
 		nCount = sources->ReadUInt16();
-		uint32 uDataSize = (uint32)(sources->GetLength() - sources->GetPosition());	
+		uint32 uDataSize = (uint32)(sources->GetLength() - sources->GetPosition());
 		bool bError = false;
 		switch (uClientSXVersion){
 			case 1:
@@ -2744,26 +2749,26 @@ void CPartFile::AddClientSources(CMemFile* sources, unsigned nSourceFrom, uint8
 			AddDebugLogLineN(logPartFile, wxT("Invalid source exchange data size."));
 			return;
 		}
-		uPacketSXVersion = uClientSXVersion;		
+		uPacketSXVersion = uClientSXVersion;
 	}
-	
+
 	for (uint16 i = 0;i != nCount;++i) {
-		
+
 		uint32 dwID = sources->ReadUInt32();
 		uint16 nPort = sources->ReadUInt16();
 		uint32 dwServerIP = sources->ReadUInt32();
 		uint16 nServerPort = sources->ReadUInt16();
-	
+
 		CMD4Hash userHash;
 		if (uPacketSXVersion > 1) {
 			userHash = sources->ReadHash();
 		}
-		
+
 		uint8 byCryptOptions = 0;
 		if (uPacketSXVersion >= 4) {
 			byCryptOptions = sources->ReadUInt8();
 		}
-		
+
 		//Clients send ID's the the Hyrbid format so highID clients with *.*.*.0 won't be falsely switched to a lowID..
 		uint32 dwIDED2K;
 		if (uPacketSXVersion >= 3) {
@@ -2771,7 +2776,7 @@ void CPartFile::AddClientSources(CMemFile* sources, unsigned nSourceFrom, uint8
 		} else {
 			dwIDED2K = dwID;
 		}
-		
+
 		// check the HighID(IP) - "Filter LAN IPs" and "IPfilter" the received sources IP addresses
 		if (!IsLowID(dwID)) {
 			if (!IsGoodIP(dwIDED2K, thePrefs::FilterLanIPs())) {
@@ -2793,20 +2798,20 @@ void CPartFile::AddClientSources(CMemFile* sources, unsigned nSourceFrom, uint8
 			AddDebugLogLineN(logIPFilter, CFormat(wxT("Ignored source (IP=%s) received via source exchange")) % Uint32toStringIP(dwIDED2K));
 			continue;
 		}
-		
+
 		if(thePrefs::GetMaxSourcePerFile() > GetSourceCount()) {
 			CUpDownClient* newsource = new CUpDownClient(nPort,dwID,dwServerIP,nServerPort,this, (uPacketSXVersion < 3), true);
 			if (uPacketSXVersion > 1) {
 				newsource->SetUserHash(userHash);
 			}
-			
+
 			if (uPacketSXVersion >= 4) {
 				newsource->SetConnectOptions(byCryptOptions, true, false);
 			}
 
 			newsource->SetSourceFrom((ESourceFrom)nSourceFrom);
 			theApp->downloadqueue->CheckAndAddSource(this,newsource);
-			
+
 	} else {
 			break;
 		}
@@ -2839,7 +2844,7 @@ int CPartFile::GetCommonFilePenalty()
 	return MINCOMMONPENALTY;
 }
 
-/* Barry - Replaces BlockReceived() 
+/* Barry - Replaces BlockReceived()
 
 	Originally this only wrote to disk when a full 180k block
 	had been received from a client, and only asked for data in
@@ -2905,7 +2910,7 @@ uint32 CPartFile::WriteToBuffer(uint32 transize, byte* data, uint64 start, uint6
 
 	// Add to the queue in the correct position (most likely the end)
 	bool added = false;
-	
+
 	std::list<PartFileBufferedData*>::iterator it = m_BufferedData_list.begin();
 	for (; it != m_BufferedData_list.end(); ++it) {
 		PartFileBufferedData* queueItem = *it;
@@ -2916,11 +2921,11 @@ uint32 CPartFile::WriteToBuffer(uint32 transize, byte* data, uint64 start, uint6
 
 				m_BufferedData_list.insert(--it, item);
 			}
-			
+
 			break;
 		}
 	}
-	
+
 	if (!added) {
 		m_BufferedData_list.push_front(item);
 	}
@@ -2931,9 +2936,9 @@ uint32 CPartFile::WriteToBuffer(uint32 transize, byte* data, uint64 start, uint6
 	// Mark this small section of the file as filled
 	FillGap(item->start, item->end);
 
-	// Update the flushed mark on the requested block 
+	// Update the flushed mark on the requested block
 	// The loop here is unfortunate but necessary to detect deleted blocks.
-	
+
 	std::list<Requested_Block_Struct*>::iterator it2 = m_requestedblocks_list.begin();
 	for (; it2 != m_requestedblocks_list.end(); ++it2) {
 		if (*it2 == item->block) {
@@ -2952,25 +2957,25 @@ uint32 CPartFile::WriteToBuffer(uint32 transize, byte* data, uint64 start, uint6
 void CPartFile::FlushBuffer(bool fromAICHRecoveryDataAvailable)
 {
 	m_nLastBufferFlushTime = GetTickCount();
-	
+
 	if (m_BufferedData_list.empty()) {
 		return;
 	}
 
-	
+
 	uint32 partCount = GetPartCount();
 	// Remember which parts need to be checked at the end of the flush
 	std::vector<bool> changedPart(partCount, false);
-	
+
 	// Ensure file is big enough to write data to (the last item will be the furthest from the start)
 	if (!CheckFreeDiskSpace(m_nTotalBufferData)) {
 		// Not enough free space to write the last item, bail
 		AddLogLineC(CFormat( _("WARNING: Not enough free disk-space! Pausing file: %s") ) % GetFileName());
-	
+
 		PauseFile( true );
 		return;
 	}
-	
+
 	// Loop through queue
 	while ( !m_BufferedData_list.empty() ) {
 		// Get top item and remove it from the queue
@@ -2987,8 +2992,8 @@ void CPartFile::FlushBuffer(bool fromAICHRecoveryDataAvailable)
 			changedPart[curpart] = true;
 		}
 		// SLUGFILLER: SafeHash
-		
-		// Go to the correct position in file and write block of data			
+
+		// Go to the correct position in file and write block of data
 		try {
 			item->area.FlushAt(m_hpartfile, item->start, lenData);
 			// Decrease buffer size
@@ -3002,12 +3007,12 @@ void CPartFile::FlushBuffer(bool fromAICHRecoveryDataAvailable)
 			return;
 		}
 	}
-	
-	
+
+
 	// Update last-changed date
 	m_lastDateChanged = wxDateTime::GetTimeNow();
 
-	try {	
+	try {
 		// Partfile should never be too large
 		if (m_hpartfile.GetLength() > GetFileSize()) {
 			// it's "last chance" correction. the real bugfix has to be applied 'somewhere' else
@@ -3021,7 +3026,7 @@ void CPartFile::FlushBuffer(bool fromAICHRecoveryDataAvailable)
 	}
 
 
-	
+
 	// Check each part of the file
 	for (uint16 partNumber = 0; partNumber < partCount; ++partNumber) {
 		if (changedPart[partNumber] == false) {
@@ -3029,7 +3034,7 @@ void CPartFile::FlushBuffer(bool fromAICHRecoveryDataAvailable)
 		}
 
 		uint32 partRange = GetPartSize(partNumber) - 1;
-	
+
 		// Is this 9MB part complete
 		if (IsComplete(partNumber)) {
 			// Is part corrupt
@@ -3043,8 +3048,8 @@ void CPartFile::FlushBuffer(bool fromAICHRecoveryDataAvailable)
 				}
 				// request AICH recovery data
 				// Don't if called from the AICHRecovery. It's already there and would lead to an infinite recursion.
-				if (!fromAICHRecoveryDataAvailable) { 
-					RequestAICHRecovery(partNumber);					
+				if (!fromAICHRecoveryDataAvailable) {
+					RequestAICHRecovery(partNumber);
 				}
 				// Reduce transferred amount by corrupt amount
 				m_iLostDueToCorruption += (partRange + 1);
@@ -3053,13 +3058,13 @@ void CPartFile::FlushBuffer(bool fromAICHRecoveryDataAvailable)
 					AddDebugLogLineN(logPartFile, CFormat(
 						wxT("Finished part %u of '%s'")) % partNumber % GetFileName());
 				}
-				
+
 				// tell the blackbox about the verified data
 				m_CorruptionBlackBox->VerifiedData(true, partNumber, 0, partRange);
 
 				// if this part was successfully completed (although ICH is active), remove from corrupted list
 				EraseFirstValue(m_corrupted_list, partNumber);
-				
+
 				if (status == PS_EMPTY) {
 					if (theApp->IsRunning()) { // may be called during shutdown!
 						if (GetHashCount() == GetED2KPartHashCount() && !m_hashsetneeded) {
@@ -3076,8 +3081,8 @@ void CPartFile::FlushBuffer(bool fromAICHRecoveryDataAvailable)
 			// Try to recover with minimal loss
 			if (HashSinglePart(partNumber)) {
 				++m_iTotalPacketsSavedDueToICH;
-				
-				uint64 uMissingInPart = m_gaplist.GetGapSize(partNumber);					
+
+				uint64 uMissingInPart = m_gaplist.GetGapSize(partNumber);
 				FillGap(partNumber);
 				RemoveBlockFromList(PARTSIZE*partNumber,(PARTSIZE*partNumber + partRange));
 
@@ -3086,15 +3091,15 @@ void CPartFile::FlushBuffer(bool fromAICHRecoveryDataAvailable)
 
 				// remove from corrupted list
 				EraseFirstValue(m_corrupted_list, partNumber);
-				
+
 				AddLogLineC(CFormat( _("ICH: Recovered corrupted part %i for %s -> Saved bytes: %s") )
 					% partNumber
 					% GetFileName()
 					% CastItoXBytes(uMissingInPart));
-				
+
 				if (GetHashCount() == GetED2KPartHashCount() && !m_hashsetneeded) {
 					if (status == PS_EMPTY) {
-						// Successfully recovered part, make it available for sharing							
+						// Successfully recovered part, make it available for sharing
 						SetStatus(PS_READY);
 						if (theApp->IsRunning()) // may be called during shutdown!
 							theApp->sharedfiles->SafeAddKFile(this);
@@ -3145,7 +3150,7 @@ void CPartFile::UpdateFileRatingCommentAvail()
 	SourceSet::iterator it = m_SrcList.begin();
 	for (; it != m_SrcList.end(); ++it) {
 		CUpDownClient* cur_src = it->GetClient();
-		
+
 		if (!cur_src->GetFileComment().IsEmpty()) {
 			if (thePrefs::IsCommentFiltered(cur_src->GetFileComment())) {
 				continue;
@@ -3156,17 +3161,17 @@ void CPartFile::UpdateFileRatingCommentAvail()
 		uint8 rating = cur_src->GetFileRating();
 		if (rating) {
 			wxASSERT(rating <= 5);
-			
+
 			ratingCount++;
 			m_iUserRating += rating;
 		}
 	}
-	
+
 	if (ratingCount) {
 		m_iUserRating /= ratingCount;
 		wxASSERT(m_iUserRating > 0 && m_iUserRating <= 5);
 	}
-	
+
 	if ((prevComment != m_hasComment) || (prevRating != m_iUserRating)) {
 		UpdateDisplayedInfo();
 	}
@@ -3176,9 +3181,9 @@ void CPartFile::UpdateFileRatingCommentAvail()
 void CPartFile::SetCategory(uint8 cat)
 {
 	wxASSERT( cat < theApp->glob_prefs->GetCatCount() );
-	
-	m_category = cat; 
-	SavePartFile(); 
+
+	m_category = cat;
+	SavePartFile();
 }
 
 bool CPartFile::RemoveSource(CUpDownClient* toremove, bool updatewindow, bool bDoStatsUpdate)
@@ -3199,7 +3204,7 @@ bool CPartFile::RemoveSource(CUpDownClient* toremove, bool updatewindow, bool bD
 
 void CPartFile::AddDownloadingSource(CUpDownClient* client)
 {
-	CClientRefList::iterator it = 
+	CClientRefList::iterator it =
 		std::find(m_downloadingSourcesList.begin(), m_downloadingSourcesList.end(), CCLIENTREF(client, wxEmptyString));
 	if (it == m_downloadingSourcesList.end()) {
 		m_downloadingSourcesList.push_back(CCLIENTREF(client, wxT("CPartFile::AddDownloadingSource")));
@@ -3209,7 +3214,7 @@ void CPartFile::AddDownloadingSource(CUpDownClient* client)
 
 void CPartFile::RemoveDownloadingSource(CUpDownClient* client)
 {
-	CClientRefList::iterator it = 
+	CClientRefList::iterator it =
 		std::find(m_downloadingSourcesList.begin(), m_downloadingSourcesList.end(), CCLIENTREF(client, wxEmptyString));
 	if (it != m_downloadingSourcesList.end()) {
 		m_downloadingSourcesList.erase(it);
@@ -3225,7 +3230,7 @@ uint64 CPartFile::GetNeededSpace()
 		if (length > GetFileSize()) {
 			return 0;	// Shouldn't happen, but just in case
 		}
-	
+
 		return GetFileSize() - length;
 	} catch (const CIOFailureException& e) {
 		AddDebugLogLineC(logPartFile,
@@ -3241,12 +3246,12 @@ void CPartFile::SetStatus(uint8 in)
 	// PAUSED and INSUFFICIENT have extra flag variables m_paused and m_insufficient
 	// - they are never to be stored in status
 	wxASSERT( in != PS_PAUSED && in != PS_INSUFFICIENT );
-	
+
 	status = in;
-	
+
 	if (theApp->IsRunning()) {
 		UpdateDisplayedInfo( true );
-	
+
 		if ( thePrefs::ShowCatTabInfos() ) {
 			Notify_ShowUpdateCatTabTitles();
 		}
@@ -3282,7 +3287,7 @@ void CPartFile::RequestAICHRecovery(uint16 nPart)
 	// first lets see how many we have at all, we prefer high id very much
 	uint32 cAICHClients = 0;
 	uint32 cAICHLowIDClients = 0;
-	for ( SourceSet::iterator it = m_SrcList.begin(); it != m_SrcList.end(); ++it) {	
+	for ( SourceSet::iterator it = m_SrcList.begin(); it != m_SrcList.end(); ++it) {
 		CUpDownClient* pCurClient = it->GetClient();
 		if (	pCurClient->IsSupportingAICH() &&
 			pCurClient->GetReqFileAICHHash() != NULL &&
@@ -3307,7 +3312,7 @@ void CPartFile::RequestAICHRecovery(uint16 nPart)
 		nSeclectedClient = (rand() % cAICHLowIDClients) + 1;
 	}
 	CUpDownClient* pClient = NULL;
-	for ( SourceSet::iterator it = m_SrcList.begin(); it != m_SrcList.end(); ++it) {	
+	for ( SourceSet::iterator it = m_SrcList.begin(); it != m_SrcList.end(); ++it) {
 		CUpDownClient* pCurClient = it->GetClient();
 		if (pCurClient->IsSupportingAICH() && pCurClient->GetReqFileAICHHash() != NULL && !pCurClient->IsAICHReqPending()
 			&& (*pCurClient->GetReqFileAICHHash()) == m_pAICHHashSet->GetMasterHash())
@@ -3333,7 +3338,7 @@ void CPartFile::RequestAICHRecovery(uint16 nPart)
 
 	AddDebugLogLineN( logAICHRecovery, CFormat( wxT("Requesting AICH Hash (%s) form client %s") ) % ( cAICHClients ? wxT("HighId") : wxT("LowID") ) % pClient->GetClientFullInfo() );
 	pClient->SendAICHRequest(this, nPart);
-	
+
 }
 
 
@@ -3351,7 +3356,7 @@ void CPartFile::AICHRecoveryDataAvailable(uint16 nPart)
 		AddDebugLogLineN(logAICHRecovery, CFormat(wxT("Processing AICH Recovery data: The part (%u) is already complete, canceling")) % nPart);
 		return;
 	}
-	
+
 
 
 	CAICHHashTree* pVerifiedHash = m_pAICHHashSet->m_pHashTree.FindHash(nPart*PARTSIZE, length);
@@ -3370,7 +3375,7 @@ void CPartFile::AICHRecoveryDataAvailable(uint16 nPart)
 		SetStatus(PS_ERROR);
 		return;
 	}
-	
+
 	if (!htOurHash.GetHashValid()){
 		AddDebugLogLineN( logAICHRecovery, wxT("Processing AICH Recovery data: Failed to retrieve AICH Hashset of corrupt part") );
 		wxFAIL;
@@ -3405,7 +3410,7 @@ void CPartFile::AICHRecoveryDataAvailable(uint16 nPart)
 		// this is bad, but it could probably happen under some rare circumstances
 		// make sure that MD4 agrees to this fact too
 		if (!HashSinglePart(nPart)) {
-			AddDebugLogLineN(logAICHRecovery, 
+			AddDebugLogLineN(logAICHRecovery,
 				CFormat(wxT("Processing AICH Recovery data: The part (%u) got completed while recovering - but MD4 says it corrupt! Setting hashset to error state, deleting part")) % nPart);
 			// now we are fu... unhappy
 			m_pAICHHashSet->SetStatus(AICH_ERROR);
@@ -3436,11 +3441,11 @@ void CPartFile::AICHRecoveryDataAvailable(uint16 nPart)
 	EraseFirstValue(m_corrupted_list, nPart);
 	// Update met file
 	SavePartFile();
-	
+
 	// make sure the user appreciates our great recovering work :P
 	AddDebugLogLineC( logAICHRecovery, CFormat(
 		wxT("AICH successfully recovered %s of %s from part %u for %s") )
-		% CastItoXBytes(nRecovered) 
+		% CastItoXBytes(nRecovered)
 		% CastItoXBytes(length)
 		% nPart
 		% GetFileName() );
@@ -3493,7 +3498,7 @@ bool CPartFile::AddSource( CUpDownClient* client )
 	}
 }
 
-	
+
 bool CPartFile::DelSource( CUpDownClient* client )
 {
 	if (m_SrcList.erase(CCLIENTREF(client, wxEmptyString))) {
@@ -3509,7 +3514,7 @@ bool CPartFile::DelSource( CUpDownClient* client )
 void CPartFile::UpdatePartsFrequency( CUpDownClient* client, bool increment )
 {
 	const BitVector& freq = client->GetPartStatus();
-	
+
 	if ( m_SrcpartFrequency.size() != GetPartCount() ) {
 		m_SrcpartFrequency.clear();
 		m_SrcpartFrequency.insert(m_SrcpartFrequency.begin(), GetPartCount(), 0);
@@ -3518,12 +3523,12 @@ void CPartFile::UpdatePartsFrequency( CUpDownClient* client, bool increment )
 			return;
 		}
 	}
-	
+
 	unsigned int size = freq.size();
 	if ( size != m_SrcpartFrequency.size() ) {
 		return;
 	}
-	
+
 	if ( increment ) {
 		for ( unsigned int i = 0; i < size; i++ ) {
 			if ( freq.get(i) ) {
@@ -3555,10 +3560,10 @@ void CPartFile::GetRatingAndComments(FileRatingList & list) const
 
 #else   // CLIENT_GUI
 
-CPartFile::CPartFile(CEC_PartFile_Tag *tag) : CKnownFile(tag)
+CPartFile::CPartFile(const CEC_PartFile_Tag *tag) : CKnownFile(tag)
 {
 	Init();
-	
+
 	SetFileName(CPath(tag->FileName()));
 	m_abyFileHash = tag->FileHash();
 	SetFileSize(tag->SizeFull());
@@ -3584,13 +3589,13 @@ CPartFile::~CPartFile()
 }
 
 void CPartFile::GetRatingAndComments(FileRatingList & list) const
-{ 
-	list = m_FileRatingList; 
+{
+	list = m_FileRatingList;
 }
 
 void CPartFile::SetCategory(uint8 cat)
 {
-	m_category = cat; 
+	m_category = cat;
 }
 
 
@@ -3599,7 +3604,7 @@ bool CPartFile::AddSource(CUpDownClient* client)
 	return m_SrcList.insert(CCLIENTREF(client, wxT("CPartFile::AddSource"))).second != 0;
 }
 
-	
+
 bool CPartFile::DelSource(CUpDownClient* client)
 {
 	return m_SrcList.erase(CCLIENTREF(client, wxEmptyString)) != 0;
@@ -3630,10 +3635,10 @@ void CPartFile::Init()
 	m_insufficient = false;
 
 	status = PS_EMPTY;
-	
+
 	transferred = 0;
 	m_iLastPausePurge = time(NULL);
-	
+
 	if(thePrefs::GetNewAutoDown()) {
 		m_iDownPriority = PR_HIGH;
 		m_bAutoDownPriority = true;
@@ -3641,11 +3646,11 @@ void CPartFile::Init()
 		m_iDownPriority = PR_NORMAL;
 		m_bAutoDownPriority = false;
 	}
-	
+
 	transferingsrc = 0; // new
-	
+
 	kBpsDown = 0.0;
-	
+
 	m_hashsetneeded = true;
 	m_count = 0;
 	percentcompleted = 0;
@@ -3671,7 +3676,7 @@ void CPartFile::Init()
 	m_nCompleteSourcesCount = 0;
 	m_nCompleteSourcesCountLo = 0;
 	m_nCompleteSourcesCountHi = 0;
-	
+
 	m_validSources = 0;
 	m_notCurrentSources = 0;
 
@@ -3687,23 +3692,23 @@ void CPartFile::Init()
 wxString CPartFile::getPartfileStatus() const
 {
 
-	wxString mybuffer; 
+	wxString mybuffer;
 
 	if ((status == PS_HASHING) || (status == PS_WAITINGFORHASH)) {
 		mybuffer=_("Hashing");
 	} else if (status == PS_ALLOCATING) {
 		mybuffer = _("Allocating");
-	} else {	
+	} else {
 		switch (GetStatus()) {
 			case PS_COMPLETING:
 				mybuffer=_("Completing");
-				break; 
+				break;
 			case PS_COMPLETE:
 				mybuffer=_("Complete");
-				break; 
+				break;
 			case PS_PAUSED:
 				mybuffer=_("Paused");
-				break; 
+				break;
 			case PS_ERROR:
 				mybuffer=_("Erroneous");
 				break;
@@ -3716,41 +3721,41 @@ wxString CPartFile::getPartfileStatus() const
 				}	else {
 					mybuffer=_("Waiting");
 				}
-				break;				
-		} 
+				break;
+		}
 		if (m_stopped && (GetStatus()!=PS_COMPLETE)) {
 			mybuffer=_("Stopped");
-		}		
+		}
 	}
-	
-	return mybuffer; 
-} 
+
+	return mybuffer;
+}
 
 int CPartFile::getPartfileStatusRang() const
 {
-	
+
 	int tempstatus=0;
 	if (GetTransferingSrcCount()==0) tempstatus=1;
 	switch (GetStatus()) {
-		case PS_HASHING: 
+		case PS_HASHING:
 		case PS_WAITINGFORHASH:
 			tempstatus=3;
-			break; 
+			break;
 		case PS_COMPLETING:
 			tempstatus=4;
-			break; 
+			break;
 		case PS_COMPLETE:
 			tempstatus=5;
-			break; 
+			break;
 		case PS_PAUSED:
 			tempstatus=2;
-			break; 
+			break;
 		case PS_ERROR:
 			tempstatus=6;
 			break;
-	} 
+	}
 	return tempstatus;
-} 
+}
 
 
 wxString CPartFile::GetFeedback() const
@@ -3768,9 +3773,9 @@ sint32 CPartFile::getTimeRemaining() const
 {
 	if (GetKBpsDown() < 0.001)
 		return -1;
-	else 
+	else
 		return((GetFileSize()-GetCompletedSize()) / ((int)(GetKBpsDown()*1024.0)));
-} 
+}
 
 bool CPartFile::PreviewAvailable()
 {
@@ -3803,7 +3808,7 @@ bool CPartFile::CheckShowItemInGivenCat(int inCategory)
 			show = !IsPartFile();
 			break;
 		case acfWaiting:
-			show = 
+			show =
 				(GetStatus() == PS_READY || GetStatus() == PS_EMPTY) &&
 				GetTransferingSrcCount() == 0;
 			break;
@@ -3846,7 +3851,7 @@ bool CPartFile::CheckShowItemInGivenCat(int inCategory)
 			show = true;
 			break;
 	}
-	
+
 	return show;
 }
 
@@ -3898,6 +3903,13 @@ uint16 CPartFile::GetPartMetNumber() const
 }
 
 
+void CPartFile::SetHashingProgress(uint16 part) const
+{
+	m_hashingProgress = part;
+	Notify_DownloadCtrlUpdateItem(this);
+}
+
+
 #ifndef CLIENT_GUI
 
 uint8 CPartFile::GetStatus(bool ignorepause) const
@@ -3929,17 +3941,17 @@ bool CPartFile::IsDeadSource(const CUpDownClient* client)
 void CPartFile::SetFileName(const CPath& fileName)
 {
 	CKnownFile* pFile = theApp->sharedfiles->GetFileByID(GetFileHash());
-	
+
 	bool is_shared = (pFile && pFile == this);
-	
+
 	if (is_shared) {
 		// The file is shared, we must clear the search keywords so we don't
 		// publish the old name anymore.
 		theApp->sharedfiles->RemoveKeywords(this);
 	}
-	
+
 	CKnownFile::SetFileName(fileName);
-	
+
 	if (is_shared) {
 		// And of course, we must advertise the new name if the file is shared.
 		theApp->sharedfiles->AddKeywords(this);
@@ -3966,7 +3978,7 @@ uint16 CPartFile::GetMaxSourcePerFileSoft() const
 }
 
 uint16 CPartFile::GetMaxSourcePerFileUDP() const
-{	
+{
 	unsigned int temp = ((unsigned int)GetMaxSources() * 3L) / 4;
 	if (temp > MAX_SOURCES_FILE_UDP) {
 		return MAX_SOURCES_FILE_UDP;
@@ -3991,7 +4003,7 @@ CUpDownClient* CPartFile::GetSlowerDownloadingClient(uint32 speed, CUpDownClient
 //				printf("Not selecting source %p to drop: %d > %d\n", cur_src, factored_bytes_per_second, speed);
 			}
 		}
-	}	
+	}
 //	printf("End slower source calculation\n");
 	return NULL;
 }
diff --git a/src/PartFile.h b/src/PartFile.h
index 951cbd0..72886f9 100644
--- a/src/PartFile.h
+++ b/src/PartFile.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,8 +42,8 @@ class CED2KFileLink;
 //#define BUFFER_SIZE_LIMIT	500000 // Max bytes before forcing a flush
 #define BUFFER_TIME_LIMIT	60000   // Max milliseconds before forcing a flush
 
-// Ok, eMule and aMule are building incompatible backup files because 
-// of the different name. aMule was using ".BAK" and eMule ".bak". 
+// Ok, eMule and aMule are building incompatible backup files because
+// of the different name. aMule was using ".BAK" and eMule ".bak".
 // This should fix it.
 #define   PARTMET_BAK_EXT wxT(".bak")
 
@@ -89,17 +89,17 @@ typedef std::map<uint32,SourcenameItem> SourcenameItemMap;
 class CPartFile : public CKnownFile {
 public:
 	typedef std::list<Requested_Block_Struct*> CReqBlockPtrList;
-	
+
 	CPartFile();
 #ifdef CLIENT_GUI
-	CPartFile(CEC_PartFile_Tag *tag);
-#else 
+	CPartFile(const CEC_PartFile_Tag *tag);
+#else
 	virtual void	SetFileName(const CPath& filename);
 #endif
 	CPartFile(CSearchFile* searchresult);  //used when downloading a new file
 	CPartFile(const CED2KFileLink* fileLink);
 	virtual ~CPartFile();
-	
+
 	virtual bool LoadFromFile(const CFileDataIO* WXUNUSED(file)) { return false; }
 	bool	WriteToFile(CFileDataIO* WXUNUSED(file))	{ return false; }
 
@@ -113,18 +113,18 @@ public:
 	bool	SavePartFile(bool Initial = false);
 	void	PartFileHashFinished(CKnownFile* result);
 	bool	HashSinglePart(uint16 partnumber); // true = ok , false = corrupted
-	
+
 	bool    CheckShowItemInGivenCat(int inCategory);
 
 	bool	IsComplete(uint64 start, uint64 end)	{ return m_gaplist.IsComplete(start, end); }
 	bool	IsComplete(uint16 part)			{ return m_gaplist.IsComplete(part); }
-	
+
 	void	UpdateCompletedInfos();
 
 	bool	GetNextRequestedBlock(CUpDownClient* sender, std::vector<Requested_Block_Struct*>& toadd, uint16& count);
 	void	WritePartStatus(CMemFile* file);
 	void	WriteCompleteSourcesCount(CMemFile* file);
-	static bool 	CanAddSource(uint32 userid, uint16 port, uint32 serverip, uint16 serverport, uint8* pdebug_lowiddropped = NULL, bool ed2kID = true);
+	static bool	CanAddSource(uint32 userid, uint16 port, uint32 serverip, uint16 serverport, uint8* pdebug_lowiddropped = NULL, bool ed2kID = true);
 	void	AddSources(CMemFile& sources, uint32 serverip, uint16 serverport, unsigned origin, bool bWithObfuscationAndHash);
 #ifdef CLIENT_GUI
 	uint8	GetStatus() const { return status; }
@@ -151,11 +151,11 @@ public:
 	uint16	GetTransferingSrcCount() const	{ return transferingsrc; }
 	uint16  GetNotCurrentSourcesCount()	const	{ return m_notCurrentSources; };
 	uint16	GetValidSourcesCount() const	{ return m_validSources; };
-	
+
 	uint64	GetNeededSpace();
-	
+
 	virtual wxString GetFeedback() const;
-	
+
 	wxString getPartfileStatus() const; //<<--9/21/02
 	sint32	getTimeRemaining() const; //<<--9/21/02
 	time_t	lastseencomplete;
@@ -163,7 +163,7 @@ public:
 
 	// Barry - Added as replacement for BlockReceived to buffer data before writing to disk
 	uint32	WriteToBuffer(uint32 transize, byte *data, uint64 start, uint64 end, Requested_Block_Struct *block, const CUpDownClient* client);
-	void	FlushBuffer(bool fromAICHRecoveryDataAvailable = false);	
+	void	FlushBuffer(bool fromAICHRecoveryDataAvailable = false);
 
 	// Barry - Added to prevent list containing deleted blocks on shutdown
 	void	RemoveAllRequestedBlocks(void);
@@ -192,7 +192,7 @@ public:
 
 	int	GetCommonFilePenalty();
 	void	UpdateDisplayedInfo(bool force = false);
-	
+
 	uint8	GetCategory() const { return m_category; }
 	void	SetCategory(uint8 cat);
 	void	RemoveCategory(uint8 cat);
@@ -205,13 +205,13 @@ public:
 	void	SetActive(bool bActive);
 	uint32	GetDlActiveTime() const;
 	bool	GetInsufficient() const		{ return m_insufficient; }
-	
-	void	CompleteFileEnded(bool errorOccured, const CPath& newname);	
+
+	void	CompleteFileEnded(bool errorOccured, const CPath& newname);
 
 	bool	RemoveSource(CUpDownClient* toremove, bool updatewindow = true, bool bDoStatsUpdate = true);
 
 	void	RequestAICHRecovery(uint16 nPart);
-	void	AICHRecoveryDataAvailable(uint16 nPart);	
+	void	AICHRecoveryDataAvailable(uint16 nPart);
 
 	/**
 	 * This function is used to update source-counts.
@@ -219,11 +219,11 @@ public:
 	 * @param oldState The old state of the client, or -1 to ignore.
 	 * @param newState The new state of the client, or -1 to ignore.
 	 *
-	 * Call this function for a client belonging to this file, which has changed 
-	 * its state. The value -1 can be used to make the function ignore one of 
+	 * Call this function for a client belonging to this file, which has changed
+	 * its state. The value -1 can be used to make the function ignore one of
 	 * the two states.
 	 *
-	 * AddSource and DelSource takes care of calling this function when a source is 
+	 * AddSource and DelSource takes care of calling this function when a source is
 	 * removed, so there's no need to call this function when calling either of those.
 	 */
 	void	ClientStateChanged( int oldState, int newState );
@@ -237,7 +237,7 @@ public:
 	 * @param client The clients whoose available parts should be considered.
 	 * @param increment If true, the counts are incremented, otherwise they are decremented.
 	 *
-	 * This functions updates the frequency list of file-parts, using the clients 
+	 * This functions updates the frequency list of file-parts, using the clients
 	 * parts-status. This function should be called by clients every time they update their
 	 * parts-status, or when they are added or removed from the file.
 	 */
@@ -261,6 +261,13 @@ public:
 	void		AddDeadSource(const CUpDownClient* client);
 
 	/**
+	 * Set the current progress of hashing and display it in the download list control.
+	 *
+	 * @param part Number of part currently being hashed. 0 for no hashing in progress.
+	 */
+	virtual	void SetHashingProgress(uint16 part) const;
+
+	/**
 	 * Checks if a source is recorded as being dead for this file.
 	 *
 	 * @param client The client to evaluate.
@@ -270,11 +277,11 @@ public:
 	 * sources and should not be added to the partfile.
 	 */
 	bool		IsDeadSource(const CUpDownClient* client);
-	
+
 	/* Kad Stuff */
 	uint16	GetMaxSources() const;
 	uint16	GetMaxSourcePerFileSoft() const;
-	uint16	GetMaxSourcePerFileUDP() const;		 
+	uint16	GetMaxSourcePerFileUDP() const;
 
 	void GetRatingAndComments(FileRatingList & list) const;
 
@@ -290,7 +297,7 @@ private:
 #endif
 
 	uint16	m_notCurrentSources;
-	
+
 	uint32	m_validSources;
 
 	void	AddGap(uint64 start, uint64 end);
@@ -304,22 +311,22 @@ private:
 	void	Init();
 
 	bool	CheckFreeDiskSpace( uint64 neededSpace = 0 );
-	
+
 	bool	IsCorruptedPart(uint16 partnumber);
-	
+
 	uint32	m_iLastPausePurge;
 	uint16	m_count;
 	uint16	transferingsrc;
 	uint64  completedsize;
 	uint64	transferred;
-	
+
 	uint64	m_iLostDueToCorruption;
 	uint64	m_iGainDueToCompression;
 	uint32  m_iTotalPacketsSavedDueToICH;
-	float 	kBpsDown;
+	float	kBpsDown;
 	CPath	m_fullname;			// path/name of the met file
 	CPath	m_partmetfilename;	// name of the met file
-	CPath 	m_PartPath; 		// path/name of the partfile
+	CPath	m_PartPath;		// path/name of the partfile
 	bool	m_paused;
 	bool	m_stopped;
 	bool	m_insufficient;
@@ -342,7 +349,7 @@ private:
 
 	// Buffered data to be written
 	std::list<class PartFileBufferedData*> m_BufferedData_list;
-	
+
 	uint32 m_nTotalBufferData;
 	uint32 m_nLastBufferFlushTime;
 
@@ -361,10 +368,10 @@ private:
 	FileRatingList m_FileRatingList;
 	const FileRatingList &GetFileRatingList() { return m_FileRatingList; }
 	void ClearFileRatingList() { m_FileRatingList.clear(); }
-	void AddFileRatingList(const wxString & u, const wxString & f, sint16 r, const wxString & c) { 
+	void AddFileRatingList(const wxString & u, const wxString & f, sint16 r, const wxString & c) {
 	       m_FileRatingList.push_back(SFileRating(u, f, r, c)); }
 
-	uint32 	m_kbpsDown;
+	uint32	m_kbpsDown;
 	uint8   m_iDownPriorityEC;
 	bool	m_isShared;
 	SourcenameItemMap m_SourcenameItemMap;
@@ -379,33 +386,33 @@ public:
 public:
 	bool IsHashSetNeeded() const				{ return m_hashsetneeded; }
 	void SetHashSetNeeded(bool value)			{ m_hashsetneeded = value; }
-	
+
 	uint64  GetCompletedSize() const			{ return completedsize; }
-	void	SetCompletedSize(uint64 size)		{ completedsize = size; }	
+	void	SetCompletedSize(uint64 size)		{ completedsize = size; }
 
 	bool IsLocalSrcRequestQueued() const		{ return m_localSrcReqQueued; }
-	void SetLocalSrcRequestQueued(bool value) 	{ m_localSrcReqQueued = value; }
+	void SetLocalSrcRequestQueued(bool value)	{ m_localSrcReqQueued = value; }
 
 	void AddA4AFSource(CUpDownClient* src)		{ m_A4AFsrclist.insert(CCLIENTREF(src, wxT("A4AFSource"))); }
 	bool RemoveA4AFSource(CUpDownClient* src)	{ return (m_A4AFsrclist.erase(CCLIENTREF(src, wxEmptyString)) > 0); }
 
 	uint32 GetLastSearchTime() const			{ return m_lastsearchtime; }
 	void SetLastSearchTime(uint32 time)			{ m_lastsearchtime = time; }
-	
+
 	void AddDownloadingSource(CUpDownClient* client);
-          
+
 	void RemoveDownloadingSource(CUpDownClient* client);
 	void SetStatus(uint8 in);
 	void StopPausedFile();
 
-	// [sivka / Tarod] Imported from eMule 0.30c (Creteil) ... 
+	// [sivka / Tarod] Imported from eMule 0.30c (Creteil) ...
 	void SetA4AFAuto(bool in)		{ m_is_A4AF_auto = in; }
 	bool IsA4AFAuto() const			{ return m_is_A4AF_auto; }
-	
+
 	// Kry -Sources seeds
 	void SaveSourceSeeds();
 	void LoadSourceSeeds();
-	
+
 	// Dropping slow sources
 	CUpDownClient* GetSlowerDownloadingClient(uint32 speed, CUpDownClient* caller);
 
diff --git a/src/PartFileConvert.cpp b/src/PartFileConvert.cpp
index f7767c4..c025c36 100644
--- a/src/PartFileConvert.cpp
+++ b/src/PartFileConvert.cpp
@@ -47,13 +47,14 @@ struct ConvertJob {
 	CPath		folder;
 	CPath		filename;
 	wxString	filehash;
-	int		format;
 	ConvStatus	state;
 	uint32_t	size;
 	uint32_t	spaceneeded;
 	uint8		partmettype;
 	bool		removeSource;
-	ConvertJob()	{ id=s_nextJobId++; size=0; spaceneeded=0; partmettype=PMT_UNKNOWN; removeSource=true; }
+	ConvertJob(const CPath& file, bool deleteSource, ConvStatus status)
+		: id(s_nextJobId++), folder(file), state(status), size(0), spaceneeded(0), partmettype(PMT_UNKNOWN), removeSource(deleteSource)
+		{}
 };
 
 ConvertInfo::ConvertInfo(ConvertJob *job)
@@ -104,11 +105,8 @@ void CPartFileConvert::ConvertToeMule(const CPath& file, bool deletesource)
 	if (!file.FileExists()) {
 		return;
 	}
-	
-	ConvertJob* newjob = new ConvertJob();
-	newjob->folder = file;
-	newjob->removeSource = deletesource;
-	newjob->state = CONV_QUEUE;
+
+	ConvertJob* newjob = new ConvertJob(file, deletesource, CONV_QUEUE);
 
 	wxMutexLocker lock(s_mutex);
 
@@ -123,7 +121,7 @@ void CPartFileConvert::StartThread()
 {
 	if (!s_convertPfThread) {
 		s_convertPfThread = new CPartFileConvert();
-	
+
 		switch ( s_convertPfThread->Create() ) {
 			case wxTHREAD_NO_ERROR:
 				AddDebugLogLineN( logPfConvert, wxT("A new thread has been created.") );
@@ -140,7 +138,7 @@ void CPartFileConvert::StartThread()
 
 		// The thread shouldn't hog the CPU, as it will already be hogging the HD
 		s_convertPfThread->SetPriority(WXTHREAD_MIN_PRIORITY);
-		
+
 		s_convertPfThread->Run();
 	}
 }
@@ -225,9 +223,8 @@ wxThread::ExitCode CPartFileConvert::Entry()
 
 ConvStatus CPartFileConvert::performConvertToeMule(const CPath& fileName)
 {
-	wxString filepartindex, buffer;
-	unsigned fileindex;
-	
+	wxString filepartindex;
+
 	CPath folder	= fileName.GetPath();
 	CPath partfile	= fileName.GetFullName();
 	CPath newfilename;
@@ -267,9 +264,10 @@ ConvStatus CPartFileConvert::performConvertToeMule(const CPath& fileName)
 	}
 
 	if (s_pfconverting->partmettype == PMT_SPLITTED) {
+		unsigned fileindex;
 		char *ba = new char [PARTSIZE];
 
-		try {			
+		try {
 			CFile inputfile;
 
 			// just count
@@ -324,9 +322,8 @@ ConvStatus CPartFileConvert::performConvertToeMule(const CPath& fileName)
 			while (filename.IsOk()) {
 				// stats
 				++curindex;
-				buffer = CFormat(_("Loading data from old download file (%u of %u)")) % curindex % partfilecount;
 
-				Notify_ConvertUpdateProgress(10 + (curindex * stepperpart), buffer);
+				Notify_ConvertUpdateProgress(10 + (curindex * stepperpart), CFormat(_("Loading data from old download file (%u of %u)")) % curindex % partfilecount);
 
 				long l;
 				filename.GetFullName().RemoveExt().GetExt().ToLong(&l);
@@ -337,16 +334,14 @@ ConvStatus CPartFileConvert::performConvertToeMule(const CPath& fileName)
 				}
 
 				uint32 chunkstart = (fileindex - 1) * PARTSIZE;
-				
+
 				// open, read data of the part-part-file into buffer, close file
 				inputfile.Open(filename, CFile::read);
 				uint64 toReadWrite = std::min<uint64>(PARTSIZE, inputfile.GetLength());
 				inputfile.Read(ba, toReadWrite);
 				inputfile.Close();
 
-				buffer = CFormat(_("Saving data block into new single download file (%u of %u)")) % curindex % partfilecount;
-
-				Notify_ConvertUpdateProgress(10 + (curindex * stepperpart), buffer);
+				Notify_ConvertUpdateProgress(10 + (curindex * stepperpart), CFormat(_("Saving data block into new single download file (%u of %u)")) % curindex % partfilecount);
 
 				// write the buffered data
 				file->m_hpartfile.WriteAt(ba, chunkstart, toReadWrite);
@@ -356,16 +351,16 @@ ConvStatus CPartFileConvert::performConvertToeMule(const CPath& fileName)
 			delete[] ba;
 		} catch (const CSafeIOException& e) {
 			AddDebugLogLineC(logPfConvert, wxT("IO error while converting partfiles: ") + e.what());
-			
+
 			delete[] ba;
 			file->Delete();
 			return CONV_IOERROR;
 		}
-		
+
 		file->m_hpartfile.Close();
 	}
 	// import an external common format partdownload
-	else //if (pfconverting->partmettype==PMT_DEFAULTOLD || pfconverting->partmettype==PMT_NEWOLD || Shareaza  ) 
+	else //if (pfconverting->partmettype==PMT_DEFAULTOLD || pfconverting->partmettype==PMT_NEWOLD || Shareaza  )
 	{
 		if (!s_pfconverting->removeSource) {
 			wxMutexLocker lock(s_mutex);
@@ -437,7 +432,7 @@ ConvStatus CPartFileConvert::performConvertToeMule(const CPath& fileName)
 
 	theApp->downloadqueue->AddDownload(file, thePrefs::AddNewFilesPaused(), 0);
 	file->SavePartFile();
-	
+
 	if (file->GetStatus(true) == PS_READY) {
 		theApp->sharedfiles->SafeAddKFile(file); // part files are always shared files
 	}
diff --git a/src/PartFileConvertDlg.cpp b/src/PartFileConvertDlg.cpp
index 3fa6c4b..967daea 100644
--- a/src/PartFileConvertDlg.cpp
+++ b/src/PartFileConvertDlg.cpp
@@ -38,7 +38,7 @@
 CPartFileConvertDlg*	CPartFileConvertDlg::s_convertgui = NULL;
 
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 /* XPM */
 static const char * convert_xpm[] = {
 "16 16 9 1",
@@ -67,7 +67,7 @@ static const char * convert_xpm[] = {
 "    #$%$#       ",
 "     #$#        ",
 "      #         "};
-#endif /* ! __WXMSW__ */
+#endif /* ! __WINDOWS__  */
 
 // Modeless Dialog Implementation
 // CPartFileConvertDlg dialog
@@ -94,6 +94,14 @@ CPartFileConvertDlg::CPartFileConvertDlg(wxWindow* parent)
 	m_joblist->InsertColumn(3, _("Filehash"),	wxLIST_FORMAT_LEFT, 100);
 
 	SetIcon(wxICON(convert));
+
+#ifdef CLIENT_GUI
+	// There's no remote directory browser (yet), thus disable the
+	// directory selector unless we're using a localhost connection
+	if (!theApp->m_connect->IsConnectedToLocalHost()) {
+		CastChild(IDC_ADDITEM, wxButton)->Enable(false);
+	}
+#endif
 }
 
 // Static methods
diff --git a/src/PlatformSpecific.cpp b/src/PlatformSpecific.cpp
index 3be514d..a39474e 100644
--- a/src/PlatformSpecific.cpp
+++ b/src/PlatformSpecific.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -29,7 +29,7 @@
 #endif
 
 // NTFS Sparse Files (only for MSW)
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 #include "common/Format.h"
 #include "Logger.h"
 #include <winbase.h>
@@ -46,20 +46,20 @@ static wxString SystemError()
 {
 	WCHAR * lpMsgBuf = NULL;
 
-	FormatMessageW( 
+	FormatMessageW(
 		FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
 		NULL,
 		GetLastError(),
 		0, // Default language
 		(LPWSTR) &lpMsgBuf,
 		0,
-		NULL 
+		NULL
 	);
 
 	wxString ret(lpMsgBuf);
 	LocalFree(lpMsgBuf);
 	return ret;
-} 
+}
 
 // Create a file in sparse mode
 bool PlatformSpecific::CreateSparseFile(const CPath& name, uint64_t size)
@@ -67,11 +67,11 @@ bool PlatformSpecific::CreateSparseFile(const CPath& name, uint64_t size)
 	DWORD dwReturnedBytes=0;
 
 	HANDLE hd = CreateFileW(name.GetRaw().c_str(),
-		GENERIC_READ | GENERIC_WRITE, 
+		GENERIC_READ | GENERIC_WRITE,
 		0,       // share - not shareable
 		NULL,    // security - not inheritable
 		CREATE_ALWAYS,
-		FILE_ATTRIBUTE_ARCHIVE, 
+		FILE_ATTRIBUTE_ARCHIVE,
 		NULL);
 	if (hd == INVALID_HANDLE_VALUE) {
 		AddDebugLogLineC(logPartFile, CFormat(wxT("converting %s to sparse failed (OPEN): %s ")) % name % SystemError());
@@ -90,7 +90,7 @@ bool PlatformSpecific::CreateSparseFile(const CPath& name, uint64_t size)
 		fzdi.BeyondFinalZero = size;
 		LARGE_INTEGER largo;
 		largo.QuadPart = size;
-		
+
 		// zero the data
 		if (!DeviceIoControl(hd, FSCTL_SET_ZERO_DATA, (LPVOID) &fzdi, sizeof(fzdi), NULL, 0, &dwReturnedBytes, NULL)) {
 			AddDebugLogLineC(logPartFile, CFormat(wxT("converting %s to sparse failed (ZERO): %s")) % name % SystemError());
@@ -113,7 +113,7 @@ bool PlatformSpecific::CreateSparseFile(const CPath& name, uint64_t WXUNUSED(siz
 
 #endif
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 #include <wx/msw/registry.h>
 #include <wx/utils.h>
 
@@ -152,13 +152,13 @@ int PlatformSpecific::GetMaxConnections()
 #endif
 
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 #include <winbase.h>
 #include <shlwapi.h>
 
 static PlatformSpecific::EFSType doGetFilesystemType(const CPath& path)
 {
-	wxWritableWCharBuffer pathRaw(path.GetRaw());
+	wxWritableWCharBuffer pathRaw(path.GetRaw().wchar_str());
 	LPWSTR volume = pathRaw;
 	if (!PathStripToRootW(volume)) {
 		return PlatformSpecific::fsOther;
@@ -327,9 +327,25 @@ void PlatformSpecific::PreventSleepMode()
 		#ifdef _MSC_VER
 			SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);
 			m_preventingSleepMode = true;
+
+		// IOPMAssertionCreate has been introduced in Leopard (10.5) but deprecated starting from Snow Leopard(10.6)
+		// For more details see:
+		// - http://developer.apple.com/library/mac/#qa/qa1340/_index.html
+		// - http://www.cimgf.com/2009/10/14/the-journey-to-disabling-sleep-with-iokit/
+		#elif defined(__WXMAC__) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1060	// 10.6 only
+			CFStringRef reasonForActivity= CFSTR("Prevent Display Sleep");
+			IOReturn success = IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep,
+												kIOPMAssertionLevelOn, reasonForActivity, &assertionID);
+			if (success == kIOReturnSuccess) {
+				// Correctly vetoed, flag so we don't do it again.
+				m_preventingSleepMode = true;
+			} else {
+				// May be should be better to trace in log?
+			}
+
 		#elif defined(__WXMAC__) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1050	// 10.5 only
-			IOReturn success = IOPMAssertionCreate(kIOPMAssertionTypeNoDisplaySleep, 
-												kIOPMAssertionLevelOn, &assertionID); 
+			IOReturn success = IOPMAssertionCreate(kIOPMAssertionTypeNoDisplaySleep,
+												kIOPMAssertionLevelOn, &assertionID);
 			if (success == kIOReturnSuccess) {
 				// Correctly vetoed, flag so we don't do it again.
 				m_preventingSleepMode = true;
@@ -337,8 +353,8 @@ void PlatformSpecific::PreventSleepMode()
 				// ??
 			}
 		#else
-			#warning Power event vetoing not implemented.
-			// Not implemented	
+			//#warning Power event vetoing not implemented.
+			// Not implemented
 		#endif
 	}
 }
@@ -350,7 +366,7 @@ void PlatformSpecific::AllowSleepMode()
 			SetThreadExecutionState(ES_CONTINUOUS); // Clear the system request flag.
 			m_preventingSleepMode = false;
 		#elif defined(__WXMAC__) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1050	// 10.5 only
-			IOReturn success = IOPMAssertionRelease(assertionID); 
+			IOReturn success = IOPMAssertionRelease(assertionID);
 			if (success == kIOReturnSuccess) {
 				// Correctly restored, flag so we don't do it again.
 				m_preventingSleepMode = false;
diff --git a/src/PlatformSpecific.h b/src/PlatformSpecific.h
index 3b26e0c..827b0a8 100644
--- a/src/PlatformSpecific.h
+++ b/src/PlatformSpecific.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -49,7 +49,7 @@ bool CreateSparseFile(const CPath& name, uint64_t size);
  *
  * Currently anything but windows will return the default value (-1);
  */
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 int GetMaxConnections();
 #else
 inline int GetMaxConnections() { return -1; }
@@ -92,7 +92,7 @@ EFSType GetFilesystemType(const CPath& path);
  *
  * Based on http://en.wikipedia.org/wiki/Comparison_of_file_systems
  */
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 inline bool CanFSHandleSpecialChars(const CPath& WXUNUSED(path)) { return false; }
 #else
 // Other filesystem types may be added
@@ -100,6 +100,7 @@ inline bool CanFSHandleSpecialChars(const CPath& path)
 {
 	switch (GetFilesystemType(path)) {
 		case fsFAT:
+		case fsNTFS:
 		case fsHFS:
 			return false;
 		default:
@@ -137,7 +138,7 @@ inline bool CanFSHandleLargeFiles(const CPath& path)
  * Disable / enable computer's energy saving "standby" mode.
  *
  */
-#if defined __WXMSW__ || defined __WXMAC__
+#if defined __WINDOWS__  || defined __WXMAC__
 	#define PLATFORMSPECIFIC_CAN_PREVENT_SLEEP_MODE 1
 #else
 	#define PLATFORMSPECIFIC_CAN_PREVENT_SLEEP_MODE 0
diff --git a/src/Preferences.cpp b/src/Preferences.cpp
index b99214d..1b27a1d 100644
--- a/src/Preferences.cpp
+++ b/src/Preferences.cpp
@@ -143,6 +143,7 @@ bool		CPreferences::s_checkDiskspace;
 uint32		CPreferences::s_uMinFreeDiskSpace;
 wxString	CPreferences::s_yourHostname;
 bool		CPreferences::s_bVerbose;
+bool		CPreferences::s_bVerboseLogfile;
 bool		CPreferences::s_bmanualhighprio;
 bool		CPreferences::s_bstartnextfile;
 bool		CPreferences::s_bstartnextfilesame;
@@ -161,7 +162,7 @@ bool		CPreferences::s_msgsecure;
 uint8		CPreferences::s_filterlevel;
 uint8		CPreferences::s_iFileBufferSize;
 uint8		CPreferences::s_iQueueSize;
-wxString 	CPreferences::s_datetimeformat;
+wxString	CPreferences::s_datetimeformat;
 wxString	CPreferences::s_sWebPath;
 wxString	CPreferences::s_sWebPassword;
 wxString	CPreferences::s_sWebLowPassword;
@@ -179,7 +180,7 @@ bool		CPreferences::s_DropFullQueueSources;
 bool		CPreferences::s_DropHighQueueRankingSources;
 uint32		CPreferences::s_HighQueueRanking;
 uint32		CPreferences::s_AutoDropTimer;
-bool 		CPreferences::s_AcceptExternalConnections;
+bool		CPreferences::s_AcceptExternalConnections;
 wxString	CPreferences::s_ECAddr;
 uint32		CPreferences::s_ECPort;
 wxString	CPreferences::s_ECPassword;
@@ -199,14 +200,14 @@ wxString	CPreferences::s_Skin;
 bool		CPreferences::s_FastED2KLinksHandler;
 bool		CPreferences::s_ToolbarOrientation;
 bool		CPreferences::s_AICHTrustEveryHash;
-wxString 	CPreferences::s_CommentFilterString;
+wxString	CPreferences::s_CommentFilterString;
 bool		CPreferences::s_IPFilterAutoLoad;
 wxString	CPreferences::s_IPFilterURL;
 CMD4Hash	CPreferences::s_userhash;
 bool		CPreferences::s_MustFilterMessages;
-wxString 	CPreferences::s_MessageFilterString;
+wxString	CPreferences::s_MessageFilterString;
 bool		CPreferences::s_FilterAllMessages;
-bool 		CPreferences::s_FilterComments;
+bool		CPreferences::s_FilterComments;
 bool		CPreferences::s_FilterSomeMessages;
 bool		CPreferences::s_ShowMessagesInLog;
 bool		CPreferences::s_IsAdvancedSpamfilterEnabled;
@@ -224,13 +225,13 @@ bool		CPreferences::s_IsClientCryptLayerRequired;
 uint32		CPreferences::s_dwKadUDPKey;
 uint8		CPreferences::s_byCryptTCPPaddingLength;
 
-wxString 	CPreferences::s_Ed2kURL;
-wxString 	CPreferences::s_KadURL;
-bool	 	CPreferences::s_GeoIPEnabled;
-wxString 	CPreferences::s_GeoIPUpdateUrl;
+wxString	CPreferences::s_Ed2kURL;
+wxString	CPreferences::s_KadURL;
+bool		CPreferences::s_GeoIPEnabled;
+wxString	CPreferences::s_GeoIPUpdateUrl;
 bool		CPreferences::s_preventSleepWhileDownloading;
-wxString 	CPreferences::s_StatsServerName;
-wxString 	CPreferences::s_StatsServerURL;
+wxString	CPreferences::s_StatsServerName;
+wxString	CPreferences::s_StatsServerURL;
 
 /**
  * Template Cfg class for connecting with widgets.
@@ -672,6 +673,7 @@ typedef Cfg_Int<int> Cfg_PureInt;
 class Cfg_Lang : public Cfg_PureInt, public Cfg_Lang_Base
 {
 public:
+	// cppcheck-suppress uninitMemberVar m_selection, m_langSelector
 	Cfg_Lang()
 		: Cfg_PureInt( wxEmptyString, m_selection, 0 )
 	{
@@ -746,7 +748,7 @@ public:
 			for (unsigned int i = 1; i < itemsof(aMuleLanguages); ++i) {
 				if ((aMuleLanguages[i].id > wxLANGUAGE_USER_DEFINED) || wxLocale::IsAvailable(aMuleLanguages[i].id)) {
 					wxLogNull	logTarget;
-					wxLocale 	locale_to_check;
+					wxLocale	locale_to_check;
 					InitLocale(locale_to_check, aMuleLanguages[i].id);
 					if (locale_to_check.IsOk() && locale_to_check.IsLoaded(wxT(PACKAGE))) {
 						aMuleLanguages[i].displayname = wxString(wxGetTranslation(aMuleLanguages[i].name)) + wxT(" [") + aMuleLanguages[i].name + wxT("]");
@@ -875,7 +877,7 @@ public:
 		} else {
 			dataDir = wxStandardPaths::Get().GetResourcesDir();
 		}
-#if !defined(__WXMSW__) && !defined(__WXMAC__)
+#if !defined(__WINDOWS__ ) && !defined(__WXMAC__)
 		dataDir = dataDir.BeforeLast(wxT('/')) + wxT("/amule");
 #endif
 		wxString systemDir(JoinPaths(dataDir,folder));
@@ -1011,6 +1013,7 @@ void CPreferences::BuildItemList( const wxString& appdir )
 	 * Debugging
 	 **/
 	NewCfgItem(ID_VERBOSEDEBUG, (new Cfg_Bool( wxT("/eMule/VerboseDebug"), s_bVerbose, false )));
+	NewCfgItem(ID_VERBOSEDEBUGLOGFILE, (new Cfg_Bool( wxT("/eMule/VerboseDebugLogfile"), s_bVerboseLogfile, false )));
 #endif
 
 	/**
@@ -1065,9 +1068,9 @@ void CPreferences::BuildItemList( const wxString& appdir )
 	/**
 	 * Files
 	 **/
-	NewCfgItem(IDC_TEMPFILES,	(new Cfg_Path(  wxT("/eMule/TempDir"), 	s_tempdir, appdir + wxT("Temp") )));
+	NewCfgItem(IDC_TEMPFILES,	(new Cfg_Path(  wxT("/eMule/TempDir"),	s_tempdir, appdir + wxT("Temp") )));
 
-	#if defined(__WXMAC__) || defined(__WXMSW__)
+	#if defined(__WXMAC__) || defined(__WINDOWS__ )
 		wxString incpath = wxStandardPaths::Get().GetDocumentsDir();
 		if (incpath.IsEmpty()) {
 			// There is a built-in possibility for this call to fail, though I can't imagine a reason for that.
@@ -1242,10 +1245,10 @@ void CPreferences::BuildItemList( const wxString& appdir )
 
 	s_MiscList.push_back( MkCfg_Int( wxT("/eMule/SmartIdState"), s_smartidstate, 0 ) );
 
-	s_MiscList.push_back( new Cfg_Bool( wxT("/eMule/DropSlowSources"), 		s_DropSlowSources, false ) );
+	s_MiscList.push_back( new Cfg_Bool( wxT("/eMule/DropSlowSources"),		s_DropSlowSources, false ) );
 
-	s_MiscList.push_back( new Cfg_Str(  wxT("/eMule/KadNodesUrl"),			s_KadURL, wxT("http://download.tuxfamily.org/technosalad/utils/nodes.dat") ) );
-	s_MiscList.push_back( new Cfg_Str(  wxT("/eMule/Ed2kServersUrl"),		s_Ed2kURL, wxT("http://gruk.org/server.met.gz") ) );
+	s_MiscList.push_back( new Cfg_Str(  wxT("/eMule/KadNodesUrl"),			s_KadURL, wxT("http://upd.emule-security.org/nodes.dat") ) );
+	s_MiscList.push_back( new Cfg_Str(	wxT("/eMule/Ed2kServersUrl"),		s_Ed2kURL, wxT("http://upd.emule-security.org/server.met") ) );
 	s_MiscList.push_back( MkCfg_Int( wxT("/eMule/ShowRatesOnTitle"),		s_showRatesOnTitle, 0 ));
 
 	s_MiscList.push_back( new Cfg_Str(  wxT("/eMule/GeoLiteCountryUpdateUrl"),		s_GeoIPUpdateUrl, wxT("http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz") ) );
@@ -1705,7 +1708,7 @@ bool CPreferences::UpdateCategory(
 wxString CPreferences::GetBrowser()
 {
 	wxString cmd(s_CustomBrowser);
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	if( s_BrowserTab ) {
 		// This is certainly not the best way to do it, but I'm lazy
 		if ((wxT("mozilla") == cmd.Right(7)) || (wxT("firefox") == cmd.Right(7))
@@ -1722,7 +1725,7 @@ wxString CPreferences::GetBrowser()
 			cmd += wxT(" -remote 'openURLs(%s,new-tab)'");
 		}
 	}
-#endif /* !__WXMSW__ */
+#endif /* !__WINDOWS__  */
 	return cmd;
 }
 
diff --git a/src/Preferences.h b/src/Preferences.h
index 0d92ab5..1db0d53 100644
--- a/src/Preferences.h
+++ b/src/Preferences.h
@@ -148,7 +148,7 @@ public:
 	 *
 	 * @return True if the variable has changed, false otherwise.
 	 */
-	virtual bool HasChanged() 			{ return m_changed; }
+	virtual bool HasChanged()			{ return m_changed; }
 
 
 protected:
@@ -237,14 +237,14 @@ public:
 	static void		SetHideOnClose(bool val)	{ s_hideonclose = val; }
 	static bool		DoAutoConnect()			{ return s_autoconnect; }
 	static void		SetAutoConnect(bool inautoconnect)
-       					{s_autoconnect = inautoconnect; }
+						{s_autoconnect = inautoconnect; }
 	static bool		AddServersFromServer()		{ return s_addserversfromserver; }
 	static void		SetAddServersFromServer(bool val) { s_addserversfromserver = val; }
 	static bool		AddServersFromClient()		{ return s_addserversfromclient; }
 	static void		SetAddServersFromClient(bool val) { s_addserversfromclient = val; }
 	static uint16		GetTrafficOMeterInterval()	{ return s_trafficOMeterInterval; }
 	static void		SetTrafficOMeterInterval(uint16 in)
-       					{ s_trafficOMeterInterval = in; }
+						{ s_trafficOMeterInterval = in; }
 	static uint16		GetStatsInterval()		{ return s_statsInterval;}
 	static void		SetStatsInterval(uint16 in)	{ s_statsInterval = in; }
 	static bool		IsConfirmExitEnabled()		{ return s_confirmExit; }
@@ -258,7 +258,7 @@ public:
 	static uint32		GetMaxGraphDownloadRate()	{ return s_maxGraphDownloadRate; }
 	static void		SetMaxGraphUploadRate(uint32 in){ s_maxGraphUploadRate=in; }
 	static void		SetMaxGraphDownloadRate(uint32 in)
-       					{ s_maxGraphDownloadRate = in; }
+						{ s_maxGraphDownloadRate = in; }
 
 	static uint16		GetMaxDownload()		{ return s_maxdownload; }
 	static uint16		GetMaxConnections()		{ return s_maxconnections; }
@@ -291,12 +291,14 @@ public:
 					{ s_startMinimized = instartMinimized;}
 	static bool		GetSmartIdCheck()		{ return s_smartidcheck; }
 	static void		SetSmartIdCheck( bool in_smartidcheck )
-       					{ s_smartidcheck = in_smartidcheck; }
+						{ s_smartidcheck = in_smartidcheck; }
 	static uint8		GetSmartIdState()		{ return s_smartidstate; }
 	static void		SetSmartIdState( uint8 in_smartidstate )
-       					{ s_smartidstate = in_smartidstate; }
+						{ s_smartidstate = in_smartidstate; }
 	static bool		GetVerbose()			{ return s_bVerbose; }
 	static void		SetVerbose(bool val)		{ s_bVerbose = val; }
+	static bool		GetVerboseLogfile()			{ return s_bVerboseLogfile; }
+	static void		SetVerboseLogfile(bool val)		{ s_bVerboseLogfile = val; }
 	static bool		GetPreviewPrio()		{ return s_bpreviewprio; }
 	static void		SetPreviewPrio(bool in)		{ s_bpreviewprio = in; }
 	static bool		StartNextFile()			{ return s_bstartnextfile; }
@@ -306,19 +308,19 @@ public:
 	static void		SetStartNextFileSame(bool val)	{ s_bstartnextfilesame = val; }
 	static void		SetStartNextFileAlpha(bool val)	{ s_bstartnextfilealpha = val; }
 	static bool		ShowOverhead()			{ return s_bshowoverhead; }
-	static void		SetNewAutoUp(bool m_bInUAP) 	{ s_bUAP = m_bInUAP; }
-	static bool		GetNewAutoUp() 			{ return s_bUAP; }
-	static void		SetNewAutoDown(bool m_bInDAP) 	{ s_bDAP = m_bInDAP; }
-	static bool		GetNewAutoDown() 		{ return s_bDAP; }
+	static void		SetNewAutoUp(bool m_bInUAP)	{ s_bUAP = m_bInUAP; }
+	static bool		GetNewAutoUp()			{ return s_bUAP; }
+	static void		SetNewAutoDown(bool m_bInDAP)	{ s_bDAP = m_bInDAP; }
+	static bool		GetNewAutoDown()		{ return s_bDAP; }
 
 	static const wxString&	GetVideoPlayer()		{ return s_VideoPlayer; }
 
-	static uint32		GetFileBufferSize() 		{ return s_iFileBufferSize*15000; }
+	static uint32		GetFileBufferSize()		{ return s_iFileBufferSize*15000; }
 	static void		SetFileBufferSize(uint32 val)	{ s_iFileBufferSize = val/15000; }
-	static uint32		GetQueueSize() 			{ return s_iQueueSize*100; }
+	static uint32		GetQueueSize()			{ return s_iQueueSize*100; }
 	static void		SetQueueSize(uint32 val)	{ s_iQueueSize = val/100; }
 
-	static uint8		Get3DDepth() 			{ return s_depth3D;}
+	static uint8		Get3DDepth()			{ return s_depth3D;}
 	static bool		AddNewFilesPaused()		{ return s_addnewfilespaused; }
 	static void		SetAddNewFilesPaused(bool val)	{ s_addnewfilespaused = val; }
 
@@ -336,32 +338,32 @@ public:
 	static uint64	GetMinFreeDiskSpace()				{ return s_uMinFreeDiskSpace * 1048576ull; }
 	static void		SetMinFreeDiskSpaceMB(uint32 val)	{ s_uMinFreeDiskSpace = val; }
 
-	static const wxString&	GetYourHostname() 		{ return s_yourHostname; }
+	static const wxString&	GetYourHostname()		{ return s_yourHostname; }
 	static void		SetYourHostname(const wxString& s)	{ s_yourHostname = s; }
 
 	static void		SetMaxUpload(uint16 in);
 	static void		SetMaxDownload(uint16 in);
-	static void		SetSlotAllocation(uint16 in) 	{ s_slotallocation = (in >= 1) ? in : 1; };
+	static void		SetSlotAllocation(uint16 in)	{ s_slotallocation = (in >= 1) ? in : 1; };
 
 	typedef std::vector<CPath> PathList;
 	PathList shareddir_list;
 
 	wxArrayString adresses_list;
 
-	static bool	 	AutoConnectStaticOnly() 	{ return s_autoconnectstaticonly; }
+	static bool		AutoConnectStaticOnly()		{ return s_autoconnectstaticonly; }
 	static void		SetAutoConnectStaticOnly(bool val) { s_autoconnectstaticonly = val; }
 	static bool		GetUPnPEnabled()		{ return s_UPnPEnabled; }
 	static void		SetUPnPEnabled(bool val)	{ s_UPnPEnabled = val; }
 	static bool		GetUPnPECEnabled()		{ return s_UPnPECEnabled; }
 	static void		SetUPnPECEnabled(bool val)	{ s_UPnPECEnabled = val; }
-	static bool		GetUPnPWebServerEnabled() 	{ return s_UPnPWebServerEnabled; }
+	static bool		GetUPnPWebServerEnabled()	{ return s_UPnPWebServerEnabled; }
 	static void		SetUPnPWebServerEnabled(bool val){ s_UPnPWebServerEnabled = val; }
 	static uint16		GetUPnPTCPPort()		{ return s_UPnPTCPPort; }
 	static void		SetUPnPTCPPort(uint16 val)	{ s_UPnPTCPPort = val; }
-	static bool		IsManualHighPrio() 		{ return s_bmanualhighprio; }
+	static bool		IsManualHighPrio()		{ return s_bmanualhighprio; }
 	static void		SetManualHighPrio(bool val)	{ s_bmanualhighprio = val; }
 	void			LoadCats();
-	static const wxString&	GetDateTimeFormat() 		{ return s_datetimeformat; }
+	static const wxString&	GetDateTimeFormat()		{ return s_datetimeformat; }
 	// Download Categories
 	uint32			AddCat(Category_Struct* cat);
 	void			RemoveCat(size_t index);
@@ -374,65 +376,65 @@ public:
 	bool			UpdateCategory(uint8 cat, const wxString& name, const CPath& path,
 						const wxString& comment, uint32 color, uint8 prio);
 
-	static AllCategoryFilter	GetAllcatFilter() 		{ return s_allcatFilter; }
+	static AllCategoryFilter	GetAllcatFilter()		{ return s_allcatFilter; }
 	static void		SetAllcatFilter(AllCategoryFilter in)	{ s_allcatFilter = in; }
 
-	static bool		ShowAllNotCats() 		{ return s_showAllNotCats; }
+	static bool		ShowAllNotCats()		{ return s_showAllNotCats; }
 
 	// WebServer
-	static uint16 		GetWSPort() 			{ return s_nWebPort; }
-	static void		SetWSPort(uint16 uPort) 	{ s_nWebPort=uPort; }
+	static uint16		GetWSPort()			{ return s_nWebPort; }
+	static void		SetWSPort(uint16 uPort)		{ s_nWebPort=uPort; }
 	static uint16		GetWebUPnPTCPPort()		{ return s_nWebUPnPTCPPort; }
 	static void		SetWebUPnPTCPPort(uint16 val)	{ s_nWebUPnPTCPPort = val; }
-	static const wxString&	GetWSPass() 			{ return s_sWebPassword; }
+	static const wxString&	GetWSPass()			{ return s_sWebPassword; }
 	static void		SetWSPass(const wxString& pass)	{ s_sWebPassword = pass; }
-	static const wxString&	GetWSPath() 			{ return s_sWebPath; }
+	static const wxString&	GetWSPath()			{ return s_sWebPath; }
 	static void		SetWSPath(const wxString& path)	{ s_sWebPath = path; }
-	static bool		GetWSIsEnabled() 		{ return s_bWebEnabled; }
-	static void		SetWSIsEnabled(bool bEnable) 	{ s_bWebEnabled=bEnable; }
-	static bool		GetWebUseGzip() 		{ return s_bWebUseGzip; }
-	static void		SetWebUseGzip(bool bUse) 	{ s_bWebUseGzip=bUse; }
-	static uint32 		GetWebPageRefresh() 		{ return s_nWebPageRefresh; }
+	static bool		GetWSIsEnabled()		{ return s_bWebEnabled; }
+	static void		SetWSIsEnabled(bool bEnable)	{ s_bWebEnabled=bEnable; }
+	static bool		GetWebUseGzip()			{ return s_bWebUseGzip; }
+	static void		SetWebUseGzip(bool bUse)	{ s_bWebUseGzip=bUse; }
+	static uint32		GetWebPageRefresh()		{ return s_nWebPageRefresh; }
 	static void		SetWebPageRefresh(uint32 nRefresh) { s_nWebPageRefresh=nRefresh; }
-	static bool		GetWSIsLowUserEnabled() 	{ return s_bWebLowEnabled; }
-	static void		SetWSIsLowUserEnabled(bool in) 	{ s_bWebLowEnabled=in; }
-	static const wxString&	GetWSLowPass() 			{ return s_sWebLowPassword; }
+	static bool		GetWSIsLowUserEnabled()		{ return s_bWebLowEnabled; }
+	static void		SetWSIsLowUserEnabled(bool in)	{ s_bWebLowEnabled=in; }
+	static const wxString&	GetWSLowPass()			{ return s_sWebLowPassword; }
 	static void		SetWSLowPass(const wxString& pass)	{ s_sWebLowPassword = pass; }
 	static const wxString&	GetWebTemplate()		{ return s_WebTemplate; }
 	static void		SetWebTemplate(const wxString& val) { s_WebTemplate = val; }
 
 	static void		SetMaxSourcesPerFile(uint16 in) { s_maxsourceperfile=in;}
-	static void		SetMaxConnections(uint16 in) 	{ s_maxconnections =in;}
+	static void		SetMaxConnections(uint16 in)	{ s_maxconnections =in;}
 
-	static bool		ShowCatTabInfos() 		{ return s_showCatTabInfos; }
-	static void		ShowCatTabInfos(bool in) 	{ s_showCatTabInfos=in; }
+	static bool		ShowCatTabInfos()		{ return s_showCatTabInfos; }
+	static void		ShowCatTabInfos(bool in)	{ s_showCatTabInfos=in; }
 
 	// Sources Dropping Tweaks
-	static bool		DropNoNeededSources() 		{ return s_NoNeededSources > 0; }
-	static bool		SwapNoNeededSources() 		{ return s_NoNeededSources == 2; }
+	static bool		DropNoNeededSources()		{ return s_NoNeededSources > 0; }
+	static bool		SwapNoNeededSources()		{ return s_NoNeededSources == 2; }
 	static uint8		GetNoNeededSources()		{ return s_NoNeededSources; }
 	static void		SetNoNeededSources(uint8 val)	{ s_NoNeededSources = val; }
-	static bool		DropFullQueueSources() 		{ return s_DropFullQueueSources; }
+	static bool		DropFullQueueSources()		{ return s_DropFullQueueSources; }
 	static void		SetDropFullQueueSources(bool val) { s_DropFullQueueSources = val; }
-	static bool		DropHighQueueRankingSources() 	{ return s_DropHighQueueRankingSources; }
+	static bool		DropHighQueueRankingSources()	{ return s_DropHighQueueRankingSources; }
 	static void		SetDropHighQueueRankingSources(bool val) { s_DropHighQueueRankingSources = val; }
-	static uint32		HighQueueRanking() 		{ return s_HighQueueRanking; }
+	static uint32		HighQueueRanking()		{ return s_HighQueueRanking; }
 	static void		SetHighQueueRanking(uint32 val)	{ s_HighQueueRanking = val; }
-	static uint32		GetAutoDropTimer() 		{ return s_AutoDropTimer; }
+	static uint32		GetAutoDropTimer()		{ return s_AutoDropTimer; }
 	static void		SetAutoDropTimer(uint32 val)	{ s_AutoDropTimer = val; }
 
 	// External Connections
-	static bool 		AcceptExternalConnections()	{ return s_AcceptExternalConnections; }
+	static bool		AcceptExternalConnections()	{ return s_AcceptExternalConnections; }
 	static void			EnableExternalConnections( bool val ) { s_AcceptExternalConnections = val; }
 	static const wxString&	GetECAddress()			{ return s_ECAddr; }
-	static uint32 		ECPort()			{ return s_ECPort; }
+	static uint32		ECPort()			{ return s_ECPort; }
 	static void			SetECPort(uint32 val) { s_ECPort = val; }
 	static const wxString&	ECPassword()			{ return s_ECPassword; }
 	static void		SetECPass(const wxString& pass)	{ s_ECPassword = pass; }
 	static bool		IsTransmitOnlyUploadingClients() { return s_TransmitOnlyUploadingClients; }
 
 	// Fast ED2K Links Handler Toggling
-	static bool 		GetFED2KLH()			{ return s_FastED2KLinksHandler; }
+	static bool		GetFED2KLH()			{ return s_FastED2KLinksHandler; }
 
 	// Ip filter
 	static bool		IsFilteringClients()		{ return s_IPFilterClients; }
@@ -449,7 +451,7 @@ public:
 	static void		SetIPFilterSystem(bool val)	{ s_IPFilterSys = val; }
 
 	// Source seeds On/Off
-	static bool		GetSrcSeedsOn() 			{ return s_UseSrcSeeds; }
+	static bool		GetSrcSeedsOn()			{ return s_UseSrcSeeds; }
 	static void		SetSrcSeedsOn(bool val)		{ s_UseSrcSeeds = val; }
 
 	static bool		IsSecureIdentEnabled()			{ return s_SecIdent; }
@@ -464,7 +466,7 @@ public:
 	static bool		GetAllocFullFile()		{ return s_allocFullFile; };
 	static void		SetAllocFullFile(bool val)	{ s_allocFullFile = val; }
 
-	static wxString 	GetBrowser();
+	static wxString		GetBrowser();
 
 	static const wxString&	GetSkin()			{ return s_Skin; }
 
@@ -498,9 +500,9 @@ public:
 	static void		SetMustFilterMessages(bool val)	{ s_MustFilterMessages = val; }
 	static bool		IsFilterAllMessages()		{ return s_FilterAllMessages; }
 	static void		SetFilterAllMessages(bool val)	{ s_FilterAllMessages = val; }
-	static bool		MsgOnlyFriends() 		{ return s_msgonlyfriends;}
+	static bool		MsgOnlyFriends()		{ return s_msgonlyfriends;}
 	static void		SetMsgOnlyFriends(bool val)	{ s_msgonlyfriends = val; }
-	static bool		MsgOnlySecure() 		{ return s_msgsecure;}
+	static bool		MsgOnlySecure()			{ return s_msgsecure;}
 	static void		SetMsgOnlySecure(bool val)	{ s_msgsecure = val; }
 	static bool		IsFilterByKeywords()		{ return s_FilterSomeMessages; }
 	static void		SetFilterByKeywords(bool val)	{ s_FilterSomeMessages = val; }
@@ -681,9 +683,10 @@ protected:
 	static bool	s_startMinimized;
 	static uint16	s_MaxConperFive;
 	static bool	s_checkDiskspace;
-	static uint32 	s_uMinFreeDiskSpace;
+	static uint32	s_uMinFreeDiskSpace;
 	static wxString	s_yourHostname;
 	static bool	s_bVerbose;
+	static bool s_bVerboseLogfile;
 	static bool	s_bmanualhighprio;
 	static bool	s_bstartnextfile;
 	static bool	s_bstartnextfilesame;
@@ -733,7 +736,7 @@ protected:
 	static uint32	s_AutoDropTimer;
 
 	// Kry - external connections
-	static bool 	s_AcceptExternalConnections;
+	static bool	s_AcceptExternalConnections;
 	static wxString s_ECAddr;
 	static uint32	s_ECPort;
 	static wxString	s_ECPassword;
@@ -770,16 +773,16 @@ protected:
 	static bool	s_FastED2KLinksHandler;	// Madcat - Toggle Fast ED2K Links Handler
 
 	// Message Filtering
-	static bool 		s_MustFilterMessages;
-	static wxString 	s_MessageFilterString;
-	static bool		s_FilterAllMessages;
-	static bool		s_FilterSomeMessages;
-	static bool		s_ShowMessagesInLog;
-	static bool		s_IsAdvancedSpamfilterEnabled;
-	static bool		s_IsChatCaptchaEnabled;
-
-	static bool 		s_FilterComments;
-	static wxString 	s_CommentFilterString;
+	static bool	s_MustFilterMessages;
+	static wxString	s_MessageFilterString;
+	static bool	s_FilterAllMessages;
+	static bool	s_FilterSomeMessages;
+	static bool	s_ShowMessagesInLog;
+	static bool	s_IsAdvancedSpamfilterEnabled;
+	static bool	s_IsChatCaptchaEnabled;
+
+	static bool	s_FilterComments;
+	static wxString	s_CommentFilterString;
 
 
 	// Hidden files sharing
diff --git a/src/PrefsUnifiedDlg.cpp b/src/PrefsUnifiedDlg.cpp
index edd7a8c..581ca66 100644
--- a/src/PrefsUnifiedDlg.cpp
+++ b/src/PrefsUnifiedDlg.cpp
@@ -27,6 +27,7 @@
 #include "PrefsUnifiedDlg.h"
 
 #include <common/Constants.h>
+#include <common/Macros.h>		// Needed for itemsof()
 
 #include <wx/colordlg.h>
 #include <wx/tooltip.h>
@@ -38,7 +39,6 @@
 #include "SharedFileList.h"		// Needed for CSharedFileList
 #include "StatisticsDlg.h"		// Needed for graph parameters, colors
 #include "IPFilter.h"			// Needed for CIPFilter
-#include "SearchList.h"
 #include "ClientList.h"
 #include "DirectoryTreeCtrl.h"	// Needed for CDirectoryTreeCtrl
 #include "Preferences.h"
@@ -51,7 +51,7 @@
 #include "ServerList.h"
 #include "Statistics.h"
 #include "UserEvents.h"
-#include "PlatformSpecific.h"
+#include "PlatformSpecific.h"		// Needed for PLATFORMSPECIFIC_CAN_PREVENT_SLEEP_MODE
 
 BEGIN_EVENT_TABLE(PrefsUnifiedDlg,wxDialog)
 	// Events
@@ -167,7 +167,7 @@ struct PrefsPage
 	//! Function pointer to the wxDesigner function creating the dialog.
 	wxSizer*	(*m_function)(wxWindow*, bool, bool );
 	//! The index of the image used on the list.
-	int 		m_imageidx;
+	int		m_imageidx;
 };
 
 
@@ -243,15 +243,16 @@ wxDialog(parent, -1, _("Preferences"),
 
 		if (pages[i].m_function == PreferencesGeneralTab) {
 			// This must be done now or pages won't Fit();
-			#ifdef __WXMSW__
+			#ifdef __WINDOWS__ 
 				CastChild(IDC_BROWSERTABS, wxCheckBox)->Enable(false);
-			#endif /* __WXMSW__ */
+			#endif /* __WINDOWS__  */
 			CastChild(IDC_PREVIEW_NOTE, wxStaticText)->SetLabel(_("The following variables will be substituted:\n    %PARTFILE - full path to the file\n    %PARTNAME - file name only"));
 			#ifdef __WXMAC__
 				FindWindow(IDC_ENABLETRAYICON)->Show(false);
 				FindWindow(IDC_MINTRAY)->Show(false);
 			#else
 				FindWindow(IDC_MACHIDEONCLOSE)->Show(false);
+				thePrefs::SetHideOnClose(false);
 			#endif
 		} else if (pages[i].m_function == PreferencesEventsTab) {
 
@@ -438,7 +439,7 @@ bool PrefsUnifiedDlg::TransferToWindow()
 
 	FindWindow(IDC_MACHIDEONCLOSE)->Enable(true);
 	FindWindow(IDC_EXIT)->Enable(!thePrefs::HideOnClose());
-	if (!thePrefs::HideOnClose()) {
+	if (thePrefs::HideOnClose()) {
 		CastChild(IDC_EXIT, wxCheckBox)->SetValue(false);
 	}
 
@@ -613,6 +614,10 @@ void PrefsUnifiedDlg::OnOk(wxCommandEvent& WXUNUSED(event))
 		restart_needed = true;
 		restart_needed_msg += _("- External connect interface changed.\n");
 	}
+	if (CfgChanged(IDC_SUPPORT_PO)) {
+		restart_needed = true;
+		restart_needed_msg += _("- Protocol obfuscation support changed.\n");
+	}
 
 	// Force port checking
 	thePrefs::SetPort(thePrefs::GetPort());
@@ -738,7 +743,7 @@ void PrefsUnifiedDlg::OnOk(wxCommandEvent& WXUNUSED(event))
 	}
 
 	if (restart_needed) {
-		wxMessageBox(restart_needed_msg + _("\nYou MUST restart aMule now.\nIf you do not restart now, don't complain if anything bad happens.\n"), 
+		wxMessageBox(restart_needed_msg + _("\nYou MUST restart aMule now.\nIf you do not restart now, don't complain if anything bad happens.\n"),
 			_("WARNING"), wxOK | wxICON_EXCLAMATION, this);
 	}
 
@@ -786,7 +791,7 @@ void PrefsUnifiedDlg::OnCheckBoxChange(wxCommandEvent& event)
 	// Check if this checkbox is one of the User Events checkboxes
 	if (id >= USEREVENTS_FIRST_ID &&
 	    id < USEREVENTS_FIRST_ID +
-	    	(int)CUserEvents::GetCount() * USEREVENTS_IDS_PER_EVENT) {
+		(int)CUserEvents::GetCount() * USEREVENTS_IDS_PER_EVENT) {
 		// The corresponding text control always has
 		// an ID one greater than the checkbox
 		FindWindow(id + 1)->Enable(value);
@@ -1031,7 +1036,7 @@ void PrefsUnifiedDlg::OnButtonBrowseApplication(wxCommandEvent& event)
 			return;
 	}
 	wxString wildcard = CFormat(_("Executable%s"))
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 		% wxT(" (*.exe)|*.exe");
 #else
 		% wxT("|*");
@@ -1077,7 +1082,7 @@ void PrefsUnifiedDlg::OnPrefsPageChange(wxListEvent& event)
 	prefs_sizer->Detach( m_CurrentPanel );
 	m_CurrentPanel->Show( false );
 
-	m_CurrentPanel = (wxPanel *) m_PrefsIcons->GetItemData(event.GetIndex());
+	m_CurrentPanel = reinterpret_cast<wxPanel*>(m_PrefsIcons->GetItemData(event.GetIndex()));
 	if (pages[event.GetIndex()].m_function == PreferencesDirectoriesTab) {
 		CastChild(IDC_SHARESELECTOR, CDirectoryTreeCtrl)->Init();
 	}
diff --git a/src/PrefsUnifiedDlg.h b/src/PrefsUnifiedDlg.h
index 32ce7fc..d951d41 100644
--- a/src/PrefsUnifiedDlg.h
+++ b/src/PrefsUnifiedDlg.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -57,12 +57,12 @@ public:
 	 * @param parent The parent window.
 	 *
 	 * This constructor is a much more simple version of the wxDialog one,
-	 * which only needs to know the parent of the dialog. Please note that 
-	 * it is private so that we can ensure that only one dialog has been 
+	 * which only needs to know the parent of the dialog. Please note that
+	 * it is private so that we can ensure that only one dialog has been
 	 * created at one time.
 	 */
 	PrefsUnifiedDlg(wxWindow* parent);
-	
+
 	/**
 	 * Updates the widgets with the values of the preference-variables.
 	 */
@@ -86,7 +86,7 @@ protected:
 
 
 	//! Pointer to the shared-files list
-	CDirectoryTreeCtrl* 	m_ShareSelector;
+	CDirectoryTreeCtrl*	m_ShareSelector;
 
 	//! Pointer to the color-selector
 	wxChoice*		m_choiceColor;
diff --git a/src/Proxy.cpp b/src/Proxy.cpp
index 86de31a..3c02579 100644
--- a/src/Proxy.cpp
+++ b/src/Proxy.cpp
@@ -17,13 +17,12 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //
 
-
 #include "Proxy.h"		/* for Interface		*/
 
 #include <common/EventIDs.h>
@@ -32,6 +31,7 @@
 #include "Logger.h"		/* for AddDebugLogLineN		*/
 #include "OtherFunctions.h"	/* for EncodeBase64()		*/
 #include <common/StringFunctions.h>	/* for unicode2char */
+#include "GuiEvents.h"
 
 //------------------------------------------------------------------------------
 // CProxyData
@@ -55,8 +55,8 @@ m_proxyEnable(proxyEnable),
 m_proxyType(proxyType),
 m_proxyHostName(proxyHostName),
 m_proxyPort(proxyPort),
-/* 
- * The flag m_enablePassword is currently not used. The first 
+/*
+ * The flag m_enablePassword is currently not used. The first
  * authentication method tryed is No-Authentication, the second
  * is username/password. If there is no username/password in
  * CProxyData, a NULL username/password is sent. That will probably
@@ -106,10 +106,19 @@ void CProxyEventHandler::ProxySocketHandler(wxSocketEvent& event)
 	CProxySocket *sock = dynamic_cast<CProxySocket *>(event.GetSocket());
 	if (sock) {
 		sock->m_proxyStateMachine->Schedule(event.GetSocketEvent());
+		sock->m_proxyStateMachine->Clock();
 	} else {
 		// we're doomed :)
 	}
-	sock->m_proxyStateMachine->Clock();
+}
+
+//
+// In Asio mode the event handler is:
+//
+void CProxySocket::OnProxyEvent(int evt)
+{
+	m_proxyStateMachine->Schedule(evt);
+	m_proxyStateMachine->Clock();
 }
 
 //------------------------------------------------------------------------------
@@ -131,7 +140,6 @@ m_canReceive(false),
 m_canSend(false),
 m_ok(true),
 m_lastRead(0),
-m_lastWritten(0),
 // Will be initialized at Start()
 m_peerAddress(NULL),
 m_proxyClientSocket(NULL),
@@ -153,39 +161,42 @@ wxString &CProxyStateMachine::NewName(wxString &s, CProxyCommand proxyCommand)
 	case PROXY_CMD_CONNECT:
 		s += wxT("-CONNECT");
 		break;
-		
+
 	case PROXY_CMD_BIND:
 		s += wxT("-BIND");
 		break;
-		
+
 	case PROXY_CMD_UDP_ASSOCIATE:
 		s += wxT("-UDP");
 		break;
 	}
-	
+
 	return s;
 }
 
-bool CProxyStateMachine::Start(const wxIPaddress &peerAddress, wxSocketClient *proxyClientSocket)
+bool CProxyStateMachine::Start(const amuleIPV4Address &peerAddress, CLibSocket *proxyClientSocket)
 {
 	m_proxyClientSocket = proxyClientSocket;
-	try {
-		const wxIPV4address &peer = dynamic_cast<const wxIPV4address &>(peerAddress);
-		m_peerAddress = new amuleIPV4Address(peer);
-	} catch (const std::bad_cast& WXUNUSED(e)) {
-		// Should process other types of wxIPAddres before quitting
-		AddDebugLogLineN(logProxy, wxT("(1)bad_cast exception!"));
-		wxFAIL;
-		return false;
-	}
-	
+	m_peerAddress = new amuleIPV4Address(peerAddress);
+	//try {
+	//	const wxIPV4address &peer = dynamic_cast<const wxIPV4address &>(peerAddress);
+	//	m_peerAddress = new amuleIPV4Address(peer);
+	//} catch (const std::bad_cast& WXUNUSED(e)) {
+	//	// Should process other types of wxIPAddres before quitting
+	//	AddDebugLogLineN(logProxy, wxT("(1)bad_cast exception!"));
+	//	wxFAIL;
+	//	return false;
+	//}
+
 	// To run the state machine, return and just let the events start to happen.
 	return true;
 }
 
+static const int wxSOCKET_DUMMY_VALUE = wxSOCKET_INPUT + wxSOCKET_OUTPUT + wxSOCKET_CONNECTION + wxSOCKET_LOST;
+
 t_sm_state CProxyStateMachine::HandleEvent(t_sm_event event)
 {
-	// Default is stay in current state	
+	// Default is stay in current state
 	t_sm_state ret = GetState();
 	switch(event)
 	{
@@ -193,28 +204,32 @@ t_sm_state CProxyStateMachine::HandleEvent(t_sm_event event)
 		AddDebugLogLineN(logProxy, wxT("Connection event"));
 		m_isConnected = true;
 		break;
-		
+
 	case wxSOCKET_INPUT:
 		AddDebugLogLineN(logProxy, wxT("Input event"));
 		m_canReceive = true;
 		break;
-		
+
 	case wxSOCKET_OUTPUT:
 		AddDebugLogLineN(logProxy, wxT("Output event"));
 		m_canSend = true;
 		break;
-		
+
 	case wxSOCKET_LOST:
 		AddDebugLogLineN(logProxy, wxT("Lost connection event"));
 		m_isLost = true;
 		m_ok = false;
 		break;
-		
+
+	case wxSOCKET_DUMMY_VALUE:
+		AddDebugLogLineN(logProxy, wxT("Dummy event"));
+		break;
+
 	default:
-		AddDebugLogLineN(logProxy, wxT("Unknown event"));
+		AddDebugLogLineN(logProxy, CFormat(wxT("Unknown event %d")) % event);
 		break;
 	}
-	
+
 	// Aborting conditions:
 	// - wxSOCKET_LOST event
 	// - More than 10 times on the same state
@@ -222,35 +237,40 @@ t_sm_state CProxyStateMachine::HandleEvent(t_sm_event event)
 		GetClocksInCurrentState() > 10) {
 		ret = PROXY_STATE_END;
 	}
-	
+
 	return ret;
 }
 
 void CProxyStateMachine::AddDummyEvent()
 {
+#ifdef ASIO_SOCKETS
+	CProxySocket *s = dynamic_cast<CProxySocket *>(m_proxyClientSocket);
+	if (s) {	// should always be
+		CoreNotify_ProxySocketEvent(s, wxSOCKET_DUMMY_VALUE);
+	}
+#else
 	wxSocketEvent e(ID_PROXY_SOCKET_EVENT);
 	// Make sure this is an unknown event :)
-	e.m_event = (wxSocketNotify)(
-		wxSOCKET_INPUT + wxSOCKET_OUTPUT +
-		wxSOCKET_CONNECTION + wxSOCKET_LOST);
+	e.m_event = (wxSocketNotify)(wxSOCKET_DUMMY_VALUE);
 	e.SetEventObject(m_proxyClientSocket);
 	g_proxyEventHandler.AddPendingEvent(e);
+#endif
 }
 
 /*
- * Notice! These includes are here as long as it is impossible to retrieve 
+ * Notice! These includes are here as long as it is impossible to retrieve
  * the event handler from the socket. They should be removed. For now,
  * please leave it here.
  */
 
 void CProxyStateMachine::ReactivateSocket()
 {
-	/*    If proxy is beeing used, then the TCP socket handlers 
+	/*    If proxy is beeing used, then the TCP socket handlers
 	 * (CServerSocketHandler and CClientTCPSocketHandler) will not
 	 * receive a wxSOCKET_CONNECTION event, because the connection has
 	 * already started with the proxy. So we must add a wxSOCKET_CONNECTION
 	 * event to make things go undetected. A wxSOCKET_OUTPUT event is also
-	 * necessary to start sending data to the server. */ 
+	 * necessary to start sending data to the server. */
 	CProxySocket *s = dynamic_cast<CProxySocket *>(m_proxyClientSocket);
 	// If that is not true, we are in serious trouble...
 	wxASSERT(s);
@@ -265,6 +285,17 @@ void CProxyStateMachine::ReactivateSocket()
 		// be used after proxy negotiation.
 	} else {
 		// The original socket was a TCP socket
+#ifdef ASIO_SOCKETS
+		if (s->GetProxyState()) {	// somehow this gets called twice ?
+			s->SetProxyState(false);
+			CoreNotify_LibSocketConnect(s, 0);
+			if (m_ok) {
+				CoreNotify_LibSocketSend(s, 0);
+			} else {
+				CoreNotify_LibSocketLost(s);
+			}
+		}
+#else
 		s->RestoreEventHandler();
 		wxSocketEvent e(s->GetEventHandlerId());
 		e.m_event = wxSOCKET_CONNECTION;
@@ -278,63 +309,57 @@ void CProxyStateMachine::ReactivateSocket()
 			h->AddPendingEvent(e);
 		}
 		s->RestoreState();
+#endif
 	}
 }
 
-wxSocketBase &CProxyStateMachine::ProxyWrite(wxSocketBase &socket, const void *buffer, wxUint32 nbytes)
+uint32 CProxyStateMachine::ProxyWrite(CLibSocket &socket, const void *buffer, wxUint32 nbytes)
 {
-	wxSocketBase &ret = socket.Write(buffer, nbytes);
-	m_lastWritten = m_proxyClientSocket->LastCount();
+	uint32 written = socket.Write(buffer, nbytes);
 	/* Set the status of this operation */
-	m_lastError = wxSOCKET_NOERROR;
-	m_ok = !m_proxyClientSocket->Error();
-	if (!m_ok) {
-		m_lastError = m_proxyClientSocket->LastError();
-		m_ok = m_lastError == wxSOCKET_WOULDBLOCK;
-		if (m_ok) {
-			m_canSend = false;
-		}
+	m_ok = true;
+	if (m_proxyClientSocket->BlocksWrite()) {
+		m_lastError = 0;
+		m_canSend = false;
+	} else if ((m_lastError = m_proxyClientSocket->LastError()) != 0) {
+		m_ok = false;
 	}
-	
-	return ret;
+	AddDebugLogLineN(logProxy, CFormat(wxT("ProxyWrite %d %d ok %d cansend %d")) % nbytes % written % m_ok % m_canSend);
+
+	return written;
 }
 
-wxSocketBase &CProxyStateMachine::ProxyRead(wxSocketBase &socket, void *buffer)
+uint32 CProxyStateMachine::ProxyRead(CLibSocket &socket, void *buffer)
 {
 	/* Always try to read the full buffer. That explicitly demands that
 	 * the socket has the flag wxSOCKET_NONE. */
-	wxSocketBase &ret = socket.Read(buffer, PROXY_BUFFER_SIZE);
-	m_lastRead = m_proxyClientSocket->LastCount();
+	m_lastRead = socket.Read(buffer, PROXY_BUFFER_SIZE);
 	/* Set the status of this operation */
-	m_lastError = wxSOCKET_NOERROR;
-	m_ok = !m_proxyClientSocket->Error();
-	if (!m_ok) {
-		m_lastError = m_proxyClientSocket->LastError();
-		m_ok = m_lastError == wxSOCKET_WOULDBLOCK;
-		if (m_ok) {
-			m_canReceive = false;
-		}
+	m_ok = true;
+	if (m_proxyClientSocket->BlocksRead()) {
+		m_lastError = 0;
+		m_canReceive = false;
+	} else if ((m_lastError = m_proxyClientSocket->LastError()) != 0) {
+		m_ok = false;
 	}
-	
-	return ret;
+#ifdef ASIO_SOCKETS
+	// We will get a new event right away if data is left, or when new data gets available.
+	// So block for now.
+	m_canReceive = false;
+#endif
+	AddDebugLogLineN(logProxy, CFormat(wxT("ProxyRead %d ok %d canrec %d")) % m_lastRead % m_ok % m_canReceive);
+
+	return m_lastRead;
 }
 
-bool CProxyStateMachine::CanReceive() const	
+bool CProxyStateMachine::CanReceive() const
 {
-#ifdef AMULE_DAEMON
-	return true;
-#else
-	return m_canReceive; 
-#endif
+	return m_canReceive;
 }
 
-bool CProxyStateMachine::CanSend() const	
+bool CProxyStateMachine::CanSend() const
 {
-#ifdef AMULE_DAEMON
-	return true;
-#else
-	return m_canSend; 
-#endif
+	return m_canSend;
 }
 
 //------------------------------------------------------------------------------
@@ -391,7 +416,7 @@ void CSocks5StateMachine::process_state(t_sm_state state, bool entry)
 	(this->*m_process_state[state])(entry);
 #ifdef __DEBUG__
 	int n = 0;
-	
+
 	switch (state) {
 	case SOCKS5_STATE_START:
 	case SOCKS5_STATE_END:
@@ -402,14 +427,14 @@ void CSocks5StateMachine::process_state(t_sm_state state, bool entry)
 	default:
 		n = 0;
 		break;
-		
+
 	case SOCKS5_STATE_SEND_QUERY_AUTHENTICATION_METHOD:
 	case SOCKS5_STATE_SEND_AUTHENTICATION_GSSAPI:
 	case SOCKS5_STATE_SEND_AUTHENTICATION_USERNAME_PASSWORD:
 	case SOCKS5_STATE_SEND_COMMAND_REQUEST:
 		n = m_packetLenght;
 		break;
-	
+
 	case SOCKS5_STATE_PROCESS_AUTHENTICATION_METHOD:
 	case SOCKS5_STATE_PROCESS_AUTHENTICATION_GSSAPI:
 	case SOCKS5_STATE_PROCESS_AUTHENTICATION_USERNAME_PASSWORD:
@@ -417,7 +442,7 @@ void CSocks5StateMachine::process_state(t_sm_state state, bool entry)
 		n = m_lastRead;
 		break;
 	}
-	
+
 	if (entry) {
 		DumpMem(m_buffer, n, m_state_name[state], m_ok);
 	} else {
@@ -444,17 +469,17 @@ t_sm_state CSocks5StateMachine::next_state(t_sm_event event)
 			ret = SOCKS5_STATE_SEND_QUERY_AUTHENTICATION_METHOD;
 		}
 		break;
-		
+
 	case SOCKS5_STATE_SEND_QUERY_AUTHENTICATION_METHOD:
 		if (CanReceive()) {
 			ret = SOCKS5_STATE_RECEIVE_AUTHENTICATION_METHOD;
 		}
 		break;
-		
+
 	case SOCKS5_STATE_RECEIVE_AUTHENTICATION_METHOD:
 		ret = SOCKS5_STATE_PROCESS_AUTHENTICATION_METHOD;
 		break;
-		
+
 	case SOCKS5_STATE_PROCESS_AUTHENTICATION_METHOD:
 		if (m_ok) {
 			if (CanSend()) {
@@ -462,15 +487,15 @@ t_sm_state CSocks5StateMachine::next_state(t_sm_event event)
 				case SOCKS5_AUTH_METHOD_NO_AUTH_REQUIRED:
 					ret = SOCKS5_STATE_SEND_COMMAND_REQUEST;
 					break;
-					
+
 				case SOCKS5_AUTH_METHOD_GSSAPI:
 					ret = SOCKS5_STATE_SEND_AUTHENTICATION_GSSAPI;
 					break;
-					
+
 				case SOCKS5_AUTH_METHOD_USERNAME_PASSWORD:
 					ret = SOCKS5_STATE_SEND_AUTHENTICATION_USERNAME_PASSWORD;
 					break;
-				
+
 				case SOCKS5_AUTH_METHOD_NO_ACCEPTABLE_METHODS:
 				default:
 					ret = SOCKS5_STATE_END;
@@ -483,7 +508,7 @@ t_sm_state CSocks5StateMachine::next_state(t_sm_event event)
 			ret = SOCKS5_STATE_END;
 		}
 		break;
-		
+
 	case SOCKS5_STATE_SEND_AUTHENTICATION_GSSAPI:
 		if (m_ok) {
 			if (CanReceive()) {
@@ -493,7 +518,7 @@ t_sm_state CSocks5StateMachine::next_state(t_sm_event event)
 			ret = SOCKS5_STATE_END;
 		}
 		break;
-		
+
 	case SOCKS5_STATE_SEND_AUTHENTICATION_USERNAME_PASSWORD:
 		if (m_ok) {
 			if (CanReceive()) {
@@ -503,15 +528,15 @@ t_sm_state CSocks5StateMachine::next_state(t_sm_event event)
 			ret = SOCKS5_STATE_END;
 		}
 		break;
-		
+
 	case SOCKS5_STATE_RECEIVE_AUTHENTICATION_GSSAPI:
 		ret = SOCKS5_STATE_PROCESS_AUTHENTICATION_GSSAPI;
 		break;
-		
+
 	case SOCKS5_STATE_RECEIVE_AUTHENTICATION_USERNAME_PASSWORD:
 		ret = SOCKS5_STATE_PROCESS_AUTHENTICATION_USERNAME_PASSWORD;
 		break;
-		
+
 	case SOCKS5_STATE_PROCESS_AUTHENTICATION_GSSAPI:
 	case SOCKS5_STATE_PROCESS_AUTHENTICATION_USERNAME_PASSWORD:
 		if (m_ok) {
@@ -522,7 +547,7 @@ t_sm_state CSocks5StateMachine::next_state(t_sm_event event)
 			ret = SOCKS5_STATE_END;
 		}
 		break;
-		
+
 	case SOCKS5_STATE_SEND_COMMAND_REQUEST:
 		if (m_ok) {
 			if (CanReceive()) {
@@ -532,44 +557,40 @@ t_sm_state CSocks5StateMachine::next_state(t_sm_event event)
 			ret = SOCKS5_STATE_END;
 		}
 		break;
-		
+
 	case SOCKS5_STATE_RECEIVE_COMMAND_REPLY:
 		ret = SOCKS5_STATE_PROCESS_COMMAND_REPLY;
 		break;
-		
+
 	case SOCKS5_STATE_PROCESS_COMMAND_REPLY:
 		ret = SOCKS5_STATE_END;
 		break;
-		
+
 	case SOCKS5_STATE_END:
 	default:
 		break;
 	}
-	
+
 	return ret;
 }
 
 /**
- * 	So, this is how you do it: the state machine is clocked by the events
+ *	So, this is how you do it: the state machine is clocked by the events
  * that happen inside the event handler. You can add a dummy event whenever
  * you see that the system will not generate an event. But don't add dummy
  * events before reads, reads should only be performed after input events.
  *
- * 	Maybe it makes sense to add a dummy event before a read if there is no
+ *	Maybe it makes sense to add a dummy event before a read if there is no
  * state change (wait state).
  *
- * 	The event system will generate at least 2 events, one wxSOCKET_CONNECTION,
+ *	The event system will generate at least 2 events, one wxSOCKET_CONNECTION,
  * one wxSOCKET_OUTPUT, so we will have 2 clocks in our state machine. Plus, each
  * time there is unread data in the receive buffer of the socket, a wxSOCKET_INPUT
  * event will be generated. If you feel you will need more clocks than these, use
  * AddDummyEvent(), but I suggest you review your state machine design first.
  */
-void CSocks5StateMachine::process_start(bool entry)
-{
-	if (entry) {
-	} else {
-	}
-}
+void CSocks5StateMachine::process_start(bool)
+{}
 
 void CSocks5StateMachine::process_end(bool)
 {
@@ -588,7 +609,7 @@ void CSocks5StateMachine::process_send_query_authentication_method(bool entry)
 		m_buffer[4] = SOCKS5_AUTH_METHOD_GSSAPI;
 		m_packetLenght = 4;
 		//m_packetLenght = 5;
-		
+
 		// Send the authentication method negotiation packet
 		ProxyWrite(*m_proxyClientSocket, m_buffer, m_packetLenght);
 	}
@@ -601,7 +622,7 @@ void CSocks5StateMachine::process_receive_authentication_method(bool entry)
 		m_packetLenght = 2;
 		ProxyRead(*m_proxyClientSocket, m_buffer);
 	}
-	/* This is added because there will be no more input events. If the 
+	/* This is added because there will be no more input events. If the
 	 * world was a nice place, we could think about joining the
 	 * process_receive and the process_process states here, but some day
 	 * we might have to deal with the fact that the i/o operation has been
@@ -646,7 +667,7 @@ void CSocks5StateMachine::process_send_authentication_username_password(bool ent
 		m_packetLenght = 1 + 1 + lenUser + 1 + lenPassword;
 		unsigned int offsetUser = 2;
 		unsigned int offsetPassword = offsetUser + lenUser + 1;
-		
+
 		// Prepare username/password buffer
 		m_buffer[0] = SOCKS5_AUTH_VERSION_USERNAME_PASSWORD;
 		m_buffer[offsetUser-1] = lenUser;
@@ -655,7 +676,7 @@ void CSocks5StateMachine::process_send_authentication_username_password(bool ent
 		m_buffer[offsetPassword-1] = lenPassword;
 		memcpy(m_buffer+offsetPassword, unicode2char(m_proxyData.m_password),
 			lenPassword);
-		
+
 		// Send the username/password packet
 		ProxyWrite(*m_proxyClientSocket, m_buffer, m_packetLenght);
 	}
@@ -692,11 +713,11 @@ void CSocks5StateMachine::process_send_command_request(bool entry)
 		case PROXY_CMD_CONNECT:
 			m_buffer[1] = SOCKS5_CMD_CONNECT;
 			break;
-			
+
 		case PROXY_CMD_BIND:
 			m_buffer[1] = SOCKS5_CMD_BIND;
 			break;
-			
+
 		case PROXY_CMD_UDP_ASSOCIATE:
 			m_buffer[1] = SOCKS5_CMD_UDP_ASSOCIATE;
 			break;
@@ -705,7 +726,7 @@ void CSocks5StateMachine::process_send_command_request(bool entry)
 		m_buffer[3] = SOCKS5_ATYP_IPV4_ADDRESS;
 		PokeUInt32( m_buffer+4, StringIPtoUint32(m_peerAddress->IPAddress()) );
 		RawPokeUInt16( m_buffer+8, ENDIAN_HTONS( m_peerAddress->Service() ) );
-		
+
 		// Send the command packet
 		m_packetLenght = 10;
 		ProxyWrite(*m_proxyClientSocket, m_buffer, m_packetLenght);
@@ -806,7 +827,7 @@ void CSocks4StateMachine::process_state(t_sm_state state, bool entry)
 	(this->*m_process_state[state])(entry);
 #ifdef __DEBUG__
 	int n = 0;
-	
+
 	switch (state) {
 	case SOCKS4_STATE_START:
 	case SOCKS4_STATE_END:
@@ -814,16 +835,16 @@ void CSocks4StateMachine::process_state(t_sm_state state, bool entry)
 	default:
 		n = 0;
 		break;
-		
+
 	case SOCKS4_STATE_SEND_COMMAND_REQUEST:
 		n = m_packetLenght;
 		break;
-	
+
 	case SOCKS4_STATE_PROCESS_COMMAND_REPLY:
 		n = m_lastRead;
 		break;
 	}
-	
+
 	if (entry) {
 		DumpMem(m_buffer, n, m_state_name[state], m_ok);
 	} else {
@@ -843,7 +864,7 @@ t_sm_state CSocks4StateMachine::next_state(t_sm_event event)
 			ret = SOCKS4_STATE_SEND_COMMAND_REQUEST;
 		}
 		break;
-		
+
 	case SOCKS4_STATE_SEND_COMMAND_REQUEST:
 		if (m_ok) {
 			if (CanReceive()) {
@@ -853,29 +874,25 @@ t_sm_state CSocks4StateMachine::next_state(t_sm_event event)
 			ret = SOCKS4_STATE_END;
 		}
 		break;
-		
+
 	case SOCKS4_STATE_RECEIVE_COMMAND_REPLY:
 		ret = SOCKS4_STATE_PROCESS_COMMAND_REPLY;
 		break;
-		
+
 	case SOCKS4_STATE_PROCESS_COMMAND_REPLY:
 		ret = SOCKS4_STATE_END;
 		break;
-		
+
 	case SOCKS4_STATE_END:
 	default:
 		break;
 	}
-	
+
 	return ret;
 }
 
-void CSocks4StateMachine::process_start(bool entry)
-{
-	if (entry) {
-	} else {
-	}
-}
+void CSocks4StateMachine::process_start(bool)
+{}
 
 void CSocks4StateMachine::process_end(bool)
 {
@@ -891,11 +908,11 @@ void CSocks4StateMachine::process_send_command_request(bool entry)
 		case PROXY_CMD_CONNECT:
 			m_buffer[1] = SOCKS4_CMD_CONNECT;
 			break;
-			
+
 		case PROXY_CMD_BIND:
 			m_buffer[1] = SOCKS4_CMD_BIND;
 			break;
-			
+
 		case PROXY_CMD_UDP_ASSOCIATE:
 			m_ok = false;
 			return;
@@ -915,16 +932,19 @@ void CSocks4StateMachine::process_send_command_request(bool entry)
 		// Common processing for SOCKS4/SOCKS4a
 		unsigned int offsetUser = 8;
 		unsigned char lenUser = m_proxyData.m_userName.Len();
-		memcpy(m_buffer + offsetUser, 
+		memcpy(m_buffer + offsetUser,
 			unicode2char(m_proxyData.m_userName), lenUser);
 		m_buffer[offsetUser + lenUser] = 0;
 		// Special processing for SOCKS4a
 		switch (m_proxyData.m_proxyType) {
 		case PROXY_SOCKS4a: {
 			unsigned int offsetDomain = offsetUser + lenUser + 1;
-			unsigned char lenDomain = m_peerAddress->Hostname().Len();
-			memcpy(m_buffer + offsetDomain, 
-				unicode2char(m_peerAddress->Hostname()), lenDomain);
+			// The Hostname() method was used here before, but I don't see why we can't use 
+			// the IP address which we actually know instead here.
+			wxString hostname(m_peerAddress->IPAddress());
+			unsigned char lenDomain = hostname.Len();
+			memcpy(m_buffer + offsetDomain,
+				unicode2char(hostname), lenDomain);
 			m_buffer[offsetDomain + lenDomain] = 0;
 			m_packetLenght = 1 + 1 + 2 + 4 + lenUser + 1 + lenDomain + 1;
 			break;
@@ -953,7 +973,7 @@ void CSocks4StateMachine::process_process_command_reply(bool entry)
 {
 	if (entry) {
 		m_lastReply = m_buffer[1];
-		
+
 		// Process the server's reply
 		m_ok = m_ok &&
 			m_buffer[0] == SOCKS4_REPLY_CODE &&
@@ -1001,7 +1021,7 @@ void CHttpStateMachine::process_state(t_sm_state state, bool entry)
 	(this->*m_process_state[state])(entry);
 #ifdef __DEBUG__
 	int n = 0;
-	
+
 	switch (state) {
 	case HTTP_STATE_START:
 	case HTTP_STATE_END:
@@ -1009,16 +1029,16 @@ void CHttpStateMachine::process_state(t_sm_state state, bool entry)
 	default:
 		n = 0;
 		break;
-		
+
 	case HTTP_STATE_SEND_COMMAND_REQUEST:
 		n = m_packetLenght;
 		break;
-	
+
 	case HTTP_STATE_PROCESS_COMMAND_REPLY:
 		n = m_lastRead;
 		break;
 	}
-	
+
 	if (entry) {
 		DumpMem(m_buffer, n, m_state_name[state], m_ok);
 	} else {
@@ -1038,7 +1058,7 @@ t_sm_state CHttpStateMachine::next_state(t_sm_event event)
 			ret = HTTP_STATE_SEND_COMMAND_REQUEST;
 		}
 		break;
-		
+
 	case HTTP_STATE_SEND_COMMAND_REQUEST:
 		if (m_ok) {
 			if (CanReceive()) {
@@ -1048,29 +1068,25 @@ t_sm_state CHttpStateMachine::next_state(t_sm_event event)
 			ret = HTTP_STATE_END;
 		}
 		break;
-		
+
 	case HTTP_STATE_RECEIVE_COMMAND_REPLY:
 		ret = HTTP_STATE_PROCESS_COMMAND_REPLY;
 		break;
-		
+
 	case HTTP_STATE_PROCESS_COMMAND_REPLY:
 		ret = HTTP_STATE_END;
 		break;
-		
+
 	case HTTP_STATE_END:
 	default:
 		break;
 	}
-	
+
 	return ret;
 }
 
-void CHttpStateMachine::process_start(bool entry)
-{
-	if (entry) {
-	} else {
-	}
-}
+void CHttpStateMachine::process_start(bool)
+{}
 
 void CHttpStateMachine::process_end(bool)
 {
@@ -1091,24 +1107,24 @@ void CHttpStateMachine::process_send_command_request(bool entry)
 				EncodeBase64(unicode2char(userPass), userPass.Length());
 		}
 		wxString msg;
-		
+
 		switch (m_proxyCommand) {
 		case PROXY_CMD_CONNECT:
 			msg <<
 			wxT("CONNECT ") << ip << wxT(":") << port << wxT(" HTTP/1.1\r\n") <<
 			wxT("Host: ")   << ip << wxT(":") << port << wxT("\r\n");
 			if (m_proxyData.m_enablePassword) {
-				msg << 
+				msg <<
 				wxT("Authorization: Basic ")       << userPassEncoded << wxT("\r\n") <<
 				wxT("Proxy-Authorization: Basic ") << userPassEncoded << wxT("\r\n");
 			}
 			msg << wxT("\r\n");
 			break;
-			
+
 		case PROXY_CMD_BIND:
-			m_ok = false;	
+			m_ok = false;
 			break;
-			
+
 		case PROXY_CMD_UDP_ASSOCIATE:
 			m_ok = false;
 			return;
@@ -1165,7 +1181,7 @@ CProxySocket::CProxySocket(
 	CProxyCommand proxyCommand,
 	CDatagramSocketProxy *udpSocket)
 :
-wxSocketClient(flags),
+CLibSocket(flags),
 m_proxyStateMachine(NULL),
 m_udpSocket(udpSocket),
 m_socketEventHandler(NULL),
@@ -1178,23 +1194,23 @@ m_savedSocketEventHandlerId(0)
 		switch (m_proxyData.m_proxyType) {
 		case PROXY_NONE:
 			break;
-	
+
 		case PROXY_SOCKS5:
 			m_proxyStateMachine =
 				new CSocks5StateMachine(*proxyData, proxyCommand);
 			break;
-		
+
 		case PROXY_SOCKS4:
 		case PROXY_SOCKS4a:
 			m_proxyStateMachine =
 				new CSocks4StateMachine(*proxyData, proxyCommand);
 			break;
-		
+
 		case PROXY_HTTP:
 			m_proxyStateMachine =
 				new CHttpStateMachine(*proxyData, proxyCommand);
 			break;
-		
+
 		default:
 			break;
 		}
@@ -1218,8 +1234,11 @@ void CProxySocket::SetProxyData(const CProxyData *proxyData)
 	}
 }
 
-bool CProxySocket::Start(const wxIPaddress &peerAddress)
+bool CProxySocket::Start(const amuleIPV4Address &peerAddress)
 {
+#ifdef ASIO_SOCKETS
+	SetProxyState(true, &peerAddress);
+#else
 	SaveState();
 	// Important note! SaveState()/RestoreState() DO NOT save/restore
 	// the event handler. The method SaveEventHandler() has been created
@@ -1232,39 +1251,38 @@ bool CProxySocket::Start(const wxIPaddress &peerAddress)
 		wxSOCKET_OUTPUT_FLAG |
 		wxSOCKET_LOST_FLAG);
 	Notify(true);
+#endif
 	Connect(m_proxyAddress, false);
 	SetFlags(wxSOCKET_NONE);
-	bool ok = m_proxyStateMachine->Start(peerAddress, this);
-	
-	return ok;
+	return m_proxyStateMachine->Start(peerAddress, this);
 }
 
 bool CProxySocket::ProxyIsCapableOf(CProxyCommand proxyCommand) const
 {
 	bool ret = false;
-	
+
 	switch (m_proxyData.m_proxyType) {
 	case PROXY_NONE:
 		ret = false;
 		break;
-		
+
 	case PROXY_SOCKS5:
 		ret =	proxyCommand == PROXY_CMD_CONNECT ||
 			proxyCommand == PROXY_CMD_BIND ||
 			proxyCommand == PROXY_CMD_UDP_ASSOCIATE;
 		break;
-		
+
 	case PROXY_SOCKS4:
 	case PROXY_SOCKS4a:
 		ret =	proxyCommand == PROXY_CMD_CONNECT ||
 			proxyCommand == PROXY_CMD_BIND;
 		break;
-		
+
 	case PROXY_HTTP:
 		ret =	proxyCommand == PROXY_CMD_CONNECT;
 		break;
 	}
-	
+
 	return ret;
 }
 
@@ -1280,35 +1298,30 @@ CProxySocket(flags, proxyData, PROXY_CMD_CONNECT)
 {
 }
 
-bool CSocketClientProxy::Connect(wxIPaddress &address, bool wait)
+bool CSocketClientProxy::Connect(amuleIPV4Address &address, bool wait)
 {
 	wxMutexLocker lock(m_socketLocker);
 	bool ok;
-	
+
 	if (GetUseProxy() && ProxyIsCapableOf(PROXY_CMD_CONNECT)) {
 		ok = Start(address);
 	} else {
-		ok = wxSocketClient::Connect(address, wait);
+		ok = CLibSocket::Connect(address, wait);
 	}
-	
+
 	return ok;
 }
 
-CSocketClientProxy& CSocketClientProxy::Read(void *buffer, wxUint32 nbytes)
+uint32 CSocketClientProxy::Read(void *buffer, wxUint32 nbytes)
 {
 	wxMutexLocker lock(m_socketLocker);
-	CProxySocket::Read(buffer, nbytes);
-
-	return *this;
-	
+	return CProxySocket::Read(buffer, nbytes);
 }
 
-CSocketClientProxy& CSocketClientProxy::Write(const void *buffer, wxUint32 nbytes)
+uint32 CSocketClientProxy::Write(const void *buffer, wxUint32 nbytes)
 {
 	wxMutexLocker lock(m_socketLocker);
-	CProxySocket::Write(buffer, nbytes);
-	
-	return *this;
+	return CProxySocket::Write(buffer, nbytes);
 }
 
 //------------------------------------------------------------------------------
@@ -1316,39 +1329,23 @@ CSocketClientProxy& CSocketClientProxy::Write(const void *buffer, wxUint32 nbyte
 //------------------------------------------------------------------------------
 
 CSocketServerProxy::CSocketServerProxy(
-	wxIPaddress &address,
+	amuleIPV4Address &address,
 	wxSocketFlags flags,
 	const CProxyData *)
 :
-wxSocketServer(address, flags)
+CLibSocketServer(address, flags)
 {
 	/* Maybe some day when socks6 is out... :) */
 }
 
-CSocketServerProxy& CSocketServerProxy::Read(void *buffer, wxUint32 nbytes)
-{
-	wxMutexLocker lock(m_socketLocker);
-	wxSocketServer::Read(buffer, nbytes);
-
-	return *this;
-}
-
-CSocketServerProxy& CSocketServerProxy::Write(const void *buffer, wxUint32 nbytes)
-{
-	wxMutexLocker lock(m_socketLocker);
-	wxSocketServer::Write(buffer, nbytes);
-
-	return *this;
-}
-
 //------------------------------------------------------------------------------
 // CDatagramSocketProxy
 //------------------------------------------------------------------------------
 
 CDatagramSocketProxy::CDatagramSocketProxy(
-	wxIPaddress &address, wxSocketFlags flags, const CProxyData *proxyData)
+	amuleIPV4Address &address, wxSocketFlags flags, const CProxyData *proxyData)
 :
-wxDatagramSocket(address, flags),
+CLibUDPSocket(address, flags),
 m_proxyTCPSocket(wxSOCKET_NOWAIT, proxyData, PROXY_CMD_UDP_ASSOCIATE, this)
 {
 	m_udpSocketOk = false;
@@ -1367,9 +1364,9 @@ CDatagramSocketProxy::~CDatagramSocketProxy()
 	// UDP ASSOCIATE request arrived terminates."
 }
 
-wxDatagramSocket &CDatagramSocketProxy::RecvFrom(
-	wxSockAddress &addr, void* buf, wxUint32 nBytes )
+uint32 CDatagramSocketProxy::RecvFrom(amuleIPV4Address& addr, void* buf, uint32 nBytes)
 {
+	uint32 read = 0;
 	wxMutexLocker lock(m_socketLocker);
 	m_lastUDPOperation = UDP_OPERATION_RECV_FROM;
 	if (m_proxyTCPSocket.GetUseProxy()) {
@@ -1380,7 +1377,7 @@ wxDatagramSocket &CDatagramSocketProxy::RecvFrom(
 			} else {
 				bufUDP = m_proxyTCPSocket.GetBuffer();
 			}
-			wxDatagramSocket::RecvFrom(
+			read = CLibUDPSocket::RecvFrom(
 				m_proxyTCPSocket.GetProxyBoundAddress(),
 				bufUDP, nBytes + PROXY_UDP_MAXIMUM_OVERHEAD);
 			unsigned int offset;
@@ -1398,15 +1395,15 @@ wxDatagramSocket &CDatagramSocketProxy::RecvFrom(
 				}
 			}
 				break;
-				
+
 			case SOCKS5_ATYP_DOMAINNAME:
 				offset = PROXY_UDP_OVERHEAD_DOMAIN_NAME;
 				break;
-				
+
 			case SOCKS5_ATYP_IPV6_ADDRESS:
 				offset = PROXY_UDP_OVERHEAD_IPV6;
 				break;
-				
+
 			default:
 				/* Error! */
 				offset = 0;
@@ -1415,13 +1412,13 @@ wxDatagramSocket &CDatagramSocketProxy::RecvFrom(
 			memcpy(buf, bufUDP + offset, nBytes);
 			// Uncomment here to see the buffer contents on console
 			// DumpMem(bufUDP, wxDatagramSocket::LastCount(), wxT("RecvFrom"), 3);
-			
+
 			/* Only delete buffer if it was dynamically created */
 			if (bufUDP != m_proxyTCPSocket.GetBuffer()) {
 				/* We should use a fixed buffer to avoid
-				 * new/delete it all the time. 
+				 * new/delete it all the time.
 				 * I need an upper bound */
-				delete bufUDP;
+				delete [] bufUDP;
 			}
 			/* There is still one problem pending, fragmentation.
 			 * Either we support it or we have to drop fragmented
@@ -1429,15 +1426,15 @@ wxDatagramSocket &CDatagramSocketProxy::RecvFrom(
 			 */
 		}
 	} else {
-		wxDatagramSocket::RecvFrom(addr, buf, nBytes);
+		read = CLibUDPSocket::RecvFrom(addr, buf, nBytes);
 	}
-	
-	return *this;
+
+	return read;
 }
 
-wxDatagramSocket &CDatagramSocketProxy::SendTo(
-	wxIPaddress &addr, const void* buf, wxUint32 nBytes )
+uint32 CDatagramSocketProxy::SendTo(const amuleIPV4Address& addr, const void* buf, uint32 nBytes)
 {
+	uint32 sent = 0;
 	wxMutexLocker lock(m_socketLocker);
 	m_lastUDPOperation = UDP_OPERATION_SEND_TO;
 	m_lastUDPOverhead = PROXY_UDP_OVERHEAD_IPV4;
@@ -1451,41 +1448,17 @@ wxDatagramSocket &CDatagramSocketProxy::SendTo(
 			RawPokeUInt16( m_proxyTCPSocket.GetBuffer()+8, ENDIAN_HTONS( addr.Service() ) );
 			memcpy(m_proxyTCPSocket.GetBuffer() + PROXY_UDP_OVERHEAD_IPV4, buf, nBytes);
 			nBytes += PROXY_UDP_OVERHEAD_IPV4;
-			wxDatagramSocket::SendTo(
+			sent = CLibUDPSocket::SendTo(
 				m_proxyTCPSocket.GetProxyBoundAddress(),
 				m_proxyTCPSocket.GetBuffer(), nBytes);
 			// Uncomment here to see the buffer contents on console
 			// DumpMem(m_proxyTCPSocket.GetBuffer(), nBytes, wxT("SendTo"), 3);
 		}
 	} else {
-		wxDatagramSocket::SendTo(addr, buf, nBytes);
+		sent = CLibUDPSocket::SendTo(addr, buf, nBytes);
 	}
-	
-	return *this;
-}
 
-wxUint32 CDatagramSocketProxy::LastCount(void) const
-{
-	wxUint32 ret;
-
-	if (m_proxyTCPSocket.GetUseProxy()) {
-		switch (m_lastUDPOperation) {
-		case UDP_OPERATION_RECV_FROM:
-		case UDP_OPERATION_SEND_TO:
-			ret = Ok() ? wxDatagramSocket::LastCount() - m_lastUDPOverhead : 0;
-			break;
-			
-		case UDP_OPERATION_NONE:
-		default:
-			ret = 0;
-			break;
-		
-		}
-	} else {
-		ret = wxDatagramSocket::LastCount();
-	}
-	
-	return ret;
+	return sent;
 }
 
 #endif // CLIENT_GUI
diff --git a/src/Proxy.h b/src/Proxy.h
index 41d7c9b..a1f598b 100644
--- a/src/Proxy.h
+++ b/src/Proxy.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,6 +30,7 @@
 
 #include "amuleIPV4Address.h"	// For amuleIPV4address
 #include "StateMachine.h"	// For CStateMachine
+#include "LibSocket.h"
 
 /******************************************************************************/
 
@@ -58,7 +59,7 @@ const unsigned char SOCKS4_REPLY_FAILED_DIFFERENT_USERIDS	= 93;
  * - RFC-1961: GSS-API Authentication Method for SOCKS Version 5
  * - RFC-1508: Generic Security Service Application Program Interface
  * - RFC-1509: Genecic Security Service API: C-bindings
- *   
+ *
  */
 
 const unsigned char SOCKS5_VERSION = 0x05;
@@ -122,7 +123,7 @@ public:
 	CProxyData();
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @param proxyEnable	Whether proxy is enabled or not.
 	 * @param proxyType	The type of the proxy server.
 	 * @param proxyHostName	The proxy host name or IP address.
@@ -190,7 +191,7 @@ private:
  * Proxy protocol needs much less than this. 1024 would be ok. Other options are
  * - Default ethernet MTU - Eth-II - IP - UDP: 1,514 - 14 - 20 - 8 = 1472 bytes;
  * - Default token ring MTU 4,202 - overheads = ??.
- * It would be really more efficient if the final object was less than 
+ * It would be really more efficient if the final object was less than
  * a page (4096 bytes) in size.
  */
 //const unsigned int PROXY_BUFFER_SIZE = 1024;
@@ -240,20 +241,20 @@ public:
 	 * @param cmd	The proxy command.
 	 */
 	static wxString	&NewName(wxString &s, CProxyCommand cmd);
-	
+
 	/* Interface */
-	bool		Start(const wxIPaddress &peerAddress, wxSocketClient *proxyClientSocket);
+	bool		Start(const amuleIPV4Address &peerAddress, CLibSocket *proxyClientSocket);
 	t_sm_state	HandleEvent(t_sm_event event);
 	void		AddDummyEvent();
 	void		ReactivateSocket();
-	char 		*GetBuffer()				{ return m_buffer; }
-	wxIPaddress	&GetProxyBoundAddress(void) const	{ return *m_proxyBoundAddress; }
+	char		*GetBuffer()				{ return m_buffer; }
+	amuleIPV4Address	&GetProxyBoundAddress(void) const	{ return *m_proxyBoundAddress; }
 	unsigned char	GetLastReply(void) const		{ return m_lastReply; }
 	bool		IsEndState() const			{ return GetState() == PROXY_STATE_END; }
 
 protected:
-	wxSocketBase		&ProxyWrite(wxSocketBase &socket, const void *buffer, wxUint32 nbytes);
-	wxSocketBase		&ProxyRead(wxSocketBase &socket, void *buffer);
+	uint32		ProxyWrite(CLibSocket &socket, const void *buffer, wxUint32 nbytes);
+	uint32		ProxyRead(CLibSocket &socket, void *buffer);
 	bool		CanReceive() const;
 	bool		CanSend() const;
 	//
@@ -270,15 +271,14 @@ protected:
 	bool			m_canReceive;
 	bool			m_canSend;
 	bool			m_ok;
-	unsigned int		m_lastRead;
-	unsigned int		m_lastWritten;
-	wxSocketError		m_lastError;
+	unsigned int	m_lastRead;
+	int				m_lastError;
 	//
 	// Will be initialized at Start()
 	//
-	wxIPaddress		*m_peerAddress;
-	wxSocketClient		*m_proxyClientSocket;	
-	wxIPaddress		*m_proxyBoundAddress;
+	amuleIPV4Address	*m_peerAddress;
+	CLibSocket			*m_proxyClientSocket;
+	amuleIPV4Address	*m_proxyBoundAddress;
 	amuleIPV4Address	m_proxyBoundAddressIPV4;
 	//wxIPV6address		m_proxyBoundAddressIPV6;
 	//
@@ -322,7 +322,7 @@ public:
 		CProxyCommand proxyCommand);
 	void process_state(t_sm_state state, bool entry);
 	t_sm_state next_state(t_sm_event event);
-	
+
 private:
 	/* State Processors */
 	void process_start(bool entry);
@@ -369,7 +369,7 @@ public:
 		CProxyCommand proxyCommand);
 	void process_state(t_sm_state state, bool entry);
 	t_sm_state next_state(t_sm_event event);
-	
+
 private:
 	/* State Processors */
 	void process_start(bool entry);
@@ -407,7 +407,7 @@ public:
 		CProxyCommand proxyCommand);
 	void process_state(t_sm_state state, bool entry);
 	t_sm_state next_state(t_sm_event event);
-	
+
 private:
 	/* State Processors */
 	void process_start(bool entry);
@@ -426,7 +426,7 @@ private:
 
 class CDatagramSocketProxy;
 
-class CProxySocket : public wxSocketClient
+class CProxySocket : public CLibSocket
 {
 friend class CProxyEventHandler;
 public:
@@ -436,10 +436,11 @@ public:
 		const CProxyData *proxyData = NULL,
 		CProxyCommand proxyCommand = PROXY_CMD_CONNECT,
 		CDatagramSocketProxy *udpSocket = NULL);
-	
+
 	/* Destructor */
 	~CProxySocket();
-	
+
+#ifndef ASIO_SOCKETS
 	/* I know, this is not very good, because SetEventHandler is not
 	 * virtual in wxSocketBase, but I need to GetEventHandler in Proxy.cpp,
 	 * so...
@@ -448,7 +449,7 @@ public:
 	{
 		m_socketEventHandler = &handler;
 		m_socketEventHandlerId = id;
-		wxSocketClient::SetEventHandler(handler, id);
+		CLibSocket::SetEventHandler(handler, id);
 	}
 	wxEvtHandler *GetEventHandler(void)	const { return m_socketEventHandler; }
 	int GetEventHandlerId(void)		const { return m_socketEventHandlerId; }
@@ -463,18 +464,21 @@ public:
 		m_socketEventHandlerId = m_savedSocketEventHandlerId;
 		SetEventHandler(*m_socketEventHandler, m_socketEventHandlerId);
 	}
-	
+#endif
+	// Asio mode
+	virtual void	OnProxyEvent(int evt);
+
 	/* Interface */
 	void		SetProxyData(const CProxyData *proxyData);
 	bool		GetUseProxy() const	{ return m_useProxy; }
-	char 		*GetBuffer()		{ return m_proxyStateMachine->GetBuffer(); }
-	wxIPaddress	&GetProxyBoundAddress(void) const
+	char		*GetBuffer()		{ return m_proxyStateMachine->GetBuffer(); }
+	amuleIPV4Address	&GetProxyBoundAddress(void) const
 						{ return m_proxyStateMachine->GetProxyBoundAddress(); }
-	bool Start(const wxIPaddress &peerAddress);
+	bool Start(const amuleIPV4Address &peerAddress);
 	bool ProxyIsCapableOf(CProxyCommand proxyCommand) const;
 	bool ProxyNegotiationIsOver() const	{ return m_proxyStateMachine->IsEndState(); }
 	CDatagramSocketProxy *GetUDPSocket() const { return m_udpSocket; }
-	
+
 private:
 	bool			m_useProxy;
 	CProxyData		m_proxyData;
@@ -498,11 +502,11 @@ public:
 	CSocketClientProxy(
 		wxSocketFlags flags = wxSOCKET_NONE,
 		const CProxyData *proxyData = NULL);
-		
+
 	/* Interface */
-	bool Connect(wxIPaddress &address, bool wait);
-	CSocketClientProxy& Read(void *buffer, wxUint32 nbytes);
-	CSocketClientProxy& Write(const void *buffer, wxUint32 nbytes);
+	bool Connect(amuleIPV4Address &address, bool wait);
+	uint32 Read(void *buffer, wxUint32 nbytes);
+	uint32 Write(const void *buffer, wxUint32 nbytes);
 
 private:
 	wxMutex			m_socketLocker;
@@ -512,19 +516,15 @@ private:
 // CSocketServerProxy
 //------------------------------------------------------------------------------
 
-class CSocketServerProxy : public wxSocketServer
+class CSocketServerProxy : public CLibSocketServer
 {
 public:
 	/* Constructor */
 	CSocketServerProxy(
-		wxIPaddress &address,
+		amuleIPV4Address &address,
 		wxSocketFlags flags = wxSOCKET_NONE,
 		const CProxyData *proxyData = NULL);
-		
-	/* Interface */
-	CSocketServerProxy& Read(void *buffer, wxUint32 nbytes);
-	CSocketServerProxy& Write(const void *buffer, wxUint32 nbytes);
-	
+
 private:
 	wxMutex			m_socketLocker;
 };
@@ -539,33 +539,30 @@ enum UDPOperation {
 	UDP_OPERATION_SEND_TO
 };
 
-const unsigned int PROXY_UDP_OVERHEAD_IPV4 		= 10;
+const unsigned int PROXY_UDP_OVERHEAD_IPV4		= 10;
 const unsigned int PROXY_UDP_OVERHEAD_DOMAIN_NAME	= 262;
 const unsigned int PROXY_UDP_OVERHEAD_IPV6		= 20;
 const unsigned int PROXY_UDP_MAXIMUM_OVERHEAD		= PROXY_UDP_OVERHEAD_DOMAIN_NAME;
 
-class CDatagramSocketProxy : public wxDatagramSocket
+class CDatagramSocketProxy : public CLibUDPSocket
 {
 public:
 	/* Constructor */
 	CDatagramSocketProxy(
-		wxIPaddress &address,
+		amuleIPV4Address &address,
 		wxSocketFlags flags = wxSOCKET_NONE,
 		const CProxyData *proxyData = NULL);
-	
+
 	/* Destructor */
 	~CDatagramSocketProxy();
-	
+
 	/* Interface */
 	void SetUDPSocketOk() { m_udpSocketOk = true; }
-	
+
 	/* wxDatagramSocket Interface */
-	virtual wxDatagramSocket& RecvFrom(
-		wxSockAddress& addr, void* buf, wxUint32 nBytes );
-	virtual wxDatagramSocket& SendTo(
-		wxIPaddress& addr, const void* buf, wxUint32 nBytes );
-	virtual wxUint32 LastCount(void) const;
-	
+	virtual uint32 RecvFrom(amuleIPV4Address& addr, void* buf, uint32 nBytes);
+	virtual uint32 SendTo(const amuleIPV4Address& addr, const void* buf, uint32 nBytes);
+
 private:
 	bool			m_udpSocketOk;
 	CProxySocket		m_proxyTCPSocket;
diff --git a/src/RC4Encrypt.cpp b/src/RC4Encrypt.cpp
index 791863b..61813b1 100644
--- a/src/RC4Encrypt.cpp
+++ b/src/RC4Encrypt.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -62,31 +62,31 @@ void CRC4EncryptableBuffer::Encrypt()
 void CRC4EncryptableBuffer::RC4Crypt( const uint8 *pachIn, uint8 *pachOut, uint32 nLen)
 {
 	wxASSERT( m_hasKey && nLen > 0 );
-	
+
 	if (m_hasKey) {
 		uint8 byX = m_key.byX;;
 		uint8 byY = m_key.byY;
 		uint8* pabyState = &m_key.abyState[0];;
 		uint8 byXorIndex;
-		
+
 		for (uint32 i = 0; i < nLen; ++i) {
 			byX = (byX + 1) % 256;
 			byY = (pabyState[byX] + byY) % 256;
 			std::swap(pabyState[byX], pabyState[byY]);
 			byXorIndex = (pabyState[byX] + pabyState[byY]) % 256;
-			
+
 			if (pachIn != NULL) {
 				pachOut[i] = pachIn[i] ^ pabyState[byXorIndex];
 			}
 		}
-		
+
 		m_key.byX = byX;
 		m_key.byY = byY;
 	} else {
 		throw std::runtime_error(
 			"(CRC4EncryptableBuffer::RC4Crypt): "
 			"Encrypt() has been called without a previous call"
-			"to SetKey().");		
+			"to SetKey().");
 	}
 }
 
@@ -128,13 +128,13 @@ void CRC4EncryptableBuffer::RC4CreateKey(const uint8* pachKeyData, uint32 nLen,
 	m_key.byY = 0;
 	index1 = 0;
 	index2 = 0;
-	
+
 	for (int i = 0; i < 256; ++i) {
 		index2 = (pachKeyData[index1] + pabyState[i] + index2) % 256;
 		std::swap(pabyState[i], pabyState[index2]);
 		index1 = (uint8)((index1 + 1) % nLen);
 	}
-	
+
 	if (!bSkipDiscard) {
 		RC4Crypt(NULL, NULL, 1024);
 	}
diff --git a/src/RC4Encrypt.h b/src/RC4Encrypt.h
index d2968b8..576fafd 100644
--- a/src/RC4Encrypt.h
+++ b/src/RC4Encrypt.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,16 +38,11 @@
 
 class MD5Sum;
 
-class RC4_Key_Struct
+struct RC4_Key_Struct
 {
-public:
 	uint8 abyState[256];
 	uint8 byX;
 	uint8 byY;
-	
-public:
-	RC4_Key_Struct() {}
-	~RC4_Key_Struct() {}
 };
 
 
@@ -66,18 +61,18 @@ public:
 	// Sets the encryption key
 	void SetKey(const MD5Sum& keyhash, bool bSkipDiscard = false);
 
-	// RC4 encrypts the internal buffer. Marks it as encrypted, any other further call 
+	// RC4 encrypts the internal buffer. Marks it as encrypted, any other further call
 	// to add data, as Append(), must assert if the inner data is encrypted.
 	// Make sure to check SetKey has been called!
 	void Encrypt();
 
 	// RC4 encrypts an external buffer with the current key.
 	void RC4Crypt(const uint8 *pachIn, uint8 *pachOut, uint32 nLen);
-	
+
 	// Returns a uint8* buffer with a copy of the internal data, and clears the internal one.
 	uint8* Detach();
 
-	// Also clears the encryption flag	
+	// Also clears the encryption flag
 	void ResetData();
 
 	// Resets everything, as if the object has just been created.
@@ -87,7 +82,7 @@ private:
 	bool m_encrypted;
 	bool m_hasKey;
 	RC4_Key_Struct m_key;
-	
+
 	void RC4CreateKey(const uint8* pachKeyData, uint32 nLen, bool bSkipDiscard);
 };
 
diff --git a/src/RLE.cpp b/src/RLE.cpp
index 6309d09..ae5642f 100644
--- a/src/RLE.cpp
+++ b/src/RLE.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,9 +30,9 @@
 /*
  * RLE encoder implementation. This is RLE implementation for very specific
  * purpose: encode DIFFERENCE between subsequent states of status bar.
- * 
+ *
  * This difference is calculated by xor-ing with previous data
- * 
+ *
  * We can't use implementation with "control char" since this encoder
  * will process binary data - not ascii (or unicode) strings
  */
@@ -99,7 +99,7 @@ bool RLE_Data::Realloc(int size)
 	}
 	delete [] m_buff;
 	m_buff = buff;
-	
+
 	m_len = size;
 	return true;
 }
@@ -176,7 +176,7 @@ const uint8 * RLE_Data::Encode(const uint8 *data, int inlen, int &outlen, bool &
 		memcpy(m_buff, data, m_len);
 		changed = true;
 	}
-	
+
 	//
 	// now RLE
 	//
@@ -201,14 +201,14 @@ const uint8 * RLE_Data::Encode(const uint8 *data, int inlen, int &outlen, bool &
 	}
 
 	outlen = j;
-	
+
 	//
 	// If using differential encoder, remember current data for
 	// later use
 	if ( m_use_diff ) {
 		memcpy(m_buff, data, m_len);
 	}
-	
+
 	return enc_buff;
 }
 
diff --git a/src/RLE.h b/src/RLE.h
index cf137f2..11ccc4e 100644
--- a/src/RLE.h
+++ b/src/RLE.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,19 +36,19 @@ class RLE_Data
 {
 public:
 	RLE_Data(int len = 0, bool use_diff = true)	{ setup(len, use_diff); }
-	
+
 	// those constructors are for stl containers
 	RLE_Data(const RLE_Data & obj)	{ setup(obj.m_len, obj.m_use_diff, obj.m_buff); }
 	RLE_Data &operator=(const RLE_Data &);
-	
+
 	~RLE_Data();
 
 	const uint8 *Encode(const ArrayOfUInts16 &data, int &outlen, bool &changed);
 	const uint8 *Encode(const ArrayOfUInts64 &data, int &outlen, bool &changed);
-	
+
 	const uint8 *Decode(const uint8 *data, int len);
 	void Decode(const uint8 *data, int len, ArrayOfUInts64 &outdata);
-	
+
 	void ResetEncoder();
 
 	// decoder will need access to data
diff --git a/src/RandomFunctions.cpp b/src/RandomFunctions.cpp
index a9dbeb3..41e8435 100644
--- a/src/RandomFunctions.cpp
+++ b/src/RandomFunctions.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/RandomFunctions.h b/src/RandomFunctions.h
index 3849e65..c3d1559 100644
--- a/src/RandomFunctions.h
+++ b/src/RandomFunctions.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -33,10 +33,10 @@ namespace CryptoPP {
 }
 const CryptoPP::AutoSeededRandomPool& GetRandomPool();
 
-/* 
+/*
  * Random numbers generation
  */
- 
+
 uint8_t GetRandomUint8();
 uint16_t GetRandomUint16();
 uint32_t GetRandomUint32();
diff --git a/src/RangeMap.h b/src/RangeMap.h
index f51ee61..51a23a4 100644
--- a/src/RangeMap.h
+++ b/src/RangeMap.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -50,7 +50,7 @@ struct CRangeMapHelper
 	//! Typedef specifying the type to use when a non-const referenecs is expected.
 	typedef VALUE& ValueRef;
 	//! Typedef specifying the type to use when a const referenecs is expected.
-	typedef const VALUE& ConstValueRef; 
+	typedef const VALUE& ConstValueRef;
 	//! Typedef specifying the type to use when a const pointer is expected.
 	typedef const VALUE* ConstValuePtr;
 
@@ -71,12 +71,12 @@ struct CRangeMapHelper
  */
 template <typename KEYTYPE>
 struct CRangeMapHelper<void, KEYTYPE>
-{	
+{
 	typedef void ValuePtr;
 	typedef void ValueRef;
 	typedef void ConstValueRef;
 	typedef void ConstValuePtr;
-	
+
 	KEYTYPE first;
 
 	bool operator==(const CRangeMapHelper<void, KEYTYPE>&) const {
@@ -90,14 +90,14 @@ struct CRangeMapHelper<void, KEYTYPE>
  *
  * Each range has a user-specified value associated. The map supports quick
  * lookup of which range covers a particular key-value, and will merge or
- * split existing ranges when new ranges are added. 
+ * split existing ranges when new ranges are added.
  *
  * The decision on whenever to split/resize a range or to merge the two ranges
- * involved is based on equality of the user-specified value, using the 
- * equality operator. Thus if two ranges with the same user-value are placed 
+ * involved is based on equality of the user-specified value, using the
+ * equality operator. Thus if two ranges with the same user-value are placed
  * adjacent to each other or partially overlapping each other, then they will
  * be merged into a single range. If the user-values of the two ranges are
- * different, then the old range will be either resized or split, based on the 
+ * different, then the old range will be either resized or split, based on the
  * position of the new range.
  *
  * In cases where ranges are split into two parts, copies will be made of the
@@ -124,7 +124,7 @@ private:
 	//! Typedefs used to distinguish between our custom iterator and the real ones.
 	typedef typename RangeMap::iterator RangeIterator;
 	typedef typename RangeMap::const_iterator ConstRangeIterator;
-	
+
 	//! The raw map of range values.
 	RangeMap	m_ranges;
 
@@ -136,7 +136,7 @@ private:
 	 * for that range.
 	 *
 	 * Special member-functions are keyStart() and keyEnd().
-	 */ 
+	 */
 	template <typename RealIterator, typename ReturnTypeRef, typename ReturnTypePtr>
 	class iterator_base {
 		friend class CRangeMap<VALUE, KEYTYPE>;
@@ -156,12 +156,12 @@ private:
 			return m_it != other.m_it;
 		}
 
-		
+
 		//! Returns the starting point of the range
 		KEYTYPE keyStart() const {
 			return m_it->first;
 		}
-		
+
 		//! Returns the end-point of the range
 		KEYTYPE keyEnd() const {
 			return m_it->second.first;
@@ -171,7 +171,7 @@ private:
 		//! Prefix increment.
 		iterator_base& operator++() {
 			++m_it;
-			
+
 			return *this;
 		}
 
@@ -217,13 +217,13 @@ private:
 public:
 	typedef iterator_base<RangeIterator, ValueRef, ValuePtr> iterator;
 	typedef iterator_base<ConstRangeIterator, ConstValueRef, ConstValuePtr> const_iterator;
-	
+
 	//! The type used to specify size, ie size().
 	typedef typename RangeMap::size_type size_type;
-	
+
 	//! The type of user-data saved with each range.
 	typedef VALUE value_type;
-	
+
 	/**
 	 * Default constructor.
 	 */
@@ -235,7 +235,7 @@ public:
 	 */
 	CRangeMap(const CRangeMap<VALUE, KEYTYPE>& other)
 		: m_ranges( other.m_ranges )
-	{	
+	{
 	}
 
 	/**
@@ -253,7 +253,7 @@ public:
 	void swap(CRangeMap<VALUE, KEYTYPE>& other) {
 		std::swap(m_ranges, other.m_ranges);
 	}
-	
+
 
 	/**
 	 * Equality operator for two ranges.
@@ -265,15 +265,15 @@ public:
 		if ( this == &other ) {
 			return true;
 		}
-		
+
 		// Check size, must be the same
 		if ( size() != other.size() ) {
 			return false;
 		}
-		
+
 		return (m_ranges == other.m_ranges);
 	}
-	
+
 
 	/**
 	 * Returns an iterator pointing to the first range.
@@ -314,7 +314,7 @@ public:
 	 */
 	iterator erase(iterator pos) {
 		MULE_VALIDATE_PARAMS(pos != end(), wxT("Cannot erase 'end'"));
-	
+
 		RangeIterator temp = pos.m_it++;
 
 		m_ranges.erase(temp);
@@ -365,7 +365,7 @@ public:
 			// Our target range must come before the one we found; does it exist?
 			if ( it != m_ranges.begin() ) {
 				// Go back to the last range which starts at or before key
-				it--;
+				--it;
 
 				// Check if this range covers the key
 				if ( key <= it->second.first ) {
@@ -383,12 +383,12 @@ public:
 		HELPER entry = HELPER();
 		// Need to set the 'end' field.
 		entry.first = endPos;
-		
-		// Insert without merging, which forces the creation of an entry that 
+
+		// Insert without merging, which forces the creation of an entry that
 		// only covers the specified range, which will crop existing ranges.
 		erase(do_insert(startPos, entry, false));
-	}	
-	
+	}
+
 
 	/**
 	 * Inserts a new range into the map, potentially erasing/changing old ranges.
@@ -399,7 +399,7 @@ public:
 	 * @return An iterator pointing to the resulting range, covering at least the specified range.
 	 *
 	 * This function inserts the specified range into the map, while overwriting
-	 * or resizing existing ranges if there is any conflict. Ranges might also 
+	 * or resizing existing ranges if there is any conflict. Ranges might also
 	 * be merged, if the object of each evaluates to being equal, in which case
 	 * the old range will be removed and the new extended to include the old
 	 * range. This also includes ranges placed directly after or in front of each
@@ -408,7 +408,7 @@ public:
 	 * This has the result that the iterator returned can point to a range quite
 	 * different from what was originally specified. If this is not desired, then
 	 * the VALUE type should simply be made to return false on all equality tests.
-	 * Otherwise, the only promise that is made is that the resulting range has 
+	 * Otherwise, the only promise that is made is that the resulting range has
 	 * the same user-data (based on the equality operator) as the what was specified.
 	 *
 	 * Note that the start position must be smaller than or equal to the end-position.
@@ -436,7 +436,7 @@ protected:
 	 */
 	iterator do_insert(KEYTYPE start, HELPER entry, bool merge = true) {
 		MULE_VALIDATE_PARAMS(start <= entry.first, wxT("Not a valid range."));
-		
+
 		RangeIterator it = get_insert_it(start);
 		while ( it != m_ranges.end() ) {
 			// Begins before the current span
@@ -476,7 +476,7 @@ protected:
 					m_ranges.erase( it++ );
 				}
 			}
-			
+
 			// Starts inside the current span or after the current span
 			else {
 				// Starts inside the current span
@@ -490,10 +490,10 @@ protected:
 
 						// Insert the new span
 						m_ranges.insert(it, RangePair(entry.first + 1, it->second));
-						
+
 						// Resize the current span to fit before the new span
 						it->second.first = start - 1;
-		
+
 						break;
 					} else {
 						// Ends past the current span, resize or merge
@@ -526,7 +526,7 @@ protected:
 		return m_ranges.insert(it, RangePair(start, entry));
 	}
 
-	
+
 	/**
 	 * Finds the optimal location to start looking for insertion points.
 	 *
@@ -557,7 +557,7 @@ protected:
 
 		return it;
 	}
-	
+
 
 	//! Helper function that resizes an existing range to the specified size.
 	RangeIterator resize( KEYTYPE startPos, KEYTYPE endPos, RangeIterator it ) {
diff --git a/src/SHA.cpp b/src/SHA.cpp
index 97f90cb..2d831a8 100644
--- a/src/SHA.cpp
+++ b/src/SHA.cpp
@@ -17,12 +17,12 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //
-// Kry - Modified version of the original SHA.cpp to work on linux and 
+// Kry - Modified version of the original SHA.cpp to work on linux and
 // use wxWidgets. Original license follows.
 //
 
@@ -33,27 +33,27 @@
 
  LICENSE TERMS
 
- The free distribution and use of this software in both source and binary 
+ The free distribution and use of this software in both source and binary
  form is allowed (with or without changes) provided that:
 
-   1. distributions of this source code include the above copyright 
+   1. distributions of this source code include the above copyright
       notice, this list of conditions and the following disclaimer;
 
    2. distributions in binary form include the above copyright
       notice, this list of conditions and the following disclaimer
       in the documentation and/or other associated materials;
 
-   3. the copyright holder's name is not used to endorse products 
-      built using this software without specific written permission. 
+   3. the copyright holder's name is not used to endorse products
+      built using this software without specific written permission.
 
  ALTERNATIVELY, provided that this notice is retained in full, this product
  may be distributed under the terms of the GNU General Public License (GPL),
  in which case the provisions of the GPL apply INSTEAD OF those given above.
- 
+
  DISCLAIMER
 
  This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness 
+ in respect of its properties, including, but not limited to, correctness
  and/or fitness for purpose.
  ---------------------------------------------------------------------------
  Issue Date: 30/11/2002
@@ -71,11 +71,11 @@ CSHA::CSHA()
 }
 
 /*
-    To obtain the highest speed on processors with 32-bit words, this code 
+    To obtain the highest speed on processors with 32-bit words, this code
     needs to determine the order in which bytes are packed into such words.
-    The following block of code is an attempt to capture the most obvious 
-    ways in which various environemnts specify their endian definitions. 
-    It may well fail, in which case the definitions will need to be set by 
+    The following block of code is an attempt to capture the most obvious
+    ways in which various environemnts specify their endian definitions.
+    It may well fail, in which case the definitions will need to be set by
     editing at the points marked **** EDIT HERE IF NECESSARY **** below.
 */
 #define SHA_LITTLE_ENDIAN   1234 /* byte 0 is least significant (i386) */
@@ -125,7 +125,7 @@ void CSHA::Compile()
 
     for(i = 0; i < 20; ++i)
     {
-        rnd(ch, 0x5a827999);    
+        rnd(ch, 0x5a827999);
     }
 
     for(i = 20; i < 40; ++i)
@@ -143,10 +143,10 @@ void CSHA::Compile()
         rnd(parity, 0xca62c1d6);
     }
 
-    m_nHash[0] += a; 
-    m_nHash[1] += b; 
-    m_nHash[2] += c; 
-    m_nHash[3] += d; 
+    m_nHash[0] += a;
+    m_nHash[1] += b;
+    m_nHash[2] += c;
+    m_nHash[3] += d;
     m_nHash[4] += e;
 }
 
@@ -176,8 +176,8 @@ void CSHA::GetHash(CAICHHash& Hash)
 void CSHA::Add(const void* pData, uint32 nLength)
 {
 	const unsigned char* data = (const unsigned char*)pData;
-	
-	uint32 pos = (uint32)(m_nCount[0] & SHA1_MASK), 
+
+	uint32 pos = (uint32)(m_nCount[0] & SHA1_MASK),
              space = SHA1_BLOCK_SIZE - pos;
     const unsigned char *sp = data;
 
@@ -187,7 +187,7 @@ void CSHA::Add(const void* pData, uint32 nLength)
     while(nLength >= space)     /* tranfer whole blocks while possible  */
     {
         memcpy(((unsigned char*)m_nBuffer) + pos, sp, space);
-        sp += space; nLength -= space; space = SHA1_BLOCK_SIZE; pos = 0; 
+        sp += space; nLength -= space; space = SHA1_BLOCK_SIZE; pos = 0;
         Compile();
     }
 
@@ -197,14 +197,14 @@ void CSHA::Add(const void* pData, uint32 nLength)
 /* SHA1 final padding and digest calculation  */
 
 #if (wxBYTE_ORDER == wxLITTLE_ENDIAN)
-static uint32  mask[4] = 
+static uint32  mask[4] =
 	{   0x00000000, 0x000000ff, 0x0000ffff, 0x00ffffff };
-static uint32  bits[4] = 
+static uint32  bits[4] =
 	{   0x00000080, 0x00008000, 0x00800000, 0x80000000 };
 #else
-static uint32  mask[4] = 
+static uint32  mask[4] =
 	{   0x00000000, 0xff000000, 0xffff0000, 0xffffff00 };
-static uint32  bits[4] = 
+static uint32  bits[4] =
 	{   0x80000000, 0x00800000, 0x00008000, 0x00000080 };
 #endif
 
@@ -218,7 +218,7 @@ void CSHA::Finish(CAICHHash& Hash)
     /* endian machines they will be at the bottom. Hence the AND    */
     /* and OR masks above are reversed for little endian systems    */
 	/* Note that we can always add the first padding byte at this	*/
-	/* because the buffer always contains at least one empty slot	*/ 
+	/* because the buffer always contains at least one empty slot	*/
     m_nBuffer[i >> 2] = (m_nBuffer[i >> 2] & mask[i & 3]) | bits[i & 3];
 
     /* we need 9 or more empty positions, one for the padding byte  */
@@ -233,9 +233,9 @@ void CSHA::Finish(CAICHHash& Hash)
     else    /* compute a word index for the empty buffer positions  */
         i = (i >> 2) + 1;
 
-    while(i < 14) /* and zero pad all but last two positions      */ 
+    while(i < 14) /* and zero pad all but last two positions      */
         m_nBuffer[i++] = 0;
-    
+
     /* assemble the eight byte counter in in big-endian format		*/
     m_nBuffer[14] = swap_b32((m_nCount[1] << 3) | (m_nCount[0] >> 29));
     m_nBuffer[15] = swap_b32(m_nCount[0] << 3);
diff --git a/src/SHA.h b/src/SHA.h
index 9712410..8854c44 100644
--- a/src/SHA.h
+++ b/src/SHA.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/SHAHashSet.cpp b/src/SHAHashSet.cpp
index 00733cc..3583396 100644
--- a/src/SHAHashSet.cpp
+++ b/src/SHAHashSet.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -62,14 +62,14 @@ void CAICHHash::Read(CFileDataIO* file)
 
 
 void CAICHHash::Write(CFileDataIO* file) const
-{ 
+{
 	file->Write(m_abyBuffer,HASHSIZE);
 }
 
 unsigned int CAICHHash::DecodeBase32(const wxString &base32)
 {
-	return ::DecodeBase32(base32, HASHSIZE, m_abyBuffer);	
-}	
+	return ::DecodeBase32(base32, HASHSIZE, m_abyBuffer);
+}
 
 
 /////////////////////////////////////////////////////////////////////////////////////////
@@ -97,11 +97,11 @@ CAICHHashTree::~CAICHHashTree()
 CAICHHashTree* CAICHHashTree::FindHash(uint64 nStartPos, uint64 nSize, uint8* nLevel)
 {
 	(*nLevel)++;
-	
+
 	wxCHECK(*nLevel <= 22, NULL);
 	wxCHECK(nStartPos + nSize <= m_nDataSize, NULL);
 	wxCHECK(nSize <= m_nDataSize, NULL);
-	
+
 	if (nStartPos == 0 && nSize == m_nDataSize) {
 		// this is the searched hash
 		return this;
@@ -110,7 +110,7 @@ CAICHHashTree* CAICHHashTree::FindHash(uint64 nStartPos, uint64 nSize, uint8* nL
 		wxFAIL;
 		return NULL;
 	} else {
-		uint64 nBlocks = m_nDataSize / m_nBaseSize + ((m_nDataSize % m_nBaseSize != 0 )? 1:0); 
+		uint64 nBlocks = m_nDataSize / m_nBaseSize + ((m_nDataSize % m_nBaseSize != 0 )? 1:0);
 		uint64 nLeft = (((m_bIsLeftBranch) ? nBlocks+1:nBlocks) / 2)* m_nBaseSize;
 		uint64 nRight = m_nDataSize - nLeft;
 		if (nStartPos < nLeft) {
@@ -118,13 +118,13 @@ CAICHHashTree* CAICHHashTree::FindHash(uint64 nStartPos, uint64 nSize, uint8* nL
 				wxFAIL;
 				return NULL;
 			}
-			
+
 			if (m_pLeftTree == NULL) {
 				m_pLeftTree = new CAICHHashTree(nLeft, true, (nLeft <= PARTSIZE) ? EMBLOCKSIZE : PARTSIZE);
 			} else {
 				wxASSERT( m_pLeftTree->m_nDataSize == nLeft );
 			}
-			
+
 			return m_pLeftTree->FindHash(nStartPos, nSize, nLevel);
 		} else {
 			nStartPos -= nLeft;
@@ -132,13 +132,13 @@ CAICHHashTree* CAICHHashTree::FindHash(uint64 nStartPos, uint64 nSize, uint8* nL
 				wxFAIL;
 				return NULL;
 			}
-			
+
 			if (m_pRightTree == NULL) {
 				m_pRightTree = new CAICHHashTree(nRight, false, (nRight <= PARTSIZE) ? EMBLOCKSIZE : PARTSIZE);
 			} else {
-				wxASSERT( m_pRightTree->m_nDataSize == nRight ); 
+				wxASSERT( m_pRightTree->m_nDataSize == nRight );
 			}
-			
+
 			return m_pRightTree->FindHash(nStartPos, nSize, nLevel);
 		}
 	}
@@ -193,7 +193,7 @@ bool CAICHHashTree::VerifyHashTree(CAICHHashAlgo* hashalg, bool bDeleteBadTrees)
 		AddDebugLogLineN(logSHAHashSet, wxT("VerifyHashTree - No masterhash available"));
 		return false;
 	}
-	
+
 		// calculated missing hashs without overwriting anything
 		if (m_pLeftTree && !m_pLeftTree->m_bHashValid) {
 			m_pLeftTree->ReCalculateHash(hashalg, true);
@@ -201,7 +201,7 @@ bool CAICHHashTree::VerifyHashTree(CAICHHashAlgo* hashalg, bool bDeleteBadTrees)
 		if (m_pRightTree && !m_pRightTree->m_bHashValid) {
 			m_pRightTree->ReCalculateHash(hashalg, true);
 		}
-		
+
 		if ((m_pRightTree && m_pRightTree->m_bHashValid) ^ (m_pLeftTree && m_pLeftTree->m_bHashValid)) {
 			// one branch can never be verified
 			if (bDeleteBadTrees) {
@@ -217,15 +217,15 @@ bool CAICHHashTree::VerifyHashTree(CAICHHashAlgo* hashalg, bool bDeleteBadTrees)
 			AddDebugLogLineN(logSHAHashSet, wxT("VerifyHashSet failed - Hashtree incomplete"));
 			return false;
 		}
-	if ((m_pRightTree && m_pRightTree->m_bHashValid) && (m_pLeftTree && m_pLeftTree->m_bHashValid)) {			
-	    // check verify the hashs of both child nodes against my hash 
-	
+	if ((m_pRightTree && m_pRightTree->m_bHashValid) && (m_pLeftTree && m_pLeftTree->m_bHashValid)) {
+	    // check verify the hashs of both child nodes against my hash
+
 		CAICHHash CmpHash;
 		hashalg->Reset();
 		hashalg->Add(m_pLeftTree->m_Hash.GetRawHash(), HASHSIZE);
 		hashalg->Add(m_pRightTree->m_Hash.GetRawHash(), HASHSIZE);
 		hashalg->Finish(CmpHash);
-		
+
 		if (m_Hash != CmpHash) {
 			if (bDeleteBadTrees) {
 				if (m_pLeftTree) {
@@ -256,7 +256,7 @@ void CAICHHashTree::SetBlockHash(uint64 nSize, uint64 nStartPos, CAICHHashAlgo*
 		AddDebugLogLineN(logSHAHashSet, wxT("Critical Error: Failed to Insert SHA-HashBlock, FindHash() failed!"));
 		return;
 	}
-	
+
 	//sanity
 	if (pToInsert->m_nBaseSize != EMBLOCKSIZE || pToInsert->m_nDataSize != nSize) {
 		wxFAIL;
@@ -273,7 +273,7 @@ bool CAICHHashTree::CreatePartRecoveryData(uint64 nStartPos, uint64 nSize, CFile
 {
 	wxCHECK(nStartPos + nSize <= m_nDataSize, false);
 	wxCHECK(nSize <= m_nDataSize, false);
-	
+
 	if (nStartPos == 0 && nSize == m_nDataSize) {
 		// this is the searched part, now write all blocks of this part
 		// hashident for this level will be adjsuted by WriteLowestLevelHash
@@ -285,8 +285,8 @@ bool CAICHHashTree::CreatePartRecoveryData(uint64 nStartPos, uint64 nSize, CFile
 	} else {
 		wHashIdent <<= 1;
 		wHashIdent |= (m_bIsLeftBranch) ? 1: 0;
-		
-		uint64 nBlocks = m_nDataSize / m_nBaseSize + ((m_nDataSize % m_nBaseSize != 0 )? 1:0); 
+
+		uint64 nBlocks = m_nDataSize / m_nBaseSize + ((m_nDataSize % m_nBaseSize != 0 )? 1:0);
 		uint64 nLeft = ( ((m_bIsLeftBranch) ? nBlocks+1:nBlocks) / 2)* m_nBaseSize;
 		uint64 nRight = m_nDataSize - nLeft;
 		if (m_pLeftTree == NULL || m_pRightTree == NULL) {
@@ -319,14 +319,14 @@ void CAICHHashTree::WriteHash(CFileDataIO* fileDataOut, uint32 wHashIdent, bool
 	wxASSERT( m_bHashValid );
 	wHashIdent <<= 1;
 	wHashIdent |= (m_bIsLeftBranch) ? 1: 0;
-	
+
 	if (!b32BitIdent) {
 		wxASSERT( wHashIdent <= 0xFFFF );
 		fileDataOut->WriteUInt16((uint16)wHashIdent);
 	} else {
 		fileDataOut->WriteUInt32(wHashIdent);
 	}
-	
+
 	m_Hash.Write(fileDataOut);
 }
 
@@ -344,7 +344,7 @@ bool CAICHHashTree::WriteLowestLevelHashs(CFileDataIO* fileDataOut, uint32 wHash
 			} else if (!bNoIdent && b32BitIdent) {
 				fileDataOut->WriteUInt32(wHashIdent);
 			}
-			
+
 			m_Hash.Write(fileDataOut);
 			return true;
 		} else {
@@ -366,10 +366,10 @@ bool CAICHHashTree::LoadLowestLevelHashs(CFileDataIO* fileInput)
 	if (m_nDataSize <= m_nBaseSize) { // sanity
 		// lowest level, read hash
 		m_Hash.Read(fileInput);
-		m_bHashValid = true; 
+		m_bHashValid = true;
 		return true;
 	} else {
-		uint64 nBlocks = m_nDataSize / m_nBaseSize + ((m_nDataSize % m_nBaseSize != 0 )? 1:0); 
+		uint64 nBlocks = m_nDataSize / m_nBaseSize + ((m_nDataSize % m_nBaseSize != 0 )? 1:0);
 		uint64 nLeft = ( ((m_bIsLeftBranch) ? nBlocks+1:nBlocks) / 2)* m_nBaseSize;
 		uint64 nRight = m_nDataSize - nLeft;
 		if (m_pLeftTree == NULL) {
@@ -380,7 +380,7 @@ bool CAICHHashTree::LoadLowestLevelHashs(CFileDataIO* fileInput)
 		if (m_pRightTree == NULL) {
 			m_pRightTree = new CAICHHashTree(nRight, false, (nRight <= PARTSIZE) ? EMBLOCKSIZE : PARTSIZE);
 		} else {
-			wxASSERT( m_pRightTree->m_nDataSize == nRight ); 
+			wxASSERT( m_pRightTree->m_nDataSize == nRight );
 		}
 		return m_pLeftTree->LoadLowestLevelHashs(fileInput)
 				&& m_pRightTree->LoadLowestLevelHashs(fileInput);
@@ -407,12 +407,12 @@ bool CAICHHashTree::SetHash(CFileDataIO* fileInput, uint32 wHashIdent, sint8 nLe
 	if (nLevel == 0) {
 		// this is the searched hash
 		if (m_bHashValid && !bAllowOverwrite) {
-			// not allowed to overwrite this hash, however move the filepointer by reading a hash
-			CAICHHash(file);
+			// not allowed to overwrite this hash, however move the filepointer as if we read a hash
+			fileInput->Seek(HASHSIZE, wxFromCurrent);
 			return true;
 		}
 		m_Hash.Read(fileInput);
-		m_bHashValid = true; 
+		m_bHashValid = true;
 		return true;
 	} else if (m_nDataSize <= m_nBaseSize) { // sanity
 		// this is already the last level, cant go deeper
@@ -422,7 +422,7 @@ bool CAICHHashTree::SetHash(CFileDataIO* fileInput, uint32 wHashIdent, sint8 nLe
 		// adjust ident to point the path to the next node
 		wHashIdent <<= 1;
 		nLevel--;
-		uint64 nBlocks = m_nDataSize / m_nBaseSize + ((m_nDataSize % m_nBaseSize != 0 )? 1:0); 
+		uint64 nBlocks = m_nDataSize / m_nBaseSize + ((m_nDataSize % m_nBaseSize != 0 )? 1:0);
 		uint64 nLeft = ( ((m_bIsLeftBranch) ? nBlocks+1:nBlocks) / 2)* m_nBaseSize;
 		uint64 nRight = m_nDataSize - nLeft;
 		if ((wHashIdent & 0x80000000) > 0) {
@@ -436,7 +436,7 @@ bool CAICHHashTree::SetHash(CFileDataIO* fileInput, uint32 wHashIdent, sint8 nLe
 			if (m_pRightTree == NULL) {
 				m_pRightTree = new CAICHHashTree(nRight, false, (nRight <= PARTSIZE) ? EMBLOCKSIZE : PARTSIZE);
 			} else {
-				wxASSERT( m_pRightTree->m_nDataSize == nRight ); 
+				wxASSERT( m_pRightTree->m_nDataSize == nRight );
 			}
 			return m_pRightTree->SetHash(fileInput, wHashIdent, nLevel);
 		}
@@ -532,14 +532,14 @@ bool CAICHHashSet::ReadRecoveryData(uint64 nPartStartPos, CMemFile* fileDataIn)
 		wxFAIL;
 		return false;
 	}
-	
+
 	/* V2 AICH Hash Packet:
 		<count1 uint16>											16bit-hashs-to-read
 		(<identifier uint16><hash HASHSIZE>)[count1]			AICH hashs
 		<count2 uint16>											32bit-hashs-to-read
 		(<identifier uint32><hash HASHSIZE>)[count2]			AICH hashs
 	*/
-	
+
 	// at this time we check the recoverydata for the correct ammounts of hashs only
 	// all hash are then taken into the tree, depending on there hashidentifier (except the masterhash)
 
@@ -579,7 +579,7 @@ bool CAICHHashSet::ReadRecoveryData(uint64 nPartStartPos, CMemFile* fileDataIn)
 // TODO:			theApp->QueueDebugLogLine(/*DLP_VERYHIGH,*/ false, _T("Failed to read RecoveryData for %s - Received datasize/amounts of hashs was invalid (2)"), m_pOwner->GetFileName() );
 			return false;
 		}
-		
+
 // TODO: DEBUG_ONLY( theApp->QueueDebugLogLine(/*DLP_VERYHIGH,*/ false, _T("read RecoveryData for %s - Received packet with  %u 32bit hash identifiers)"), m_pOwner->GetFileName(), nHashsAvailable ) );
 		for (uint32 i = 0; i != nHashsToRead; i++) {
 			uint32 wHashIdent = fileDataIn->ReadUInt32();
@@ -593,7 +593,7 @@ bool CAICHHashSet::ReadRecoveryData(uint64 nPartStartPos, CMemFile* fileDataIn)
 			}
 		}
 	}
-	
+
 	if (nHashsAvailable == 0) {
 // TODO:		theApp->QueueDebugLogLine(/*DLP_VERYHIGH,*/ false, _T("Failed to read RecoveryData for %s - Packet didn't contained any hashs"), m_pOwner->GetFileName() );
 		return false;
@@ -622,7 +622,6 @@ bool CAICHHashSet::ReadRecoveryData(uint64 nPartStartPos, CMemFile* fileDataIn)
 }
 
 // this function is only allowed to be called right after successfully calculating the hashset (!)
-// will delete the hashset, after saving to free the memory
 bool CAICHHashSet::SaveHashSet()
 {
 	if (m_eStatus != AICH_HASHSETCOMPLETE) {
@@ -652,7 +651,7 @@ bool CAICHHashSet::SaveHashSet()
 				AddDebugLogLineC(logSHAHashSet, wxT("Saving failed: Current file is not a met-file!"));
 				return false;
 			}
-			
+
 			AddDebugLogLineN(logSHAHashSet, CFormat(wxT("Met file is version 0x%2.2x.")) % header);
 		} else {
 			file.WriteUInt8(KNOWN2_MET_VERSION);
@@ -701,8 +700,7 @@ bool CAICHHashSet::SaveHashSet()
 		AddDebugLogLineC(logSHAHashSet, wxT("IO error while saving AICH HashSet: ") + e.what());
 		return false;
 	}
-			
-	FreeHashSet();
+
 	return true;
 }
 
@@ -732,8 +730,8 @@ bool CAICHHashSet::LoadHashSet()
 		if (header != KNOWN2_MET_VERSION) {
 			AddDebugLogLineC(logSHAHashSet, wxT("Loading failed: Current file is not a met-file!"));
 			return false;
-		}		
-		
+		}
+
 		CAICHHash CurrentHash;
 		uint64 nExistingSize = file.GetLength();
 		uint32 nHashCount;
@@ -825,7 +823,7 @@ bool CAICHHashSet::VerifyHashTree(bool bDeleteBadTrees)
 void CAICHHashSet::SetFileSize(uint64 nSize)
 {
 	m_pHashTree.m_nDataSize = nSize;
-	m_pHashTree.m_nBaseSize = (nSize <= PARTSIZE) ? EMBLOCKSIZE : PARTSIZE;	
+	m_pHashTree.m_nBaseSize = (nSize <= PARTSIZE) ? EMBLOCKSIZE : PARTSIZE;
 }
 
 
@@ -876,7 +874,7 @@ void CAICHHashSet::UntrustedHashReceived(const CAICHHash& Hash, uint32 dwFromIP)
 		//trusted
 		AddDebugLogLineN(logSHAHashSet,
 			CFormat(wxT("AICH Hash received (%sadded), We have now %u hash(es) from %u unique IP(s). ")
-			   		wxT("We trust the Hash %s from %u client(s) (%u%%). File: %s"))
+					wxT("We trust the Hash %s from %u client(s) (%u%%). File: %s"))
 				% (bAdded ? wxT("") : wxT("not "))
 				% m_aUntrustedHashs.size()
 				% nSigningIPsTotal
@@ -884,7 +882,7 @@ void CAICHHashSet::UntrustedHashReceived(const CAICHHash& Hash, uint32 dwFromIP)
 				% nMostTrustedIPs
 				% ((100 * nMostTrustedIPs) / nSigningIPsTotal)
 				% m_pOwner->GetFileName());
-			
+
 		SetStatus(AICH_TRUSTED);
 		if (!HasValidMasterHash() || GetMasterHash() != m_aUntrustedHashs[nMostTrustedPos].m_Hash) {
 			SetMasterHash(m_aUntrustedHashs[nMostTrustedPos].m_Hash, AICH_TRUSTED);
@@ -902,7 +900,7 @@ void CAICHHashSet::UntrustedHashReceived(const CAICHHash& Hash, uint32 dwFromIP)
 				% nMostTrustedIPs
 				% ((100 * nMostTrustedIPs) / nSigningIPsTotal)
 				% m_pOwner->GetFileName());
-					
+
 		SetStatus(AICH_UNTRUSTED);
 		if (!HasValidMasterHash() || GetMasterHash() != m_aUntrustedHashs[nMostTrustedPos].m_Hash) {
 			SetMasterHash(m_aUntrustedHashs[nMostTrustedPos].m_Hash, AICH_UNTRUSTED);
@@ -957,7 +955,7 @@ CAICHRequestedData CAICHHashSet::GetAICHReqDetails(const  CUpDownClient* pClient
 		if (it->m_pClient.GetClient() == pClient) {
 			return *(it);
 		}
-	}	
+	}
 	wxFAIL;
 	CAICHRequestedData empty;
 	return empty;
@@ -1013,7 +1011,7 @@ void CAICHHashSet::DbgTest()
 	uint64 i;
 	for (i = 0; i+9728000 < TESTSIZE; i += 9728000) {
 		VERIFY( CreatePartRecoveryData(i, &file) );
-		
+
 		/*uint32 nRandomCorruption = (rand() * rand()) % (file.GetLength()-4);
 		file.Seek(nRandomCorruption, CFile::begin);
 		file.Write(&nRandomCorruption, 4);*/
diff --git a/src/SHAHashSet.h b/src/SHAHashSet.h
index 795f4fc..6746417 100644
--- a/src/SHAHashSet.h
+++ b/src/SHAHashSet.h
@@ -18,13 +18,13 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //
 
-/* 
+/*
  SHA hashset basically exists of 1 Tree for all Parts (9.28MB) + n Trees
  for all blocks (180KB) while n is the number of Parts.
  This means it is NOT a complete hashtree, since the 9.28MB is a given level, in order
@@ -38,7 +38,7 @@
 Example tree:
 	FileSize: 19506000 Bytes = 18,6 MB
 
-              X(18,6 MB)                               		MasterHash
+              X(18,6 MB)						MasterHash
              /          \
           X(18,55)       \
          /        \       \
@@ -60,10 +60,10 @@ position (since the first node is always seen as left).
 Example
 
     x                   0000000000000001
-   / \		
+   / \
   x   \			0000000000000011
  / \   \
-x  _X_  x 	        0000000000000110
+x  _X_  x	        0000000000000110
 
 
 Version 2 of AICH also supports 32bit identifiers to support large files, check CAICHHashSet::CreatePartRecoveryData
@@ -101,13 +101,13 @@ class CUpDownClient;
 
 /////////////////////////////////////////////////////////////////////////////////////////
 ///CAICHHash
-class CAICHHash 
+class CAICHHash
 {
 private:
 	byte m_abyBuffer[HASHSIZE];
 
 public:
-	CAICHHash() 				{ memset(m_abyBuffer, 0, HASHSIZE); }
+	CAICHHash()				{ memset(m_abyBuffer, 0, HASHSIZE); }
 	CAICHHash(CFileDataIO* file)		{ Read(file); }
 	CAICHHash(byte* data)			{ Read(data); }
 	CAICHHash(const CAICHHash& k1)		{ *this = k1; }
@@ -133,7 +133,7 @@ public:
 
 /////////////////////////////////////////////////////////////////////////////////////////
 ///CAICHHashAlgo
-class CAICHHashAlgo 
+class CAICHHashAlgo
 {
 public:
 	virtual ~CAICHHashAlgo() {};
@@ -156,7 +156,7 @@ private:
 	bool m_bHashValid;	// the hash is valid and not empty
 	CAICHHashTree* m_pLeftTree;
 	CAICHHashTree* m_pRightTree;
-	
+
 public:
 	CAICHHashTree(uint64 nDataSize, bool bLeftBranch, uint64 nBaseSize);
 	~CAICHHashTree();
@@ -166,7 +166,7 @@ public:
 	uint64 GetNBaseSize() const		{ return m_nBaseSize; }
 	bool GetIsLeftBranch() const		{ return m_bIsLeftBranch; }
 	bool GetHashValid() const		{ return m_bHashValid; }
-	
+
 	void SetBlockHash(uint64 nSize, uint64 nStartPos, CAICHHashAlgo* pHashAlg);
 	bool ReCalculateHash(CAICHHashAlgo* hashalg, bool bDontReplace );
 	bool VerifyHashTree(CAICHHashAlgo* hashalg, bool bDeleteBadTrees);
@@ -197,7 +197,7 @@ public:
 		m_Hash = k1.m_Hash ;
 		return *this;
 	}
-	bool AddSigningIP(uint32 dwIP);	
+	bool AddSigningIP(uint32 dwIP);
 
 	CAICHHash m_Hash;
 	std::set<uint32> m_adwIpsSigning;
@@ -226,7 +226,7 @@ public:
 
 
 using namespace std;
-	
+
 typedef std::list<CAICHRequestedData> CAICHRequestedDataList;
 
 /////////////////////////////////////////////////////////////////////////////////////////
@@ -237,11 +237,11 @@ private:
 	CKnownFile* m_pOwner;
 	EAICHStatus m_eStatus;
 	deque<CAICHUntrustedHash> m_aUntrustedHashs;
-	
+
 public:
 	static CAICHRequestedDataList m_liRequestedData;
 	CAICHHashTree m_pHashTree;
-	
+
 	CAICHHashSet(CKnownFile* pOwner);
 	~CAICHHashSet(void);
 	bool CreatePartRecoveryData(uint64 nPartStartPos, CFileDataIO* fileDataOut, bool bDbgDontLoad = false);
@@ -252,11 +252,11 @@ public:
 	bool IsPartDataAvailable(uint64 nPartStartPos);
 	void SetStatus(EAICHStatus bNewValue)	{ m_eStatus = bNewValue; }
 	EAICHStatus GetStatus()	const		{ return m_eStatus; }
-	
+
 	void FreeHashSet();
 	void SetFileSize(uint64 nSize);
-	
-	CAICHHash& GetMasterHash()		{ return m_pHashTree.m_Hash; } 
+
+	CAICHHash& GetMasterHash()		{ return m_pHashTree.m_Hash; }
 	void SetMasterHash(const CAICHHash& Hash, EAICHStatus eNewStatus);
 	bool HasValidMasterHash()		{ return m_pHashTree.m_bHashValid; }
 
@@ -269,7 +269,7 @@ public:
 	static bool IsClientRequestPending(const CPartFile* pForFile, uint16 nPart);
 	static CAICHRequestedData GetAICHReqDetails(const  CUpDownClient* pClient);
 	void DbgTest();
-	
+
 	void SetOwner(CKnownFile* owner)	{ m_pOwner = owner; }
 };
 
diff --git a/src/SafeFile.cpp b/src/SafeFile.cpp
index 4b63bb5..064f2fe 100644
--- a/src/SafeFile.cpp
+++ b/src/SafeFile.cpp
@@ -17,22 +17,20 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //
 
-#include "SafeFile.h"				// Interface declarations.
-#include "MD4Hash.h"				// Needed for CMD4Hash
+#include "SafeFile.h"			// Interface declarations.
+#include "MD4Hash.h"			// Needed for CMD4Hash
 #include "kademlia/utils/UInt128.h"	// Needed for CUInt128
-#include "ScopedPtr.h"				// Needed for CScopedPtr and CScopedArray
+#include "ScopedPtr.h"			// Needed for CScopedPtr and CScopedArray
 #include "Logger.h"
-#include <common/Format.h>	// Needed for CFormat
+#include <common/Format.h>		// Needed for CFormat
+#include "CompilerSpecific.h"		// Needed for __FUNCTION__
 
-#if defined(__SUNPRO_CC)
-#define __FUNCTION__ __FILE__+__LINE__
-#endif
 
 #define CHECK_BOM(size, x) ((size >= 3)  && (x[0] == (char)0xEF) && (x[1] == (char)0xBB) && (x[2] == (char)0xBF))
 
@@ -52,7 +50,7 @@ CIOFailureException::CIOFailureException(const wxString& desc)
 
 CIOFailureException::CIOFailureException(const wxString& type, const wxString& desc)
 	: CSafeIOException(wxT("IOFailure::") + type, desc) {}
-	
+
 
 ///////////////////////////////////////////////////////////////////////////////
 // CFileDataIO
@@ -104,25 +102,25 @@ uint64 CFileDataIO::Seek(sint64 offset, wxSeekMode from) const
 		case wxFromStart:
 			newpos = offset;
 			break;
-			
+
 		case wxFromCurrent:
 			newpos = GetPosition() + offset;
 			break;
-			
+
 		case wxFromEnd:
 			newpos = GetLength() + offset;
 			break;
-			
+
 		default:
 			MULE_VALIDATE_PARAMS(false, wxT("Invalid seek-mode specified."));
 	}
-	
+
 	MULE_VALIDATE_PARAMS(newpos >= 0, wxT("Position after seeking would be less than zero!"));
 
 	sint64 result = doSeek(newpos);
 	MULE_VALIDATE_STATE(result >= 0, wxT("Seeking resulted in invalid offset."));
 	MULE_VALIDATE_STATE(result == newpos, wxT("Target position and actual position disagree."));
-	
+
 	return result;
 }
 
@@ -140,7 +138,7 @@ uint16 CFileDataIO::ReadUInt16() const
 {
 	uint16 value = 0;
 	Read(&value, sizeof(uint16));
-	
+
 	return ENDIAN_SWAP_16(value);
 }
 
@@ -149,7 +147,7 @@ uint32 CFileDataIO::ReadUInt32() const
 {
 	uint32 value = 0;
 	Read(&value, sizeof(uint32));
-	
+
 	return ENDIAN_SWAP_32(value);
 }
 
@@ -158,7 +156,7 @@ uint64 CFileDataIO::ReadUInt64() const
 {
 	uint64 value = 0;
 	Read(&value, sizeof(uint64));
-	
+
 	return ENDIAN_SWAP_64(value);
 }
 
@@ -200,10 +198,10 @@ unsigned char* CFileDataIO::ReadBsob(uint8* puSize) const
 	MULE_VALIDATE_PARAMS(puSize, wxT("NULL pointer argument in ReadBsob"));
 
 	*puSize = ReadUInt8();
-	
+
 	CScopedArray<unsigned char> bsob(*puSize);
 	Read(bsob.get(), *puSize);
-	
+
 	return bsob.release();
 }
 
@@ -214,15 +212,15 @@ wxString CFileDataIO::ReadString(bool bOptUTF8, uint8 SizeLen, bool SafeRead) co
 	switch (SizeLen) {
 		case sizeof(uint16):	readLen = ReadUInt16();	break;
 		case sizeof(uint32):	readLen = ReadUInt32();	break;
-			
+
 		default:
 			MULE_VALIDATE_PARAMS(false, wxT("Invalid SizeLen value in ReadString"));
-	}	
+	}
 
 	if (SafeRead) {
 		readLen = std::min<uint64>(readLen, GetLength() - GetPosition());
 	}
-	
+
 	return ReadOnlyString(bOptUTF8, readLen);
 }
 
@@ -234,12 +232,12 @@ wxString CFileDataIO::ReadOnlyString(bool bOptUTF8, uint16 raw_len) const
 	// we wont be returning anything
 	std::vector<char> val_array(raw_len + 1);
 	val_array[raw_len] = 0;
-		
+
 	char* val = &(val_array[0]);
 
 	Read(val, raw_len);
 	wxString str;
-	
+
 	if (CHECK_BOM(raw_len, val)) {
 		// This is a UTF8 string with a BOM header, skip header.
 		str = UTF82unicode(val + 3);
@@ -267,7 +265,7 @@ void CFileDataIO::WriteUInt8(uint8 value)
 void CFileDataIO::WriteUInt16(uint16 value)
 {
 	ENDIAN_SWAP_I_16(value);
-	
+
 	Write(&value, sizeof(uint16));
 }
 
@@ -275,7 +273,7 @@ void CFileDataIO::WriteUInt16(uint16 value)
 void CFileDataIO::WriteUInt32(uint32 value)
 {
 	ENDIAN_SWAP_I_32(value);
-	
+
 	Write(&value, sizeof(uint32));
 }
 
@@ -283,7 +281,7 @@ void CFileDataIO::WriteUInt32(uint32 value)
 void CFileDataIO::WriteUInt64(uint64 value)
 {
 	ENDIAN_SWAP_I_64(value);
-	
+
 	Write(&value, sizeof(uint64));
 }
 
@@ -332,8 +330,8 @@ void CFileDataIO::WriteString(const wxString& str, EUtf8Str eEncode, uint8 SizeL
 		}
 		default: {
 			// Non UTF-8 strings are saved as Latin-1
-			wxCharBuffer s1 = wxConvISO8859_1.cWC2MB(str);
-			WriteStringCore(s1, utf8strNone, SizeLen);			
+			wxCharBuffer s1 = str.mb_str(wxConvISO8859_1);
+			WriteStringCore(s1, utf8strNone, SizeLen);
 		}
 	}
 }
@@ -353,7 +351,7 @@ void CFileDataIO::WriteStringCore(const char *s, EUtf8Str eEncode, uint8 SizeLen
 		case 0:
 			// Don't write size.
 			break;
-			
+
 		case sizeof(uint16):
 			// We must not allow too long strings to be written,
 			// as this would allow for a buggy clients to "poison"
@@ -369,18 +367,18 @@ void CFileDataIO::WriteStringCore(const char *s, EUtf8Str eEncode, uint8 SizeLen
 					sLength = real_length;
 				}
 			}
-			
+
 			WriteUInt16(real_length);
 			break;
-			
+
 		case sizeof(uint32):
 			WriteUInt32(real_length);
 			break;
-			
+
 		default:
 			MULE_VALIDATE_PARAMS(false, wxT("Invalid length for string-length field."));
-	}		
-		
+	}
+
 	// The BOM header must be written even if the string is empty.
 	if (eEncode == utf8strOptBOM) {
 		Write(BOMHeader, 3);
@@ -405,22 +403,22 @@ CTag *CFileDataIO::ReadTag(bool bOptACP) const
 
 		switch (type)
 		{
-			// NOTE: This tag data type is accepted and stored only to give us the possibility to upgrade 
+			// NOTE: This tag data type is accepted and stored only to give us the possibility to upgrade
 			// the net in some months.
 			//
 			// And still.. it doesnt't work this way without breaking backward compatibility. To properly
 			// do this without messing up the network the following would have to be done:
-			//	 -	those tag types have to be ignored by any client, otherwise those tags would also be sent (and 
+			//	 -	those tag types have to be ignored by any client, otherwise those tags would also be sent (and
 			//		that's really the problem)
 			//
 			//	 -	ignoring means, each client has to read and right throw away those tags, so those tags get
 			//		get never stored in any tag list which might be sent by that client to some other client.
 			//
-			//	 -	all calling functions have to be changed to deal with the 'nr. of tags' attribute (which was 
-			//		already parsed) correctly.. just ignoring those tags here is not enough, any taglists have to 
-			//		be built with the knowledge that the 'nr. of tags' attribute may get decreased during the tag 
+			//	 -	all calling functions have to be changed to deal with the 'nr. of tags' attribute (which was
+			//		already parsed) correctly.. just ignoring those tags here is not enough, any taglists have to
+			//		be built with the knowledge that the 'nr. of tags' attribute may get decreased during the tag
 			//		reading..
-			// 
+			//
 			// If those new tags would just be stored and sent to remote clients, any malicious or just bugged
 			// client could let send a lot of nodes "corrupted" packets...
 			//
@@ -454,7 +452,7 @@ CTag *CFileDataIO::ReadTag(bool bOptACP) const
 				retVal = new CTagFloat(name, ReadFloat());
 				break;
 
-			// NOTE: This tag data type is accepted and stored only to give us the possibility to upgrade 
+			// NOTE: This tag data type is accepted and stored only to give us the possibility to upgrade
 			// the net in some months.
 			//
 			// And still.. it doesnt't work this way without breaking backward compatibility
@@ -462,7 +460,7 @@ CTag *CFileDataIO::ReadTag(bool bOptACP) const
 			{
 				uint8 size = 0;
 				CScopedArray<unsigned char> value(ReadBsob(&size));
-				
+
 				retVal = new CTagBsob(name, value.get(), size);
 				break;
 			}
@@ -478,7 +476,7 @@ CTag *CFileDataIO::ReadTag(bool bOptACP) const
 		AddLogLineN(e);
 		throw;
 	}
-	
+
 	return retVal;
 }
 
@@ -501,14 +499,14 @@ void CFileDataIO::WriteTag(const CTag& tag)
 	try
 	{
 		WriteUInt8(tag.GetType());
-		
+
 		if (!tag.GetName().IsEmpty()) {
 			WriteString(tag.GetName(),utf8strNone);
 		} else {
 			WriteUInt16(1);
 			WriteUInt8(tag.GetNameID());
 		}
-		
+
 		switch (tag.GetType())
 		{
 			case TAGTYPE_HASH16:
@@ -548,7 +546,7 @@ void CFileDataIO::WriteTag(const CTag& tag)
 				AddLogLineNS(CFormat(wxT("CFileDataIO::WriteTag: Unknown tag: type=0x%02X")) % tag.GetType());
 				wxFAIL;
 				break;
-		}				
+		}
 	} catch (...) {
 		AddLogLineNS(wxT("Exception in CDataIO:WriteTag"));
 		throw;
@@ -560,10 +558,10 @@ void CFileDataIO::WriteTagPtrList(const TagPtrList& tagList)
 {
 	uint32 count = tagList.size();
 	wxASSERT( count <= 0xFF );
-	
+
 	WriteUInt8(count);
 	TagPtrList::const_iterator it;
-	for (it = tagList.begin(); it != tagList.end(); it++) {
+	for (it = tagList.begin(); it != tagList.end(); ++it) {
 		WriteTag(**it);
 	}
 }
@@ -571,11 +569,11 @@ void CFileDataIO::WriteTagPtrList(const TagPtrList& tagList)
 uint64 CFileDataIO::GetIntTagValue() const {
 
 	uint8 type = ReadUInt8();
-	
-	ReadString(false);	
-	
+
+	ReadString(false);
+
 	switch (type) {
-		
+
 		case TAGTYPE_UINT64:
 			return ReadUInt64();
 			break;
@@ -591,7 +589,7 @@ uint64 CFileDataIO::GetIntTagValue() const {
 		case TAGTYPE_UINT8:
 			return ReadUInt8();
 			break;
-		
+
 		default:
 			throw wxString(wxT("Wrong tag type reading int tag"));
 	}
diff --git a/src/SafeFile.h b/src/SafeFile.h
index f1ec893..723900b 100644
--- a/src/SafeFile.h
+++ b/src/SafeFile.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -43,7 +43,7 @@ class CMD4Hash;
  *
  * Basic IO operations will either succeed or throw an exception,
  * so that failure cannot be ignored. There are currently 3 types
- * of failures: Read past EOF, errors while reading, and errors 
+ * of failures: Read past EOF, errors while reading, and errors
  * while writing.
  *
  * Beyond basic IO, the interface provides functions for reading
@@ -63,13 +63,13 @@ public:
 	 * for safe deletion objects via CFileDataIO pointers.
 	 */
 	virtual ~CFileDataIO();
-	
-	
+
+
 	/**
 	 * Must return the current position in the file.
 	 */
 	virtual uint64 GetPosition() const = 0;
-	
+
 	/**
 	 * Must return the length of the file-object in bytes.
 	 */
@@ -80,17 +80,17 @@ public:
 	 */
 	virtual bool Eof() const;
 
-	
+
 	/**
 	 * Changes the file position.
 	 *
 	 * Note that seeking to an negative position is an illegal operation.
-	 * 
+	 *
 	 * @see wxFile::Seek
 	 */
 	virtual uint64 Seek(sint64 offset, wxSeekMode from = wxFromStart) const;
 
- 
+
 	/**
 	 * Reads 'count' bytes into 'buffer'.
 	 *
@@ -103,8 +103,8 @@ public:
 	 * the position and target buffer is left unchanged.
 	 *
 	 * However, it is also possible that the read will
-	 * fail due to IO errors (bad hardware, ect), in which 
-	 * case an CIOFailureException will be thrown. 
+	 * fail due to IO errors (bad hardware, ect), in which
+	 * case an CIOFailureException will be thrown.
 	 */
 	virtual void Read(void* buffer, size_t count) const;
 
@@ -121,8 +121,8 @@ public:
 	 */
 	virtual void Write(const void* buffer, size_t count);
 
-	
-	/**	
+
+	/**
 	 * Reads the given type from the file, stored as little-endian.
 	 *
 	 * @see CSafeFileIO::Read
@@ -140,7 +140,7 @@ public:
 
 	/**
 	 * Reads a string from the file.
-	 * 
+	 *
 	 * @param bOptUTF8 Specifies if the string is UTF8 encoded.
 	 * @param lenBytes The number of bytes used to store the string length.
 	 * @param SafeRead Avoids throwing CEOFException, see below.
@@ -152,7 +152,7 @@ public:
 	 *
 	 * @see CSafeFileIO::Read
 	 */
- 	virtual wxString	ReadString(bool bOptUTF8, uint8 lenBytes = 2, bool SafeRead = false) const;
+	virtual wxString	ReadString(bool bOptUTF8, uint8 lenBytes = 2, bool SafeRead = false) const;
 
 	/**
 	 * Reads a string from the file, where the length is specified directly.
@@ -166,10 +166,10 @@ public:
 	 */
 	virtual wxString	ReadOnlyString(bool bOptUTF8, uint16 length) const;
 
-	
+
 	/**
 	 * Writes a value of the given type to the file, storing it as little-endian.
-	 *	
+	 *
 	 * @see CSafeFileIO::Write
 	 */
 	//@{
@@ -180,9 +180,9 @@ public:
 	virtual void WriteUInt128(const CUInt128& value);
 	virtual void WriteHash(const CMD4Hash& value);
 	virtual void WriteFloat(float value);
-	virtual void WriteBsob( const unsigned char* val, uint8 size);	
+	virtual void WriteBsob( const unsigned char* val, uint8 size);
 	//@}
-	
+
 	/**
 	 * Writes a text-string to the file.
 	 *
@@ -209,7 +209,7 @@ public:
 	uint64		GetIntTagValue() const;
 
 /* Some functions I added for simplicity */
-	// Very obvious 
+	// Very obvious
 	bool IsEmpty() { return (GetLength() == 0); }
 
 	// Appends to the end
@@ -223,7 +223,7 @@ protected:
 	 * @param count The number of bytes to read / written.
 	 * @return The number of bytes read / written or -1 in case of errors.
 	 *
-	 * Note that the return value must be the actual number of bytes 
+	 * Note that the return value must be the actual number of bytes
 	 * read or written, with the exception that in case of errors, -1
 	 * may be returned. This is because the return value is used to
 	 * detect if the operation succeded.
@@ -252,7 +252,7 @@ protected:
 private:
 	/**
 	 * Helper-function that does the actual writing of the string.
-	 * 
+	 *
 	 * @param str The string to be written.
 	 * @param encoding The encoding of the string.
 	 * @param lenBytes The number of bytes used to store the string length.
@@ -274,7 +274,7 @@ struct CSafeIOException : public CMuleException
 
 
 /**
- * This exception is thrown when attempts are 
+ * This exception is thrown when attempts are
  * made at reading past the end of the file.
  *
  * This typically happens when a invalid packet
@@ -282,7 +282,7 @@ struct CSafeIOException : public CMuleException
  * is not fatal.
  */
 struct CEOFException : public CSafeIOException {
-	CEOFException(const wxString& desc);	
+	CEOFException(const wxString& desc);
 };
 
 
diff --git a/src/Scanner.cpp b/src/Scanner.cpp
index cb3a773..549e416 100644
--- a/src/Scanner.cpp
+++ b/src/Scanner.cpp
@@ -9,7 +9,7 @@
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 33
+#define YY_FLEX_SUBMINOR_VERSION 35
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -31,7 +31,7 @@
 
 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
 
-#if __STDC_VERSION__ >= 199901L
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  * if you want the limit (max/min) macros for int types. 
@@ -94,11 +94,12 @@ typedef unsigned int flex_uint32_t;
 
 #else	/* ! __cplusplus */
 
-#if __STDC__
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
 
 #define YY_USE_CONST
 
-#endif	/* __STDC__ */
+#endif	/* defined (__STDC__) */
 #endif	/* ! __cplusplus */
 
 #ifdef YY_USE_CONST
@@ -178,14 +179,9 @@ extern FILE *yyin, *yyout;
 
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-
 #ifndef YY_TYPEDEF_YY_SIZE_T
 #define YY_TYPEDEF_YY_SIZE_T
-typedef unsigned int yy_size_t;
+typedef size_t yy_size_t;
 #endif
 
 #ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -565,6 +561,7 @@ char *yytext;
 #endif
 
 #ifdef _DEBUG
+#define new DEBUG_NEW
 #undef THIS_FILE
 static char THIS_FILE[] = __FILE__;
 #endif
@@ -592,10 +589,8 @@ static char* _pszLexStr;
  * down here because we want the user's section 1 to have been scanned first.
  * The user has a chance to override it with an option.
  */
-#ifndef _MSC_VER
 #include <unistd.h>
 #endif
-#endif
 
 #ifndef YY_EXTRA_TYPE
 #define YY_EXTRA_TYPE void *
@@ -603,6 +598,35 @@ static char* _pszLexStr;
 
 static int yy_init_globals (void );
 
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+int yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
  */
@@ -645,7 +669,7 @@ static int input (void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -656,7 +680,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		size_t n; \
+		int n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -738,10 +762,10 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 36 "./Scanner.l"
+#line 40 "./Scanner.l"
 
 
-#line 740 "Scanner.cpp"
+#line 769 "Scanner.cpp"
 
 	if ( !(yy_init) )
 		{
@@ -826,27 +850,27 @@ do_action:	/* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 38 "./Scanner.l"
+#line 42 "./Scanner.l"
 { /* Skip blanks. */ }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 39 "./Scanner.l"
+#line 43 "./Scanner.l"
 { return TOK_OR; }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 40 "./Scanner.l"
+#line 44 "./Scanner.l"
 { return TOK_AND; }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 41 "./Scanner.l"
+#line 45 "./Scanner.l"
 { return TOK_NOT; }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 43 "./Scanner.l"
+#line 47 "./Scanner.l"
 {
 					yylval.pstr = new wxString(UTF82unicode(yytext));
 					return TOK_ED2K_LINK;
@@ -855,7 +879,7 @@ YY_RULE_SETUP
 case 6:
 /* rule 6 can match eol */
 YY_RULE_SETUP
-#line 48 "./Scanner.l"
+#line 52 "./Scanner.l"
 {
 					yylval.pstr = new wxString(UTF82unicode(yytext));
 					return TOK_STRING;
@@ -863,7 +887,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 53 "./Scanner.l"
+#line 57 "./Scanner.l"
 {
 					int l = 128;
 					char* psz = (char*)malloc(l);
@@ -939,11 +963,13 @@ YY_RULE_SETUP
 						} else {
 							if ((unsigned char)c >= 0x80/* && IsDBCSLeadByte(yytext[0]) */){
 								psz[i++] = (unsigned char)c;
-								if (i >= l){
-									psz = (char*)realloc(psz, l += 128);
-									if (psz == NULL){
+								if (i >= l) {
+									char *tmp = (char*)realloc(psz, l += 128);
+									if (tmp == NULL){
 										yyerror("Less memory for string");
 										break;
+									} else {
+										psz = tmp;
 									}
 								}
 								c = yyinput();
@@ -951,11 +977,13 @@ YY_RULE_SETUP
 						}
 
 						psz[i++] = (unsigned char)c;
-						if (i >= l){
-							psz = (char*)realloc(psz, l += 128);
-							if (psz == NULL){
+						if (i >= l) {
+							char *tmp = (char*)realloc(psz, l += 128);
+							if (tmp == NULL){
 								yyerror("Less memory for string");
 								break;
+							} else {
+								psz = tmp;
 							}
 						}
 					}
@@ -967,15 +995,15 @@ YY_RULE_SETUP
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 154 "./Scanner.l"
+#line 162 "./Scanner.l"
 { return yytext[0]; }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 156 "./Scanner.l"
+#line 164 "./Scanner.l"
 ECHO;
 	YY_BREAK
-#line 974 "Scanner.cpp"
+#line 1007 "Scanner.cpp"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -1206,7 +1234,7 @@ static int yy_get_next_buffer (void)
 
 		/* Read in more data. */
 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
+			(yy_n_chars), (size_t) num_to_read );
 
 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
@@ -1230,6 +1258,14 @@ static int yy_get_next_buffer (void)
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
 	(yy_n_chars) += number_to_move;
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -1645,7 +1681,9 @@ static void yyensure_buffer_stack (void)
 		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
 								(num_to_alloc * sizeof(struct yy_buffer_state*)
 								);
-		
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 				
 		(yy_buffer_stack_max) = num_to_alloc;
@@ -1663,6 +1701,8 @@ static void yyensure_buffer_stack (void)
 								((yy_buffer_stack),
 								num_to_alloc * sizeof(struct yy_buffer_state*)
 								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
 
 		/* zero only the new slots.*/
 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -1707,7 +1747,7 @@ YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
 
 /** Setup the input buffer state to scan a string. The next call to yylex() will
  * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
+ * @param yystr a NUL-terminated string to scan
  * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
@@ -1961,14 +2001,14 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 156 "./Scanner.l"
+#line 164 "./Scanner.l"
 
 
 
 static void ReadLexBuff(char* pcBuff, int& riResult, size_t uMaxSize)
 {
 	wxASSERT( _pszLexBuff != NULL );
-	
+
 	if (_pszLexBuff == NULL) {
 		YY_FATAL_ERROR("Input in flex scanner failed");
 	}
@@ -1999,7 +2039,7 @@ void LexInit(const wxString& pszInput)
 void LexFree()
 {
 	yylex_destroy();
-	
+
 	yyleng = 0;
 	yytext = NULL;
 	yyin = NULL;
@@ -2011,7 +2051,7 @@ void LexFree()
 	yy_did_buffer_switch_on_eof = 0;
 	yy_last_accepting_state = 0;
 	yy_last_accepting_cpos = NULL;
-	
+
 #if YY_STACK_USED
 	yy_start_stack_ptr = 0;
 	yy_start_stack_depth = 0;
diff --git a/src/Scanner.h b/src/Scanner.h
index 95d9dc7..e52986c 100644
--- a/src/Scanner.h
+++ b/src/Scanner.h
@@ -1 +1,321 @@
-// Empty file generated by a flex version unable to create headers
+#ifndef yyHEADER_H
+#define yyHEADER_H 1
+#define yyIN_HEADER 1
+
+#line 6 "./Scanner.h"
+
+#line 8 "./Scanner.h"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 35
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+extern int yyleng;
+
+extern FILE *yyin, *yyout;
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	int yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+/* Begin user sect3 */
+
+#define yywrap(n) 1
+#define YY_SKIP_YYWRAP
+
+extern int yylineno;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+#ifdef YY_HEADER_EXPORT_START_CONDITIONS
+#define INITIAL 0
+
+#endif
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+int yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+#undef YY_NEW_FILE
+#undef YY_FLUSH_BUFFER
+#undef yy_set_bol
+#undef yy_new_buffer
+#undef yy_set_interactive
+#undef YY_DO_BEFORE_ACTION
+
+#ifdef YY_DECL_IS_OURS
+#undef YY_DECL_IS_OURS
+#undef YY_DECL
+#endif
+
+#line 164 "./Scanner.l"
+
+
+#line 320 "./Scanner.h"
+#undef yyIN_HEADER
+#endif /* yyHEADER_H */
diff --git a/src/Scanner.l b/src/Scanner.l
index e5c655b..7301741 100644
--- a/src/Scanner.l
+++ b/src/Scanner.l
@@ -129,11 +129,13 @@ keywordchar		[^ \"()]
 						} else {
 							if ((unsigned char)c >= 0x80/* && IsDBCSLeadByte(yytext[0]) */){
 								psz[i++] = (unsigned char)c;
-								if (i >= l){
-									psz = (char*)realloc(psz, l += 128);
-									if (psz == NULL){
+								if (i >= l) {
+									char *tmp = (char*)realloc(psz, l += 128);
+									if (tmp == NULL){
 										yyerror("Less memory for string");
 										break;
+									} else {
+										psz = tmp;
 									}
 								}
 								c = yyinput();
@@ -141,11 +143,13 @@ keywordchar		[^ \"()]
 						}
 
 						psz[i++] = (unsigned char)c;
-						if (i >= l){
-							psz = (char*)realloc(psz, l += 128);
-							if (psz == NULL){
+						if (i >= l) {
+							char *tmp = (char*)realloc(psz, l += 128);
+							if (tmp == NULL){
 								yyerror("Less memory for string");
 								break;
+							} else {
+								psz = tmp;
 							}
 						}
 					}
@@ -162,7 +166,7 @@ keywordchar		[^ \"()]
 static void ReadLexBuff(char* pcBuff, int& riResult, size_t uMaxSize)
 {
 	wxASSERT( _pszLexBuff != NULL );
-	
+
 	if (_pszLexBuff == NULL) {
 		YY_FATAL_ERROR("Input in flex scanner failed");
 	}
@@ -193,7 +197,7 @@ void LexInit(const wxString& pszInput)
 void LexFree()
 {
 	yylex_destroy();
-	
+
 	yyleng = 0;
 	yytext = NULL;
 	yyin = NULL;
@@ -205,7 +209,7 @@ void LexFree()
 	yy_did_buffer_switch_on_eof = 0;
 	yy_last_accepting_state = 0;
 	yy_last_accepting_cpos = NULL;
-	
+
 #if YY_STACK_USED
 	yy_start_stack_ptr = 0;
 	yy_start_stack_depth = 0;
diff --git a/src/ScopedPtr.h b/src/ScopedPtr.h
index e3985d6..2754e6c 100644
--- a/src/ScopedPtr.h
+++ b/src/ScopedPtr.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -32,8 +32,8 @@
  * CScopedPtr is a simple smart pointer.
  *
  * This class is a replacement for std::auto_ptr, with simpler
- * copying schematics, in that it doesn't allow copying or 
- * assignment, compared to auto_ptr, which allows only one 
+ * copying schematics, in that it doesn't allow copying or
+ * assignment, compared to auto_ptr, which allows only one
  * instance to own a pointer (swapping at assignment).
  */
 template <typename TYPE>
@@ -159,7 +159,7 @@ public:
 		m_ptr = new STL_CONTAINER;
 	}
 
-	~CScopedContainer()	
+	~CScopedContainer()
 	{
 		if (m_ptr) {
 			DeleteContents(*m_ptr);
diff --git a/src/SearchDlg.cpp b/src/SearchDlg.cpp
index 531e543..53c7c6e 100644
--- a/src/SearchDlg.cpp
+++ b/src/SearchDlg.cpp
@@ -393,7 +393,7 @@ bool CSearchDlg::CheckTabNameExists(const wxString& searchString)
 
 void CSearchDlg::CreateNewTab(const wxString& searchString, wxUIntPtr nSearchID)
 {
-	CSearchListCtrl* list = new CSearchListCtrl( (wxWindow*)m_notebook, ID_SEARCHLISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxNO_BORDER);
+	CSearchListCtrl* list = new CSearchListCtrl(m_notebook, ID_SEARCHLISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxNO_BORDER);
 	m_notebook->AddPage(list, searchString, true, 0);
 
 	// Ensure that new results are filtered
diff --git a/src/SearchDlg.h b/src/SearchDlg.h
index 0bc2a53..6b5ff0b 100644
--- a/src/SearchDlg.h
+++ b/src/SearchDlg.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,7 +42,7 @@ class CSearchFile;
 
 
 /**
- * This class represents the Search Dialog, which takes care of 
+ * This class represents the Search Dialog, which takes care of
  * enabling the user to search and to display results in a readable
  * manner.
  */
@@ -72,11 +72,11 @@ public:
 
 	/**
 	 * Updates a changed result.
-	 * 
+	 *
 	 * @param A pointer to the updated CSearchFile.
 	 *
 	 * This function will update the source-count and color of the result, and
-	 * if needed, it will also move the result so that the current sorting 
+	 * if needed, it will also move the result so that the current sorting
 	 * is maintained.
 	 */
 	void UpdateResult(CSearchFile* toupdate);
@@ -131,24 +131,24 @@ public:
 	void		OnBnClickedDownload(wxCommandEvent& ev);
 
 	CSearchListCtrl* GetSearchList( wxUIntPtr id );
-	
+
 	void	UpdateProgress(uint32 new_value);
 
 	void	StartNewSearch();
-	
+
 	void FixSearchTypes();
-	
+
 private:
 	// Event handlers
 	void		OnFieldChanged(wxEvent& evt);
-	
+
 	void		OnListItemSelected(wxListEvent& ev);
 	void		OnBnClickedReset(wxCommandEvent& ev);
 	void		OnBnClickedClear(wxCommandEvent& ev);
 	void		OnExtendedSearchChange(wxCommandEvent& ev);
 	void		OnFilterCheckChange(wxCommandEvent& ev);
 	void		OnFilteringChange(wxCommandEvent& ev);
-	
+
 	void		OnSearchClosing(wxBookCtrlEvent& evt);
 
 	void		OnBnClickedStart(wxCommandEvent& evt);
@@ -159,9 +159,9 @@ private:
 	 * Event-handler for page-chages which takes care of enabling/disabling the download button.
 	 */
 	void		OnSearchPageChanged(wxBookCtrlEvent& evt);
-	
+
 	uint32		m_last_search_time;
-	
+
 	wxGauge*	m_progressbar;
 
 	CMuleNotebook*	m_notebook;
diff --git a/src/SearchExpr.h b/src/SearchExpr.h
index efcdf87..ef3c7f4 100644
--- a/src/SearchExpr.h
+++ b/src/SearchExpr.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -47,8 +47,8 @@ public:
 	{
 		Add(pszString);
 	}
-	
-	void Add(ESearchOperators eOperator) 
+
+	void Add(ESearchOperators eOperator)
 	{
 		if (eOperator == SEARCHOP_AND) {
 			m_aExpr.Add(SEARCHOPTOK_AND);
@@ -60,7 +60,7 @@ public:
 			m_aExpr.Add(SEARCHOPTOK_NOT);
 		}
 	}
-	
+
 	void Add(const wxString& pszString)
 	{
 		m_aExpr.Add(pszString);
@@ -73,16 +73,21 @@ public:
 			m_aExpr.Add(pexpr->m_aExpr[i]);
 		}
 	}
-	
+
 	void Concatenate(const wxString& pstrString)
 	{
 		wxASSERT( m_aExpr.GetCount() == 1 );
 		m_aExpr[0] += ' ';
 		m_aExpr[0] += pstrString;
 	}
-	
+
 	wxArrayString m_aExpr;
 };
 
+#ifdef _MSC_VER
+#define YY_NO_UNISTD_H
+#define DEBUG_NEW new
+#endif
+
 #endif
 // File_checked_for_headers
diff --git a/src/SearchFile.cpp b/src/SearchFile.cpp
index 4bbb6c1..31c2c41 100644
--- a/src/SearchFile.cpp
+++ b/src/SearchFile.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -59,7 +59,7 @@ CSearchFile::CSearchFile(const CMemFile& data, bool optUTF8, wxUIntPtr searchID,
 		m_clientID = 0;
 		m_clientPort = 0;
 	}
-	
+
 	uint32 tagcount = data.ReadUInt32();
 	for (unsigned int i = 0; i < tagcount; ++i) {
 		CTag tag(data, optUTF8);
@@ -72,7 +72,7 @@ CSearchFile::CSearchFile(const CMemFile& data, bool optUTF8, wxUIntPtr searchID,
 				break;
 			case FT_FILESIZE_HI:
 				SetFileSize((((uint64)tag.GetInt()) << 32) + GetFileSize());
-				break;				
+				break;
 			case FT_FILERATING:
 				m_iUserRating = (tag.GetInt() & 0xF) / 3;
 				break;
@@ -118,7 +118,7 @@ CSearchFile::CSearchFile(const CSearchFile& other)
 
 
 CSearchFile::~CSearchFile()
-{	
+{
 	for (size_t i = 0; i < m_children.size(); ++i) {
 		delete m_children.at(i);
 	}
@@ -188,7 +188,7 @@ void CSearchFile::AddChild(CSearchFile* file)
 	wxCHECK_RET(!GetParent(), wxT("A child cannot have children of its own"));
 	wxCHECK_RET(GetFileHash() == file->GetFileHash(), wxT("Mismatching child/parent hashes"));
 	wxCHECK_RET(GetFileSize() == file->GetFileSize(), wxT("Mismatching child/parent sizes"));
-	
+
 	// If no children exists, then we add the current item.
 	if (GetChildren().empty()) {
 		// Merging duplicate names instead of adding a new one
@@ -218,10 +218,10 @@ void CSearchFile::AddChild(CSearchFile* file)
 		}
 	}
 
-	// New unique child.	
+	// New unique child.
 	m_children.push_back(file);
 	UpdateParent();
-	
+
 	if (ShowChildren()) {
 		Notify_Search_Add_Result(file);
 	}
@@ -318,7 +318,7 @@ void CSearchFile::SetDownloadStatus()
 		m_downloadStatus = NEW;
 	}
 	// Update status of children too
-	for (CSearchResultList::iterator it = m_children.begin(); it != m_children.end(); it++) {
+	for (CSearchResultList::iterator it = m_children.begin(); it != m_children.end(); ++it) {
 		Notify_Search_Update_Sources(*it);
 	}
 }
diff --git a/src/SearchFile.h b/src/SearchFile.h
index ba7a947..9f7eb39 100644
--- a/src/SearchFile.h
+++ b/src/SearchFile.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,16 +39,16 @@ typedef std::vector<CSearchFile*> CSearchResultList;
 
 /**
  * Represents a search-result returned from a server or client.
- * 
+ *
  * A file may have either a parent or any number of children.
  * When a child is added to a result, the parent becomes a generic
  * representation of all its children, which will include a copy
  * of the original result. The parent object will contain the sum
- * of sources (total/complete) and will have the most common 
+ * of sources (total/complete) and will have the most common
  * filename. Children are owned by their parents, and can be
  * displayed on CSearchListCtrl.
- * 
- * Basic file parameters (hash, name, size, rating) can be read 
+ *
+ * Basic file parameters (hash, name, size, rating) can be read
  * via the CAbstractFile functions. Tags pertaining to meta-data
  * are stored in the taglist inherited from CAbstractFile.
  *
@@ -56,19 +56,19 @@ typedef std::vector<CSearchFile*> CSearchResultList;
  * TODO: Client ID/Port are currently not used.
  */
 class CSearchFile : public CAbstractFile, public CECID
-{	
+{
 public:
 	/** Constructor used to create results on the remote GUI. */
-	CSearchFile(class CEC_SearchFile_Tag* tag);
+	CSearchFile(const class CEC_SearchFile_Tag* tag);
 	/** Copy constructor, also copies children. */
 	CSearchFile(const CSearchFile& other);
-	
+
 	/**
 	 * Normal constructor, reads a result from a packet.
 	 *
 	 * @param data Source of results-packet.
 	 * @param optUTF8 Specifies if text-strings are to be read as UTF8.
-	 * @param searchID searchID The 
+	 * @param searchID searchID The
 	 * @param serverIP The IP of the server that sent this result.
 	 * @param serverPort The port of the server that sent this result.
 	 * @param directory If from a clients shared files, the directory this file is in.
@@ -83,11 +83,11 @@ public:
 		const wxString& directory = wxEmptyString,
 		bool kademlia = false);
 
-	
+
 	/** Frees all children owned by this file. */
 	virtual ~CSearchFile();
 
-	
+
 	/**
 	 * Merges the two results into one.
 	 *
@@ -122,7 +122,7 @@ public:
 	void SetDownloadStatus();
 	/** Set download status directly. */
 	void SetDownloadStatus(enum DownloadStatus s)	{ m_downloadStatus = s; }
-		
+
 	/** Returns the parent of this file. */
 	CSearchFile *GetParent() const			{ return m_parent; }
 	/** Returns the list of children belonging to this file. */
@@ -133,12 +133,12 @@ public:
 	bool ShowChildren() const				{ return m_showChildren; }
 	/** Enable/Disable displaying of children (set in CSearchListCtrl). */
 	void SetShowChildren(bool show)			{ m_showChildren = show; }
-	
+
 	/**
 	 * Adds the given file as a child of this file.
 	 *
 	 * Note that a file can either be a parent _or_
-	 * a child, but not both. Also note that it is 
+	 * a child, but not both. Also note that it is
 	 * only legal to add children whose filesize and
 	 * filehash matches the parent's. AddChild takes
 	 * ownership of the file.
@@ -189,7 +189,7 @@ private:
 	 * of fileratings is set, based on files that have a rating only.
 	 */
 	void	UpdateParent();
-	
+
 	//! The parent of this result.
 	CSearchFile*		m_parent;
 	//! Any children this result may have.
diff --git a/src/SearchList.cpp b/src/SearchList.cpp
index 8d35a1a..32b28e9 100644
--- a/src/SearchList.cpp
+++ b/src/SearchList.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,7 +38,7 @@
 #include "ServerList.h"		// Needed for theApp->serverlist
 #include "Statistics.h"		// Needed for theStats
 #include "ObservableQueue.h"// Needed for CQueueObserver
-#include <common/Format.h>	
+#include <common/Format.h>
 #include "Logger.h"			// Needed for AddLogLineM/...
 #include "Packet.h"			// Needed for CPacket
 #include "GuiEvents.h"		// Needed for Notify_*
@@ -105,7 +105,7 @@ void ParsedSearchExpression(const CSearchExpr* pexpr)
 	}
 
 	_SearchExpr.m_aExpr.Empty();
-	
+
 	// optimize search expression, if no OR nor NOT specified
 	if (iOpAnd > 0 && iOpOr == 0 && iOpNot == 0) {
 		wxString strAndTerms;
@@ -125,7 +125,7 @@ void ParsedSearchExpression(const CSearchExpr* pexpr)
 		wxASSERT( _SearchExpr.m_aExpr.GetCount() == 0);
 		_SearchExpr.m_aExpr.Add(strAndTerms);
 	} else {
-		if (pexpr->m_aExpr.GetCount() != 1 || pexpr->m_aExpr[0] != s_strCurKadKeyword)			
+		if (pexpr->m_aExpr.GetCount() != 1 || pexpr->m_aExpr[0] != s_strCurKadKeyword)
 			_SearchExpr.Add(pexpr);
 	}
 }
@@ -183,7 +183,7 @@ public:
 		m_data->WriteUInt16(sizeof(uint8));	// meta tag ID length
 		m_data->WriteUInt8(uMetaTagID);		// meta tag ID name
 	}
-	
+
 	void WriteMetaDataSearchParam(const wxString& pszMetaTagID, const wxString& rstrValue)
 	{
 		m_data->WriteUInt8(2);				// string parameter type
@@ -247,14 +247,14 @@ END_EVENT_TABLE()
 
 
 CSearchList::CSearchList()
-	: m_searchTimer(this, 0 /* Timer-id doesn't matter. */ ), 
+	: m_searchTimer(this, 0 /* Timer-id doesn't matter. */ ),
 	  m_searchType(LocalSearch),
 	  m_searchInProgress(false),
 	  m_currentSearch(-1),
 	  m_searchPacket(NULL),
-	  m_64bitSearchPacket(false)
-{
-}
+	  m_64bitSearchPacket(false),
+	  m_KadSearchFinished(true)
+{}
 
 
 CSearchList::~CSearchList()
@@ -271,15 +271,15 @@ void CSearchList::RemoveResults(long searchID)
 {
 	// A non-existant search id will just be ignored
 	Kademlia::CSearchManager::StopSearch(searchID, true);
-	
+
 	ResultMap::iterator it = m_results.find(searchID);
 	if ( it != m_results.end() ) {
 		CSearchResultList& list = it->second;
-	
+
 		for (size_t i = 0; i < list.size(); ++i) {
 			delete list.at(i);
 		}
-	
+
 		m_results.erase( it );
 	}
 }
@@ -293,7 +293,7 @@ wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CS
 	} else if ((type != KadSearch) && !theApp->IsConnectedED2K()) {
 		return _("eD2k search can't be done if eD2k is not connected");
 	}
-	
+
 	if (params.typeText != ED2KFTSTR_PROGRAM) {
 		if (params.typeText.CmpNoCase(wxT("Any"))) {
 			m_resultType = params.typeText;
@@ -301,7 +301,7 @@ wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CS
 			m_resultType.Clear();
 		}
 	} else {
-		// No check is to be made on returned results if the 
+		// No check is to be made on returned results if the
 		// type is 'Programs', since this returns multiple types.
 		m_resultType.Clear();
 	}
@@ -311,25 +311,25 @@ wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CS
 
 	// This MemFile is automatically free'd
 	CMemFilePtr data = CreateSearchData(params, type, supports64bit, packetUsing64bit);
-	
+
 	if (data.get() == NULL) {
 		wxASSERT(_astrParserErrors.GetCount());
 		wxString error;
-		
+
 		for (unsigned int i = 0; i < _astrParserErrors.GetCount(); ++i) {
 			error += _astrParserErrors[i] + wxT("\n");
 		}
-		
+
 		return error;
 	}
-	
+
 	m_searchType = type;
 	if (type == KadSearch) {
 		try {
 			if (*searchID == 0xffffffff) {
 				Kademlia::CSearchManager::StopSearch(0xffffffff, false);
 			}
-		
+
 			// searchstring will get tokenized there
 			// The tab must be created with the Kad search ID, so searchID is updated.
 			Kademlia::CSearch* search = Kademlia::CSearchManager::PrepareFindKeywords(
@@ -340,15 +340,15 @@ wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CS
 			m_KadSearchFinished = false;
 		} catch (const wxString& what) {
 			AddLogLineC(what);
-			return _("Unexpected error while attempting Kad search: ") + what;				
+			return _("Unexpected error while attempting Kad search: ") + what;
 		}
 	} else {
 		// This is an ed2k search, local or global
 		m_currentSearch = *(searchID);
 		m_searchInProgress = true;
-	
+
 		CPacket* searchPacket = new CPacket(*data.get(), OP_EDONKEYPROT, OP_SEARCHREQUEST);
-		
+
 		theStats::AddUpOverheadServer(searchPacket->GetPacketSize());
 		theApp->serverconnect->SendPacket(searchPacket, (type == LocalSearch));
 
@@ -368,11 +368,11 @@ void CSearchList::LocalSearchEnd()
 {
 	if (m_searchType == GlobalSearch) {
 		wxCHECK_RET(m_searchPacket, wxT("Global search, but no packet"));
-		
-		// Ensure that every global search starts over.	
+
+		// Ensure that every global search starts over.
 		theApp->serverlist->RemoveObserver(&m_serverQueue);
 		m_searchTimer.Start(750);
- 	} else {
+	} else {
 		m_searchInProgress = false;
 		Notify_SearchLocalEnd();
 	}
@@ -390,15 +390,15 @@ uint32 CSearchList::GetSearchProgress() const
 		// No search, no progress ;)
 		return 0;
 	}
-	
+
 	switch (m_searchType) {
 		case LocalSearch:
 			return 0xffff;
 
 		case GlobalSearch:
-			return 100 - (m_serverQueue.GetRemaining() * 100) 
+			return 100 - (m_serverQueue.GetRemaining() * 100)
 					/ theApp->serverlist->GetServerCount();
-		
+
 		default:
 			wxFAIL;
 	}
@@ -413,7 +413,7 @@ void CSearchList::OnGlobalSearchTimer(CTimerEvent& WXUNUSED(evt))
 		// This was a pending event, handled after 'Stop' was pressed.
 		return;
 	} else if (!m_serverQueue.IsActive()) {
-		theApp->serverlist->AddObserver(&m_serverQueue);		
+		theApp->serverlist->AddObserver(&m_serverQueue);
 	}
 
 	// UDP requests must not be sent to this server.
@@ -464,17 +464,17 @@ void CSearchList::OnGlobalSearchTimer(CTimerEvent& WXUNUSED(evt))
 				return;
 			}
 		}
-	}	
+	}
 	// No more servers left to ask.
 	StopSearch(true);
 }
 
 
-void CSearchList::ProcessSharedFileList(const byte* in_packet, uint32 size, 
+void CSearchList::ProcessSharedFileList(const byte* in_packet, uint32 size,
 	CUpDownClient* sender, bool *moreResultsAvailable, const wxString& directory)
 {
 	wxCHECK_RET(sender, wxT("No sender in search-results from client."));
-	
+
 	long searchID = reinterpret_cast<wxUIntPtr>(sender);
 
 #ifndef AMULE_DAEMON
@@ -486,19 +486,16 @@ void CSearchList::ProcessSharedFileList(const byte* in_packet, uint32 size,
 	const CMemFile packet(in_packet, size);
 	uint32 results = packet.ReadUInt32();
 	bool unicoded = (sender->GetUnicodeSupport() != utf8strNone);
-	for (unsigned int i = 0; i != results; ++i){			
+	for (unsigned int i = 0; i != results; ++i){
 		CSearchFile* toadd = new CSearchFile(packet, unicoded, searchID, 0, 0, directory);
-		if (sender) {
-			toadd->SetClientID(sender->GetUserIDHybrid());
-			toadd->SetClientPort(sender->GetUserPort());
-		}
-
-		AddToList(toadd, true);	
+		toadd->SetClientID(sender->GetUserIDHybrid());
+		toadd->SetClientPort(sender->GetUserPort());
+		AddToList(toadd, true);
 	}
 
 	if (moreResultsAvailable)
 		*moreResultsAvailable = false;
-	
+
 	int iAddData = (int)(packet.GetLength() - packet.GetPosition());
 	if (iAddData == 1) {
 		uint8 ucMore = packet.ReadUInt8();
@@ -531,17 +528,17 @@ void CSearchList::ProcessUDPSearchAnswer(const CMemFile& packet, bool optUTF8, u
 bool CSearchList::AddToList(CSearchFile* toadd, bool clientResponse)
 {
 	const uint64 fileSize = toadd->GetFileSize();
-	// If filesize is 0, or file is too large for the network, drop it 
+	// If filesize is 0, or file is too large for the network, drop it
 	if ((fileSize == 0) || (fileSize > MAX_FILE_SIZE)) {
 		AddDebugLogLineN(logSearch,
 				CFormat(wxT("Dropped result with filesize %u: %s"))
 					% fileSize
 					% toadd->GetFileName());
-		
+
 		delete toadd;
 		return false;
 	}
-	
+
 	// If the result was not the type the user wanted, drop it.
 	if ((clientResponse == false) && !m_resultType.IsEmpty()) {
 		if (GetFileTypeByName(toadd->GetFileName()) != m_resultType) {
@@ -550,7 +547,7 @@ bool CSearchList::AddToList(CSearchFile* toadd, bool clientResponse)
 					% GetFileTypeByName(toadd->GetFileName())
 					% m_resultType
 					% toadd->GetFileName());
-			
+
 			delete toadd;
 			return false;
 		}
@@ -559,10 +556,10 @@ bool CSearchList::AddToList(CSearchFile* toadd, bool clientResponse)
 
 	// Get, or implictly create, the map of results for this search
 	CSearchResultList& results = m_results[toadd->GetSearchID()];
-	
+
 	for (size_t i = 0; i < results.size(); ++i) {
 		CSearchFile* item = results.at(i);
-		
+
 		if ((toadd->GetFileHash() == item->GetFileHash()) && (toadd->GetFileSize() == item->GetFileSize())) {
 			AddDebugLogLineN(logSearch, CFormat(wxT("Received duplicate results for '%s' : %s")) % item->GetFileName() % item->GetFileHash().Encode());
 			// Add the child, possibly updating the parents filename.
@@ -573,9 +570,9 @@ bool CSearchList::AddToList(CSearchFile* toadd, bool clientResponse)
 	}
 
 	AddDebugLogLineN(logSearch,
-		CFormat(wxT("Added new result '%s' : %s")) 
+		CFormat(wxT("Added new result '%s' : %s"))
 			% toadd->GetFileName() % toadd->GetFileHash().Encode());
-	
+
 	// New unique result, simply add and display.
 	results.push_back(toadd);
 	Notify_Search_Add_Result(toadd);
@@ -590,7 +587,7 @@ const CSearchResultList& CSearchList::GetSearchResults(long searchID) const
 	if (it != m_results.end()) {
 		return it->second;
 	}
-	
+
 	// TODO: Should we assert in this case?
 	static CSearchResultList list;
 	return list;
@@ -602,7 +599,7 @@ void CSearchList::AddFileToDownloadByHash(const CMD4Hash& hash, uint8 cat)
 	ResultMap::iterator it = m_results.begin();
 	for ( ; it != m_results.end(); ++it ) {
 		CSearchResultList& list = it->second;
-	
+
 		for ( unsigned int i = 0; i < list.size(); ++i ) {
 			if ( list[i]->GetFileHash() == hash ) {
 				CoreNotify_Search_Add_Download( list[i], cat );
@@ -655,17 +652,17 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
 		// www.filedonkey.com uses type "Pro" for CD-image files
 		typeText = ED2KFTSTR_PROGRAM;
 	}
-	
+
 	// Must write parametercount - 1 parameter headers
 	CMemFilePtr data(new CMemFile(100));
 
-	_astrParserErrors.Empty();	
+	_astrParserErrors.Empty();
 	_SearchExpr.m_aExpr.Empty();
-	
+
 	LexInit(params.searchString);
 	int iParseResult = yyparse();
 	LexFree();
-	
+
 #ifdef __DEBUG__
 	AddLogLineNS(CFormat(wxT("Search parsing result for \"%s\": %i"))
 		% params.searchString % iParseResult);
@@ -674,16 +671,16 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
 		for (unsigned int i=0; i < _astrParserErrors.GetCount(); ++i) {
 			AddLogLineNS(CFormat(wxT("Error %u: %s\n")) % i % _astrParserErrors[i]);
 		}
-		
+
 		return CMemFilePtr(NULL);
 	}
 
 	if (iParseResult != 0) {
 		_astrParserErrors.Add(CFormat(wxT("Undefined error %i on search expression")) % iParseResult);
-	
+
 		return CMemFilePtr(NULL);
 	}
-	
+
 	#ifdef __DEBUG__
 	wxString mes(wxT("Search expression:"));
 	for (unsigned int i = 0; i < _SearchExpr.m_aExpr.GetCount(); i++) {
@@ -694,11 +691,11 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
 	#endif
 
 	parametercount += _SearchExpr.m_aExpr.GetCount();
-	
+
 	#ifdef __DEBUG__
 	AddLogLineNS(CFormat(wxT("Parameters: %i")) % parametercount);
 	#endif
-	
+
 	/* Leave the unicode comment there, please... */
 	CSearchExprTarget target(data.get(), true /*I assume everyone is unicoded */ ? utf8strRaw : utf8strNone, supports64bit, packetUsing64bit);
 
@@ -706,9 +703,9 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
 	if (_SearchExpr.m_aExpr.GetCount() <= 1) {
 		// lugdunummaster requested that searchs without OR or NOT operators,
 		// and hence with no more expressions than the string itself, be sent
-		// using a series of ANDed terms, intersecting the ANDs on the terms 
-		// (but prepending them) instead of putting the boolean tree at the start 
-		// like other searches. This type of search is supposed to take less load 
+		// using a series of ANDed terms, intersecting the ANDs on the terms
+		// (but prepending them) instead of putting the boolean tree at the start
+		// like other searches. This type of search is supposed to take less load
 		// on servers. Go figure.
 		//
 		// input:      "a" AND min=1 AND max=2
@@ -729,7 +726,7 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
 			// Type is always ascii string
 			target.WriteMetaDataSearchParamASCII(FT_FILETYPE, typeText);
 		}
-		
+
 		if (params.minSize > 0) {
 			if (++iParameterCount < parametercount) {
 				target.WriteBooleanAND();
@@ -743,7 +740,7 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
 			}
 			target.WriteMetaDataSearchParam(FT_FILESIZE, ED2K_SEARCH_OP_LESS, params.maxSize);
 		}
-		
+
 		if (params.availability > 0){
 			if (++iParameterCount < parametercount) {
 				target.WriteBooleanAND();
@@ -809,11 +806,11 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
 			target.WriteMetaDataSearchParam(type == KadSearch ? TAG_MEDIA_ARTIST : FT_ED2K_MEDIA_ARTIST, artist);
 		}
 		#endif // 0
-		
-		// If this assert fails... we're seriously fucked up 
-		
+
+		// If this assert fails... we're seriously fucked up
+
 		wxASSERT( iParameterCount == parametercount );
-		
+
 	} else {
 		if (!params.extension.IsEmpty()) {
 			if (++iParameterCount < parametercount) {
@@ -826,25 +823,25 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
 				target.WriteBooleanAND();
 			}
 		}
-	  
+
 		if (params.maxSize > 0){
 			if (++iParameterCount < parametercount) {
 				target.WriteBooleanAND();
 			}
 		}
-        
+
 		if (params.minSize > 0) {
 			if (++iParameterCount < parametercount) {
 				target.WriteBooleanAND();
 			}
 		}
-        
+
 		if (!typeText.IsEmpty()){
 			if (++iParameterCount < parametercount) {
 				target.WriteBooleanAND();
 			}
 		}
-        
+
 		//#warning TODO - same as above...
 		#if 0
 		if (complete > 0){
@@ -935,30 +932,30 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
 		if (minBitrate > 0) {
 			target.WriteMetaDataSearchParam(type == KadSearch ? TAG_MEDIA_BITRATE : FT_ED2K_MEDIA_BITRATE, ED2K_SEARCH_OP_GREATER, minBitrate);
 		}
-		
+
 		if (minLength > 0) {
 			target.WriteMetaDataSearchParam(type == KadSearch ? TAG_MEDIA_LENGTH : FT_ED2K_MEDIA_LENGTH, ED2K_SEARCH_OP_GREATER, minLength);
 		}
-		
+
 		if (!codec.IsEmpty()) {
 			target.WriteMetaDataSearchParam(type == KadSearch ? TAG_MEDIA_CODEC : FT_ED2K_MEDIA_CODEC, codec);
 		}
-		
+
 		if (!title.IsEmpty()) {
 			target.WriteMetaDataSearchParam(type == KadSearch ? TAG_MEDIA_TITLE : FT_ED2K_MEDIA_TITLE, title);
 		}
-		
+
 		if (!album.IsEmpty()) {
 			target.WriteMetaDataSearchParam(type == KadSearch ? TAG_MEDIA_ALBUM : FT_ED2K_MEDIA_ALBUM, album);
 		}
-		
+
 		if (!artist.IsEmpty()) {
 			target.WriteMetaDataSearchParam(type == KadSearch ? TAG_MEDIA_ARTIST : FT_ED2K_MEDIA_ARTIST, artist);
 		}
-		
+
 		#endif // 0
 	}
-	
+
 	// Packet ready to go.
 	return data;
 }
@@ -1016,11 +1013,11 @@ void CSearchList::KademliaSearchKeyword(uint32_t searchID, const Kademlia::CUInt
 
 void CSearchList::UpdateSearchFileByHash(const CMD4Hash& hash)
 {
-	for (ResultMap::iterator it = m_results.begin(); it != m_results.end(); it++) {
+	for (ResultMap::iterator it = m_results.begin(); it != m_results.end(); ++it) {
 		CSearchResultList& results = it->second;
 		for (size_t i = 0; i < results.size(); ++i) {
 			CSearchFile* item = results.at(i);
-			
+
 			if (hash == item->GetFileHash()) {
 				// This covers only parent items,
 				// child items have to be updated separately.
diff --git a/src/SearchList.h b/src/SearchList.h
index 15c319d..35b0fc6 100644
--- a/src/SearchList.h
+++ b/src/SearchList.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -37,7 +37,7 @@ class CMD4Hash;
 class CPacket;
 class CServer;
 class CSearchFile;
-	
+
 namespace Kademlia {
 	class CUInt128;
 }
@@ -61,7 +61,7 @@ public:
 	{
 		/** Prevents accidential use of uninitialized variables. */
 		CSearchParams() { minSize = maxSize = availability = 0; }
-		
+
 		//! The actual string to search for.
 		wxString searchString;
 		//! The type of files to search for (may be empty), one of ED2KFTSTR_*
@@ -76,12 +76,12 @@ public:
 		uint32_t availability;
 	};
 
-	/** Constructor. */	
+	/** Constructor. */
 	CSearchList();
-	
+
 	/** Frees any remaining search-results. */
 	~CSearchList();
-	
+
 	/**
 	 * Starts a new search.
 	 *
@@ -89,7 +89,7 @@ public:
 	 * @param type The type of search, see SearchType.
 	 * @param params The search parameters, see CSearchParams.
 	 * @return An empty string on success, otherwise an error-message.
-	 */ 	
+	 */
 	wxString StartNewSearch(uint32* searchID, SearchType type, const CSearchParams& params);
 
 	/** Stops the current search (global or Kad), if any is in progress. */
@@ -97,7 +97,7 @@ public:
 
 	/** Returns the completion percentage of the current search. */
 	uint32 GetSearchProgress() const;
-	
+
 	/** This function is called once the local (ed2k) search has ended. */
 	void	LocalSearchEnd();
 
@@ -107,12 +107,12 @@ public:
 	 *
 	 * If the search is not valid, an empty list is returned.
 	 */
-	const 	CSearchResultList& GetSearchResults(long searchID) const;
+	const	CSearchResultList& GetSearchResults(long searchID) const;
 
 	/** Removes all results for the specified search. */
 	void	RemoveResults(long searchID);
-	
-	
+
+
 	/** Finds the search-result (by hash) and downloads it in the given category. */
 	void	AddFileToDownloadByHash(const CMD4Hash& hash, uint8 category = 0);
 
@@ -130,7 +130,7 @@ public:
 
 	/**
 	 * Processes a search-result sent via TCP from the local server. All results are added.
-	 * 
+	 *
 	 * @param packet The packet containing one or more search-results.
 	 * @param size the length of the packet.
 	 * @param optUTF8 Specifies if the server supports UTF8.
@@ -138,14 +138,14 @@ public:
 	 * @param serverPort The Port of the server sending the results.
 	 */
 	void	ProcessSearchAnswer(const uint8_t* packet, uint32_t size, bool optUTF8, uint32_t serverIP, uint16_t serverPort);
-	
+
 	/**
 	 * Processes a search-result sent via UDP. Only one result is read from the packet.
 	 *
 	 * @param packet The packet containing one or more search-results.
 	 * @param optUTF8 Specifies if the server supports UTF8.
 	 * @param serverIP The IP of the server sending the results.
-	 * @param serverPort The Port of the server sending the results. 
+	 * @param serverPort The Port of the server sending the results.
 	 */
 	void	ProcessUDPSearchAnswer(const CMemFile& packet, bool optUTF8, uint32 serverIP, uint16 serverPort);
 
@@ -162,13 +162,13 @@ public:
 	 * @param taglist List of additional tags associated with the search-result.
 	 */
 	void	KademliaSearchKeyword(uint32_t searchID, const Kademlia::CUInt128 *fileID, const wxString& name, uint64_t size, const wxString& type, uint32_t kadPublishInfo, const TagPtrList& taglist);
-	
+
 	/** Update a certain search result in all lists */
 	void UpdateSearchFileByHash(const CMD4Hash& hash);
-	
+
 	/** Mark current KAD search as finished */
 	void SetKadSearchFinished() { m_KadSearchFinished = true; }
-	
+
 private:
 	/** Event-handler for global searches. */
 	void OnGlobalSearchTimer(CTimerEvent& evt);
@@ -188,22 +188,22 @@ private:
 	//! This auto-pointer is used to safely prevent leaks.
 	typedef std::auto_ptr<CMemFile> CMemFilePtr;
 
-	/** Create a basic search-packet for the given search-type. */ 	
+	/** Create a basic search-packet for the given search-type. */
 	CMemFilePtr CreateSearchData(const CSearchParams& params, SearchType type, bool supports64bit, bool& packetUsing64bit);
-	
-	
+
+
 	//! Timer used for global search intervals.
 	CTimer	m_searchTimer;
 
 	//! The current search-type, regarding the last/current search.
-	SearchType	m_searchType; 
+	SearchType	m_searchType;
 
 	//! Specifies if a search is being performed.
 	bool		m_searchInProgress;
 
 	//! The ID of the current search.
 	long		m_currentSearch;
-	
+
 	//! The current packet used for searches.
 	CPacket*	m_searchPacket;
 
@@ -226,8 +226,8 @@ private:
 	//! Contains the results type desired in the current search.
 	//! If not empty, results of different types are filtered.
 	wxString	m_resultType;
-	
-	
+
+
 	DECLARE_EVENT_TABLE()
 };
 
diff --git a/src/SearchListCtrl.cpp b/src/SearchListCtrl.cpp
index 4830c50..2e8e9d0 100644
--- a/src/SearchListCtrl.cpp
+++ b/src/SearchListCtrl.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -44,7 +44,7 @@ BEGIN_EVENT_TABLE(CSearchListCtrl, CMuleListCtrl)
 
 	EVT_MENU( MP_GETED2KLINK,     CSearchListCtrl::OnPopupGetUrl)
 	EVT_MENU( MP_RAZORSTATS,      CSearchListCtrl::OnRazorStatsCheck)
-	EVT_MENU( MP_SEARCHRELATED,   CSearchListCtrl::OnRelatedSearch)	
+	EVT_MENU( MP_SEARCHRELATED,   CSearchListCtrl::OnRelatedSearch)
 	EVT_MENU( MP_MARK_AS_KNOWN,   CSearchListCtrl::OnMarkAsKnown)
 	EVT_MENU( MP_RESUME,          CSearchListCtrl::OnPopupDownload)
 	EVT_MENU_RANGE( MP_ASSIGNCAT, MP_ASSIGNCAT + 99, CSearchListCtrl::OnPopupDownload )
@@ -98,7 +98,7 @@ m_filterEnabled(false)
 	if ( s_lists.empty() ) {
 		// Set the name to enable loading of settings
 		SetTableName( wxT("Search") );
-	
+
 		LoadSettings();
 
 		// Unset the name to avoid the settings getting saved every time a list is closed
@@ -162,8 +162,8 @@ void CSearchListCtrl::AddResult(CSearchFile* toshow)
 				// No children left, and the parent is filtered.
 				m_filteredOut.push_back(toshow);
 				return;
-			}			
-		} else {		
+			}
+		} else {
 			m_filteredOut.push_back(toshow);
 			return;
 		}
@@ -188,7 +188,7 @@ void CSearchListCtrl::AddResult(CSearchFile* toshow)
 #ifdef __WXDEBUG__
 	{
 		if (newid > 0) {
-			CSearchFile* before = (CSearchFile*)GetItemData(newid - 1);
+			CSearchFile* before = reinterpret_cast<CSearchFile*>(GetItemData(newid - 1));
 			wxASSERT(before);
 			if (parent) {
 				wxASSERT((before->GetParent() == parent) || (before == parent));
@@ -196,9 +196,9 @@ void CSearchListCtrl::AddResult(CSearchFile* toshow)
 				wxASSERT(before->GetParent() != toshow);
 			}
 		}
-		
+
 		if ((int)newid < GetItemCount() - 1) {
-			CSearchFile* after = (CSearchFile*)GetItemData(newid + 1);
+			CSearchFile* after = reinterpret_cast<CSearchFile*>(GetItemData(newid + 1));
 			wxASSERT(after);
 			if (parent) {
 				wxASSERT((after->GetParent() == parent) || (!after->GetParent()));
@@ -254,7 +254,7 @@ void CSearchListCtrl::AddResult(CSearchFile* toshow)
 void CSearchListCtrl::RemoveResult(CSearchFile* toremove)
 {
 	ShowChildren(toremove, false);
-	
+
 	long index = FindItem(-1, reinterpret_cast<wxUIntPtr>(toremove));
 	if (index != -1) {
 		DeleteItem(index);
@@ -322,7 +322,7 @@ void CSearchListCtrl::UpdateItemColor(long index)
 	if (GetItem(item)) {
 		CMuleColour newcol(wxSYS_COLOUR_WINDOWTEXT);
 
-		CSearchFile* file = (CSearchFile*)GetItemData(index);
+		CSearchFile* file = reinterpret_cast<CSearchFile*>(GetItemData(index));
 
 		int red		= newcol.Red();
 		int green	= newcol.Green();
@@ -357,7 +357,7 @@ void CSearchListCtrl::UpdateItemColor(long index)
 		wxListItem newitem;
 		newitem.SetId( index );
 		newitem.SetTextColour( wxColour( red, green, blue ) );
-		SetItem( newitem );	
+		SetItem( newitem );
 	}
 }
 
@@ -389,20 +389,20 @@ void CSearchListCtrl::SetFilter(const wxString& regExp, bool invert, bool filter
 	} else {
 		m_filterText = regExp;
 	}
-	
+
 	m_filter.Compile(m_filterText, wxRE_DEFAULT | wxRE_ICASE);
 	m_filterKnown = filterKnown;
 	m_invert = invert;
-	
+
 	if (m_filterEnabled) {
 		// Swap the list of filtered results so we can freely add new items to the list
 		ResultList curFiltered;
 		std::swap(curFiltered, m_filteredOut);
-	
+
 		// Filter items already on the list
 		for (int i = 0; i < GetItemCount();) {
-			CSearchFile* file = (CSearchFile*)GetItemData(i);
-		
+			CSearchFile* file = reinterpret_cast<CSearchFile*>(GetItemData(i));
+
 			if (IsFiltered(file)) {
 				++i;
 			} else {
@@ -428,7 +428,7 @@ void CSearchListCtrl::EnableFiltering(bool enabled)
 {
 	if (enabled != m_filterEnabled) {
 		m_filterEnabled = enabled;
-		
+
 		if (enabled) {
 			SetFilter(m_filterText, m_invert, m_filterKnown);
 		} else {
@@ -453,7 +453,7 @@ bool CSearchListCtrl::IsFiltered(const CSearchFile* file)
 {
 	// By default, everything is displayed
 	bool result = true;
-	
+
 	if (m_filterEnabled && m_filter.IsValid()) {
 		result = m_filter.Matches(file->GetFileName().GetPrintable());
 		result = ((result && !m_invert) || (!result && m_invert));
@@ -468,8 +468,8 @@ bool CSearchListCtrl::IsFiltered(const CSearchFile* file)
 
 int CSearchListCtrl::SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData)
 {
-	CSearchFile* file1 = (CSearchFile*)item1;
-	CSearchFile* file2 = (CSearchFile*)item2;
+	CSearchFile* file1 = reinterpret_cast<CSearchFile*>(item1);
+	CSearchFile* file2 = reinterpret_cast<CSearchFile*>(item2);
 
 	// Modifies the result, 1 for ascending, -1 for decending
 	int modifier = (sortData & CMuleListCtrl::SORT_DES) ? -1 : 1;
@@ -529,7 +529,7 @@ int CSearchListCtrl::SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData)
 			result = cmp;
 			break;
 		}
-		
+
 		// Sort by file-types
 		case ID_SEARCH_COL_TYPE: {
 			result = GetFiletypeByName(file1->GetFileName()).Cmp(GetFiletypeByName(file2->GetFileName()));
@@ -545,7 +545,7 @@ int CSearchListCtrl::SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData)
 		case ID_SEARCH_COL_FILEID:
 			result = CmpAny(file2->GetFileHash(), file1->GetFileHash());
 			break;
-		
+
 		// Sort by file status
 		case ID_SEARCH_COL_STATUS:
 			result = CmpAny(DetermineStatusPrintable(file2), DetermineStatusPrintable(file1));
@@ -570,7 +570,7 @@ void CSearchListCtrl::SetSorting(unsigned column, unsigned order)
 	// First collapse all parent items
 	// Backward order means our index won't be influenced by items getting collapsed.
 	for (int i = GetItemCount(); i--;) {
-		CSearchFile* file = ((CSearchFile*)GetItemData(i));
+		CSearchFile* file = reinterpret_cast<CSearchFile*>(GetItemData(i));
 		if (file->ShowChildren()) {
 			ShowChildren(file, false);
 		}
@@ -618,19 +618,19 @@ void CSearchListCtrl::SyncOtherLists(CSearchListCtrl *src)
 void CSearchListCtrl::OnRightClick(wxListEvent& event)
 {
 	CheckSelection(event);
-	
+
 	if (GetSelectedItemCount()) {
 		// Create the popup-menu
 		wxMenu menu(_("File"));
 		menu.Append(MP_RESUME, _("Download"));
-		
+
 		wxMenu* cats = new wxMenu(_("Category"));
 		cats->Append(MP_ASSIGNCAT, _("Main"));
 		for (unsigned i = 1; i < theApp->glob_prefs->GetCatCount(); i++) {
 			cats->Append(MP_ASSIGNCAT + i,
 				theApp->glob_prefs->GetCategory(i)->title);
 		}
-		
+
 		menu.Append(MP_MENU_CATS, _("Download in category"), cats);
 		menu.AppendSeparator();
 
@@ -667,7 +667,7 @@ void CSearchListCtrl::OnColumnLClick( wxListEvent& event )
 {
 	// Let the real event handler do its work first
 	CMuleListCtrl::OnColumnLClick( event );
-	
+
 	SyncOtherLists( this );
 }
 
@@ -680,12 +680,12 @@ void CSearchListCtrl::OnColumnResize( wxListEvent& WXUNUSED(event) )
 
 void CSearchListCtrl::OnPopupGetUrl( wxCommandEvent& WXUNUSED(event) )
 {
-	wxString URIs;	
-	
+	wxString URIs;
+
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	while (index != -1) {
-		CSearchFile* file = (CSearchFile*)GetItemData( index );
+		CSearchFile* file = reinterpret_cast<CSearchFile*>(GetItemData(index));
 
 		URIs += theApp->CreateED2kLink( file ) + wxT("\n");
 
@@ -705,7 +705,7 @@ void CSearchListCtrl::OnRazorStatsCheck( wxCommandEvent& WXUNUSED(event) )
 		return;
 	}
 
-	CSearchFile* file = (CSearchFile*)GetItemData( item );
+	CSearchFile* file = reinterpret_cast<CSearchFile*>(GetItemData(item));
 	theApp->amuledlg->LaunchUrl(thePrefs::GetStatsServerURL() + file->GetFileHash().Encode());
 }
 
@@ -717,7 +717,7 @@ void CSearchListCtrl::OnRelatedSearch( wxCommandEvent& WXUNUSED(event) )
 		return;
 	}
 
-	CSearchFile* file = (CSearchFile*)GetItemData( item );
+	CSearchFile* file = reinterpret_cast<CSearchFile*>(GetItemData(item));
 	theApp->searchlist->StopSearch(true);
 	theApp->amuledlg->m_searchwnd->ResetControls();
 	CastByID( IDC_SEARCHNAME, theApp->amuledlg->m_searchwnd, wxTextCtrl )->
@@ -731,7 +731,7 @@ void CSearchListCtrl::OnMarkAsKnown( wxCommandEvent& WXUNUSED(event) )
 #ifndef CLIENT_GUI
 	long index = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
 	while (index > -1) {
-		CSearchFile *searchFile = (CSearchFile *)GetItemData(index);
+		CSearchFile *searchFile = reinterpret_cast<CSearchFile *>(GetItemData(index));
 		CKnownFile *knownFile(new CKnownFile(*searchFile));
 		theApp->knownfiles->SafeAddKFile(knownFile);
 		index = GetNextItem(index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
@@ -754,7 +754,7 @@ void CSearchListCtrl::OnPopupDownload(wxCommandEvent& event)
 
 void CSearchListCtrl::OnItemActivated(wxListEvent& event)
 {
-	CSearchFile* file = ((CSearchFile*)GetItemData(event.GetIndex()));
+	CSearchFile* file = reinterpret_cast<CSearchFile*>(GetItemData(event.GetIndex()));
 	if (file->HasChildren()) {
 		ShowChildren(file, !file->ShowChildren());
 	} else {
@@ -782,16 +782,16 @@ void CSearchListCtrl::DownloadSelected(int category)
 	if (category == -1) {
 		// Defaults to main category
 		category = 0;
-		
+
 		if (CastByID(IDC_EXTENDEDSEARCHCHECK, NULL, wxCheckBox)->GetValue()) {
 			category = CastByID(ID_AUTOCATASSIGN, NULL, wxChoice)->GetSelection();
-		}		
+		}
 	}
-	
+
 	// Process all selections
 	long index = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
 	while (index > -1) {
-		CSearchFile* file = (CSearchFile*)GetItemData(index);
+		CSearchFile* file = reinterpret_cast<CSearchFile*>(GetItemData(index));
 		CoreNotify_Search_Add_Download(file, category);
 		index = GetNextItem(index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
 	}
@@ -808,7 +808,7 @@ const wxBrush& GetBrush(wxSystemColour index)
 void CSearchListCtrl::OnDrawItem(
 	int item, wxDC* dc, const wxRect& rect, const wxRect& rectHL, bool highlighted)
 {
-	CSearchFile* file = (CSearchFile*)GetItemData(item);
+	CSearchFile* file = reinterpret_cast<CSearchFile*>(GetItemData(item));
 
 	// Define text-color and background
 	if (highlighted) {
@@ -853,10 +853,10 @@ void CSearchListCtrl::OnDrawItem(
 
 			// Make a copy of the current rectangle so we can apply specific tweaks
 			wxRect target_rec = cur_rec;
-			
+
 			// will ensure that text is about in the middle ;)
 			target_rec.y += iTextOffset;
-			
+
 			if (i == 0) {
 				if (file->HasChildren() || file->GetParent()) {
 					tree_show = (listitem.GetWidth() > 0);
@@ -873,9 +873,9 @@ void CSearchListCtrl::OnDrawItem(
 				// Check if the rating icon should be drawn
 				if (file->HasRating()) {
 					int image = Client_InvalidRating_Smiley + file->UserRating() - 1;
-					
+
 					int imgWidth = 16;
-					
+
 					theApp->amuledlg->m_imagelist.Draw(image, *dc, target_rec.GetX(),
 							target_rec.GetY() - 1, wxIMAGELIST_DRAW_TRANSPARENT);
 
@@ -884,20 +884,20 @@ void CSearchListCtrl::OnDrawItem(
 					target_rec.width -= imgWidth + 4;
 				}
 			}
-		
+
 			wxListItem cellitem;
 			cellitem.SetColumn(i);
 			cellitem.SetId(item);
 
 			// Force clipper (clip 2 px more than the rectangle from the right side)
 			wxDCClipper clipper(*dc, target_rec.x, target_rec.y, target_rec.width - 2, target_rec.height);
-			
+
 			if (GetItem(cellitem)) {
 				dc->DrawText(cellitem.GetText(), target_rec.GetX(), target_rec.GetY());
 			} else {
 				dc->DrawText(wxT("GetItem failed!"), target_rec.GetX(), target_rec.GetY());
 			}
-			
+
 			// Increment to the next column
 			cur_rec.x += listitem.GetWidth();
 		}
@@ -908,7 +908,7 @@ void CSearchListCtrl::OnDrawItem(
 		// Gather some information
 		const bool notLast = (item + 1 < GetItemCount());
 		const bool notFirst = (item != 0);
-		const bool hasNext = notLast && ((CSearchFile*)GetItemData(item + 1))->GetParent();
+		const bool hasNext = notLast && reinterpret_cast<CSearchFile*>(GetItemData(item + 1))->GetParent();
 		const int middle = cur_rec.y + ( cur_rec.height + 1 ) / 2;
 
 		// Set up a new pen for drawing the tree
@@ -928,7 +928,7 @@ void CSearchListCtrl::OnDrawItem(
 				dc->DrawLine(treeCenter, middle, treeCenter, cur_rec.y - 1);
 			}
 		} else if (file->HasChildren()) {
-		   	if (file->ShowChildren()) {
+			if (file->ShowChildren()) {
 				// Draw empty circle
 				dc->SetBrush(*wxTRANSPARENT_BRUSH);
 			} else {
@@ -950,7 +950,7 @@ void CSearchListCtrl::OnDrawItem(
 		CSearchFile* parent = file->GetParent();
 
 		if (item > 0) {
-			CSearchFile* before = (CSearchFile*)GetItemData(item - 1);
+			CSearchFile* before = reinterpret_cast<CSearchFile*>(GetItemData(item - 1));
 			wxASSERT(before);
 			if (parent) {
 				wxASSERT((before->GetParent() == parent) || (before == parent));
@@ -958,9 +958,9 @@ void CSearchListCtrl::OnDrawItem(
 				wxASSERT(before->GetParent() != file);
 			}
 		}
-		
+
 		if (item < GetItemCount() - 1) {
-			CSearchFile* after = (CSearchFile*)GetItemData(item + 1);
+			CSearchFile* after = reinterpret_cast<CSearchFile*>(GetItemData(item + 1));
 			wxASSERT(after);
 			if (parent) {
 				wxASSERT((after->GetParent() == parent) || (!after->GetParent()));
@@ -976,7 +976,7 @@ void CSearchListCtrl::OnDrawItem(
 void CSearchListCtrl::ShowChildren(CSearchFile* file, bool show)
 {
 	Freeze();
-		
+
 	file->SetShowChildren(show);
 
 	const CSearchResultList& results = file->GetChildren();
diff --git a/src/SearchListCtrl.h b/src/SearchListCtrl.h
index 8f4513d..953a415 100644
--- a/src/SearchListCtrl.h
+++ b/src/SearchListCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -27,7 +27,7 @@
 #define SEARCHLISTCTRL_H
 
 
-#include "wx/colour.h"		// Needed for wxColour
+#include <wx/colour.h>		// Needed for wxColour
 #include <wx/regex.h>		// Needed for wxRegExp
 
 #include "MuleListCtrl.h"	// Needed for CMuleListCtrl
@@ -39,12 +39,12 @@ class CSearchFile;
 
 /**
  * This class is used to display search results.
- * 
- * Results on added to the list will be colored according to 
+ *
+ * Results on added to the list will be colored according to
  * the number of sources and other parameters (see UpdateColor).
  *
  * To display results, first use the ShowResults function, which will display
- * all current results with the specified id and afterwards you can use the 
+ * all current results with the specified id and afterwards you can use the
  * AddResult function to add new results or the UpdateResult function to update
  * already present results. Please note that it is not possible to add results
  * with the AddResult function before calling ShowResults.
@@ -54,7 +54,7 @@ class CSearchListCtrl : public CMuleListCtrl
 public:
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @see CMuleListCtrl::CMuleListCtrl for documentation of parameters.
 	 */
 	 CSearchListCtrl(
@@ -65,7 +65,7 @@ public:
                 long style = wxLC_ICON,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString &name = wxT("mulelistctrl") );
-			
+
 	/**
 	 * Destructor.
 	 */
@@ -76,7 +76,7 @@ public:
 	 *
 	 * @param The new result to be shown.
 	 *
-	 * Please note that no duplicates checking is done, so the pointer should 
+	 * Please note that no duplicates checking is done, so the pointer should
 	 * point to a new file in order to avoid problems. Also note that the result
 	 * will be inserted sorted according to current sort-type, so there is no
 	 * need to resort the list after adding new items.
@@ -87,7 +87,7 @@ public:
 	 * Removes the specified file from the list.
 	 */
 	void	RemoveResult(CSearchFile* toshow);
-	
+
 	/**
 	 * Updates the specified source.
 	 *
@@ -116,12 +116,12 @@ public:
 	void UpdateItemColor(long index);
 
 	/**
-	 * Returns the current Search Id. 
+	 * Returns the current Search Id.
 	 *
 	 * @return The Search Id of the displayed results (set through ShowResults()).
 	 */
 	wxUIntPtr	GetSearchId();
-	
+
 	/**
 	 * Sets the filter which decides which results should be shown.
 	 *
@@ -137,18 +137,18 @@ public:
 	 * Toggles the use of filtering on and off.
 	 */
 	void	EnableFiltering(bool enabled);
-	
+
 	/**
 	 * Returns the number of items hidden due to filtering.
 	 */
 	size_t	GetHiddenItemCount() const;
-	
+
 	/**
 	 * Attempts to download all selected items, updating color-scheme as needed.
 	 *
 	 * @param category The target category, or -1 to use the drop-down selection.
 	 */
-	void	DownloadSelected(int category = -1);	
+	void	DownloadSelected(int category = -1);
 
 	static wxString DetermineStatusPrintable(CSearchFile *toshow);
 
@@ -181,7 +181,7 @@ protected:
 
 	//! Controls if shared/queued results should be shown.
 	bool		m_filterKnown;
-	
+
 	//! Controls if the result of filter-hits should be inverted
 	bool		m_invert;
 
@@ -192,7 +192,7 @@ protected:
 	 * Returns true if the filename is filtered.
 	 */
 	bool	IsFiltered(const CSearchFile* file);
-	
+
 	/**
 	 * Sorter function used by wxListCtrl::SortItems function.
 	 *
@@ -233,11 +233,11 @@ protected:
 	 * the src argument as the src argument of the SyncLists function.
 	 */
 	static void SyncOtherLists( CSearchListCtrl* src );
-	
+
 	//! This list contains pointers to all current instances of CSearchListCtrl.
 	static std::list<CSearchListCtrl*> s_lists;
-	
-	//! The ID of the search-results which the list is displaying or zero if unset. 
+
+	//! The ID of the search-results which the list is displaying or zero if unset.
 	wxUIntPtr m_nResultsID;
 
 	//! Custom drawing, needed to display children of search-results.
@@ -257,10 +257,10 @@ protected:
 	 * Event handler for double-clicks or enter.
 	 */
 	void OnItemActivated( wxListEvent& event );
-	
+
 	/**
 	 * Event handler for left-clicks on the column headers.
-	 * 
+	 *
 	 * This eventhandler takes care of sync'ing all the other lists with this one.
 	 */
 	void OnColumnLClick( wxListEvent& event );
@@ -271,7 +271,7 @@ protected:
 	 * This eventhandler takes care of sync'ing all the other lists with this one.
 	 */
 	void OnColumnResize( wxListEvent& event );
-	
+
 	/**
 	 * Event handler for get-url menu items.
 	 */
diff --git a/src/Server.cpp b/src/Server.cpp
index 3b93057..4945433 100644
--- a/src/Server.cpp
+++ b/src/Server.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,7 +39,7 @@ CServer::CServer(ServerMet_Struct* in_data)
 	Init();
 }
 
-CServer::CServer(uint16 in_port, const wxString i_addr)
+CServer::CServer(uint16 in_port, const wxString& i_addr)
 {
 
 	port = in_port;
@@ -60,13 +60,13 @@ CServer::CServer(uint16 in_port, const wxString i_addr)
 CServer::CServer(CServer* pOld) : CECID(pOld->ECID())
 {
 	wxASSERT(pOld != NULL);
-	
+
 	TagPtrList::iterator it = pOld->m_taglist.begin();
 	for ( ; it != pOld->m_taglist.end(); ++it ) {
 		m_taglist.push_back((*it)->CloneTag());
 	}
 	port = pOld->port;
-	ip = pOld->ip; 
+	ip = pOld->ip;
 	realport = pOld->realport;
 	staticservermember=pOld->IsStaticMember();
 	tagcount = pOld->tagcount;
@@ -75,7 +75,7 @@ CServer::CServer(CServer* pOld) : CECID(pOld->ECID())
 	users = pOld->users;
 	preferences = pOld->preferences;
 	ping = pOld->ping;
-	failedcount = pOld->failedcount; 
+	failedcount = pOld->failedcount;
 	lastpinged = pOld->lastpinged;
 	lastpingedtime = pOld->lastpingedtime;
 	m_dwRealLastPingedTime = pOld->m_dwRealLastPingedTime;
@@ -107,9 +107,9 @@ CServer::~CServer()
 }
 
 void CServer::Init() {
-	
+
 	ipfull = Uint32toStringIP(ip);
-	
+
 	realport = 0;
 	tagcount = 0;
 	files = 0;
@@ -119,7 +119,7 @@ void CServer::Init() {
 	description.Clear();
 	listname.Clear();
 	dynip.Clear();
-	failedcount = 0; 
+	failedcount = 0;
 	lastpinged = 0;
 	lastpingedtime = 0;
 	m_dwRealLastPingedTime = 0;
@@ -129,7 +129,7 @@ void CServer::Init() {
 	m_uUDPFlags = 0;
 	challenge = 0;
 	softfiles = 0;
-	hardfiles = 0;	
+	hardfiles = 0;
 	m_strVersion = _("Unknown");
 	m_uLowIDUsers = 0;
 	m_uDescReqChallenge = 0;
@@ -143,8 +143,8 @@ void CServer::Init() {
 	m_dwIPServerKeyUDP = 0;
 	m_nObfuscationPortTCP = 0;
 	m_nObfuscationPortUDP = 0;
-	
-}	
+
+}
 
 
 bool CServer::AddTagFromFile(CFileDataIO* servermet)
@@ -152,56 +152,56 @@ bool CServer::AddTagFromFile(CFileDataIO* servermet)
 	if (servermet == NULL) {
 		return false;
 	}
-	
+
 	CTag tag(*servermet, true);
 
-	switch(tag.GetNameID()){		
+	switch(tag.GetNameID()){
 	case ST_SERVERNAME:
 		if (listname.IsEmpty()) {
 			listname = tag.GetStr();
 		}
 		break;
-		
+
 	case ST_DESCRIPTION:
 		if (description.IsEmpty()) {
 			description = tag.GetStr();
 		}
 		break;
-		
+
 	case ST_PREFERENCE:
 		preferences = tag.GetInt();
 		break;
-		
+
 	case ST_PING:
 		ping = tag.GetInt();
 		break;
-		
+
 	case ST_DYNIP:
 		if (dynip.IsEmpty()) {
 			dynip = tag.GetStr();
 		}
 		break;
-		
+
 	case ST_FAIL:
 		failedcount = tag.GetInt();
 		break;
-		
+
 	case ST_LASTPING:
 		lastpinged = tag.GetInt();
 		break;
-		
+
 	case ST_MAXUSERS:
 		maxusers = tag.GetInt();
 		break;
-		
+
 	case ST_SOFTFILES:
 		softfiles = tag.GetInt();
 		break;
-		
+
 	case ST_HARDFILES:
 		hardfiles = tag.GetInt();
 		break;
-		
+
 	case ST_VERSION:
 		if (tag.IsStr()) {
 			// m_strVersion defaults to _("Unknown"), so check for that as well
@@ -214,11 +214,11 @@ bool CServer::AddTagFromFile(CFileDataIO* servermet)
 			wxFAIL;
 		}
 		break;
-		
+
 	case ST_UDPFLAGS:
 		m_uUDPFlags = tag.GetInt();
 		break;
-		
+
 	case ST_AUXPORTSLIST:
 		m_auxPorts = tag.GetStr();
 
@@ -228,23 +228,23 @@ bool CServer::AddTagFromFile(CFileDataIO* servermet)
 			port = StrToULong(m_auxPorts.BeforeFirst(','));
 		}
 		break;
-		
+
 	case ST_LOWIDUSERS:
 		m_uLowIDUsers = tag.GetInt();
 		break;
-	
+
 	case ST_UDPKEY:
 		m_dwServerKeyUDP = tag.GetInt();
 		break;
-	
+
 	case ST_UDPKEYIP:
 		m_dwIPServerKeyUDP = tag.GetInt();
 		break;
-	
+
 	case ST_TCPPORTOBFUSCATION:
 		m_nObfuscationPortTCP = (uint16)tag.GetInt();
 		break;
-	
+
 	case ST_UDPPORTOBFUSCATION:
 		m_nObfuscationPortUDP = (uint16)tag.GetInt();
 		break;
@@ -260,7 +260,7 @@ bool CServer::AddTagFromFile(CFileDataIO* servermet)
 			wxFAIL;
 		}
 	}
-	
+
 	return true;
 }
 
diff --git a/src/Server.h b/src/Server.h
index 493182f..8f27a0e 100644
--- a/src/Server.h
+++ b/src/Server.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,8 +30,8 @@
 #include "OtherStructs.h"
 #include <ec/cpp/ECID.h>	// Needed for CECID
 
-#include <protocol/ed2k/Client2Server/TCP.h> 
-#include <protocol/ed2k/Client2Server/UDP.h> 
+#include <protocol/ed2k/Client2Server/TCP.h>
+#include <protocol/ed2k/Client2Server/UDP.h>
 
 class CFileDataIO;
 
@@ -49,23 +49,23 @@ class CServer : public CECID
 friend class CServerListRem;
 public:
 	CServer(ServerMet_Struct* in_data);
-	CServer(uint16 in_port, const wxString i_addr);
+	CServer(uint16 in_port, const wxString& i_addr);
 	CServer(CServer* pOld);
-	CServer(class CEC_Server_Tag *);
+	CServer(const class CEC_Server_Tag *);
 
 	~CServer();
 	void		AddTag(CTag* in_tag)	{m_taglist.push_back(in_tag);}
 	const wxString &GetListName() const	{return listname;}
 	const wxString &GetFullIP() const	{return ipfull;}
-	
+
 	const wxString &GetAddress() const {
 		if (!dynip.IsEmpty()) {
 			return dynip;
 		} else {
 			return ipfull;
 		}
-	}	
-	
+	}
+
 	// the official port
 	uint16  GetPort() const			{return realport ? realport : port;}
 	// the connection port
@@ -75,23 +75,23 @@ public:
 	void	SetListName(const wxString& newname);
 	void	SetDescription(const wxString& newdescription);
 	uint32	GetIP() const			{return ip;}
-	uint32	GetFiles() const		{return files;} 
-	uint32	GetUsers() const		{return users;} 
-	const wxString	&GetDescription() const	{return description;} 
-	uint32	GetPing() const			{return ping;} 
-	uint32	GetPreferences() const		{return preferences;} 
+	uint32	GetFiles() const		{return files;}
+	uint32	GetUsers() const		{return users;}
+	const wxString	&GetDescription() const	{return description;}
+	uint32	GetPing() const			{return ping;}
+	uint32	GetPreferences() const		{return preferences;}
 	uint32	GetMaxUsers() const		{return maxusers;}
 	void	SetMaxUsers(uint32 in_maxusers) {maxusers = in_maxusers;}
 	void	SetUserCount(uint32 in_users)	{users = in_users;}
 	void	SetFileCount(uint32 in_files)	{files = in_files;}
-	void	ResetFailedCount()		{failedcount = 0;} 
-	void	AddFailedCount()		{failedcount++;} 
-	uint32	GetFailedCount() const		{return failedcount;} 
+	void	ResetFailedCount()		{failedcount = 0;}
+	void	AddFailedCount()		{failedcount++;}
+	uint32	GetFailedCount() const		{return failedcount;}
 	void	SetID(uint32 newip);
 	const wxString &GetDynIP() const	{return dynip;}
 	bool	HasDynIP() const		{return !dynip.IsEmpty() ;}
 	void	SetDynIP(const wxString& newdynip);
-	
+
 	uint32	GetLastPingedTime() const				{return lastpingedtime;}
 	void	SetLastPingedTime(uint32 in_lastpingedtime)	{lastpingedtime = in_lastpingedtime;}
 
@@ -100,7 +100,7 @@ public:
 
 	uint32	GetLastPinged() const		{return lastpinged;}
 	void	SetLastPinged(uint32 in_lastpinged) {lastpinged = in_lastpinged;}
-	
+
 	void	SetPing(uint32 in_ping)		{ping = in_ping;}
 	void	SetPreference(uint32 in_preferences) {preferences = in_preferences;}
 	void	SetIsStaticMember(bool in)	{staticservermember=in;}
@@ -123,7 +123,7 @@ public:
 	void	SetDescReqChallenge(uint32 uDescReqChallenge) {m_uDescReqChallenge = uDescReqChallenge;}
 	uint8	GetLastDescPingedCount() const	{return lastdescpingedcout;}
 	void	SetLastDescPingedCount(bool reset);
-	
+
 	uint16	GetObfuscationPortTCP() const			{return m_nObfuscationPortTCP;}
 	void	SetObfuscationPortTCP(uint16 nPort)		{m_nObfuscationPortTCP = nPort;}
 
@@ -137,24 +137,24 @@ public:
 	void	SetCryptPingReplyPending(bool bVal)		{m_bCryptPingReplyPending = bVal;}
 
 	uint32	GetServerKeyUDPIP() const				{return m_dwIPServerKeyUDP;}
-	
+
 	bool	GetUnicodeSupport() const				{return (GetTCPFlags() & SRV_TCPFLG_UNICODE) != 0;}
 	bool	GetRelatedSearchSupport() const			{return (GetTCPFlags() & SRV_TCPFLG_RELATEDSEARCH) != 0;}
 	bool	SupportsLargeFilesTCP() const			{return (GetTCPFlags() & SRV_TCPFLG_LARGEFILES) != 0;}
-	bool	SupportsLargeFilesUDP() const			{return (GetUDPFlags() & SRV_UDPFLG_LARGEFILES) != 0;}	
+	bool	SupportsLargeFilesUDP() const			{return (GetUDPFlags() & SRV_UDPFLG_LARGEFILES) != 0;}
 	bool	SupportsObfuscationUDP() const			{return (GetUDPFlags() & SRV_UDPFLG_UDPOBFUSCATION) != 0;}
 	bool	SupportsObfuscationTCP() const			{return (GetObfuscationPortTCP() != 0) && (((GetUDPFlags() & SRV_UDPFLG_TCPOBFUSCATION) != 0) || ((GetTCPFlags() & SRV_TCPFLG_TCPOBFUSCATION) != 0));}
 	bool	SupportsGetSourcesObfuscation() const	{return (GetTCPFlags() & SRV_TCPFLG_TCPOBFUSCATION) != 0;} // mapped to TCPFLAG_TCPOBFU
-	
+
 	const wxString& GetAuxPortsList() const	{return m_auxPorts;}
 	void	SetAuxPortsList(const wxString& val)	{m_auxPorts = val;}
-	
+
 	uint64 GetLastDNSSolve() const { return m_lastdnssolve; }
 	void SetLastDNSSolve(uint64 value) { m_lastdnssolve = value; }
-	
+
 	bool GetDNSError() const { return m_dnsfailure; }
 	void SetDNSError(bool value) { m_dnsfailure = value; }
-	
+
 private:
 	uint32		challenge;
 	uint32		lastpinged; //This is to get the ping delay.
@@ -174,7 +174,7 @@ private:
 	uint32		ip;
 	uint16		port;
 	uint16		realport;
-	uint32		failedcount; 
+	uint32		failedcount;
 	uint32		m_uDescReqChallenge;
 	uint8		lastdescpingedcout;
 	TagPtrList		m_taglist;
@@ -184,18 +184,18 @@ private:
 	uint32		m_uUDPFlags;
 	uint32		m_uLowIDUsers;
 	wxString	m_auxPorts;
-	
+
 	uint64		m_lastdnssolve;
 	bool		m_dnsfailure;
-	
-	bool		m_bCryptPingReplyPending;	
+
+	bool		m_bCryptPingReplyPending;
 	uint32		m_dwServerKeyUDP;
 	uint32		m_dwIPServerKeyUDP;
 	uint16		m_nObfuscationPortTCP;
 	uint16		m_nObfuscationPortUDP;
-	
+
 	uint32		m_dwRealLastPingedTime;
-	
+
 	void Init();
 };
 
diff --git a/src/ServerConnect.cpp b/src/ServerConnect.cpp
index eab2007..3581049 100644
--- a/src/ServerConnect.cpp
+++ b/src/ServerConnect.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -58,7 +58,7 @@ void CServerConnect::TryAnotherConnectionrequest()
 		return;
 	}
 	if ( connectionattemps.size() < (unsigned)(( thePrefs::IsSafeServerConnectEnabled()) ? 1 : 2) ) {
-	
+
 		CServer*  next_server = used_list->GetNextServer(m_bTryObfuscated);
 
 		if ( thePrefs::AutoConnectStaticOnly() ) {
@@ -71,11 +71,11 @@ void CServerConnect::TryAnotherConnectionrequest()
 			if ( connectionattemps.empty() ) {
 				m_recurseTryAnotherConnectionrequest = true;
 				if (m_bTryObfuscated && !thePrefs::IsClientCryptLayerRequired()){
-					AddLogLineC(_("Failed to connect to all obfuscated servers listed. Making another pass without obfuscation."));					
+					AddLogLineC(_("Failed to connect to all obfuscated servers listed. Making another pass without obfuscation."));
 					// try all servers on the non-obfuscated port next
 					m_bTryObfuscated = false;
 					ConnectToAnyServer( false, true);
-				} else {					
+				} else {
 					AddLogLineC(_("Failed to connect to all servers listed. Making another pass."));
 					ConnectToAnyServer( false );
 				}
@@ -105,11 +105,11 @@ void CServerConnect::ConnectToAnyServer(bool prioSort, bool bNoCrypt)
 	connecting = true;
 	singleconnecting = false;
 	m_bTryObfuscated = thePrefs::IsServerCryptLayerTCPRequested() && !bNoCrypt;
-		
+
 	// Barry - Only auto-connect to static server option
 	if (thePrefs::AutoConnectStaticOnly()) {
 		bool anystatic = false;
-		CServer *next_server; 
+		CServer *next_server;
 		used_list->ResetServerPos();
 		while ((next_server = used_list->GetNextServer(false)) != NULL) {
 			if (next_server->IsStaticMember()) {
@@ -127,7 +127,7 @@ void CServerConnect::ConnectToAnyServer(bool prioSort, bool bNoCrypt)
 	if ( thePrefs::Score() && prioSort ) {
 		used_list->Sort();
 	}
-	
+
 	used_list->ResetServerPos();
 
 	if (used_list->GetServerCount()==0 ) {
@@ -135,7 +135,7 @@ void CServerConnect::ConnectToAnyServer(bool prioSort, bool bNoCrypt)
 		AddLogLineC(_("No valid servers to which to connect found in server list"));
 		return;
 	}
-	
+
 	theApp->listensocket->Process();
 
 	TryAnotherConnectionrequest();
@@ -143,12 +143,12 @@ void CServerConnect::ConnectToAnyServer(bool prioSort, bool bNoCrypt)
 
 
 void CServerConnect::ConnectToServer(CServer* server, bool multiconnect, bool bNoCrypt)
-{	
+{
 	if (!thePrefs::GetNetworkED2K()){
 		AddLogLineC(_("eD2k network disabled on preferences, not connecting."));
 		return;
 	}
-	
+
 	if (!multiconnect) {
 		StopConnectionTry();
 		Disconnect();
@@ -170,10 +170,10 @@ void CServerConnect::StopConnectionTry()
 	connecting = false;
 	singleconnecting = false;
 
-	if (m_idRetryTimer.IsRunning()) 
-	{ 
+	if (m_idRetryTimer.IsRunning())
+	{
 	  m_idRetryTimer.Stop();
-	} 
+	}
 
 	// close all currenty opened sockets except the one which is connected to our current server
 	for(SocketsList::iterator it = m_lstOpenSockets.begin(); it != m_lstOpenSockets.end(); ) {
@@ -192,8 +192,8 @@ void CServerConnect::ConnectionEstablished(CServerSocket* sender)
 		// we are already connected to another server
 		DestroySocket(sender);
 		return;
-	}	
-	
+	}
+
 	if (sender->GetConnectionState() == CS_WAITFORLOGIN) {
 		AddLogLineN(CFormat( _("Connected to %s (%s:%i)") )
 			% sender->cur_server->GetListName()
@@ -206,7 +206,7 @@ void CServerConnect::ConnectionEstablished(CServerSocket* sender)
 			update->ResetFailedCount();
 			Notify_ServerRefresh( update );
 		}
-		
+
 		CMemFile data(256);
 		data.WriteHash(thePrefs::GetUserHash());
 		// Why pass an ID, if we are loggin in?
@@ -216,7 +216,7 @@ void CServerConnect::ConnectionEstablished(CServerSocket* sender)
 
 		// Kry - Server doesn't support VBT tags afaik.
 		// Not to mention we don't know its flags yet
-		
+
 		CTagString tagname(CT_NAME,thePrefs::GetUserNick());
 		tagname.WriteTagToFile(&data);
 
@@ -224,33 +224,33 @@ void CServerConnect::ConnectionEstablished(CServerSocket* sender)
 		tagversion.WriteTagToFile(&data);
 
 		uint32 dwCryptFlags = 0;
-		
+
 		if (thePrefs::IsClientCryptLayerSupported()) {
 			dwCryptFlags |= SRVCAP_SUPPORTCRYPT;
 		}
-		
+
 		if (thePrefs::IsClientCryptLayerRequested()) {
 			dwCryptFlags |= SRVCAP_REQUESTCRYPT;
 		}
-		
+
 		if (thePrefs::IsClientCryptLayerRequired()) {
 			dwCryptFlags |= SRVCAP_REQUIRECRYPT;
 		}
-		
+
 		// FLAGS for server connection
-		CTagInt32 tagflags(CT_SERVER_FLAGS, CAPABLE_ZLIB 
-								| CAPABLE_AUXPORT 
-								| CAPABLE_NEWTAGS 
+		CTagInt32 tagflags(CT_SERVER_FLAGS, CAPABLE_ZLIB
+								| CAPABLE_AUXPORT
+								| CAPABLE_NEWTAGS
 								| CAPABLE_UNICODE
 								| CAPABLE_LARGEFILES
 								| dwCryptFlags
-											); 
-		
+											);
+
 		tagflags.WriteTagToFile(&data);
 
-		// eMule Version (14-Mar-2004: requested by lugdunummaster (need for LowID clients which have no chance 
+		// eMule Version (14-Mar-2004: requested by lugdunummaster (need for LowID clients which have no chance
 		// to send an Hello packet to the server during the callback test))
-		CTagInt32 tagMuleVersion(CT_EMULE_VERSION, 
+		CTagInt32 tagMuleVersion(CT_EMULE_VERSION,
 			(SO_AMULE	<< 24) |
 			make_full_ed2k_version(VERSION_MJR, VERSION_MIN, VERSION_UPDATE)
 			 );
@@ -273,18 +273,18 @@ void CServerConnect::ConnectionEstablished(CServerSocket* sender)
 		connected = true;
 		AddLogLineC(CFormat( _("Connection established on: %s") ) % sender->cur_server->GetListName());
 		connectedsocket = sender;
-		
+
 		StopConnectionTry();
-		
+
 		CServer* update = theApp->serverlist->GetServerByAddress(connectedsocket->cur_server->GetAddress(),sender->cur_server->GetPort());
 		if ( update ) {
 			Notify_ServerHighlight(update, true);
 		}
-		
+
 		theApp->sharedfiles->ClearED2KPublishInfo();
 
 		Notify_ServerRemoveDead();
-		
+
 		// tecxx 1609 2002 - serverlist update
 		if (thePrefs::AddServersFromServer()) {
 			CPacket* packet = new CPacket(OP_GETSERVERLIST, 0, OP_EDONKEYPROT);
@@ -295,7 +295,7 @@ void CServerConnect::ConnectionEstablished(CServerSocket* sender)
 			#endif
 		}
 	}
-	
+
 	theApp->ShowConnectionState();
 }
 
@@ -310,7 +310,7 @@ bool CServerConnect::SendPacket(CPacket* packet,bool delpacket, CServerSocket* t
 			if ( delpacket ) {
 				delete packet;
 			}
-			
+
 			return false;
 		}
 	} else {
@@ -374,13 +374,13 @@ void CServerConnect::ConnectionFailed(CServerSocket* sender)
 				% sender->cur_server->GetListName()
 				% sender->cur_server->GetFullIP()
 				% sender->cur_server->GetPort() );
-			
+
+			break;
+		case CS_NOTCONNECTED:;
 			break;
-		case CS_NOTCONNECTED:; 
-			break; 
 	}
 
-	// IMPORTANT: mark this socket not to be deleted in StopConnectionTry(), 
+	// IMPORTANT: mark this socket not to be deleted in StopConnectionTry(),
 	// because it will delete itself after this function!
 	sender->m_bIsDeleting = true;
 
@@ -388,27 +388,27 @@ void CServerConnect::ConnectionFailed(CServerSocket* sender)
 		case CS_FATALERROR:{
 			bool autoretry= !singleconnecting;
 			StopConnectionTry();
-			if ((thePrefs::Reconnect()) && (autoretry) && (!m_idRetryTimer.IsRunning())) { 
+			if ((thePrefs::Reconnect()) && (autoretry) && (!m_idRetryTimer.IsRunning())) {
 				AddLogLineN(CFormat(wxPLURAL("Automatic connection to server will retry in %d second", "Automatic connection to server will retry in %d seconds", CS_RETRYCONNECTTIME)) % CS_RETRYCONNECTTIME);
 				m_idRetryTimer.Start(1000*CS_RETRYCONNECTTIME);
 			}
 			break;
 		}
 		case CS_DISCONNECTED:{
-			theApp->sharedfiles->ClearED2KPublishInfo();		
+			theApp->sharedfiles->ClearED2KPublishInfo();
 			connected = false;
 			Notify_ServerHighlight(sender->cur_server,false);
 			if (connectedsocket)  {
 				connectedsocket->Close();
 			}
 			connectedsocket = NULL;
-			theApp->searchlist->StopSearch(true);			
+			theApp->searchlist->StopSearch(true);
 			Notify_SearchCancel();
 			theStats::GetServerConnectTimer()->StopTimer();
 			if (thePrefs::Reconnect() && !connecting){
-				ConnectToAnyServer();		
+				ConnectToAnyServer();
 			}
-			
+
 			AddLogLineC(_("Connection lost") );
 			break;
 		}
@@ -432,7 +432,7 @@ void CServerConnect::ConnectionFailed(CServerSocket* sender)
 					ConnectToServer(pServer, false, true);
 					break;
 				}
-				
+
 				StopConnectionTry();
 				break;
 			}
@@ -442,9 +442,9 @@ void CServerConnect::ConnectionFailed(CServerSocket* sender)
 				if ( it->second == sender ) {
 					connectionattemps.erase( it );
 					break;
-				} 
+				}
 				++it;
-			}			
+			}
 			TryAnotherConnectionrequest();
 		}
 	}
@@ -472,12 +472,12 @@ void CServerConnect::CheckForTimeout()
 					% value->info
 					% value->cur_server->GetFullIP()
 					% value->cur_server->GetPort() );
-			
+
 				connectionattemps.erase( key );
-	
+
 				TryAnotherConnectionrequest();
 				DestroySocket( value );
-			}				
+			}
 		} else {
 			++it;
 		}
@@ -519,6 +519,7 @@ CServerConnect::CServerConnect(CServerList* in_serverlist, amuleIPV4Address &add
 	clientid = 0;
 	singleconnecting = false;
 	m_recurseTryAnotherConnectionrequest = false;
+	m_bTryObfuscated = thePrefs::IsServerCryptLayerTCPRequested();
 
 	// initalize socket for udp packets
 	if (thePrefs::GetNetworkED2K()) {
@@ -554,7 +555,7 @@ CServer* CServerConnect::GetCurrentServer()
 void CServerConnect::SetClientID(uint32 newid)
 {
 	clientid = newid;
-	
+
 	if (!::IsLowID(newid)) {
 		theApp->SetPublicIP(newid);
 	}
@@ -589,10 +590,10 @@ void CServerConnect::KeepConnectionAlive()
 	GetTickCount() - connectedsocket->GetLastTransmission() >= dwServerKeepAliveTimeout) {
 		// "Ping" the server if the TCP connection was not used for the specified interval with
 		// an empty publish files packet -> recommended by lugdunummaster himself!
-		
+
 		CMemFile files(4);
 		files.WriteUInt32(0); //nFiles
-	
+
 		CPacket* packet = new CPacket(files, OP_EDONKEYPROT, OP_OFFERFILES);
 		#ifdef DEBUG_CLIENT_PROTOCOL
 		AddLogLineC(wxT("Client: OP_OFFERFILES"));
@@ -605,9 +606,9 @@ void CServerConnect::KeepConnectionAlive()
 		// therefor we always try to compress the packet
 		theStats::AddUpOverheadServer(packet->GetPacketSize());
 		connectedsocket->SendPacket(packet,true);
-		
+
 		AddDebugLogLineN(logServer, wxT("Refreshing server connection"));
- 	}
+	}
 }
 
 // true if the IP is one of a server which we currently try to connect to
@@ -623,7 +624,7 @@ bool CServerConnect::AwaitingTestFromIP(uint32 dwIP)
 		}
 		++it;
 	}
-	
+
 	return false;
 }
 
diff --git a/src/ServerConnect.h b/src/ServerConnect.h
index cdd9ede..adb2381 100644
--- a/src/ServerConnect.h
+++ b/src/ServerConnect.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -25,7 +25,7 @@
 
 //
 // Client to Server communication
-// 
+//
 
 #ifndef SERVERCONNECT_H
 #define SERVERCONNECT_H
@@ -59,15 +59,15 @@ class CServerConnect {
 public:
 	CServerConnect(CServerList* in_serverlist, amuleIPV4Address &address);
 	~CServerConnect();
-	
+
 	void	ConnectionFailed(CServerSocket* sender);
 	void	ConnectionEstablished(CServerSocket* sender);
-	
+
 	void	ConnectToAnyServer(bool prioSort = true, bool bNoCrypt = false);
 	void	ConnectToServer(CServer* toconnect, bool multiconnect = false, bool bNoCrypt = false);
 	void	StopConnectionTry();
 	void	CheckForTimeout();
-	
+
 	// safe socket closure and destruction
 	void	DestroySocket(CServerSocket* pSck);
 	bool	SendPacket(CPacket* packet,bool delpacket = true, CServerSocket* to = 0);
@@ -83,17 +83,16 @@ public:
 	uint32	GetClientID()	{ return clientid; }
 	CServer*GetCurrentServer();
 	uint32	clientid;
-	uint8	pendingConnects;
 	bool	IsLowID()	{ return ::IsLowID(clientid); }
 	void	SetClientID(uint32 newid);
 	bool	IsLocalServer(uint32 dwIP, uint16 nPort);
 	void	TryAnotherConnectionrequest();
 	bool	IsSingleConnect()	{ return singleconnecting; }
-	void	KeepConnectionAlive();	
+	void	KeepConnectionAlive();
 
 	bool AwaitingTestFromIP(uint32 ip);
 	bool IsConnectedObfuscated() const;
-	
+
 	/**
 	 * Called when a socket has been DNS resolved.
 	 *
@@ -114,7 +113,7 @@ private:
 	CServerSocket*	connectedsocket;
 	CServerList*	used_list;
 	CServerUDPSocket*	serverudpsocket;
-	
+
 	// list of currently opened sockets
 	typedef	std::list<CServerSocket*>	SocketsList;
 	SocketsList	m_lstOpenSockets;
diff --git a/src/ServerList.cpp b/src/ServerList.cpp
index 918c7a6..fa3a8eb 100644
--- a/src/ServerList.cpp
+++ b/src/ServerList.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -71,13 +71,13 @@ bool CServerList::Init()
 	// insert static servers from textfile
 	m_staticServersConfig = theApp->ConfigDir + wxT("staticservers.dat");
 	LoadStaticServers();
-	
+
 	// Send the auto-update of server.met via HTTPThread requests
 	current_url_index = 0;
 	if ( thePrefs::AutoServerlist()) {
 		AutoUpdate();
-	}	
-	
+	}
+
 	m_initialized = true;
 	return bRes;
 }
@@ -86,9 +86,9 @@ bool CServerList::Init()
 bool CServerList::LoadServerMet(const CPath& path)
 {
 	AddLogLineN(CFormat(_("Loading server.met file: %s")) % path);
-	
+
 	bool merge = !m_servers.empty();
-	
+
 	if (!path.FileExists()) {
 		AddLogLineN(_("Server.met file not found!"));
 		return false;
@@ -100,20 +100,20 @@ bool CServerList::LoadServerMet(const CPath& path)
 	if (UnpackArchive(path, mets).second != EFT_Met) {
 		AddLogLineC(CFormat(_("Failed to load server.met file '%s', unknown format encountered.")) % path);
 		return false;
-	}	
+	}
 
 	CFile servermet(path, CFile::read);
-	if ( !servermet.IsOpened() ){ 
+	if ( !servermet.IsOpened() ){
 		AddLogLineN(_("Failed to open server.met!") );
 		return false;
 	}
 
-	
+
 	try {
 		Notify_ServerFreeze();
-		
+
 		byte version = servermet.ReadUInt8();
-		
+
 		if (version != 0xE0 && version != MET_HEADER) {
 			AddLogLineC(CFormat(_("Server.met file corrupt, found invalid versiontag: 0x%x, size %i")) % version % sizeof(version));
 			Notify_ServerThaw();
@@ -129,7 +129,7 @@ bool CServerList::LoadServerMet(const CPath& path)
 			sbuffer.ip		= servermet.ReadUInt32();
 			sbuffer.port		= servermet.ReadUInt16();
 			sbuffer.tagcount	= servermet.ReadUInt32();
-			
+
 			CServer* newserver = new CServer(&sbuffer);
 
 			// Load tags
@@ -138,19 +138,19 @@ bool CServerList::LoadServerMet(const CPath& path)
 			}
 
 			// Server priorities are not in sorted order
-			// High = 1, Low = 2, Normal = 0, so we have to check 
+			// High = 1, Low = 2, Normal = 0, so we have to check
 			// in a less logical fashion.
 			int priority = newserver->GetPreferences();
 			if (priority < SRV_PR_MIN || priority > SRV_PR_MAX) {
 				newserver->SetPreference(SRV_PR_NORMAL);
 			}
-			
+
 			// set listname for server
 			if ( newserver->GetListName().IsEmpty() ) {
 				newserver->SetListName(wxT("Server ") +newserver->GetAddress());
 			}
-			
-			
+
+
 			if ( !theApp->AddServer(newserver) ) {
 				CServer* update = GetServerByAddress(newserver->GetAddress(), newserver->GetPort());
 				if(update) {
@@ -166,9 +166,10 @@ bool CServerList::LoadServerMet(const CPath& path)
 			}
 
 		}
-		
+
 		Notify_ServerThaw();
-    
+
+		// cppcheck-suppress duplicateBranch
 		if (!merge) {
 			AddLogLineC(CFormat(wxPLURAL("%i server in server.met found", "%i servers in server.met found", fservercount)) % fservercount);
 		} else {
@@ -183,7 +184,7 @@ bool CServerList::LoadServerMet(const CPath& path)
 		Notify_ServerThaw();
 		return false;
 	}
-	
+
 	return true;
 }
 
@@ -215,10 +216,10 @@ bool CServerList::AddServer(CServer* in_server, bool fromUser)
 					% in_server->GetPort()
 			);
 		}
-	
+
 		return false;
 	}
-	
+
 	CServer* test_server = GetServerByAddress(in_server->GetAddress(), in_server->GetPort());
 	// Avoid duplicate (dynIP) servers: If the server which is to be added, is a dynIP-server
 	// but we don't know yet it's DN, we need to search for an already available server with
@@ -226,7 +227,7 @@ bool CServerList::AddServer(CServer* in_server, bool fromUser)
 	if (test_server == NULL && in_server->GetIP() != 0) {
 		test_server = GetServerByIPTCP(in_server->GetIP(), in_server->GetPort());
 	}
-	
+
 	if (test_server) {
 		if ( fromUser ) {
 			AddLogLineC(CFormat( _("Server not added: Server with matching IP:Port [%s:%d] found in list.") )
@@ -234,10 +235,10 @@ bool CServerList::AddServer(CServer* in_server, bool fromUser)
 					% in_server->GetPort()
 			);
 		}
-		
+
 		test_server->ResetFailedCount();
 		Notify_ServerRefresh( test_server );
-		
+
 		return false;
 	}
 
@@ -254,7 +255,7 @@ bool CServerList::AddServer(CServer* in_server, bool fromUser)
 		);
 	}
 
-	
+
 	return true;
 }
 
@@ -263,7 +264,7 @@ void CServerList::ServerStats()
 {
 	uint32 tNow = ::GetTickCount();
 
-	if (theApp->IsConnectedED2K() && m_servers.size() > 0) {
+	if (theApp->IsConnectedED2K() && !m_servers.empty()) {
 		CServer* ping_server = GetNextStatServer();
 		CServer* test = ping_server;
 		if (!ping_server) {
@@ -276,14 +277,14 @@ void CServerList::ServerStats()
 				return;
 			}
 		}
-		
+
 		if (ping_server->GetFailedCount() >= thePrefs::GetDeadserverRetries() && thePrefs::DeadServer() && !ping_server->IsStaticMember()) {
 			RemoveServer(ping_server);
 			return;
 		}
-				
+
 		srand((unsigned)time(NULL));
-		ping_server->SetRealLastPingedTime(tNow); // this is not used to calcualte the next ping, but only to ensure a minimum delay for premature pings		
+		ping_server->SetRealLastPingedTime(tNow); // this is not used to calcualte the next ping, but only to ensure a minimum delay for premature pings
 		if (!ping_server->GetCryptPingReplyPending() && (!ping_server->GetLastPingedTime() || (tNow - ping_server->GetLastPingedTime()) >= UDPSERVSTATREASKTIME) && theApp->GetPublicIP() && thePrefs::IsServerCryptLayerUDPEnabled()) {
 			// We try a obfsucation ping first and wait 20 seconds for an answer
 			// if it doesn't get responsed, we don't count it as error but continue with a normal ping
@@ -294,7 +295,7 @@ void CServerList::ServerStats()
 			if (dwChallenge == 0) {
 				dwChallenge++;
 			}
-			
+
 			memcpy(pRawPacket.get(), &dwChallenge, sizeof(uint32));
 			for (uint32 i = 4; i < nPacketLen; i++) { // fillng up the remaining bytes with random data
 				pRawPacket[i] = (uint8)rand();
@@ -303,12 +304,12 @@ void CServerList::ServerStats()
 			ping_server->SetChallenge(dwChallenge);
 			ping_server->SetLastPinged(tNow);
 			ping_server->SetLastPingedTime((tNow - (uint32)UDPSERVSTATREASKTIME) + 20); // give it 20 seconds to respond
-			
+
 			AddDebugLogLineN(logServerUDP, CFormat(wxT(">> Sending OP__GlobServStatReq (obfuscated) to server %s:%u")) % ping_server->GetAddress() % ping_server->GetPort());
 
 			CPacket* packet = new CPacket(pRawPacket[1], nPacketLen - 2, pRawPacket[0]);
 			packet->CopyToDataBuffer(0, pRawPacket.get() + 2, nPacketLen - 2);
-			
+
 			theStats::AddUpOverheadServer(packet->GetPacketSize());
 			theApp->serverconnect->SendUDPPacket(packet, ping_server, true, true /*raw packet*/, 12 /* Port offset is 12 for obfuscated encryption*/);
 		} else if (ping_server->GetCryptPingReplyPending() || theApp->GetPublicIP() == 0 || !thePrefs::IsServerCryptLayerUDPEnabled()){
@@ -319,9 +320,9 @@ void CServerList::ServerStats()
 			} else if (thePrefs::IsServerCryptLayerUDPEnabled()) {
 				AddDebugLogLineN(logServerUDP, wxT("CryptPing skipped because our public IP is unknown for server ") + ping_server->GetListName());
 			}
-			
-			ping_server->SetCryptPingReplyPending(false);			
-			
+
+			ping_server->SetCryptPingReplyPending(false);
+
 			CPacket* packet = new CPacket(OP_GLOBSERVSTATREQ, 4, OP_EDONKEYPROT);
 			uint32 challenge = 0x55AA0000 + (uint16)rand();
 			ping_server->SetChallenge(challenge);
@@ -342,16 +343,16 @@ void CServerList::ServerStats()
 void CServerList::RemoveServer(CServer* in_server)
 {
 	if (in_server == theApp->serverconnect->GetCurrentServer()) {
-		theApp->ShowAlert(_("You are connected to the server you are trying to delete. please disconnect first."), _("Info"), wxOK);	
+		theApp->ShowAlert(_("You are connected to the server you are trying to delete. please disconnect first."), _("Info"), wxOK);
 	} else {
 		CInternalList::iterator it = std::find(m_servers.begin(), m_servers.end(), in_server);
 		if ( it != m_servers.end() ) {
 			if (theApp->downloadqueue->GetUDPServer() == in_server) {
 				theApp->downloadqueue->SetUDPServer( 0 );
-			}	
-			
+			}
+
 			NotifyObservers( EventType( EventType::REMOVED, in_server ) );
-		
+
 			if (m_serverpos == it) {
 				++m_serverpos;
 			}
@@ -360,7 +361,7 @@ void CServerList::RemoveServer(CServer* in_server)
 			}
 			m_servers.erase(it);
 			theStats::DeleteServer();
-			
+
 			Notify_ServerRemove(in_server);
 			delete in_server;
 		}
@@ -371,7 +372,7 @@ void CServerList::RemoveServer(CServer* in_server)
 void CServerList::RemoveAllServers()
 {
 	NotifyObservers( EventType( EventType::CLEARED ) );
-	
+
 	theStats::DeleteAllServers();
 	// no connection, safely remove all servers
 	while ( !m_servers.empty() ) {
@@ -404,7 +405,7 @@ void CServerList::GetStatus(uint32 &failed, uint32 &user, uint32 &file, uint32 &
 		}
 		tuser += curr->GetUsers();
 		tfile += curr->GetFiles();
-		
+
 		if (curr->GetMaxUsers()) {
 			tuserk += curr->GetUsers(); // total users on servers with known maximum
 			maxusers+=curr->GetMaxUsers();
@@ -447,24 +448,24 @@ void CServerList::LoadStaticServers()
 	if ( !CPath::FileExists(m_staticServersConfig) ) {
 		return;
 	}
-	
+
 	wxFileInputStream stream(m_staticServersConfig);
 	wxTextInputStream f(stream);
 
 	while ( !stream.Eof() ) {
 		wxString line = f.ReadLine();
-		
+
 		// Skip comments
-		if ( line.GetChar(0) == '#' || line.GetChar(0) == '/') {
+		if (line.IsEmpty() || line.GetChar(0) == '#' || line.GetChar(0) == '/') {
 			continue;
 		}
 
 		wxStringTokenizer tokens( line, wxT(",") );
-		
+
 		if ( tokens.CountTokens() != 3 ) {
 			continue;
 		}
-		
+
 
 		// format is host:port,priority,Name
 		wxString addy = tokens.GetNextToken().Strip( wxString::both );
@@ -474,7 +475,7 @@ void CServerList::LoadStaticServers()
 		wxString host = addy.BeforeFirst( wxT(':') );
 		wxString port = addy.AfterFirst( wxT(':') );
 
-		
+
 		int priority = StrToLong( prio );
 		if (priority < SRV_PR_MIN || priority > SRV_PR_MAX) {
 			priority = SRV_PR_NORMAL;
@@ -485,16 +486,16 @@ void CServerList::LoadStaticServers()
 		if ( name.IsEmpty() ) {
 			name = addy;
 		}
-		
+
 
 		// create server object and add it to the list
 		CServer* server = new CServer( StrToLong( port ), host );
-		
+
 		server->SetListName( name );
 		server->SetIsStaticMember( true );
 		server->SetPreference( priority );
 
-		
+
 		// Try to add the server to the list
 		if ( !theApp->AddServer( server ) ) {
 			delete server;
@@ -502,8 +503,8 @@ void CServerList::LoadStaticServers()
 			if ( existing) {
 				existing->SetListName( name );
 				existing->SetIsStaticMember( true );
-				existing->SetPreference( priority ); 
-				
+				existing->SetPreference( priority );
+
 				Notify_ServerRefresh( existing );
 			}
 		}
@@ -570,10 +571,10 @@ void CServerList::Sort()
 CServer* CServerList::GetNextServer(bool bOnlyObfuscated)
 {
 	while (bOnlyObfuscated && (m_serverpos != m_servers.end()) && !((*m_serverpos)->SupportsObfuscationTCP() || (*m_serverpos)->SupportsObfuscationUDP())) {
-		wxASSERT(*m_serverpos != NULL);			
+		wxASSERT(*m_serverpos != NULL);
 		++m_serverpos;
 	}
-		
+
 	if (m_serverpos == m_servers.end()) {
 		return 0;
 	} else {
@@ -618,7 +619,7 @@ CServer* CServerList::GetServerByIP(uint32 nIP) const
 	for (CInternalList::const_iterator it = m_servers.begin(); it != m_servers.end(); ++it){
         CServer* const s = *it;
 		if (s->GetIP() == nIP)
-			return s; 
+			return s;
 	}
 	return NULL;
 }
@@ -629,7 +630,7 @@ CServer* CServerList::GetServerByIPTCP(uint32 nIP, uint16 nPort) const
 	for (CInternalList::const_iterator it = m_servers.begin(); it != m_servers.end(); ++it){
         CServer* const s = *it;
 		if (s->GetIP() == nIP && s->GetPort() == nPort)
-			return s; 
+			return s;
 	}
 	return NULL;
 }
@@ -639,9 +640,9 @@ CServer* CServerList::GetServerByIPUDP(uint32 nIP, uint16 nUDPPort, bool bObfusc
 {
 	for (CInternalList::const_iterator it = m_servers.begin(); it != m_servers.end(); ++it){
         CServer* const s =*it;
-		if (s->GetIP() == nIP 
-			&& (s->GetPort() == nUDPPort-4 
-				|| (bObfuscationPorts && s->GetObfuscationPortUDP() == nUDPPort) 
+		if (s->GetIP() == nIP
+			&& (s->GetPort() == nUDPPort-4
+				|| (bObfuscationPorts && s->GetObfuscationPortUDP() == nUDPPort)
 				|| s->GetPort() == nUDPPort - 12))
 			return s;
 	}
@@ -679,7 +680,7 @@ void CServerList::SetServerPrio(CServer* server, uint32 prio)
 bool CServerList::SaveServerMet()
 {
 	CPath curservermet = CPath(theApp->ConfigDir + wxT("server.met"));
-	
+
 	CFile servermet(curservermet, CFile::write_safe);
 	if (!servermet.IsOpened()) {
 		AddLogLineN(_("Failed to save server.met!"));
@@ -720,7 +721,7 @@ bool CServerList::SaveServerMet()
 			if (!server->GetVersion().IsEmpty()) {
 				++tagcount;
 			}
-			
+
 			if (server->GetServerKeyUDP(true)) {
 				++tagcount;
 			}
@@ -736,33 +737,33 @@ bool CServerList::SaveServerMet()
 			if (server->GetObfuscationPortUDP()) {
 				++tagcount;
 			}
-			
+
 			servermet.WriteUInt32(server->GetIP());
 			servermet.WriteUInt16(server->GetPort());
 			servermet.WriteUInt32(tagcount);
-						
+
 			if ( !server->GetListName().IsEmpty() ) {
 				// This is BOM to keep eMule compatibility
 				CTagString( ST_SERVERNAME, server->GetListName()).WriteTagToFile( &servermet,  utf8strOptBOM);
 				CTagString( ST_SERVERNAME, server->GetListName()).WriteTagToFile( &servermet );
 			}
-			
+
 			if ( !server->GetDynIP().IsEmpty() ) {
 				// This is BOM to keep eMule compatibility
 				CTagString( ST_DYNIP, server->GetDynIP()).WriteTagToFile( &servermet, utf8strOptBOM );
 				CTagString( ST_DYNIP, server->GetDynIP()).WriteTagToFile( &servermet );
 			}
-			
+
 			if ( !server->GetDescription().IsEmpty() ) {
 				// This is BOM to keep eMule compatibility
 				CTagString( ST_DESCRIPTION, server->GetDescription()).WriteTagToFile( &servermet, utf8strOptBOM );
 				CTagString( ST_DESCRIPTION, server->GetDescription()).WriteTagToFile( &servermet );
 			}
-			
+
 			if ( server->GetConnPort() != server->GetPort() ) {
 				CTagString( ST_AUXPORTSLIST,	server->GetAuxPortsList()	).WriteTagToFile( &servermet );
 			}
-			
+
 			CTagInt32( ST_FAIL,       server->GetFailedCount()   ).WriteTagToFile( &servermet );
 			CTagInt32( ST_PREFERENCE, server->GetPreferences()   ).WriteTagToFile( &servermet );
 			CTagInt32( wxT("users"),  server->GetUsers()         ).WriteTagToFile( &servermet );
@@ -778,7 +779,7 @@ bool CServerList::SaveServerMet()
 			}
 			CTagInt32( ST_UDPFLAGS,   server->GetUDPFlags()      ).WriteTagToFile( &servermet );
 			CTagInt32( ST_LOWIDUSERS, server->GetLowIDUsers()    ).WriteTagToFile( &servermet );
-			
+
 			if (server->GetServerKeyUDP(true)) {
 				CTagInt32(ST_UDPKEY, server->GetServerKeyUDP(true)).WriteTagToFile( &servermet );
 			}
@@ -794,7 +795,7 @@ bool CServerList::SaveServerMet()
 			if (server->GetObfuscationPortUDP()) {
 				CTagInt16(ST_UDPPORTOBFUSCATION, server->GetObfuscationPortUDP()).WriteTagToFile( &servermet );
 			}
-			
+
 		}
 		// Now server.met.new is ready to be closed and renamed to server.met.
 		// But first rename existing server.met to server.met.bak (replacing old .bak file).
@@ -809,7 +810,7 @@ bool CServerList::SaveServerMet()
 		AddLogLineC(wxT("IO failure while writing 'server.met': ") + e.what());
 		return false;
 	}
-	
+
 	return true;
 }
 
@@ -840,8 +841,9 @@ void CServerList::UpdateServerMetFromURL(const wxString& strURL)
 }
 
 
-void CServerList::DownloadFinished(uint32 result) 
+bool CServerList::DownloadFinished(uint32 result)
 {
+	bool ret = false;
 	if(result == HTTP_Success) {
 		const CPath tempFilename = CPath(theApp->ConfigDir + wxT("server.met.download"));
 
@@ -852,19 +854,22 @@ void CServerList::DownloadFinished(uint32 result)
 		// So, file is loaded and merged, and also saved
 		CPath::RemoveFile(tempFilename);
 		AddLogLineN(CFormat(_("Finished downloading the server list from %s")) % m_URLUpdate);
+		ret = true;
+	// cppcheck-suppress duplicateBranch
 	} else if (result == HTTP_Skipped) {
 		AddLogLineN(CFormat(_("Skipped download of %s, because requested file is not newer.")) % wxT("server.met"));
 	} else {
 		AddLogLineC(CFormat(_("Failed to download %s from %s")) % wxT("server.met") % m_URLUpdate);
 	}
+	return ret;
 }
 
 
-void CServerList::AutoUpdate() 
+void CServerList::AutoUpdate()
 {
-	
+
 	uint8 url_count = theApp->glob_prefs->adresses_list.GetCount();
-	
+
 	if (!url_count) {
 		AddLogLineC(_("No server list address entry in 'addresses.dat' found. Please paste a valid server list address into this file in order to auto-update your server list"));
 		return;
@@ -884,7 +889,7 @@ void CServerList::AutoUpdate()
 				URI, strTempFilename, theApp->ConfigDir + wxT("server.met"), HTTP_ServerMetAuto, false, false);
 			downloader->Create();
 			downloader->Run();
-		
+
 			return;
 		} else {
 			AddLogLineC(CFormat(
@@ -896,25 +901,25 @@ void CServerList::AutoUpdate()
 }
 
 
-void CServerList::AutoDownloadFinished(uint32 result) 
+void CServerList::AutoDownloadFinished(uint32 result)
 {
 	if (result == HTTP_Success) {
 		CPath tempFilename = CPath(theApp->ConfigDir + wxT("server_auto.met"));
-		
+
 		// curl succeeded. proceed with server.met loading
 		LoadServerMet(tempFilename);
 		SaveServerMet();
-		
+
 		// So, file is loaded and merged, and also saved
 		CPath::RemoveFile(tempFilename);
 	} else {
 		AddLogLineC(CFormat(_("Failed to download the server list from %s") ) % m_URLUpdate);
 	}
-	
+
 	++current_url_index;
-	
-	if (current_url_index < theApp->glob_prefs->adresses_list.GetCount()) {		
-		// Next!	
+
+	if (current_url_index < theApp->glob_prefs->adresses_list.GetCount()) {
+		// Next!
 		AutoUpdate();
 	}
 }
@@ -979,7 +984,7 @@ void CServerList::FilterServers()
 		if (server->HasDynIP()) {
 			continue;
 		}
-		
+
 		if (theApp->ipfilter->IsFiltered(server->GetIP(), true)) {
 			if (server == theApp->serverconnect->GetCurrentServer()) {
 				AddLogLineC(_("Local server is filtered by the IPFilters, reconnecting to a different server!"));
@@ -988,13 +993,13 @@ void CServerList::FilterServers()
 				theApp->serverconnect->ConnectToAnyServer();
 			} else {
 				RemoveServer(server);
-			}			
+			}
 		}
 	}
 }
 
 void CServerList::CheckForExpiredUDPKeys() {
-	
+
 	if (!thePrefs::IsServerCryptLayerUDPEnabled()) {
 		return;
 	}
@@ -1005,7 +1010,7 @@ void CServerList::CheckForExpiredUDPKeys() {
 	const uint32 dwIP = theApp->GetPublicIP();
 	const uint32 tNow = ::GetTickCount();
 	wxASSERT( dwIP != 0 );
-	
+
 	for (CInternalList::const_iterator it = m_servers.begin(); it != m_servers.end(); ++it) {
         CServer* pServer = *it;
 		if (pServer->SupportsObfuscationUDP() && pServer->GetServerKeyUDP(true) != 0 && pServer->GetServerKeyUDPIP() != dwIP){
diff --git a/src/ServerList.h b/src/ServerList.h
index cc3a29e..b1b7624 100644
--- a/src/ServerList.h
+++ b/src/ServerList.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,7 +42,7 @@ public:
 	bool		AddServer(CServer* in_server, bool fromUser = false);
 	void		RemoveServer(CServer* in_server);
 	void		RemoveAllServers();
-	void		RemoveDeadServers();	
+	void		RemoveDeadServers();
 	bool		LoadServerMet(const CPath& path);
 	bool		SaveServerMet();
 	void		ServerStats();
@@ -58,13 +58,13 @@ public:
 	void		GetUserFileStatus( uint32 &user, uint32 &file);
 	bool		IsInitialized() const { return m_initialized; }
 	void		Sort();
-	void 		UpdateServerMetFromURL(const wxString& strURL);	
-	void		DownloadFinished(uint32 result);	
-	void		AutoDownloadFinished(uint32 result);	
+	void		UpdateServerMetFromURL(const wxString& strURL);
+	bool		DownloadFinished(uint32 result);
+	void		AutoDownloadFinished(uint32 result);
 	uint32		GetAvgFile() const;
 
 	std::vector<const CServer*> CopySnapshot() const;
-	
+
 	/** Refilters all servers though the IPFilter. */
 	void FilterServers();
 
@@ -81,12 +81,12 @@ public:
 	 */
 	void		SetStaticServer(CServer* server, bool isStatic);
 	void		SetServerPrio(CServer* server, uint32 prio);
-	
+
 private:
-	virtual void 	ObserverAdded( ObserverType* );
+	virtual void	ObserverAdded( ObserverType* );
 	void		AutoUpdate();
 	CServer*	GetNextStatServer();
-	
+
 	wxString	m_staticServersConfig;
 	void		LoadStaticServers();
 	void		SaveStaticServers();
diff --git a/src/ServerListCtrl.cpp b/src/ServerListCtrl.cpp
index 830a73d..73de594 100644
--- a/src/ServerListCtrl.cpp
+++ b/src/ServerListCtrl.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -50,20 +50,20 @@
 
 BEGIN_EVENT_TABLE(CServerListCtrl,CMuleListCtrl)
 	EVT_LIST_ITEM_RIGHT_CLICK( -1,	CServerListCtrl::OnItemRightClicked)
-	EVT_LIST_ITEM_ACTIVATED( -1, 	CServerListCtrl::OnItemActivated )
+	EVT_LIST_ITEM_ACTIVATED( -1,	CServerListCtrl::OnItemActivated )
 
 	EVT_MENU( MP_PRIOLOW,			CServerListCtrl::OnPriorityChange )
 	EVT_MENU( MP_PRIONORMAL,		CServerListCtrl::OnPriorityChange )
 	EVT_MENU( MP_PRIOHIGH,			CServerListCtrl::OnPriorityChange )
-	
+
 	EVT_MENU( MP_ADDTOSTATIC,		CServerListCtrl::OnStaticChange )
 	EVT_MENU( MP_REMOVEFROMSTATIC,	CServerListCtrl::OnStaticChange )
 
 	EVT_MENU( MP_CONNECTTO,			CServerListCtrl::OnConnectToServer )
-	
+
 	EVT_MENU( MP_REMOVE,			CServerListCtrl::OnRemoveServers )
 	EVT_MENU( MP_REMOVEALL,			CServerListCtrl::OnRemoveServers )
-	
+
 	EVT_MENU( MP_GETED2KLINK,		CServerListCtrl::OnGetED2kURL )
 
 	EVT_CHAR( CServerListCtrl::OnKeyPressed )
@@ -98,8 +98,8 @@ CServerListCtrl::CServerListCtrl( wxWindow *parent, wxWindowID winid, const wxPo
 	InsertColumn( COLUMN_SERVER_TCPFLAGS,	wxT("TCP Flags"),	wxLIST_FORMAT_LEFT,  80, wxT("t") );
 	InsertColumn( COLUMN_SERVER_UDPFLAGS,	wxT("UDP Flags"),	wxLIST_FORMAT_LEFT,  80, wxT("u") );
 	#endif
-	
-	
+
+
 	LoadSettings();
 }
 
@@ -120,7 +120,7 @@ void CServerListCtrl::AddServer( CServer* toadd )
 	// RefreshServer will add the server.
 	// This also means that we have simple duplicity checking. ;)
 	RefreshServer( toadd );
-	
+
 	ShowServerCount();
 }
 
@@ -131,7 +131,7 @@ void CServerListCtrl::RemoveServer(CServer* server)
 	if ( result != -1 ) {
 		DeleteItem(result);
 		ShowServerCount();
-	}	
+	}
 }
 
 
@@ -142,14 +142,14 @@ void CServerListCtrl::RemoveAllServers(int state)
 	  theApp->serverconnect->IsConnecting();
 
 	while ( pos != -1 ) {
-		CServer* server = (CServer*)GetItemData(pos);
-		
+		CServer* server = reinterpret_cast<CServer*>(GetItemData(pos));
+
 		if (server == m_connected && connected) {
 			wxMessageBox(_("You are connected to a server you are trying to delete. Please disconnect first. The server was NOT deleted."), _("Info"), wxOK, this);
 			++pos;
 		} else if (server->IsStaticMember()) {
 			const wxString name = (!server->GetListName() ? wxString(_("(Unknown name)")) : server->GetListName());
-			
+
 			if (wxMessageBox(CFormat(_("Are you sure you want to delete the static server %s")) % name, _("Cancel"), wxICON_QUESTION | wxYES_NO, this) == wxYES) {
 				theApp->serverlist->SetStaticServer(server, false);
 				DeleteItem( pos );
@@ -161,7 +161,7 @@ void CServerListCtrl::RemoveAllServers(int state)
 			DeleteItem( pos );
 			theApp->serverlist->RemoveServer( server );
 		}
-		
+
 		pos = GetNextItem(pos - 1, wxLIST_NEXT_ALL, state);
 	}
 
@@ -171,7 +171,7 @@ void CServerListCtrl::RemoveAllServers(int state)
 
 void CServerListCtrl::RefreshServer( CServer* server )
 {
-	// Cant really refresh a NULL server 
+	// Cant really refresh a NULL server
 	if (!server) {
 		return;
 	}
@@ -182,13 +182,13 @@ void CServerListCtrl::RefreshServer( CServer* server )
 		// We are not at the sure that the server isn't in the list, so we can re-add
 		itemnr = InsertItem( GetInsertPos( ptr ), server->GetListName() );
 		SetItemPtrData( itemnr, ptr );
-	
+
 		wxListItem item;
 		item.SetId( itemnr );
 		item.SetBackgroundColour(CMuleColour(wxSYS_COLOUR_LISTBOX));
 		SetItem( item );
 	}
-	
+
 	wxString serverName;
 #ifdef ENABLE_IP2COUNTRY
 	// Get the country name
@@ -209,7 +209,7 @@ void CServerListCtrl::RefreshServer( CServer* server )
 			CFormat(wxT("%u (%s)")) % server->GetPort() % server->GetAuxPortsList());
 	}
 	SetItem( itemnr, COLUMN_SERVER_DESC, server->GetDescription() );
-	
+
 	if ( server->GetPing() ) {
 		SetItem( itemnr, COLUMN_SERVER_PING,
 			CastSecondsToHM(server->GetPing()/1000, server->GetPing() % 1000 ) );
@@ -253,7 +253,7 @@ void CServerListCtrl::RefreshServer( CServer* server )
 	}
 	if (server->GetTCPFlags() & SRV_TCPFLG_UNICODE) {
 		flags += wxT("u");
-	}          	
+	}
 	if (server->GetTCPFlags() & SRV_TCPFLG_RELATEDSEARCH) {
 		flags += wxT("r");
 	}
@@ -266,9 +266,9 @@ void CServerListCtrl::RefreshServer( CServer* server )
 	if (server->GetTCPFlags() & SRV_TCPFLG_TCPOBFUSCATION) {
 		flags += wxT("o");
 	}
-	
+
 	SetItem( itemnr, COLUMN_SERVER_TCPFLAGS, flags );
-	
+
 	/* UDP */
 	flags.Clear();
 	if (server->GetUDPFlags() & SRV_UDPFLG_EXT_GETSOURCES) {
@@ -279,7 +279,7 @@ void CServerListCtrl::RefreshServer( CServer* server )
 	}
 	if (server->GetUDPFlags() & SRV_UDPFLG_NEWTAGS) {
 		flags += wxT("n");
-	}          	
+	}
 	if (server->GetUDPFlags() & SRV_UDPFLG_UNICODE) {
 		flags += wxT("u");
 	}
@@ -296,9 +296,9 @@ void CServerListCtrl::RefreshServer( CServer* server )
 		flags += wxT("O");
 	}
 	SetItem( itemnr, COLUMN_SERVER_UDPFLAGS, flags );
-	
+
 	#endif
-	
+
 	// Deletions of items causes rather large ammount of flicker, so to
 	// avoid this, we resort the list to ensure correct ordering.
 	if (!IsItemSorted(itemnr)) {
@@ -311,20 +311,20 @@ void CServerListCtrl::HighlightServer( const CServer* server, bool highlight )
 {
 	// Unset the old highlighted server if we are going to set a new one
 	if ( m_connected && highlight ) {
-		// A recursive call to do the real work. 
+		// A recursive call to do the real work.
 		HighlightServer( m_connected, false );
 
 		m_connected = 0;
 	}
-	
+
 	long itemnr = FindItem( -1,  reinterpret_cast<wxUIntPtr>(server) );
 	if ( itemnr > -1 ) {
 		wxListItem item;
 		item.SetId( itemnr );
-		
+
 		if ( GetItem( item ) ) {
 			wxFont font = GetFont();
-			
+
 			if ( highlight ) {
 				font.SetWeight( wxBOLD );
 
@@ -356,10 +356,10 @@ void CServerListCtrl::OnItemActivated( wxListEvent& event )
 	long item = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	while ( item > -1 ) {
 		SetItemState( item, 0, wxLIST_STATE_SELECTED);
-		
+
 		item = GetNextItem( item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	}
-		
+
 	SetItemState( event.GetIndex(), wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
 
 	wxCommandEvent nulEvt;
@@ -378,7 +378,7 @@ void CServerListCtrl::OnItemRightClicked(wxListEvent& event)
 
 	// Gather information on the selected items
 	while ( index > -1 ) {
-		CServer* server = (CServer*)GetItemData( index );
+		CServer* server = reinterpret_cast<CServer*>(GetItemData(index));
 
 		// The current server is selected, so we might display the reconnect option
 		if (server == m_connected) {
@@ -428,7 +428,7 @@ void CServerListCtrl::OnItemRightClicked(wxListEvent& event)
 		serverMenu->Append( MP_GETED2KLINK, _("Copy eD2k links to clipboard") );
 	}
 
-	serverMenu->Enable( MP_REMOVEFROMSTATIC, 	enable_static_off );
+	serverMenu->Enable( MP_REMOVEFROMSTATIC,	enable_static_off );
 	serverMenu->Enable( MP_ADDTOSTATIC,			enable_static_on  );
 
 	if ( GetSelectedItemCount() == 1 ) {
@@ -451,17 +451,17 @@ void CServerListCtrl::OnPriorityChange( wxCommandEvent& event )
 	switch ( event.GetId() ) {
 		case MP_PRIOLOW:		priority = SRV_PR_LOW;		break;
 		case MP_PRIONORMAL:		priority = SRV_PR_NORMAL;	break;
-		case MP_PRIOHIGH:		priority = SRV_PR_HIGH;		break;		
-				
+		case MP_PRIOHIGH:		priority = SRV_PR_HIGH;		break;
+
 		default:
 			return;
 	}
 
-	
+
 	ItemDataList items = GetSelectedItems();
-	
+
 	for ( unsigned int i = 0; i < items.size(); ++i ) {
-		CServer* server = (CServer*)items[ i ];
+		CServer* server = reinterpret_cast<CServer*>(items[i]);
 		theApp->serverlist->SetServerPrio(server, priority);
 	}
 }
@@ -472,9 +472,9 @@ void CServerListCtrl::OnStaticChange( wxCommandEvent& event )
 	bool isStatic = ( event.GetId() == MP_ADDTOSTATIC );
 
 	ItemDataList items = GetSelectedItems();
-	
+
 	for ( unsigned int i = 0; i < items.size(); ++i ) {
-		CServer* server = (CServer*)items[ i ];
+		CServer* server = reinterpret_cast<CServer*>(items[i]);
 
 		// Only update items that have the wrong setting
 		if ( server->IsStaticMember() != isStatic ) {
@@ -487,33 +487,33 @@ void CServerListCtrl::OnStaticChange( wxCommandEvent& event )
 void CServerListCtrl::OnConnectToServer( wxCommandEvent& WXUNUSED(event) )
 {
 	int item = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	if ( item > -1 ) {
 		if ( theApp->IsConnectedED2K() ) {
 			theApp->serverconnect->Disconnect();
 		}
 
-		theApp->serverconnect->ConnectToServer( (CServer*)GetItemData( item ) );
+		theApp->serverconnect->ConnectToServer( reinterpret_cast<CServer*>(GetItemData(item)) );
 	}
 }
-	
+
 
 void CServerListCtrl::OnGetED2kURL( wxCommandEvent& WXUNUSED(event) )
 {
 	int pos = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	wxString URL;
-	
+
 	while ( pos != -1 ) {
-		CServer* server = (CServer*)GetItemData(pos);
-		
+		CServer* server = reinterpret_cast<CServer*>(GetItemData(pos));
+
 		URL += CFormat(wxT("ed2k://|server|%s|%d|/\n"))	% server->GetFullIP() % server->GetPort();
-		
+
 		pos = GetNextItem( pos, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	}
-	
+
 	URL.RemoveLast();
-	
+
 	theApp->CopyTextToClipboard( URL );
 }
 
@@ -523,14 +523,14 @@ void CServerListCtrl::OnRemoveServers( wxCommandEvent& event )
 	if ( event.GetId() == MP_REMOVEALL ) {
 		if ( GetItemCount() ) {
 			wxString question = _("Are you sure that you wish to delete all servers?");
-	
+
 			if ( wxMessageBox( question, _("Cancel"), wxICON_QUESTION | wxYES_NO, this) == wxYES ) {
 				if ( theApp->serverconnect->IsConnecting() ) {
 					theApp->downloadqueue->StopUDPRequests();
 					theApp->serverconnect->StopConnectionTry();
 					theApp->serverconnect->Disconnect();
 				}
-			
+
 				RemoveAllServers(wxLIST_STATE_DONTCARE);
 			}
 		}
@@ -542,7 +542,7 @@ void CServerListCtrl::OnRemoveServers( wxCommandEvent& event )
 			} else {
 				question = _("Are you sure that you wish to delete the selected servers?");
 			}
-	
+
 			if ( wxMessageBox( question, _("Cancel"), wxICON_QUESTION | wxYES_NO, this) == wxYES ) {
 				RemoveAllServers(wxLIST_STATE_SELECTED);
 			}
@@ -566,16 +566,16 @@ void CServerListCtrl::OnKeyPressed( wxKeyEvent& event )
 
 int CServerListCtrl::SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData)
 {
-	CServer* server1 = (CServer*)item1;
-	CServer* server2 = (CServer*)item2;
+	CServer* server1 = reinterpret_cast<CServer*>(item1);
+	CServer* server2 = reinterpret_cast<CServer*>(item2);
 
 	int mode = (sortData & CMuleListCtrl::SORT_DES) ? -1 : 1;
-	
+
 	switch (sortData & CMuleListCtrl::COLUMN_MASK) {
 		// Sort by server-name
 		case COLUMN_SERVER_NAME:
 			return mode * server1->GetListName().CmpNoCase(server2->GetListName());
-		
+
 		// Sort by address
 		case COLUMN_SERVER_ADDR:
 			{
diff --git a/src/ServerListCtrl.h b/src/ServerListCtrl.h
index 3d826c9..4f7958d 100644
--- a/src/ServerListCtrl.h
+++ b/src/ServerListCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,9 +38,9 @@
 #define	COLUMN_SERVER_PRIO	7
 #define	COLUMN_SERVER_FAILS	8
 #define	COLUMN_SERVER_STATIC	9
-#define	COLUMN_SERVER_VERSION 	10
-#define	COLUMN_SERVER_TCPFLAGS 	11
-#define	COLUMN_SERVER_UDPFLAGS 	12
+#define	COLUMN_SERVER_VERSION	10
+#define	COLUMN_SERVER_TCPFLAGS	11
+#define	COLUMN_SERVER_UDPFLAGS	12
 
 class CServer;
 class CServerList;
@@ -48,12 +48,12 @@ class wxListEvent;
 class wxCommandEvent;
 
 
-/** 
+/**
  * The CServerListCtrl is used to display the list of servers which the user
  * can connect to and which we request sources from. It is a permanently sorted
  * list in that it always ensure that the items are sorted in the correct order.
  */
-class CServerListCtrl : public CMuleListCtrl 
+class CServerListCtrl : public CMuleListCtrl
 {
 public:
 	/**
@@ -69,7 +69,7 @@ public:
                 long style = wxLC_ICON,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString &name = wxT("mulelistctrl") );
-	
+
 	/**
 	 * Destructor.
 	 */
@@ -81,39 +81,39 @@ public:
 	 *
 	 * @param A pointer to the new server.
 	 *
-	 * Internally this function calls RefreshServer and ShowServerCount, with 
+	 * Internally this function calls RefreshServer and ShowServerCount, with
 	 * the result that it is legal to add servers already in the list, though
 	 * not recommended.
 	 */
 	void	AddServer( CServer* toadd );
-	
+
 	/**
 	 * Removes a server from the displayed list.
 	 */
 	void	RemoveServer(CServer* server);
-	
+
 	/**
-	 * Removes all servers with the specified state. 
+	 * Removes all servers with the specified state.
 	 *
 	 * @param state All items with this state will be removed, default being all.
 	 */
 	void	RemoveAllServers(int state = wxLIST_STATE_DONTCARE);
-	
-	
+
+
 	/**
 	 * Updates the displayed information on a server.
 	 *
 	 * @param server The server to be updated.
 	 *
-	 * This function will not only update the displayed information, it will also 
+	 * This function will not only update the displayed information, it will also
 	 * reposition the item should it be nescecarry to enforce the current sorting.
 	 * Also note that this function does not require that the server actually is
-	 * on the list already, since AddServer makes use of it, but this should 
+	 * on the list already, since AddServer makes use of it, but this should
 	 * generally be avoided, since it will result in the server-count getting
 	 * skewed until the next AddServer call.
-	 */	
+	 */
 	void	RefreshServer( CServer* server );
-	
+
 	/**
 	 * Sets the highlighting of the specified server.
 	 *
@@ -121,13 +121,13 @@ public:
 	 * @param highlight The new highlighting state.
 	 *
 	 * Please note that only _one_ item is allowed to be highlighted at any
-	 * one time, so calling this function while another item is already 
+	 * one time, so calling this function while another item is already
 	 * highlighted will result in the old item not being highlighted any more.
 	 */
 	void	HighlightServer( const CServer* server, bool highlight );
 
 
-	
+
 	/**
 	 * This function updates the server-count in the server-wnd.
 	 */
@@ -143,27 +143,27 @@ private:
 	 * Event-handler for handling item activation (connect).
 	 */
 	void	OnItemActivated( wxListEvent& event );
-	
+
 	/**
 	 * Event-handler for displaying the popup-menu.
 	 */
 	void	OnItemRightClicked( wxListEvent& event );
-	
+
 	/**
 	 * Event-handler for priority changes.
 	 */
 	void	OnPriorityChange( wxCommandEvent& event );
-	
+
 	/**
 	 * Event-handler for static changes.
 	 */
 	void	OnStaticChange( wxCommandEvent& event );
-	
+
 	/**
 	 * Event-handler for server connections.
 	 */
 	void	OnConnectToServer( wxCommandEvent& event );
-	
+
 	/**
 	 * Event-handler for copying server-urls to the clipboard.
 	 */
@@ -178,7 +178,7 @@ private:
 	 * Event-handler for deleting servers when the delete-key is pressed.
 	 */
 	void	OnKeyPressed( wxKeyEvent& event );
-	
+
 	/**
 	 * Sorter function.
 	 *
@@ -189,8 +189,8 @@ private:
 
 	//! Used to keep track of the last high-lighted item.
 	const CServer* m_connected;
-	
-	
+
+
 	DECLARE_EVENT_TABLE()
 };
 
diff --git a/src/ServerSocket.cpp b/src/ServerSocket.cpp
index 523c06a..f561ed6 100644
--- a/src/ServerSocket.cpp
+++ b/src/ServerSocket.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -84,10 +84,10 @@ void CServerSocketHandler::ServerSocketHandler(wxSocketEvent& event)
 		return;
 	}
 
-	if (socket->OnDestroy()) {
+	if (socket->IsDestroying()) {
 		return;
 	}
-	
+
 	switch(event.GetSocketEvent()) {
 		case wxSOCKET_CONNECTION:
 			socket->OnConnect(wxSOCKET_NOERROR);
@@ -105,8 +105,8 @@ void CServerSocketHandler::ServerSocketHandler(wxSocketEvent& event)
 			wxFAIL;
 			break;
 	}
-	
-	
+
+
 }
 
 //
@@ -130,7 +130,7 @@ CEMSocket(ProxyData)
 	m_bIsDeleting = false;
 
 	SetEventHandler(g_serverSocketHandler, ID_SERVERSOCKET_EVENT);
-	
+
 	SetNotify(
 		wxSOCKET_CONNECTION_FLAG |
 		wxSOCKET_INPUT_FLAG |
@@ -138,7 +138,7 @@ CEMSocket(ProxyData)
 		wxSOCKET_LOST_FLAG);
 	Notify(true);
 
-	m_dwLastTransmission = 0;	
+	m_dwLastTransmission = 0;
 	m_IsSolving = false;
 	m_bNoCrypt = false;
 }
@@ -148,7 +148,7 @@ CServerSocket::~CServerSocket()
 	// remove event handler...
 	SetNotify(0);
 	Notify(FALSE);
-	
+
 	if (cur_server) {
 		delete cur_server;
 	}
@@ -156,14 +156,12 @@ CServerSocket::~CServerSocket()
 }
 
 
-void CServerSocket::OnConnect(wxSocketError nErrorCode)
+void CServerSocket::OnConnect(int nErrorCode)
 {
 	switch (nErrorCode) {
 		case wxSOCKET_NOERROR:
 			if (cur_server->HasDynIP()) {
-				amuleIPV4Address tmpaddr;
-				GetPeer(tmpaddr);
-				uint32 server_ip = StringIPtoUint32(tmpaddr.IPAddress());
+				uint32 server_ip = GetPeerInt();
 				cur_server->SetID(server_ip);
 				// GetServerByAddress may return NULL, so we must test!
 				// This was the reason why amule would crash when trying to
@@ -188,7 +186,7 @@ void CServerSocket::OnConnect(wxSocketError nErrorCode)
 			SetConnectionState(CS_SERVERDEAD);
 			serverconnect->DestroySocket(this);
 			return;
-		
+
 		case wxSOCKET_IOERR:
 		case wxSOCKET_MEMERR:
 		case wxSOCKET_INVOP:
@@ -197,18 +195,18 @@ void CServerSocket::OnConnect(wxSocketError nErrorCode)
 			SetConnectionState(CS_FATALERROR);
 			serverconnect->DestroySocket(this);
 			return;
-		
+
 	}
-	
+
 }
 
-void CServerSocket::OnReceive(wxSocketError nErrorCode)
+void CServerSocket::OnReceive(int nErrorCode)
 {
 	if (connectionstate != CS_CONNECTED && !serverconnect->IsConnecting()) {
 		serverconnect->DestroySocket(this);
 		return;
 	}
-	CEMSocket::OnReceive((int)nErrorCode);
+	CEMSocket::OnReceive(nErrorCode);
 	m_dwLastTransmission = GetTickCount();
 }
 
@@ -216,12 +214,12 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 {
 	try {
 		AddDebugLogLineN( logServer, wxT("Processing Server Packet: ") );
-		
+
 		switch(opcode) {
 			case OP_SERVERMESSAGE: {
 				/* Kry import of lugdunum 16.40 new features */
 				AddDebugLogLineN( logServer, wxT("Server: OP_SERVERMESSAGE") );
-				
+
 				theStats::AddDownOverheadServer(size);
 				char* buffer = new char[size-1];
 				memcpy(buffer,&packet[2],size-2);
@@ -230,7 +228,7 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 				wxString strMessages(char2unicode(buffer));
 
 				delete[] buffer;
-				
+
 				// 16.40 servers do not send separate OP_SERVERMESSAGE packets for each line;
 				// instead of this they are sending all text lines with one OP_SERVERMESSAGE packet.
 
@@ -252,8 +250,8 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 						CServer* pServer = theApp->serverlist->GetServerByAddress(cur_server->GetAddress(),cur_server->GetPort());
 						wxString servername;
 						if (pServer) {
-							servername	= pServer->GetListName();	
-						} else {	
+							servername	= pServer->GetListName();
+						} else {
 							servername = _("Server");
 						}
 						AddLogLineN(CFormat( _("ERROR: %s (%s) - %s") )
@@ -267,8 +265,8 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 						CServer* pServer = theApp->serverlist->GetServerByAddress(cur_server->GetAddress(),cur_server->GetPort());
 						wxString servername;
 						if (pServer) {
-							servername	= pServer->GetListName();	
-						} else {	
+							servername	= pServer->GetListName();
+						} else {
 							servername = _("Server");
 						}
 						AddLogLineN(CFormat( _("WARNING: %s (%s) - %s") )
@@ -287,7 +285,7 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 							if (eserver){
 								eserver->SetDynIP(dynip);
 								cur_server->SetDynIP(dynip);
-								Notify_ServerRefresh(eserver);	
+								Notify_ServerRefresh(eserver);
 							}
 						}
 					}
@@ -300,25 +298,25 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 			}
 			case OP_IDCHANGE: {
 				AddDebugLogLineN(logServer, wxT("Server: OP_IDCHANGE"));
-				
+
 				theStats::AddDownOverheadServer(size);
-				
+
 				if (size < 4 /* uint32 (ID)*/) {
 					throw wxString(wxT("Corrupt or invalid loginanswer from server received"));
 				}
 
-				CMemFile data(packet, size);			
-				
+				CMemFile data(packet, size);
+
 				uint32 new_id = data.ReadUInt32();
 
 				// save TCP flags in 'cur_server'
 				wxASSERT(cur_server);
-				uint32 ConnPort = 0;
 				CServer* pServer = NULL;
 				if (cur_server) {
+					uint32 ConnPort = 0;
 					uint32 rport = cur_server->GetConnPort();
 					pServer = theApp->serverlist->GetServerByAddress(cur_server->GetAddress(), rport);
-					if (size >= 4+4 /* uint32 (ID) + uint32 (TCP flags)*/) {			
+					if (size >= 4+4 /* uint32 (ID) + uint32 (TCP flags)*/) {
 						cur_server->SetTCPFlags(data.ReadUInt32());
 						if (size >= 4+4+4 /* uint32 (ID) + uint32 (TCP flags) + uint32 (aux port) */) {
 							// aux port login : we should use the 'standard' port of this server to advertize to other clients
@@ -344,9 +342,8 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 						}
 					}
 				}
-				
+
 				uint32 dwServerReportedIP = 0;
-				uint32 dwObfuscationTCPPort = 0;
 				if (size >= 4 + 4 + 4 + 4 + 4 /* All of the above + reported ip + obfuscation port */) {
 					dwServerReportedIP = data.ReadUInt32();
 					if (::IsLowID(dwServerReportedIP)){
@@ -354,16 +351,17 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 						dwServerReportedIP = 0;
 					}
 					wxASSERT( dwServerReportedIP == new_id || ::IsLowID(new_id) );
-					dwObfuscationTCPPort = data.ReadUInt32();
-					if (cur_server != NULL && dwObfuscationTCPPort != 0) {
-						cur_server->SetObfuscationPortTCP((uint16)dwObfuscationTCPPort);
-					}
-					
-					if (pServer != NULL && dwObfuscationTCPPort != 0) {
-						pServer->SetObfuscationPortTCP((uint16)dwObfuscationTCPPort);
+					uint32 dwObfuscationTCPPort = data.ReadUInt32();
+					if (dwObfuscationTCPPort != 0) {
+						if (cur_server != NULL) {
+							cur_server->SetObfuscationPortTCP(dwObfuscationTCPPort);
+						}
+						if (pServer != NULL) {
+							pServer->SetObfuscationPortTCP(dwObfuscationTCPPort);
+						}
 					}
-				}				
-				
+				}
+
 				if (new_id == 0) {
 					uint8 state = thePrefs::GetSmartIdState();
 					if ( state > 0 ) {
@@ -392,7 +390,7 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 						}
 					}
 				}
-				
+
 				// we need to know our client when sending our shared files (done indirectly on SetConnectionState)
 
 				serverconnect->SetClientID(new_id);
@@ -400,10 +398,10 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 				if (::IsLowID(new_id) && dwServerReportedIP != 0) {
 					theApp->SetPublicIP(dwServerReportedIP);
 				}
-				
+
 				if (connectionstate != CS_CONNECTED) {
 					AddDebugLogLineN(logServer, wxT("Connected"));
-					
+
 					SetConnectionState(CS_CONNECTED);
 					theApp->OnlineSig();       // Added By Bouc7
 				}
@@ -416,26 +414,26 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 					AddLogLineN(_("\tMost likely this is because you're behind a firewall or router."));
 					AddLogLineN(_("\tFor more information, please refer to http://wiki.amule.org"));
 				}
-								
+
 				theApp->downloadqueue->ResetLocalServerRequests();
 				break;
 			}
 			case OP_SEARCHRESULT: {
 				AddDebugLogLineN(logServer, wxT("Server: OP_SEARCHRESULT"));
-				
+
 				theStats::AddDownOverheadServer(size);
-				CServer* cur_srv = (serverconnect) ? 
+				CServer* cur_srv = (serverconnect) ?
 					serverconnect->GetCurrentServer() : NULL;
 				theApp->searchlist->ProcessSearchAnswer(
 					packet,
-					size, 
+					size,
 					true /*(cur_srv && cur_srv->GetUnicodeSupport())*/,
 					cur_srv ? cur_srv->GetIP() : 0,
 					cur_srv ? cur_srv->GetPort() : 0);
 				theApp->searchlist->LocalSearchEnd();
 				break;
 			}
-			case OP_FOUNDSOURCES_OBFU:			
+			case OP_FOUNDSOURCES_OBFU:
 			case OP_FOUNDSOURCES: {
 				AddDebugLogLineN(logServer, CFormat(wxT("ServerMsg - OP_FoundSources; sources = %u")) % packet[16]);
 				theStats::AddDownOverheadServer(size);
@@ -453,7 +451,6 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 				// FIXME some statuspackets have a different size -> why? structur?
 				if (size < 8) {
 					throw wxString(wxT("Invalid server status packet"));
-					break;
 				}
 				CServer* update = theApp->serverlist->GetServerByAddress(cur_server->GetAddress(), cur_server->GetPort());
 				if (update) {
@@ -478,7 +475,7 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 				CServer* update = theApp->serverlist->GetServerByAddress(cur_server->GetAddress(),cur_server->GetPort());
 				if (update) {
 					CMemFile data(packet,size);
-					CMD4Hash hash = data.ReadHash();				
+					CMD4Hash hash = data.ReadHash();
 					if (RawPeekUInt32(hash.GetHash()) == 0x2A2A2A2A){ // No endian problem here
 						const wxString& rstrVersion = update->GetVersion();
 						if (!rstrVersion.IsEmpty()) {
@@ -490,8 +487,8 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 					// Unused
 					/*uint32 nServerIP = */data.ReadUInt32();
 					/*uint16 nServerPort = */data.ReadUInt16();
-				
-					uint32 nTags = data.ReadUInt32();					
+
+					uint32 nTags = data.ReadUInt32();
 					for (uint32 i = 0; i < nTags; i++){
 						CTag tag(data, update->GetUnicodeSupport());
 						if (tag.GetNameID() == ST_SERVERNAME){
@@ -499,8 +496,8 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 						} else if (tag.GetNameID() == ST_DESCRIPTION){
 							update->SetDescription(tag.GetStr());
 						} // No more known tags from server
-					}				
-								
+					}
+
 					theApp->ShowConnectionState();
 					Notify_ServerRefresh(update);
 				}
@@ -509,7 +506,7 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 			// tecxx 1609 2002 - add server's serverlist to own serverlist
 			case OP_SERVERLIST: {
 				AddDebugLogLineN(logServer, wxT("Server: OP_SERVERLIST"));
-				
+
 				CMemFile* servers = new CMemFile(packet,size);
 				uint8 count = servers->ReadUInt8();
 				if (((int32)(count*6 + 1) > size)) {
@@ -521,7 +518,7 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 					uint16 port = servers->ReadUInt16();
 					CServer* srv = new CServer(
 								port ,				// Port
-								Uint32toStringIP(ip)); 	// Ip
+								Uint32toStringIP(ip));	// Ip
 					srv->SetListName(srv->GetFullIP());
 					if (!theApp->AddServer(srv)) {
 						delete srv;
@@ -540,20 +537,20 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 			}
 			case OP_CALLBACKREQUESTED: {
 				AddDebugLogLineN(logServer, wxT("Server: OP_CALLBACKREQUESTED"));
-				
+
 				theStats::AddDownOverheadServer(size);
 				if (size >= 6) {
 					CMemFile data(packet,size);
 					uint32 dwIP = data.ReadUInt32();
 					uint16 nPort = data.ReadUInt16();
-					
+
 					uint8 byCryptOptions = 0;
 					CMD4Hash achUserHash;
 					if (size >= 23){
 						byCryptOptions = data.ReadUInt8();;
 						achUserHash = data.ReadHash();
 					}
-					
+
 					CUpDownClient* client = theApp->clientlist->FindClientByIP(dwIP,nPort);
 
 					if (!client) {
@@ -574,7 +571,7 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 						client->SetUserHash(achUserHash);
 						client->SetConnectOptions(byCryptOptions, true, false);
 					}
-					
+
 					client->TryToConnect();
 				}
 				break;
@@ -603,36 +600,36 @@ bool CServerSocket::ProcessPacket(const byte* packet, uint32 size, int8 opcode)
 	// Don't disconnect because of wrong sources.
 	if (opcode==OP_SEARCHRESULT || opcode==OP_FOUNDSOURCES) {
 		return true;
-	}				
+	}
 
 	SetConnectionState(CS_DISCONNECTED);
-	return false;	
+	return false;
 }
 
 void CServerSocket::ConnectToServer(CServer* server, bool bNoCrypt)
 {
 	AddDebugLogLineN(logServer, wxT("Trying to connect"));
-	
+
 	if (cur_server){
 		wxFAIL;
 		delete cur_server;
 		cur_server = NULL;
 	}
-	
+
 	cur_server = new CServer(server);
-	
-	m_bNoCrypt = bNoCrypt;	
-	
+
+	m_bNoCrypt = bNoCrypt;
+
 	SetConnectionState(CS_CONNECTING);
-	
-	info = cur_server->GetListName();		
+
+	info = cur_server->GetListName();
 
 	// This must be used if we want to reverse-check the addr of the server
 	if (cur_server->HasDynIP() || !cur_server->GetIP()) {
 		m_IsSolving = true;
 		// Send it to solving thread.
 		CAsyncDNS* dns = new CAsyncDNS(server->GetAddress(), DNS_SERVER_CONNECT, theApp, this);
-	
+
 		if ( dns->Create() == wxTHREAD_NO_ERROR ) {
 			if ( dns->Run() != wxTHREAD_NO_ERROR ) {
 				dns->Delete();
@@ -645,14 +642,14 @@ void CServerSocket::ConnectToServer(CServer* server, bool bNoCrypt)
 	} else {
 		// Nothing to solve, we already have the IP
 		OnHostnameResolved(cur_server->GetIP());
-	}	
+	}
 
 }
 
-void CServerSocket::OnError(wxSocketError DEBUG_ONLY(nErrorCode))
+void CServerSocket::OnError(int DEBUG_ONLY(nErrorCode))
 {
 	AddDebugLogLineN(logServer, CFormat(wxT("Error in serversocket: %s(%s:%i): %u"))
-		% cur_server->GetListName() % cur_server->GetFullIP() % cur_server->GetPort() % (int)nErrorCode);
+		% cur_server->GetListName() % cur_server->GetFullIP() % cur_server->GetPort() % nErrorCode);
 	SetConnectionState(CS_DISCONNECTED);
 }
 
@@ -660,7 +657,7 @@ void CServerSocket::OnError(wxSocketError DEBUG_ONLY(nErrorCode))
 bool CServerSocket::PacketReceived(CPacket* packet)
 {
 	AddDebugLogLineN(logServer, CFormat(wxT("Server: Packet Received: Prot %x, Opcode %x, Length %u")) % packet->GetProtocol() % packet->GetOpCode() % packet->GetPacketSize());
-	
+
 	if (packet->GetProtocol() == OP_PACKEDPROT) {
 		if (!packet->UnPackPacket(250000)){
 			AddDebugLogLineN(logZLib, CFormat(wxT("Failed to decompress server TCP packet: protocol=0x%02x  opcode=0x%02x  size=%u"))
@@ -668,10 +665,10 @@ bool CServerSocket::PacketReceived(CPacket* packet)
 			theStats::AddDownOverheadServer(packet->GetPacketSize());
 			return true;
 		}
-		
+
 		packet->SetProtocol(OP_EDONKEYPROT);
 	}
-		
+
 	if (packet->GetProtocol() == OP_EDONKEYPROT) {
 		ProcessPacket(packet->GetDataBuffer(), packet->GetPacketSize(), packet->GetOpCode());
 	} else {
@@ -679,21 +676,21 @@ bool CServerSocket::PacketReceived(CPacket* packet)
 			% packet->GetProtocol() % packet->GetOpCode() % packet->GetPacketSize());
 		theStats::AddDownOverheadServer(packet->GetPacketSize());
 	}
-	
+
 	return true;
 }
 
 
-void CServerSocket::OnClose(wxSocketError WXUNUSED(nErrorCode))
+void CServerSocket::OnClose(int WXUNUSED(nErrorCode))
 {
 	CEMSocket::OnClose(0);
-	
+
 	switch (connectionstate) {
 		case CS_WAITFORLOGIN:	SetConnectionState(CS_SERVERFULL);		break;
 		case CS_CONNECTED:	SetConnectionState(CS_DISCONNECTED);	break;
-		default:				SetConnectionState(CS_NOTCONNECTED);	
+		default:				SetConnectionState(CS_NOTCONNECTED);
 	}
-	
+
 	serverconnect->DestroySocket(this);
 }
 
@@ -718,7 +715,7 @@ void CServerSocket::SendPacket(CPacket* packet, bool delpacket, bool controlpack
 
 
 void CServerSocket::OnHostnameResolved(uint32 ip) {
-	
+
 	m_IsSolving = false;
 	if (ip) {
 		if (theApp->ipfilter->IsFiltered(ip, true)) {
@@ -738,17 +735,17 @@ void CServerSocket::OnHostnameResolved(uint32 ip) {
 				nPort = cur_server->GetConnPort();
 				SetConnectionEncryption(false, NULL, true);
 			}
-			
-			addr.Service(nPort);			
-			
+
+			addr.Service(nPort);
+
 			AddLogLineN(CFormat( _("Connecting to %s (%s - %s:%i) %s") )
 				% cur_server->GetListName()
 				% cur_server->GetAddress()
 				% cur_server->GetFullIP()
-				% nPort 
+				% nPort
 				% useObfuscation
 			);
-			
+
 			AddDebugLogLineN(logServer, CFormat(wxT("Server %s(%s) Port %i"))
 				% cur_server->GetAddress() % Uint32toStringIP(ip) % cur_server->GetConnPort());
 			Connect(addr, false);
@@ -758,7 +755,7 @@ void CServerSocket::OnHostnameResolved(uint32 ip) {
 			% cur_server->GetAddress() );
 		OnConnect(wxSOCKET_NOHOST);
 	}
-	
+
 }
 uint32 CServerSocket::GetServerIP() const
 {
diff --git a/src/ServerSocket.h b/src/ServerSocket.h
index 4a773f9..155e824 100644
--- a/src/ServerSocket.h
+++ b/src/ServerSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,26 +48,26 @@ public:
 	virtual ~CServerSocket();
 
 	void	ConnectToServer(CServer* server, bool bNoCrypt = false);
-	sint8	GetConnectionState()	const	{ return connectionstate; } 
- 	uint32  GetLastTransmission() const	{ return m_dwLastTransmission; }
+	sint8	GetConnectionState()	const	{ return connectionstate; }
+	uint32  GetLastTransmission() const	{ return m_dwLastTransmission; }
 	wxString info;
 
-	void	OnClose(wxSocketError nErrorCode);
-	void	OnConnect(wxSocketError nErrorCode);
-	void	OnReceive(wxSocketError nErrorCode);
-	void	OnError(wxSocketError nErrorCode);
+	void	OnClose(int nErrorCode);
+	void	OnConnect(int nErrorCode);
+	void	OnReceive(int nErrorCode);
+	void	OnError(int nErrorCode);
 	bool	PacketReceived(CPacket* packet);
-	void 	SendPacket(CPacket* packet, bool delpacket = true, bool controlpacket = true, uint32 actualPayloadSize = 0);
+	void	SendPacket(CPacket* packet, bool delpacket = true, bool controlpacket = true, uint32 actualPayloadSize = 0);
 	bool	IsSolving() const { return m_IsSolving;};
- 	void	OnHostnameResolved(uint32 ip);
- 	CServer *GetServerConnected() const { return serverconnect->GetCurrentServer(); }
-	
+	void	OnHostnameResolved(uint32 ip);
+	CServer *GetServerConnected() const { return serverconnect->GetCurrentServer(); }
+
 	uint32 GetServerIP() const;
-	
+
 private:
 	bool	ProcessPacket(const byte* packet, uint32 size, int8 opcode);
 	void	SetConnectionState(sint8 newstate);
-	CServerConnect*	serverconnect; 
+	CServerConnect*	serverconnect;
 	sint8	connectionstate;
 	CServer*	cur_server;
 	bool m_bNoCrypt;
diff --git a/src/ServerUDPSocket.cpp b/src/ServerUDPSocket.cpp
index bb244fc..4e840c0 100644
--- a/src/ServerUDPSocket.cpp
+++ b/src/ServerUDPSocket.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -63,7 +63,7 @@ CServerUDPSocket::CServerUDPSocket(amuleIPV4Address &address, const CProxyData *
 void CServerUDPSocket::OnPacketReceived(uint32 serverip, uint16 serverport, byte* buffer, size_t length)
 {
 	wxCHECK_RET(length >= 2, wxT("Invalid packet."));
-	
+
 	size_t nPayLoadLen = length;
 	byte* pBuffer = buffer;
 	CServer* pServer = theApp->serverlist->GetServerByIPUDP(serverip, serverport, true);
@@ -80,22 +80,24 @@ void CServerUDPSocket::OnPacketReceived(uint32 serverip, uint16 serverport, byte
 
 		wxASSERT( dwKey != 0 );
 		nPayLoadLen = CEncryptedDatagramSocket::DecryptReceivedServer(buffer, length, &pBuffer, dwKey, serverip);
+#ifdef __DEBUG__
 		if (nPayLoadLen == length) {
 			AddDebugLogLineN(logServerUDP, CFormat(wxT("Expected encrypted packet, but received unencrytped from server %s, UDPKey %u, Challenge: %u")) % pServer->GetListName() % pServer->GetServerKeyUDP() % pServer->GetChallenge());
 		} else {
 			AddDebugLogLineN(logServerUDP, CFormat(wxT("Received encrypted packet from server %s, UDPKey %u, Challenge: %u")) % pServer->GetListName() % pServer->GetServerKeyUDP() % pServer->GetChallenge());
 		}
+#endif
 	}
-	
+
 	uint8 protocol = pBuffer[0];
 	uint8 opcode  = pBuffer[1];
-	
+
 	if (protocol == OP_EDONKEYPROT) {
 		CMemFile data(pBuffer + 2, nPayLoadLen - 2);
 		ProcessPacket(data, opcode, serverip, serverport);
 	} else {
 		AddDebugLogLineN(logServerUDP, CFormat(wxT("Received invalid packet, protocol (0x%x) and opcode (0x%x)")) % protocol % opcode);
-			
+
 		theStats::AddDownOverheadOther(length);
 	}
 }
@@ -105,12 +107,12 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 {
 	CServer* update = theApp->serverlist->GetServerByIPUDP(ip, port, true);
 	unsigned size = packet.GetLength();
-	
+
 	theStats::AddDownOverheadOther(size);
 	AddDebugLogLineN( logServerUDP,
-					CFormat( wxT("Received UDP server packet from %s:%u, opcode (0x%x)")) % 
+					CFormat( wxT("Received UDP server packet from %s:%u, opcode (0x%x)")) %
 							Uint32toStringIP(ip) % port % opcode );
-	
+
 	try {
 		// Imported: OP_GLOBSEARCHRES, OP_GLOBFOUNDSOURCES & OP_GLOBSERVSTATRES
 		// This makes Server UDP Flags to be set correctly so we use less bandwith on asking servers for sources
@@ -122,12 +124,12 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 
 				do{
 					theApp->searchlist->ProcessUDPSearchAnswer(packet, true, ip, port - 4);
-					
+
 					if (packet.GetPosition() + 2 < size) {
 						// An additional packet?
 						uint8 protocol = packet.ReadUInt8();
 						uint8 new_opcode = packet.ReadUInt8();
-					
+
 						if (protocol != OP_EDONKEYPROT || new_opcode != OP_GLOBSEARCHRES) {
 							AddDebugLogLineC( logServerUDP,
 								wxT("Server search reply got additional bogus bytes.") );
@@ -136,10 +138,10 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 							AddDebugLogLineC( logServerUDP,
 								wxT("Got server search reply with additional packet.") );
 						}
-					}					
-					
+					}
+
 				} while (packet.GetPosition()+2 < size);
-				
+
 				break;
 			}
 			case OP_GLOBFOUNDSOURCES:{
@@ -159,18 +161,18 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 						// An additional packet?
 						uint8 protocol = packet.ReadUInt8();
 						uint8 new_opcode = packet.ReadUInt8();
-					
+
 						if (protocol != OP_EDONKEYPROT || new_opcode != OP_GLOBFOUNDSOURCES) {
 							AddDebugLogLineC( logServerUDP,
 								wxT("Server sources reply got additional bogus bytes.") );
 							break;
-						} 
+						}
 					}
 				} while ((packet.GetPosition() + 2) < size);
 				break;
 			}
 
- 			case OP_GLOBSERVSTATRES:{
+			case OP_GLOBSERVSTATRES:{
 				// Reviewed with 0.47c
 				if (!update) {
 					throw wxString(CFormat(wxT("Unknown server on a OP_GLOBSERVSTATRES packet (%s:%d)")) % Uint32toStringIP(ip) % (port-4));
@@ -182,19 +184,19 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 				if (challenge != update->GetChallenge()) {
 					throw wxString(CFormat(wxT("Invalid challenge on OP_GLOBSERVSTATRES packet (0x%x != 0x%x)")) % challenge % update->GetChallenge());
 				}
-				
+
 				update->SetChallenge(0);
 				update->SetCryptPingReplyPending(false);
 				uint32 tNow = ::GetTickCount();
 				update->SetLastPingedTime(tNow - (rand() % HR2S(1))); // if we used Obfuscated ping, we still need to reset the time properly
-				
+
 				uint32 cur_user = packet.ReadUInt32();
 				uint32 cur_files = packet.ReadUInt32();
 				uint32 cur_maxusers = 0;
 				uint32 cur_softfiles = 0;
 				uint32 cur_hardfiles = 0;
 				uint32 uUDPFlags = 0;
-				uint32 uLowIDUsers = 0;				
+				uint32 uLowIDUsers = 0;
 				uint32 dwServerUDPKey = 0;
 				uint16 nTCPObfuscationPort = 0;
 				uint16 nUDPObfuscationPort = 0;
@@ -208,7 +210,7 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 							if( size >= 32 ){
 								uLowIDUsers = packet.ReadUInt32();
 								if (size >= 40) {
-									nUDPObfuscationPort = packet.ReadUInt16();	
+									nUDPObfuscationPort = packet.ReadUInt16();
 									nTCPObfuscationPort = packet.ReadUInt16();
 									dwServerUDPKey = packet.ReadUInt32();
 								}
@@ -228,14 +230,14 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 				update->SetServerKeyUDP(dwServerUDPKey);
 				update->SetObfuscationPortTCP(nTCPObfuscationPort);
 				update->SetObfuscationPortUDP(nUDPObfuscationPort);
-				
+
 				Notify_ServerRefresh( update );
-				
+
 				update->SetLastDescPingedCount(false);
 				if (update->GetLastDescPingedCount() < 2) {
 					// eserver 16.45+ supports a new OP_SERVER_DESC_RES answer, if the OP_SERVER_DESC_REQ contains a uint32
 					// challenge, the server returns additional info with OP_SERVER_DESC_RES. To properly distinguish the
-					// old and new OP_SERVER_DESC_RES answer, the challenge has to be selected carefully. The first 2 bytes 
+					// old and new OP_SERVER_DESC_RES answer, the challenge has to be selected carefully. The first 2 bytes
 					// of the challenge (in network byte order) MUST NOT be a valid string-len-int16!
 					CPacket* sendpacket = new CPacket(OP_SERVER_DESC_REQ, 4, OP_EDONKEYPROT);
 					uint32 uDescReqChallenge = ((uint32)GetRandomUint16() << 16) + INV_SERV_DESC_LEN; // 0xF0FF = an 'invalid' string length.
@@ -243,15 +245,15 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 					sendpacket->CopyUInt32ToDataBuffer(uDescReqChallenge);
 					//theStats.AddUpDataOverheadServer(packet->size);
 					AddDebugLogLineN(logServerUDP, CFormat(wxT(">>> Sending OP__ServDescReq     to server %s:%u, challenge %08x\n")) % update->GetAddress() % update->GetPort() % uDescReqChallenge);
-					theApp->serverconnect->SendUDPPacket(sendpacket, update, true);					
+					theApp->serverconnect->SendUDPPacket(sendpacket, update, true);
 				} else {
 					update->SetLastDescPingedCount(true);
 				}
-				
+
 				theApp->ShowUserCount();
 				break;
 			}
- 			case OP_SERVER_DESC_RES:{
+			case OP_SERVER_DESC_RES:{
 				// Reviewed with 0.47c
 				if (!update) {
 					throw(wxString(wxT("Received OP_SERVER_DESC_RES from an unknown server")));
@@ -262,17 +264,17 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 				//
 				// NOTE: To properly distinguish between the two packets which are both useing the same opcode...
 				// the first two bytes of <challenge> (in network byte order) have to be an invalid <name_len> at least.
-				
+
 				uint16 Len = packet.ReadUInt16();
-				
+
 				packet.Seek(-2, wxFromCurrent); // Step back
-				
+
 				if (size >= 8 && Len == INV_SERV_DESC_LEN) {
-					
+
 					if (update->GetDescReqChallenge() != 0 && packet.ReadUInt32() == update->GetDescReqChallenge()) {
-						
+
 						update->SetDescReqChallenge(0);
-						
+
 						uint32 uTags = packet.ReadUInt32();
 						for (uint32 i = 0; i < uTags; ++i) {
 							CTag tag(packet, update->GetUnicodeSupport());
@@ -307,7 +309,7 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 						// multiple IPs. If such a server is asked for a description, the server will answer 2 times,
 						// but with the same IP.
 						// ignore this packet
-						
+
 					}
 				} else {
 					update->SetDescription(packet.ReadString(update->GetUnicodeSupport()));
@@ -325,70 +327,70 @@ void CServerUDPSocket::ProcessPacket(CMemFile& packet, uint8 opcode, uint32 ip,
 	} catch (const CEOFException& DEBUG_ONLY(e)) {
 		AddDebugLogLineN(logServerUDP, wxT("IO error while processing incoming UDP Packet: ") + e.what());
 	}
-	
+
 	if (update) {
 		update->ResetFailedCount();
 		Notify_ServerRefresh( update );
 	}
-	
+
 }
 
 void CServerUDPSocket::OnReceiveError(int errorCode, uint32 ip, uint16 port)
 {
 	CMuleUDPSocket::OnReceiveError(errorCode, ip, port);
-	
+
 	// If we are not currently pinging this server, increase the failure counter
 	CServer* pServer = theApp->serverlist->GetServerByIPUDP(ip, port, true);
 	if (pServer && !pServer->GetCryptPingReplyPending() && GetTickCount() - pServer->GetLastPinged() >= SEC2MS(30)) {
 		pServer->AddFailedCount();
 		Notify_ServerRefresh(pServer);
-	}	
-	
+	}
+
 }
 
 void CServerUDPSocket::SendPacket(CPacket* packet, CServer* host, bool delPacket, bool rawpacket, uint16 port_offset)
 {
 	ServerUDPPacket item = { NULL, 0, 0, wxEmptyString };
-	
+
 	if (host->HasDynIP()) {
 		item.addr = host->GetDynIP();
 	} else {
 		item.ip = host->GetIP();
-	}	
-	
+	}
+
 	// 4 (default) for standard sending, 12 for obfuscated ping, that's all for now.
 	// Might be changed if encrypted bellow, so don't move it.
 	item.port = host->GetPort() + port_offset;
-	
+
 	// We might need to encrypt the packet for this server.
 	if (!rawpacket && thePrefs::IsServerCryptLayerUDPEnabled() && host->GetServerKeyUDP() != 0 && host->SupportsObfuscationUDP()) {
 		uint16 uRawPacketSize = packet->GetPacketSize() + 2;
 		byte* pRawPacket = new byte[uRawPacketSize];
 		memcpy(pRawPacket, packet->GetUDPHeader(), 2);
 		memcpy(pRawPacket + 2, packet->GetDataBuffer(), packet->GetPacketSize());
-		
+
 		uRawPacketSize = CEncryptedDatagramSocket::EncryptSendServer(&pRawPacket, uRawPacketSize, host->GetServerKeyUDP());
 		AddDebugLogLineN(logServerUDP, CFormat(wxT("Sending encrypted packet to server %s, UDPKey %u, port %u, original OPCode 0x%02x")) % host->GetListName() % host->GetServerKeyUDP() % host->GetObfuscationPortUDP() % packet->GetOpCode());
 		item.port = host->GetObfuscationPortUDP();
-		
+
 		CMemFile encryptedpacket(pRawPacket + 2, uRawPacketSize - 2);
 		item.packet  = new CPacket(encryptedpacket, pRawPacket[0], pRawPacket[1]);
 		delete[] pRawPacket;
-		
+
 		if (delPacket) {
 			delete packet;
 		}
-		
+
 	} else {
 		AddDebugLogLineN(logServerUDP, CFormat(wxT("Sending regular packet to server %s, port %u (raw = %s), OPCode 0x%02x")) % host->GetListName() % host->GetObfuscationPortUDP() % (rawpacket ? wxT("True") : wxT("False")) % packet->GetOpCode());
 		if (delPacket) {
 			item.packet = packet;
 		} else {
 			item.packet = new CPacket(*packet);
-		}	
+		}
 	}
-	
-	
+
+
 	m_queue.push_back(item);
 
 	// If there is more than one item in the queue,
@@ -401,10 +403,10 @@ void CServerUDPSocket::SendPacket(CPacket* packet, CServer* host, bool delPacket
 
 void CServerUDPSocket::SendQueue()
 {
-	while (m_queue.size()) {
+	while (!m_queue.empty()) {
 		ServerUDPPacket item = m_queue.front();
 		CPacket* packet = item.packet;
-		
+
 		// Do we need to do a DNS lookup before sending?
 		wxASSERT(item.ip || !item.addr.IsEmpty());
 		if (!item.addr.IsEmpty()) {
@@ -455,7 +457,7 @@ void CServerUDPSocket::SendQueue()
 				continue;
 			}
 		}
-		
+
 		CServer* update = theApp->serverlist->GetServerByIPUDP(item.ip, item.port, true);
 		if (update) {
 			AddDebugLogLineN(logServerUDP, wxT("Sending a UDP packet to a server: ")+update->GetAddress());
@@ -464,7 +466,7 @@ void CServerUDPSocket::SendQueue()
 		} else {
 			AddDebugLogLineN(logServerUDP, wxT("Sending a UDP packet to a server no in serverlist: ")+Uint32_16toStringIP_Port(item.ip,item.port));
 		}
-		
+
 		m_queue.pop_front();
 	}
 }
@@ -473,24 +475,24 @@ void CServerUDPSocket::SendQueue()
 void CServerUDPSocket::OnHostnameResolved(uint32 ip)
 {
 	wxCHECK_RET(m_queue.size(), wxT("DNS query returned, but no packets are queued."));
-	
+
 	ServerUDPPacket item = m_queue.front();
 	wxCHECK_RET(!item.ip && !item.addr.IsEmpty(), wxT("DNS resolution not expected."));
-		
+
 	/* An asynchronous database routine completed. */
 	CServer* update = theApp->serverlist->GetServerByAddress(item.addr, item.port);
-	if (ip == 0) { 
+	if (ip == 0) {
 		update->SetDNSError(true);
-		m_queue.pop_front();	
+		m_queue.pop_front();
 	} else {
 		if (update) {
 			update->SetID(ip);
 		}
-		
+
 		item.addr.Clear();
 		item.ip = ip;
 	}
-	
+
 	SendQueue();
 }
 // File_checked_for_headers
diff --git a/src/ServerUDPSocket.h b/src/ServerUDPSocket.h
index ffff470..6caed5d 100644
--- a/src/ServerUDPSocket.h
+++ b/src/ServerUDPSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/ServerWnd.cpp b/src/ServerWnd.cpp
index 8d4afc6..d9e4a98 100644
--- a/src/ServerWnd.cpp
+++ b/src/ServerWnd.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -47,7 +47,7 @@ BEGIN_EVENT_TABLE(CServerWnd,wxPanel)
 	EVT_SPLITTER_SASH_POS_CHANGED(ID_SRV_SPLITTER,CServerWnd::OnSashPositionChanged)
 END_EVENT_TABLE()
 
-	
+
 CServerWnd::CServerWnd(wxWindow* pParent /*=NULL*/, int splitter_pos)
 : wxPanel(pParent, -1)
 {
@@ -73,7 +73,7 @@ CServerWnd::CServerWnd(wxWindow* pParent /*=NULL*/, int splitter_pos)
 	wxASSERT(KadInfoList);
 	KadInfoList->InsertColumn(0, wxEmptyString);
 	KadInfoList->InsertColumn(1, wxEmptyString);
-	
+
 	sizer->Show(this,TRUE);
 }
 
@@ -81,7 +81,7 @@ CServerWnd::CServerWnd(wxWindow* pParent /*=NULL*/, int splitter_pos)
 CServerWnd::~CServerWnd()
 {
 	thePrefs::SetEd2kServersUrl(CastChild( IDC_SERVERLISTURL, wxTextCtrl )->GetValue());
-	thePrefs::SetKadNodesUrl(CastChild( IDC_NODESLISTURL, wxTextCtrl )->GetValue());	
+	thePrefs::SetKadNodesUrl(CastChild( IDC_NODESLISTURL, wxTextCtrl )->GetValue());
 }
 
 
@@ -102,15 +102,15 @@ void CServerWnd::OnBnClickedAddserver(wxCommandEvent& WXUNUSED(evt))
 		AddLogLineC(_("Server not added: No IP or hostname specified."));
 		return;
 	}
-	
+
 	if ( port <= 0 || port > 65535 ) {
 		AddLogLineC(_("Server not added: Invalid server-port specified."));
 		return;
 	}
-  
+
 	CServer* toadd = new CServer( port, serveraddr );
 	toadd->SetListName( servername.IsEmpty() ? serveraddr : servername );
-	
+
 	if ( theApp->AddServer( toadd, true ) ) {
 		CastChild( IDC_SERVERNAME, wxTextCtrl )->Clear();
 		CastChild( IDC_IPADDRESS, wxTextCtrl )->Clear();
@@ -120,15 +120,15 @@ void CServerWnd::OnBnClickedAddserver(wxCommandEvent& WXUNUSED(evt))
 		// See note on CServerList::AddServer
 		if (update == NULL && toadd->GetIP() != 0) {
 			update = theApp->serverlist->GetServerByIPTCP(toadd->GetIP(), toadd->GetPort());
-		}		
-		
+		}
+
 		if ( update ) {
 			update->SetListName(toadd->GetListName());
 			serverlistctrl->RefreshServer(update);
 		}
 		delete toadd;
 	}
-	
+
 	theApp->serverlist->SaveServerMet();
 }
 
@@ -155,24 +155,24 @@ void CServerWnd::OnBnClickedResetServerLog(wxCommandEvent& WXUNUSED(evt))
 void CServerWnd::UpdateED2KInfo()
 {
 	wxListCtrl* ED2KInfoList = CastChild( ID_ED2KINFO, wxListCtrl );
-	
+
 	ED2KInfoList->DeleteAllItems();
 	ED2KInfoList->InsertItem(0, _("eD2k Status:"));
 
 	if (theApp->IsConnectedED2K()) {
 		ED2KInfoList->SetItem(0, 1, _("Connected"));
 
-		// Connection data		
-		
+		// Connection data
+
 		ED2KInfoList->InsertItem(1, _("IP:Port"));
-		ED2KInfoList->SetItem(1, 1, theApp->serverconnect->IsLowID() ? 
+		ED2KInfoList->SetItem(1, 1, theApp->serverconnect->IsLowID() ?
 			 wxString(_("LowID")) : Uint32_16toStringIP_Port( theApp->GetED2KID(), thePrefs::GetPort()));
 
 		ED2KInfoList->InsertItem(2, _("ID"));
 		// No need to test the server connect, it's already true
 		ED2KInfoList->SetItem(2, 1, CFormat(wxT("%u")) % theApp->GetED2KID());
-		
-		ED2KInfoList->InsertItem(3, wxEmptyString);		
+
+		ED2KInfoList->InsertItem(3, wxEmptyString);
 
 		if (theApp->serverconnect->IsLowID()) {
 			ED2KInfoList->SetItem(1, 1, _("Server")); // LowID, unknown ip
@@ -181,7 +181,7 @@ void CServerWnd::UpdateED2KInfo()
 			ED2KInfoList->SetItem(1, 1, Uint32_16toStringIP_Port(theApp->GetED2KID(), thePrefs::GetPort()));
 			ED2KInfoList->SetItem(3, 1, _("HighID"));
 		}
-		
+
 	} else {
 		// No data
 		ED2KInfoList->SetItem(0, 1, _("Not Connected"));
@@ -285,6 +285,6 @@ void CServerWnd::OnBnClickedED2KDisconnect(wxCommandEvent& WXUNUSED(evt))
 		theApp->serverconnect->StopConnectionTry();
 	} else {
 		theApp->serverconnect->Disconnect();
-	}	
+	}
 }
 // File_checked_for_headers
diff --git a/src/ServerWnd.h b/src/ServerWnd.h
index 94ee079..851d072 100644
--- a/src/ServerWnd.h
+++ b/src/ServerWnd.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/SharedFileList.cpp b/src/SharedFileList.cpp
index 2664c3e..1742250 100644
--- a/src/SharedFileList.cpp
+++ b/src/SharedFileList.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -107,7 +107,7 @@ public:
 
 	void RotateReferences(unsigned iRotateSize) {
 		wxCHECK_RET(m_aFiles.size(), wxT("RotateReferences: Rotating empty array"));
-		
+
 		unsigned shift = (iRotateSize % m_aFiles.size());
 		std::rotate(m_aFiles.begin(), m_aFiles.begin() + shift, m_aFiles.end());
 	}
@@ -198,7 +198,7 @@ CPublishKeyword* CPublishKeywordList::FindKeyword(const wxString& rstrKeyword, C
 			return pPubKw;
 		}
 	}
-	
+
 	return NULL;
 }
 
@@ -306,7 +306,7 @@ CSharedFileList::~CSharedFileList()
 }
 
 
-void CSharedFileList::FindSharedFiles() 
+void CSharedFileList::FindSharedFiles()
 {
 	/* Abort loading if we are shutting down. */
 	if(theApp->IsOnShutDown()) {
@@ -327,17 +327,17 @@ void CSharedFileList::FindSharedFiles()
 	// All part files are automatically shared.
 	for ( uint32 i = 0; i < theApp->downloadqueue->GetFileCount(); ++i ) {
 		CPartFile* file = theApp->downloadqueue->GetFileByIndex( i );
-		
+
 		if ( file->GetStatus(true) == PS_READY ) {
 			AddLogLineNS(CFormat(_("Adding file %s to shares"))
 				% file->GetFullName().GetPrintable());
 			AddFile(file);
 		}
 	}
-	
+
 	// Create a list of all shared paths and weed out duplicates.
 	std::list<CPath> sharedPaths;
-	
+
 	// Global incoming dir and all category incoming directories are automatically shared.
 	sharedPaths.push_back(thePrefs::GetIncomingDir());
 	for (unsigned int i = 1;i < theApp->glob_prefs->GetCatCount(); ++i) {
@@ -366,13 +366,13 @@ void CSharedFileList::FindSharedFiles()
 			addedFiles++;
 		}
 	}
-	
+
 	if (addedFiles == 0) {
 		AddLogLineN(CFormat(wxPLURAL("Found %i known shared file", "Found %i known shared files", GetCount())) % GetCount());
 
 		// Make sure the AICH-hashes are up to date.
 		CThreadScheduler::AddTask(new CAICHSyncTask());
-	} else {	
+	} else {
 		// New files, AICH thread will be run at the end of the hashing thread.
 		AddLogLineN(CFormat(wxPLURAL("Found %i known shared file, %i unknown", "Found %i known shared files, %i unknown", GetCount())) % GetCount() % addedFiles);
 	}
@@ -390,7 +390,7 @@ bool CheckDirectory(const wxString& a, const CPath& b)
 
 	return false;
 }
-		
+
 
 unsigned CSharedFileList::AddFilesFromDirectory(const CPath& directory, TaskList & hashTasks)
 {
@@ -409,10 +409,10 @@ unsigned CSharedFileList::AddFilesFromDirectory(const CPath& directory, TaskList
 	if (!directory.DirExists()) {
 		AddLogLineNS(CFormat(_("Shared directory not found, skipping: %s"))
 			% directory.GetPrintable());
-		
+
 		return 0;
 	}
-	
+
 	CDirIterator::FileType searchFor = CDirIterator::FileNoHidden;
 	if (thePrefs::ShareHiddenFiles()) {
 		 searchFor = CDirIterator::File;
@@ -421,11 +421,11 @@ unsigned CSharedFileList::AddFilesFromDirectory(const CPath& directory, TaskList
 	unsigned knownFiles = 0;
 	unsigned addedFiles = 0;
 
-	CDirIterator SharedDir(directory); 
+	CDirIterator SharedDir(directory);
 
 	for (CPath fname = SharedDir.GetFirstFile(searchFor); fname.IsOk(); fname = SharedDir.GetNextFile()) {
 		CPath fullPath = directory.JoinPaths(fname);
-	
+
 		if (!fullPath.FileExists()) {
 			AddDebugLogLineN(logKnownFiles,
 				CFormat(wxT("Shared file does not exist (possibly a broken link): %s")) % fullPath);
@@ -470,7 +470,7 @@ unsigned CSharedFileList::AddFilesFromDirectory(const CPath& directory, TaskList
 			//not in knownfilelist - start adding thread to hash file
 			AddDebugLogLineN(logKnownFiles,
 				CFormat(wxT("Hashing new unknown shared file '%s'")) % fname);
-			
+
 			hashTasks.push_back(new CHashingTask(directory, fname));
 			addedFiles++;
 		}
@@ -488,7 +488,7 @@ unsigned CSharedFileList::AddFilesFromDirectory(const CPath& directory, TaskList
 bool CSharedFileList::AddFile(CKnownFile* pFile)
 {
 	wxASSERT(pFile->GetHashCount() == pFile->GetED2KPartHashCount());
-	
+
 	wxMutexLocker lock(list_mut);
 
 	CKnownFileMap::value_type entry(pFile->GetFileHash(), pFile);
@@ -505,12 +505,12 @@ bool CSharedFileList::AddFile(CKnownFile* pFile)
 void CSharedFileList::SafeAddKFile(CKnownFile* toadd, bool bOnlyAdd)
 {
 	// TODO: Check if the file is already known - only with another date
-	
+
 	if (AddFile(toadd)) {
 		Notify_SharedFilesShowFile(toadd);
 	}
-	
-	if (!bOnlyAdd && theApp->IsConnectedED2K()) {		
+
+	if (!bOnlyAdd && theApp->IsConnectedED2K()) {
 		// Publishing of files is not anymore handled here.
 		// Instead, the timer does it by itself.
 		m_lastPublishED2KFlag = true;
@@ -535,12 +535,12 @@ void CSharedFileList::Reload()
 	// Madcat - Disable reloading if reloading already in progress.
 	// Kry - Fixed to let non-english language users use the 'Reload' button :P
 	// deltaHF - removed the old ugly button and changed the code to use the new small one
-	// Kry - bah, let's use a var. 
+	// Kry - bah, let's use a var.
 	if (!reloading) {
 		AddDebugLogLineN(logKnownFiles, wxT("Reload shared files"));
 		reloading = true;
 		Notify_SharedFilesRemoveAllItems();
-		
+
 		/* All Kad keywords must be removed */
 		m_keywords->RemoveAllKeywordReferences();
 
@@ -548,12 +548,12 @@ void CSharedFileList::Reload()
 		m_PublicSharedDirNames.clear();
 
 		FindSharedFiles();
-		
+
 		/* And now the unreferenced keywords must be removed also */
 		m_keywords->PurgeUnreferencedKeywords();
-		
+
 		Notify_SharedFilesShowFileList();
-	
+
 		reloading = false;
 	}
 }
@@ -575,7 +575,7 @@ CKnownFile*	CSharedFileList::GetFileByID(const CMD4Hash& filehash)
 {
 	wxMutexLocker lock(list_mut);
 	CKnownFileMap::iterator it = m_Files_map.find(filehash);
-	
+
 	if ( it != m_Files_map.end() ) {
 		return it->second;
 	} else {
@@ -626,10 +626,8 @@ void CSharedFileList::GetSharedFilesByDirectory(const wxString& directory,
 		CKnownFile *cur_file = pos->second;
 
 		if (dir.IsSameDir(cur_file->GetFilePath())) {
-			continue;
+			list.push_back(cur_file);
 		}
-
-		list.push_back(cur_file);
 	}
 }
 
@@ -684,7 +682,7 @@ bool SortFunc( const CKnownFile* fileA, const CKnownFile* fileB )
 void CSharedFileList::SendListToServer(){
 	std::vector<CKnownFile*> SortedList;
 
-	{	
+	{
 		wxMutexLocker lock(list_mut);
 
 		if (m_Files_map.empty() || !theApp->IsConnectedED2K() ) {
@@ -702,17 +700,17 @@ void CSharedFileList::SendListToServer(){
 		}
 	}
 
-	std::sort( SortedList.begin(), SortedList.end(), SortFunc ); 
-	
-	// Limits for the server. 
-	
-	CServer* server = theApp->serverconnect->GetCurrentServer();	
-	
+	std::sort( SortedList.begin(), SortedList.end(), SortFunc );
+
+	// Limits for the server.
+
+	CServer* server = theApp->serverconnect->GetCurrentServer();
+
 	uint32 limit = server ? server->GetSoftFiles() : 0;
 	if( limit == 0 || limit > 200 ) {
 		limit = 200;
 	}
-	
+
 	if( (uint32)SortedList.size() < limit ) {
 		limit = SortedList.size();
 		if (limit == 0) {
@@ -722,11 +720,11 @@ void CSharedFileList::SendListToServer(){
 	}
 
 	CMemFile files;
-	
+
 	// Files sent.
-	files.WriteUInt32(limit);	
-	
-	uint16 count = 0;	
+	files.WriteUInt32(limit);
+
+	uint16 count = 0;
 	// Add to packet
 	std::vector<CKnownFile*>::iterator sorted_it = SortedList.begin();
 	for ( ; (sorted_it != SortedList.end()) && (count < limit); ++sorted_it ) {
@@ -734,12 +732,12 @@ void CSharedFileList::SendListToServer(){
 		if (!file->IsLargeFile() || (server && server->SupportsLargeFilesTCP())) {
 			file->CreateOfferedFilePacket(&files, server, NULL);
 		}
-		file->SetPublishedED2K(true);	
+		file->SetPublishedED2K(true);
 		++count;
 	}
-	
+
 	wxASSERT(count == limit);
-	
+
 	CPacket* packet = new CPacket(files, OP_EDONKEYPROT, OP_OFFERFILES);
 	// compress packet
 	//   - this kind of data is highly compressable (N * (1 MD4 and at least 3 string meta data tags and 1 integer meta data tag))
@@ -772,12 +770,12 @@ void CSharedFileList::Publish()
 	unsigned int tNow = time(NULL);
 	bool IsFirewalled = theApp->IsFirewalled();
 
-	if( Kademlia::CKademlia::IsConnected() && ( !IsFirewalled || ( IsFirewalled && theApp->clientlist->GetBuddyStatus() == Connected)) && GetCount() && Kademlia::CKademlia::GetPublish()) { 
+	if( Kademlia::CKademlia::IsConnected() && ( !IsFirewalled || ( IsFirewalled && theApp->clientlist->GetBuddyStatus() == Connected)) && GetCount() && Kademlia::CKademlia::GetPublish()) {
 		//We are connected to Kad. We are either open or have a buddy. And Kad is ready to start publishing.
 
 		if( Kademlia::CKademlia::GetTotalStoreKey() < KADEMLIATOTALSTOREKEY) {
 
-			//We are not at the max simultaneous keyword publishes 
+			//We are not at the max simultaneous keyword publishes
 			if (tNow >= m_keywords->GetNextPublishTime()) {
 
 				//Enough time has passed since last keyword publish
@@ -834,7 +832,7 @@ void CSharedFileList::Publish()
 				m_keywords->SetNextPublishTime(KADEMLIAPUBLISHTIME+tNow);
 			}
 		}
-		
+
 		if( Kademlia::CKademlia::GetTotalStoreSrc() < KADEMLIATOTALSTORESRC) {
 			if(tNow >= m_lastPublishKadSrc) {
 				if(m_currFileSrc > GetCount()) {
@@ -848,7 +846,7 @@ void CSharedFileList::Publish()
 						if(Kademlia::CSearchManager::PrepareLookup(Kademlia::CSearch::STOREFILE, true, kadFileID )==NULL) {
 							pCurKnownFile->SetLastPublishTimeKadSrc(0,0);
 						}
-					}	
+					}
 				}
 				m_currFileSrc++;
 
@@ -870,7 +868,7 @@ void CSharedFileList::Publish()
 						kadFileID.SetValueBE(pCurKnownFile->GetFileHash().GetHash());
 						if(Kademlia::CSearchManager::PrepareLookup(Kademlia::CSearch::STORENOTES, true, kadFileID )==NULL)
 							pCurKnownFile->SetLastPublishTimeKadNotes(0);
-					}	
+					}
 				}
 				m_currFileNotes++;
 
@@ -899,14 +897,14 @@ bool CSharedFileList::RenameFile(CKnownFile* file, const CPath& newName)
 {
 	if (file->IsPartFile()) {
 		CPartFile* pfile = dynamic_cast<CPartFile*>(file);
-		
+
 		if (file->GetStatus() != PS_COMPLETING) {
 			pfile->SetFileName(newName);
 			pfile->SavePartFile();
-	
+
 			Notify_SharedFilesUpdateItem(file);
 			Notify_DownloadCtrlUpdateItem(file);
-			
+
 			return true;
 		}
 	} else {
@@ -948,11 +946,11 @@ bool CSharedFileList::RenameFile(CKnownFile* file, const CPath& newName)
 
 			Notify_DownloadCtrlUpdateItem(file);
 			Notify_SharedFilesUpdateItem(file);
-			
+
 			return true;
 		}
 	}
-	
+
 	return false;
 }
 
@@ -994,7 +992,7 @@ wxString CSharedFileList::GetPublicSharedDirName(const CPath& dir)
 	if (strDirectoryTmp.EndsWith(&cPathSepa)) {
 		strDirectoryTmp.RemoveLast();
 	}
-	
+
 	wxString strPublicName;
 	int iPos;
 	// check all the subdirectories in the path for being shared
@@ -1046,7 +1044,7 @@ wxString CSharedFileList::GetPublicSharedDirName(const CPath& dir)
 
 
 bool CSharedFileList::IsShared(const CPath& path) const
-{ 
+{
 	if( path.IsDir(CPath::exists) ) {
 		// check if it's a shared folder
 		const unsigned folderCount = theApp->glob_prefs->shareddir_list.size();
@@ -1055,7 +1053,7 @@ bool CSharedFileList::IsShared(const CPath& path) const
 				return true;
 			}
 		}
-	
+
 		// check if it's one of the categories folders (category 0 = incoming)
 		for (unsigned i = 0; i < theApp->glob_prefs->GetCatCount(); ++i) {
 			if (path.IsSameDir(theApp->glob_prefs->GetCategory(i)->path)) {
@@ -1077,7 +1075,7 @@ void CSharedFileList::CheckAICHHashes(const std::list<CAICHHash>& hashes)
 	CKnownFileMap::iterator it = m_Files_map.begin();
 	for (; it != m_Files_map.end(); ++it) {
 		const CKnownFile* file = it->second;
-	
+
 		if (file->IsPartFile() == false) {
 			CAICHHashSet* hashset = file->GetAICHHashset();
 
diff --git a/src/SharedFileList.h b/src/SharedFileList.h
index b042bb3..157c325 100644
--- a/src/SharedFileList.h
+++ b/src/SharedFileList.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -53,7 +53,7 @@ class CSharedFileList {
 public:
 	CSharedFileList(CKnownFileList* in_filelist);
 	~CSharedFileList();
-	void 	Reload();
+	void	Reload();
 	void	SafeAddKFile(CKnownFile* toadd, bool bOnlyAdd = false);
 	void	RemoveFile(CKnownFile* toremove);
 	CKnownFile*	GetFileByID(const CMD4Hash& filehash);
@@ -82,25 +82,25 @@ public:
 	 */
 	wxString		GetPublicSharedDirName(const CPath& dir);
 	const CPath*	GetDirForPublicSharedDirName(const wxString& strSharedDir) const;
-	
+
 	/**
 	 * Returns true, if the specified path points to a shared directory or single shared file.
 	 */
 	bool			IsShared(const CPath& path) const;
-	
+
 	/* Kad Stuff */
 	void	Publish();
 	void	AddKeywords(CKnownFile* pFile);
-	void	RemoveKeywords(CKnownFile* pFile);	
+	void	RemoveKeywords(CKnownFile* pFile);
 	// This is actually unused, but keep it here - will be needed later.
 	void	ClearKadSourcePublishInfo();
 
-	/** 
- 	 * Checks for files which missing or wrong AICH hashes.
- 	 * Those that are found are scheduled for ACIH hashing.
- 	 */
+	/**
+	 * Checks for files which missing or wrong AICH hashes.
+	 * Those that are found are scheduled for ACIH hashing.
+	 */
 	void CheckAICHHashes(const std::list<CAICHHash>& hashes);
-	
+
 private:
 	typedef std::list<CThreadTask *> TaskList;
 
@@ -108,10 +108,10 @@ private:
 	unsigned	AddFilesFromDirectory(const CPath& directory, TaskList & hashTasks);
 	void	FindSharedFiles();
 	bool	reloading;
-	
+
 	void	SendListToServer();
 	uint32 m_lastPublishED2K;
-	bool	 m_lastPublishED2KFlag;	
+	bool	 m_lastPublishED2KFlag;
 
 	CKnownFileList*	filelist;
 
diff --git a/src/SharedFilePeersListCtrl.cpp b/src/SharedFilePeersListCtrl.cpp
index 013903f..d5eec4b 100644
--- a/src/SharedFilePeersListCtrl.cpp
+++ b/src/SharedFilePeersListCtrl.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -24,7 +24,7 @@
 #include "SharedFilePeersListCtrl.h"
 #include "KnownFile.h"		// Do_not_auto_remove
 
-static CGenericClientListCtrlColumn s_sources_column_info[] = { 
+static CGenericClientListCtrlColumn s_sources_column_info[] = {
 	{ ColumnUserName,		wxTRANSLATE("User Name"),	260 },
 	{ ColumnUserDownloaded,		wxTRANSLATE("Downloaded"),	65 },
 	{ ColumnUserSpeedDown,		wxTRANSLATE("Download Speed"),	65 },
diff --git a/src/SharedFilePeersListCtrl.h b/src/SharedFilePeersListCtrl.h
index 0fcf9ff..ac7a3e4 100644
--- a/src/SharedFilePeersListCtrl.h
+++ b/src/SharedFilePeersListCtrl.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -35,7 +35,7 @@ class CSharedFilePeersListCtrl : public CGenericClientListCtrl
 public:
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @see CGenericClientListCtrl::CGenericClientListCtrl for documentation of parameters.
 	 */
 	 CSharedFilePeersListCtrl(
@@ -46,11 +46,11 @@ public:
                 long style = wxLC_ICON,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString &name = wxT("peerslistctrl") );
-				
+
 	/**
 	 * Destructor.
-	 */	 
-	virtual	~CSharedFilePeersListCtrl();	
+	 */
+	virtual	~CSharedFilePeersListCtrl();
 
 private:
 	virtual CamuleDlg::DialogType GetParentDialog() { return CamuleDlg::DT_SHARED_WND; }
@@ -58,9 +58,9 @@ private:
 	virtual void SetShowSources(CKnownFile * f, bool b) const;
 
 	static int wxCALLBACK SourceSortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData);
-	
+
 	bool IsShowingDownloadSources() const { return false; }
-	
+
 	DECLARE_EVENT_TABLE()
 };
 
diff --git a/src/SharedFilesCtrl.cpp b/src/SharedFilesCtrl.cpp
index 5153387..bb9ac56 100644
--- a/src/SharedFilesCtrl.cpp
+++ b/src/SharedFilesCtrl.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -62,8 +62,9 @@ BEGIN_EVENT_TABLE(CSharedFilesCtrl,CMuleListCtrl)
 	EVT_MENU( MP_GETSOURCEED2KLINK,			CSharedFilesCtrl::OnCreateURI )
 	EVT_MENU( MP_GETCRYPTSOURCEDED2KLINK,			CSharedFilesCtrl::OnCreateURI )
 	EVT_MENU( MP_GETHOSTNAMESOURCEED2KLINK,	CSharedFilesCtrl::OnCreateURI )
-	EVT_MENU( MP_GETHOSTNAMECRYPTSOURCEED2KLINK,			CSharedFilesCtrl::OnCreateURI )	
+	EVT_MENU( MP_GETHOSTNAMECRYPTSOURCEED2KLINK,			CSharedFilesCtrl::OnCreateURI )
 	EVT_MENU( MP_GETAICHED2KLINK,	CSharedFilesCtrl::OnCreateURI )
+	EVT_MENU( MP_GETAICHED2KLINKSRC,	CSharedFilesCtrl::OnCreateURI )
 	EVT_MENU( MP_RENAME,		CSharedFilesCtrl::OnRename )
 	EVT_MENU( MP_WS,		CSharedFilesCtrl::OnGetFeedback )
 
@@ -144,13 +145,13 @@ void CSharedFilesCtrl::OnRightClick(wxListEvent& event)
 		m_menu->Append(0,_("Priority"),prioMenu);
 		m_menu->AppendSeparator();
 
-		CKnownFile* file = (CKnownFile*)GetItemData(item_hit);
+		CKnownFile* file = reinterpret_cast<CKnownFile*>(GetItemData(item_hit));
 		if (file->GetFileComment().IsEmpty() && !file->GetFileRating()) {
 			m_menu->Append(MP_CMT, _("Add Comment/Rating"));
 		} else {
 			m_menu->Append(MP_CMT, _("Edit Comment/Rating"));
 		}
-		
+
 		m_menu->AppendSeparator();
 		m_menu->Append(MP_RENAME, _("Rename"));
 		m_menu->AppendSeparator();
@@ -164,11 +165,13 @@ void CSharedFilesCtrl::OnRightClick(wxListEvent& event)
 		m_menu->Append(MP_GETSOURCEED2KLINK,_("Copy eD2k link to clipboard (&Source)"));
 		m_menu->Append(MP_GETCRYPTSOURCEDED2KLINK,_("Copy eD2k link to clipboard (Source) (&With Crypt options)"));
 		m_menu->Append(MP_GETHOSTNAMESOURCEED2KLINK,_("Copy eD2k link to clipboard (&Hostname)"));
-		m_menu->Append(MP_GETHOSTNAMECRYPTSOURCEED2KLINK,_("Copy eD2k link to clipboard (Hostname) (With &Crypt options)"));		
+		m_menu->Append(MP_GETHOSTNAMECRYPTSOURCEED2KLINK,_("Copy eD2k link to clipboard (Hostname) (With &Crypt options)"));
 		m_menu->Append(MP_GETAICHED2KLINK,_("Copy eD2k link to clipboard (&AICH info)"));
+		m_menu->Append(MP_GETAICHED2KLINKSRC,_("Copy eD2k link to clipboard (&AICH info + Source)"));
 		m_menu->Append(MP_WS,_("Copy feedback to clipboard"));
-		
+
 		m_menu->Enable(MP_GETAICHED2KLINK, file->HasProperAICHHashSet());
+		m_menu->Enable(MP_GETAICHED2KLINKSRC, file->HasProperAICHHashSet());
 		m_menu->Enable(MP_GETHOSTNAMESOURCEED2KLINK, !thePrefs::GetYourHostname().IsEmpty());
 		m_menu->Enable(MP_GETHOSTNAMECRYPTSOURCEED2KLINK, !thePrefs::GetYourHostname().IsEmpty());
 
@@ -201,7 +204,7 @@ void CSharedFilesCtrl::OnGetFeedback(wxCommandEvent& WXUNUSED(event))
 		} else {
 			feed += wxT("\n");
 		}
-		feed += ((CKnownFile*)GetItemData(index))->GetFeedback();
+		feed += reinterpret_cast<CKnownFile*>(GetItemData(index))->GetFeedback();
 		index = GetNextItem(index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
 	}
 
@@ -224,7 +227,7 @@ void CSharedFilesCtrl::ShowFileList()
 
 	SortList();
 	ShowFilesCount();
-	
+
 	Thaw();
 }
 
@@ -232,10 +235,10 @@ void CSharedFilesCtrl::ShowFileList()
 void CSharedFilesCtrl::RemoveFile(CKnownFile *toRemove)
 {
 	long index = FindItem( -1, reinterpret_cast<wxUIntPtr>(toRemove) );
-	
+
 	if ( index != -1 ) {
 		DeleteItem( index );
-		
+
 		ShowFilesCount();
 	}
 }
@@ -253,13 +256,13 @@ void CSharedFilesCtrl::DoShowFile(CKnownFile* file, bool batch)
 	if ((!batch) && (FindItem(-1, ptr) > -1)) {
 		return;
 	}
-	
+
 	const long insertPos = (batch ? GetItemCount() : GetInsertPos(ptr));
 
 	long newitem = InsertItem(insertPos, wxEmptyString);
 	SetItemPtrData( newitem, ptr );
 
-	if (!batch) {	
+	if (!batch) {
 		ShowFilesCount();
 	}
 }
@@ -278,9 +281,9 @@ void CSharedFilesCtrl::OnSetPriority( wxCommandEvent& event )
 	}
 
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	while( index != -1 ) {
-		CKnownFile* file = (CKnownFile*)GetItemData( index );
+		CKnownFile* file = reinterpret_cast<CKnownFile*>(GetItemData(index));
 		CoreNotify_KnownFile_Up_Prio_Set( file, priority );
 
 		RefreshItem( index );
@@ -293,9 +296,9 @@ void CSharedFilesCtrl::OnSetPriority( wxCommandEvent& event )
 void CSharedFilesCtrl::OnSetPriorityAuto( wxCommandEvent& WXUNUSED(event) )
 {
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	while( index != -1 ) {
-		CKnownFile* file = (CKnownFile*)GetItemData( index );
+		CKnownFile* file = reinterpret_cast<CKnownFile*>(GetItemData(index));
 		CoreNotify_KnownFile_Up_Prio_Auto(file);
 
 		RefreshItem( index );
@@ -320,22 +323,23 @@ void CSharedFilesCtrl::OnCreateURI( wxCommandEvent& event )
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 
 	while( index != -1 ) {
-		CKnownFile* file = (CKnownFile*)GetItemData( index );
+		CKnownFile* file = reinterpret_cast<CKnownFile*>(GetItemData(index));
 
 		switch ( event.GetId() ) {
 			case MP_GETMAGNETLINK:				URIs += theApp->CreateMagnetLink( file ) + wxT("\n");				break;
 			case MP_GETED2KLINK:				URIs += theApp->CreateED2kLink( file ) + wxT("\n");					break;
 			case MP_GETSOURCEED2KLINK:			URIs += theApp->CreateED2kLink( file , true) + wxT("\n");			break;
-			case MP_GETCRYPTSOURCEDED2KLINK:			URIs += theApp->CreateED2kLink( file , true, false, true) + wxT("\n");			break;
+			case MP_GETCRYPTSOURCEDED2KLINK:	URIs += theApp->CreateED2kLink( file , true, false, true) + wxT("\n");			break;
 			case MP_GETHOSTNAMESOURCEED2KLINK:	URIs += theApp->CreateED2kLink( file , true, true) + wxT("\n");	break;
-			case MP_GETHOSTNAMECRYPTSOURCEED2KLINK:			URIs += theApp->CreateED2kLink( file, true, true, true ) + wxT("\n");			break;				
-			case MP_GETAICHED2KLINK:			URIs += theApp->CreateED2kAICHLink( file ) + wxT("\n");				break;
+			case MP_GETHOSTNAMECRYPTSOURCEED2KLINK:			URIs += theApp->CreateED2kLink( file, true, true, true ) + wxT("\n");	break;
+			case MP_GETAICHED2KLINK:			URIs += theApp->CreateED2kLink(file, false, false, false, true) + wxT("\n");		break;
+			case MP_GETAICHED2KLINKSRC:			URIs += theApp->CreateED2kLink(file, true,  false, false, true) + wxT("\n");		break;
 		}
 
 		index = GetNextItem( index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	}
 
-	if ( !URIs.IsEmpty() ) {	
+	if ( !URIs.IsEmpty() ) {
 		theApp->CopyTextToClipboard( URIs.RemoveLast() );
 	}
 }
@@ -344,12 +348,12 @@ void CSharedFilesCtrl::OnCreateURI( wxCommandEvent& event )
 void CSharedFilesCtrl::OnEditComment( wxCommandEvent& WXUNUSED(event) )
 {
 	long index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
-	
+
 	if ( index != -1 ) {
-		CKnownFile* file = (CKnownFile*)GetItemData( index );
+		CKnownFile* file = reinterpret_cast<CKnownFile*>(GetItemData(index));
 
 		CCommentDialog dialog( this, file );
-	
+
 		dialog.ShowModal();
 	}
 }
@@ -357,8 +361,8 @@ void CSharedFilesCtrl::OnEditComment( wxCommandEvent& WXUNUSED(event) )
 
 int CSharedFilesCtrl::SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData)
 {
-	CKnownFile* file1 = (CKnownFile*)item1;
-	CKnownFile* file2 = (CKnownFile*)item2;
+	CKnownFile* file1 = reinterpret_cast<CKnownFile*>(item1);
+	CKnownFile* file2 = reinterpret_cast<CKnownFile*>(item2);
 
 	int mod = (sortData & CMuleListCtrl::SORT_DES) ? -1 : 1;
 	bool altSorting = (sortData & CMuleListCtrl::SORT_ALT) > 0;
@@ -367,7 +371,7 @@ int CSharedFilesCtrl::SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData)
 		// Sort by filename.
 		case  ID_SHARED_COL_NAME:
 			return mod * CmpAny(file1->GetFileName(), file2->GetFileName());
-		
+
 		// Sort by filesize.
 		case  ID_SHARED_COL_SIZE:
 			return mod * CmpAny( file1->GetFileSize(), file2->GetFileSize() );
@@ -433,7 +437,7 @@ int CSharedFilesCtrl::SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData)
 
 			return mod * CmpAny(file1->GetFilePath(), file2->GetFilePath());
 		}
-		
+
 		default:
 			return 0;
 	}
@@ -443,7 +447,7 @@ int CSharedFilesCtrl::SortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData)
 void CSharedFilesCtrl::UpdateItem(CKnownFile* toupdate)
 {
 	long result = FindItem( -1, reinterpret_cast<wxUIntPtr>(toupdate) );
-	
+
 	if ( result > -1 ) {
 		RefreshItem(result);
 
@@ -457,7 +461,7 @@ void CSharedFilesCtrl::UpdateItem(CKnownFile* toupdate)
 void CSharedFilesCtrl::ShowFilesCount()
 {
 	wxStaticText* label = CastByName( wxT("sharedFilesLabel"), GetParent(), wxStaticText );
-	
+
 	label->SetLabel(CFormat(_("Shared Files (%i)")) % GetItemCount());
 	label->GetParent()->Layout();
 	// If file list was updated, the "selection" is involved too, if we chose to show clients for all files.
@@ -468,11 +472,11 @@ void CSharedFilesCtrl::ShowFilesCount()
 
 void CSharedFilesCtrl::OnDrawItem( int item, wxDC* dc, const wxRect& rect, const wxRect& rectHL, bool highlighted )
 {
-	CKnownFile *file = (CKnownFile*)GetItemData(item);
+	CKnownFile *file = reinterpret_cast<CKnownFile*>(GetItemData(item));
 	wxASSERT( file );
 
 	if ( highlighted ) {
-		CMuleColour newcol(GetFocus() ? wxSYS_COLOUR_HIGHLIGHT : wxSYS_COLOUR_BTNSHADOW);	
+		CMuleColour newcol(GetFocus() ? wxSYS_COLOUR_HIGHLIGHT : wxSYS_COLOUR_BTNSHADOW);
 		dc->SetBackground(newcol.Blend(125).GetBrush());
 		dc->SetTextForeground( CMuleColour(wxSYS_COLOUR_HIGHLIGHTTEXT));
 		// The second blending goes over the first one.
@@ -482,7 +486,7 @@ void CSharedFilesCtrl::OnDrawItem( int item, wxDC* dc, const wxRect& rect, const
 		dc->SetTextForeground(CMuleColour(wxSYS_COLOUR_WINDOWTEXT));
 		dc->SetPen(*wxTRANSPARENT_PEN);
 	}
-	
+
 	dc->SetBrush(dc->GetBackground());
 	dc->DrawRectangle(rectHL);
 	dc->SetPen(*wxTRANSPARENT_PEN);
@@ -494,7 +498,7 @@ void CSharedFilesCtrl::OnDrawItem( int item, wxDC* dc, const wxRect& rect, const
 
 	// The leftmost position of the current column
 	int columnLeft = 0;
-	
+
 	for ( int i = 0; i < GetColumnCount(); ++i ) {
 		const int columnWidth = GetColumnWidth(i);
 
@@ -502,9 +506,9 @@ void CSharedFilesCtrl::OnDrawItem( int item, wxDC* dc, const wxRect& rect, const
 			wxRect columnRect(
 				columnLeft + SPARE_PIXELS_HORZ, rect.y,
 				columnWidth - 2 * SPARE_PIXELS_HORZ, rect.height);
-			
+
 			wxDCClipper clipper(*dc, columnRect);
-			
+
 			wxString textBuffer;
 			switch ( i ) {
 				case ID_SHARED_COL_NAME:
@@ -514,13 +518,13 @@ void CSharedFilesCtrl::OnDrawItem( int item, wxDC* dc, const wxRect& rect, const
 						int image = Client_CommentOnly_Smiley;
 						if (file->GetFileRating()) {
 							image = Client_InvalidRating_Smiley + file->GetFileRating() - 1;
-						}	
-							
+						}
+
 						wxASSERT(image >= Client_InvalidRating_Smiley);
 						wxASSERT(image <= Client_CommentOnly_Smiley);
 
 						int imgWidth = 16;
-						
+
 						theApp->amuledlg->m_imagelist.Draw(image, *dc, columnRect.x,
 								columnRect.y + 1, wxIMAGELIST_DRAW_TRANSPARENT);
 
@@ -529,7 +533,7 @@ void CSharedFilesCtrl::OnDrawItem( int item, wxDC* dc, const wxRect& rect, const
 					}
 
 					break;
-				
+
 				case ID_SHARED_COL_SIZE:
 					textBuffer = CastItoXBytes(file->GetFileSize());
 					break;
@@ -545,7 +549,7 @@ void CSharedFilesCtrl::OnDrawItem( int item, wxDC* dc, const wxRect& rect, const
 				case ID_SHARED_COL_ID:
 					textBuffer = file->GetFileHash().Encode();
 					break;
-				
+
 				case ID_SHARED_COL_REQ:
 					textBuffer = CFormat(wxT("%u (%u)"))
 							% file->statistic.GetRequests()
@@ -562,20 +566,20 @@ void CSharedFilesCtrl::OnDrawItem( int item, wxDC* dc, const wxRect& rect, const
 					textBuffer = CastItoXBytes(file->statistic.GetTransferred())
 						+ wxT(" (") + CastItoXBytes(file->statistic.GetAllTimeTransferred()) + wxT(")");
 					break;
-					
+
 				case ID_SHARED_COL_RTIO:
 					textBuffer = CFormat(wxT("%.2f")) %	((double)file->statistic.GetAllTimeTransferred() / file->GetFileSize());
 					break;
-				
+
 				case ID_SHARED_COL_PART:
 					if ( file->GetPartCount() ) {
-						wxRect barRect(columnRect.x, columnRect. y + 1, 
+						wxRect barRect(columnRect.x, columnRect. y + 1,
 							columnRect.width, columnRect.height - 2);
-						
+
 						DrawAvailabilityBar(file, dc, barRect);
 					}
 					break;
-				
+
 				case ID_SHARED_COL_CMPL:
 					if ( file->m_nCompleteSourcesCountLo == 0 ) {
 						if ( file->m_nCompleteSourcesCountHi ) {
@@ -588,9 +592,9 @@ void CSharedFilesCtrl::OnDrawItem( int item, wxDC* dc, const wxRect& rect, const
 					} else {
 						textBuffer = CFormat(wxT("%u - %u")) % file->m_nCompleteSourcesCountLo % file->m_nCompleteSourcesCountHi;
 					}
-					
-					break;				
-				
+
+					break;
+
 				case ID_SHARED_COL_PATH:
 					if ( file->IsPartFile() ) {
 						textBuffer = _("[PartFile]");
@@ -634,7 +638,7 @@ void CSharedFilesCtrl::DrawAvailabilityBar(CKnownFile* file, wxDC* dc, const wxR
 {
 	// Reference to the availability list
 	const ArrayOfUInts16& list = file->IsPartFile() ?
-		((CPartFile*)file)->m_SrcpartFrequency :
+		static_cast<CPartFile*>(file)->m_SrcpartFrequency :
 		file->m_AvailPartFrequency;
 	wxPen   old_pen   = dc->GetPen();
 	wxBrush old_brush = dc->GetBrush();
@@ -659,7 +663,7 @@ void CSharedFilesCtrl::DrawAvailabilityBar(CKnownFile* file, wxDC* dc, const wxR
 		s_ChunkBar.FillRange(start, end, CMuleColour(list[i] ? 0 : 255, list[i] ? ((210-(22*( list[i] - 1 ) ) < 0) ? 0 : (210-(22*( list[i] - 1 ) ))) : 0, list[i] ? 255 : 0));
 	}
 	s_ChunkBar.FillRange(end + 1, file->GetFileSize() - 1, CMuleColour(255, 0, 0));
-	s_ChunkBar.Draw(dc, barRect.x, barRect.y, bFlat); 
+	s_ChunkBar.Draw(dc, barRect.x, barRect.y, bFlat);
 
 	if (!bFlat) {
 		// Draw black border
@@ -676,7 +680,7 @@ void CSharedFilesCtrl::OnRename( wxCommandEvent& WXUNUSED(event) )
 {
 	int item = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	if ( item != -1 ) {
-		CKnownFile* file = (CKnownFile*)GetItemData(item);
+		CKnownFile* file = reinterpret_cast<CKnownFile*>(GetItemData(item));
 
 		wxString strNewName = ::wxGetTextFromUser(
 			_("Enter new name for this file:"),
@@ -695,7 +699,7 @@ void CSharedFilesCtrl::OnKeyPressed( wxKeyEvent& event )
 	if (event.GetKeyCode() == WXK_F2) {
 		wxCommandEvent evt;
 		OnRename(evt);
-		
+
 		return;
 	}
 	event.Skip();
@@ -706,16 +710,15 @@ void CSharedFilesCtrl::OnAddCollection( wxCommandEvent& WXUNUSED(evt) )
 {
 	int item = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
 	if (item != -1) {
-		CKnownFile *file = (CKnownFile*)GetItemData(item);
+		CKnownFile *file = reinterpret_cast<CKnownFile*>(GetItemData(item));
 		wxString CollectionFile = file->GetFilePath().JoinPaths(file->GetFileName()).GetRaw();
 		CMuleCollection my_collection;
 		if (my_collection.Open( (std::string)CollectionFile.mb_str() )) {
 //#warning This is probably not working on Unicode
-			for (size_t e = 0; e < my_collection.GetFileCount(); ++e) {
-				theApp->downloadqueue->AddLink(
-					wxString(my_collection.GetEd2kLink(e).c_str(), wxConvUTF8));
+			for (size_t e = 0; e < my_collection.size(); ++e) {
+				theApp->downloadqueue->AddLink(wxString(my_collection[e].c_str(), wxConvUTF8));
 			}
-				
+
 		}
 	}
 }
diff --git a/src/SharedFilesCtrl.h b/src/SharedFilesCtrl.h
index 84cbeae..c50e554 100644
--- a/src/SharedFilesCtrl.h
+++ b/src/SharedFilesCtrl.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -60,7 +60,7 @@ public:
 	 * Adds the specified file to the list, updating filecount and more.
 	 *
 	 * @param file The new file to be shown.
-	 * 
+	 *
 	 * Note that the item is inserted in sorted order.
 	 */
 	void	ShowFile(CKnownFile* file);
@@ -83,21 +83,21 @@ public:
 	 * Updates the number of shared files displayed above the list.
 	 */
 	void	ShowFilesCount();
-	
+
 protected:
 	/// Return old column order.
 	wxString GetOldColumnOrder() const;
 
 private:
 	/**
-	 * Adds the specified file to the list. 
+	 * Adds the specified file to the list.
 	 *
 	 * If 'batch' is true, the item will be inserted last,
-	 * and the files-count will not be updated, nor is 
+	 * and the files-count will not be updated, nor is
 	 * the list checked for dupes.
 	 */
 	void	DoShowFile(CKnownFile* file, bool batch);
-	
+
 	/**
 	 * Draws the graph of file-part availability.
 	 *
@@ -105,25 +105,25 @@ private:
 	 * @param dc The wcDC to draw on.
 	 * @param rect The drawing area.
 	 *
-	 * This function draws a barspan showing the availability of the parts of 
+	 * This function draws a barspan showing the availability of the parts of
 	 * a file, for both Part-files and Known-files. Availability for Part-files
-	 * is determined using the currently known sources, while availability for 
+	 * is determined using the currently known sources, while availability for
 	 * Known-files is determined using the sources requesting that file.
 	 */
 	void	DrawAvailabilityBar( CKnownFile* file, wxDC* dc, const wxRect& rect ) const;
-	
+
 	/**
 	 * Overloaded function needed to do custom drawing of the items.
 	 */
 	virtual void OnDrawItem(int item, wxDC* dc, const wxRect& rect, const wxRect& rectHL, bool highlighted);
 
-	
+
 	/**
 	 * @see CMuleListCtrl::GetTTSText
 	 */
 	virtual wxString GetTTSText(unsigned item) const;
-	
-	
+
+
 	/**
 	 * Sorter-function.
 	 *
@@ -148,22 +148,22 @@ private:
 	 * Event-handler for right-clicks on the list-items.
 	 */
 	void	OnGetFeedback(wxCommandEvent& event);
-	
+
 	/**
 	 * Event-handler for the Set Priority menu items.
 	 */
 	void	OnSetPriority( wxCommandEvent& event );
-	
+
 	/**
 	 * Event-handler for the Auto-Priority menu item.
 	 */
 	void	OnSetPriorityAuto( wxCommandEvent& event );
-	
+
 	/**
 	 * Event-handler for the Create ED2K/Magnet URI items.
 	 */
 	void	OnCreateURI( wxCommandEvent& event );
-	 
+
 	/**
 	 * Event-handler for the Edit Comment menu item.
 	 */
diff --git a/src/SharedFilesWnd.cpp b/src/SharedFilesWnd.cpp
index e40e362..7bd8fd8 100644
--- a/src/SharedFilesWnd.cpp
+++ b/src/SharedFilesWnd.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -41,9 +41,9 @@ BEGIN_EVENT_TABLE(CSharedFilesWnd, wxPanel)
 	EVT_LIST_ITEM_SELECTED( ID_SHFILELIST,	CSharedFilesWnd::OnItemSelectionChanged )
 	EVT_LIST_ITEM_DESELECTED( ID_SHFILELIST,	CSharedFilesWnd::OnItemSelectionChanged )
 	EVT_BUTTON( ID_BTNRELSHARED,			CSharedFilesWnd::OnBtnReloadShared )
- 	EVT_BUTTON(ID_SHAREDCLIENTTOGGLE,		CSharedFilesWnd::OnToggleClientList)
+	EVT_BUTTON(ID_SHAREDCLIENTTOGGLE,		CSharedFilesWnd::OnToggleClientList)
 	EVT_RADIOBOX(ID_SHOW_CLIENTS_MODE,		CSharedFilesWnd::OnSelectClientsMode)
-	
+
 	EVT_SPLITTER_SASH_POS_CHANGING(ID_SHARESSPLATTER, CSharedFilesWnd::OnSashPositionChanging)
 END_EVENT_TABLE()
 
@@ -62,11 +62,11 @@ CSharedFilesWnd::CSharedFilesWnd( wxWindow* pParent )
 	wxASSERT(sharedfilesctrl);
 	wxASSERT(peerslistctrl);
 	m_prepared		= false;
-	
-	m_splitter = 0;	
-	
+
+	m_splitter = 0;
+
 	wxConfigBase *config = wxConfigBase::Get();
-	
+
 	// Check if the clientlist is hidden
 	bool show = true;
 	config->Read( wxT("/GUI/SharedWnd/ShowClientList"), &show, true );
@@ -86,15 +86,15 @@ CSharedFilesWnd::~CSharedFilesWnd()
 		if ( !peerslistctrl->GetShowing() ) {
 			// Save the splitter position
 			config->Write( wxT("/GUI/SharedWnd/Splitter"), m_splitter );
-	
+
 			// Save the visible status of the list
 			config->Write( wxT("/GUI/SharedWnd/ShowClientList"), false );
 		} else {
 			wxSplitterWindow* splitter = CastChild( wxT("sharedsplitterWnd"), wxSplitterWindow );
-		
+
 			// Save the splitter position
 			config->Write(wxT("/GUI/SharedWnd/Splitter"), splitter->GetSashPosition());
-		
+
 			// Save the visible status of the list
 			config->Write( wxT("/GUI/SharedWnd/ShowClientList"), true );
 		}
@@ -112,9 +112,9 @@ void CSharedFilesWnd::SelectionUpdated()
 		m_bar_requests->SetRange( lRequested );
 		m_bar_accepted->SetRange( lAccepted );
 		m_bar_transfer->SetRange( lTransferred / 1024 );
-		
+
 		CKnownFileVector fileVector;
-		
+
 		// Create a total statistic for the selected item(s)
 		uint32 session_requests = 0;
 		uint32 session_accepted = 0;
@@ -122,24 +122,24 @@ void CSharedFilesWnd::SelectionUpdated()
 		uint32 all_requests = 0;
 		uint32 all_accepted = 0;
 		uint64 all_transferred = 0;
-		
+
 		long index = -1;
 		int filter = (m_clientShow == ClientShowSelected) ? wxLIST_STATE_SELECTED : wxLIST_STATE_DONTCARE;
 		while ( (index = sharedfilesctrl->GetNextItem( index, wxLIST_NEXT_ALL, filter)) != -1) {
-			CKnownFile* file = (CKnownFile*)sharedfilesctrl->GetItemData( index );
+			CKnownFile* file = reinterpret_cast<CKnownFile*>(sharedfilesctrl->GetItemData(index));
 			wxASSERT(file);
-				
+
 			// Bars are always for selected files
 			if (sharedfilesctrl->GetItemState(index, wxLIST_STATE_SELECTED)) {
 				session_requests   += file->statistic.GetRequests();
 				session_accepted   += file->statistic.GetAccepts();
 				session_transferred += file->statistic.GetTransferred();
-			
+
 				all_requests   += file->statistic.GetAllTimeRequests();
 				all_accepted   += file->statistic.GetAllTimeAccepts();
 				all_transferred += file->statistic.GetAllTimeTransferred();
 			}
-					
+
 			if (m_clientShow != ClientShowUploading) {
 				fileVector.push_back(file);
 			}
@@ -157,10 +157,10 @@ void CSharedFilesWnd::SelectionUpdated()
 			// Transferred
 			m_bar_transfer->SetValue( 0 );
 			CastChild(IDC_STRANSFERRED, wxStaticText)->SetLabel( wxT("- / -") );
-			
+
 		} else {
-			std::sort(fileVector.begin(), fileVector.end());			
-			
+			std::sort(fileVector.begin(), fileVector.end());
+
 			// Store text lengths, and layout() when the texts have grown
 			static uint32 lReq = 0, lAcc = 0, lTrans = 0;
 			// Requests
@@ -168,7 +168,7 @@ void CSharedFilesWnd::SelectionUpdated()
 			m_bar_requests->SetValue( session_requests );
 			wxString labelReq = CFormat(wxT("%d / %d")) % session_requests % all_requests;
 			CastChild(IDC_SREQUESTED, wxStaticText)->SetLabel(labelReq);
-		
+
 			// Accepted requets
 			session_accepted = session_accepted > lAccepted ? lAccepted : session_accepted;
 			m_bar_accepted->SetValue( session_accepted );
@@ -188,7 +188,7 @@ void CSharedFilesWnd::SelectionUpdated()
 				s_sharedfilespeerHeader->Layout();
 			}
 		}
-	
+
 		if (m_clientShow == ClientShowUploading) {
 			// The GenericClientListCtrl is designed to show clients associated with a KnownFile.
 			// So the uploadqueue carries a special known file with all ongoing uploads in its upload list.
@@ -201,7 +201,7 @@ void CSharedFilesWnd::SelectionUpdated()
 #endif
 		}
 		peerslistctrl->ShowSources(fileVector);
-		
+
 		Refresh();
 		Layout();
 	}
@@ -245,8 +245,8 @@ void CSharedFilesWnd::Prepare()
 	m_prepared = true;
 	wxSplitterWindow* splitter = CastChild( wxT("sharedsplitterWnd"), wxSplitterWindow );
 	int height = splitter->GetSize().GetHeight();
-	int header_height = s_sharedfilespeerHeader->GetSize().GetHeight();	
-	
+	int header_height = s_sharedfilespeerHeader->GetSize().GetHeight();
+
 	if ( m_splitter ) {
 		// Some sanity checking
 		if ( m_splitter < s_splitterMin ) {
@@ -270,26 +270,26 @@ void CSharedFilesWnd::OnToggleClientList(wxCommandEvent& WXUNUSED(evt))
 {
 	wxSplitterWindow* splitter = CastChild( wxT("sharedsplitterWnd"), wxSplitterWindow );
 	wxBitmapButton*   button = CastChild( ID_SHAREDCLIENTTOGGLE, wxBitmapButton );
-	
+
 	if ( !peerslistctrl->GetShowing() ) {
 		splitter->SetSashPosition( m_splitter );
 		m_splitter = 0;
-		
+
 		peerslistctrl->SetShowing( true );
-		
+
 		button->SetBitmapLabel( amuleDlgImages( 10 ) );
 		button->SetBitmapFocus( amuleDlgImages( 10 ) );
 		button->SetBitmapSelected( amuleDlgImages( 10 ) );
 		button->SetBitmapHover( amuleDlgImages( 10 ) );
 	} else {
 		peerslistctrl->SetShowing( false );
-	
+
 		m_splitter = splitter->GetSashPosition();
-	
+
 		// Add the height of the listctrl to the top-window
 		int height = peerslistctrl->GetSize().GetHeight()
 					 + splitter->GetWindow1()->GetSize().GetHeight();
-	
+
 		splitter->SetSashPosition( height );
 
 		button->SetBitmapLabel( amuleDlgImages( 11 ) );
@@ -306,9 +306,9 @@ void CSharedFilesWnd::OnSashPositionChanging(wxSplitterEvent& evt)
 	} else {
 		wxSplitterWindow* splitter = wxStaticCast( evt.GetEventObject(), wxSplitterWindow);
 		wxCHECK_RET(splitter, wxT("ERROR: NULL splitter in CSharedFilesWnd::OnSashPositionChanging"));
-		
+
 		int height = splitter->GetSize().GetHeight();
-		int header_height = s_sharedfilespeerHeader->GetSize().GetHeight();	
+		int header_height = s_sharedfilespeerHeader->GetSize().GetHeight();
 		int mousey = wxGetMousePosition().y - splitter->GetScreenRect().GetTop();
 
 		if ( !peerslistctrl->GetShowing() ) {
diff --git a/src/SharedFilesWnd.h b/src/SharedFilesWnd.h
index 0337976..7a587d6 100644
--- a/src/SharedFilesWnd.h
+++ b/src/SharedFilesWnd.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -43,25 +43,25 @@ class wxRadioBox;
 class CSharedFilesWnd : public wxPanel
 {
 public:
-	/** 
+	/**
 	 * Constructor.
 	 */
 	CSharedFilesWnd(wxWindow* pParent = NULL);
-	
+
 	/**
 	 * Destructor.
 	 */
 	~CSharedFilesWnd();
-	
+
 
 	/**
 	 * This function updates the statistics of the selected items.
 	 *
 	 * Call this function when an item has been selected, or when a
-	 * selected item changes. It 
+	 * selected item changes. It
 	 */
 	void SelectionUpdated();
-	
+
 
 	/**
 	 * Deletes all files and updates widget
@@ -77,16 +77,16 @@ public:
 
 	//! Pointer to the widget containing the list of shared files.
 	CSharedFilesCtrl* sharedfilesctrl;
-	
+
 	//! Pointer to the list of clients.
 	CSharedFilePeersListCtrl*	peerslistctrl;
-	
+
 	//! Contains the current (or last if the clientlist is hidden) position of the splitter.
 	int m_splitter;
 private:
 	/**
 	 * Event-handler for reloading the list of shared files.
-	 */	
+	 */
 	void OnBtnReloadShared(wxCommandEvent &evt);
 
 	/**
@@ -132,7 +132,7 @@ private:
 	};
 	EClientShow m_clientShow;
 
-	
+
 	DECLARE_EVENT_TABLE()
 };
 
diff --git a/src/SourceListCtrl.cpp b/src/SourceListCtrl.cpp
index b97ab2b..603eb08 100644
--- a/src/SourceListCtrl.cpp
+++ b/src/SourceListCtrl.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -24,7 +24,7 @@
 #include "SourceListCtrl.h"
 #include "KnownFile.h"
 
-static CGenericClientListCtrlColumn s_sources_column_info[] = { 
+static CGenericClientListCtrlColumn s_sources_column_info[] = {
 	{ ColumnUserName,		wxTRANSLATE("User Name"),	260 },
 	{ ColumnUserDownloaded,		wxTRANSLATE("Downloaded"),	65 },
 	{ ColumnUserSpeedDown,		wxTRANSLATE("Speed"),		65 },
diff --git a/src/SourceListCtrl.h b/src/SourceListCtrl.h
index f56ca56..2977dce 100644
--- a/src/SourceListCtrl.h
+++ b/src/SourceListCtrl.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,7 +36,7 @@ class CSourceListCtrl : public CGenericClientListCtrl
 public:
 	/**
 	 * Constructor.
-	 * 
+	 *
 	 * @see CGenericClientListCtrl::CGenericClientListCtrl for documentation of parameters.
 	 */
 	 CSourceListCtrl(
@@ -47,11 +47,11 @@ public:
                 long style = wxLC_ICON,
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString &name = wxT("sourcelistctrl") );
-				
+
 	/**
 	 * Destructor.
-	 */	 
-	virtual	~CSourceListCtrl();	
+	 */
+	virtual	~CSourceListCtrl();
 
 private:
 	virtual CamuleDlg::DialogType GetParentDialog() { return CamuleDlg::DT_TRANSFER_WND; }
@@ -59,9 +59,9 @@ private:
 	virtual void SetShowSources(CKnownFile * f, bool b) const;
 
 	static int wxCALLBACK SourceSortProc(wxUIntPtr item1, wxUIntPtr item2, long sortData);
-	
+
 	bool IsShowingDownloadSources() const { return true; }
-	
+
 	DECLARE_EVENT_TABLE()
 };
 
diff --git a/src/StatTree.cpp b/src/StatTree.cpp
index fbfb1f9..10db24d 100644
--- a/src/StatTree.cpp
+++ b/src/StatTree.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -55,12 +55,12 @@ uint32_t NewStatTreeItemId()
 
 #ifdef CLIENT_GUI
 CStatTreeItemBase::CStatTreeItemBase(const CECTag *tag)
-	: m_label(((CEC_StatTree_Node_Tag*)tag)->GetDisplayString())
-	  , m_uniqueid(tag->GetTagByNameSafe(EC_TAG_STATTREE_NODEID)->GetInt())
+	: m_label(static_cast<const CEC_StatTree_Node_Tag*>(tag)->GetDisplayString()),
+	  m_uniqueid(tag->GetTagByNameSafe(EC_TAG_STATTREE_NODEID)->GetInt())
 {
 	wxASSERT(tag->GetTagName() == EC_TAG_STATTREE_NODE);
 
-	for (CECTag::const_iterator it = tag->begin(); it != tag->end(); it++) {
+	for (CECTag::const_iterator it = tag->begin(); it != tag->end(); ++it) {
 		const CECTag *tmp = & *it;
 		if (tmp->GetTagName() == EC_TAG_STATTREE_NODE) {
 			m_children.push_back(new CStatTreeItemBase(tmp));
@@ -174,7 +174,7 @@ bool CStatTreeItemBase::ValueSort(const CStatTreeItemBase* a, const CStatTreeIte
 	if (a->m_id < 0x00000100 || a->m_id > 0x7fffffff || b->m_id < 0x00000100 || b->m_id > 0x7fffffff) {
 		return a->m_id > b->m_id;
 	} else {
-		return ((CStatTreeItemCounter*)a)->GetValue() > ((CStatTreeItemCounter*)b)->GetValue();
+		return dynamic_cast<const CStatTreeItemCounter*>(a)->GetValue() > dynamic_cast<const CStatTreeItemCounter*>(b)->GetValue();
 	}
 }
 
@@ -303,7 +303,7 @@ wxString CStatTreeItemCounterTmpl<_Tp>::GetDisplayString() const
 	} else {
 		wxString result = CFormat(wxT("%u")) % m_value;
 		if ((m_flags & stShowPercent) && m_parent) {
-			result += CFormat(wxT(" (%.2f%%)")) % (((double)m_value / ((CStatTreeItemCounterTmpl<_Tp>*)m_parent)->m_value) * 100.0);
+			result += CFormat(wxT(" (%.2f%%)")) % ((double(m_value) / dynamic_cast<CStatTreeItemCounterTmpl<_Tp>*>(m_parent)->m_value) * 100.0);
 		}
 		return label % result;
 	}
@@ -324,7 +324,7 @@ void CStatTreeItemCounterTmpl<_Tp>::AddECValues(CECTag *tag) const
 		value.AddTag(CECTag(EC_TAG_STAT_VALUE_TYPE, (uint8)EC_VALUE_ISTRING));
 		if ((m_flags & stShowPercent) && m_parent) {
 			CECTag tmp(EC_TAG_STAT_NODE_VALUE,
-				((double)m_value / ((CStatTreeItemCounterTmpl<_Tp>*)m_parent)->m_value) * 100.0);
+				(double(m_value) / dynamic_cast<CStatTreeItemCounterTmpl<_Tp>*>(m_parent)->m_value) * 100.0);
 			tmp.AddTag(CECTag(EC_TAG_STAT_VALUE_TYPE, (uint8)EC_VALUE_DOUBLE));
 			value.AddTag(tmp);
 		}
@@ -553,11 +553,11 @@ wxString CStatTreeItemRatio::GetString() const
 }
 
 #ifndef AMULE_DAEMON
-wxString CStatTreeItemRatio::GetDisplayString() const 
-{ 
+wxString CStatTreeItemRatio::GetDisplayString() const
+{
 	return CFormat(wxGetTranslation(m_label)) % GetString();
 }
-#endif	
+#endif
 
 void CStatTreeItemRatio::AddECValues(CECTag *tag) const
 {
diff --git a/src/StatTree.h b/src/StatTree.h
index 01ccbb2..4827839 100644
--- a/src/StatTree.h
+++ b/src/StatTree.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -46,7 +46,7 @@
 #include <list>			// Needed for std::list
 #include <wx/string.h>		// Needed for wxString
 #include <wx/thread.h>		// Needed for wxMutex
-#include "Types.h" 
+#include "Types.h"
 
 #ifndef CLIENT_GUI
 
@@ -126,7 +126,7 @@ public:
 	 */
 	CStatTreeItemBase(const wxString &label, unsigned flags = stNone)
 		: m_label(label), m_parent(NULL), m_flags(flags), m_id(0),
-		m_uniqueid(NewStatTreeItemId())
+		m_visible_counter(0), m_uniqueid(NewStatTreeItemId())
 		{}
 #else
 	/**
@@ -1040,7 +1040,7 @@ public:
 	 * @see CStatTreeItemBase::GetDisplayString()
 	 */
 	virtual	wxString GetDisplayString() const;
-#endif	
+#endif
 
 protected:
 	/**
diff --git a/src/StateMachine.cpp b/src/StateMachine.cpp
index 7b7e787..df677fc 100644
--- a/src/StateMachine.cpp
+++ b/src/StateMachine.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -62,7 +62,7 @@ void CStateMachine::Clock()
 	} else {
 		event = 0;
 	}
-	
+
 	/* State changes can only happen here */
 	wxMutexLocker lock(m_stateMutex);
 	m_state = next_state( event );
diff --git a/src/StateMachine.h b/src/StateMachine.h
index caf7c56..d6e75ff 100644
--- a/src/StateMachine.h
+++ b/src/StateMachine.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -53,7 +53,7 @@ public:
 	unsigned int GetClocksInCurrentState() const	{ return m_clocksInCurrentState; }
 	virtual t_sm_state next_state(t_sm_event event) = 0;
 	virtual void process_state(t_sm_state state, bool entry) = 0;
-	
+
 private:
 	void flush_queue();
 
diff --git a/src/Statistics.cpp b/src/Statistics.cpp
index c9da803..2bb5107 100644
--- a/src/Statistics.cpp
+++ b/src/Statistics.cpp
@@ -51,6 +51,7 @@
 
 #include "amule.h"		// Needed for theApp
 #include <wx/intl.h>
+#include "Logger.h"
 
 #ifdef __BSD__
 	// glibc -> bsd libc
@@ -77,7 +78,7 @@ void CPreciseRateCounter::CalculateRate(uint64_t now)
 
 	// Checking maximal timespan, but make sure not to remove
 	// the extra node in m_tick_history.
-	while (timespan > m_timespan && m_byte_history.size() > 0) {
+	while (timespan > m_timespan && !m_byte_history.empty()) {
 		m_total -= m_byte_history.front();
 		m_byte_history.pop_front();
 		m_tick_history.pop_front();
@@ -86,7 +87,7 @@ void CPreciseRateCounter::CalculateRate(uint64_t now)
 
 	// Count rate/average
 	if (m_count_average) {
-		if (m_byte_history.size() > 0) {
+		if (!m_byte_history.empty()) {
 			m_rate = m_total / (double)m_byte_history.size();
 		}
 	} else {
@@ -179,7 +180,7 @@ CStatTreeItemPackets*		CStatistics::s_sourceXchgDownOverhead;
 CStatTreeItemPackets*		CStatistics::s_serverDownOverhead;
 CStatTreeItemPackets*		CStatistics::s_kadDownOverhead;
 CStatTreeItemCounter*		CStatistics::s_cryptDownOverhead;
-CStatTreeItemNativeCounter*	CStatistics::s_foundSources;
+CStatTreeItemCounter*		CStatistics::s_foundSources;
 CStatTreeItemNativeCounter*	CStatistics::s_activeDownloads;
 
 // Connection
@@ -311,12 +312,17 @@ void CStatistics::Load()
 
 	s_totalSent = 0;
 	s_totalReceived = 0;
-	if (f.Open(JoinPaths(theApp->ConfigDir, wxT("statistics.dat")))) {
-		uint8_t version = f.ReadUInt8();
-		if (version == 0) {
-			s_totalSent = f.ReadUInt64();
-			s_totalReceived = f.ReadUInt64();
+	try {
+		CPath path(JoinPaths(theApp->ConfigDir, wxT("statistics.dat")));
+		if (path.FileExists() && f.Open(path)) {
+			uint8_t version = f.ReadUInt8();
+			if (version == 0) {
+				s_totalSent = f.ReadUInt64();
+				s_totalReceived = f.ReadUInt64();
+			}
 		}
+	} catch (const CSafeIOException& e) {
+		AddLogLineN(e.what());
 	}
 
 	// Load old values from config
@@ -438,7 +444,7 @@ void CStatistics::RecordHistory()
 	}
 
 	// now save the latest data point in this node
- 	listPOS phr = --listHR.end();
+	listPOS phr = --listHR.end();
 	phr->kBytesSent = GetSessionSentBytes() / 1024.0;
 	phr->kBytesReceived = GetSessionReceivedBytes() / 1024.0;
 	phr->kBpsUpCur = GetUploadRate() / 1024.0;
@@ -600,7 +606,7 @@ void CStatistics::ComputeAverages(
 	StatsGraphType	which_graph)	// the graph which will receive the points
 {
 	double		sTarget, kValueRun;
-	uint64 		avgTime = average_minutes * 60;
+	uint64		avgTime = average_minutes * 60;
 	unsigned	nBtPoints = (unsigned)(avgTime / sStep);
 
 	CPreciseRateCounter* runningAvg = NULL;
@@ -724,92 +730,92 @@ void CStatistics::InitStatsTree()
 	CStatTreeItemBase* tmpRoot1;
 	CStatTreeItemBase* tmpRoot2;
 
-	s_uptime = (CStatTreeItemTimer*)s_statTree->AddChild(new CStatTreeItemTimer(wxTRANSLATE("Uptime: %s")));
+	s_uptime = static_cast<CStatTreeItemTimer*>(s_statTree->AddChild(new CStatTreeItemTimer(wxTRANSLATE("Uptime: %s"))));
 
 	tmpRoot1 = s_statTree->AddChild(new CStatTreeItemBase(wxTRANSLATE("Transfer"), stSortChildren));
 
 	tmpRoot2 = tmpRoot1->AddChild(new CStatTreeItemBase(wxTRANSLATE("Uploads")), 2);
-	s_sessionUpload = (CStatTreeItemUlDlCounter*)tmpRoot2->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("Uploaded Data (Session (Total)): %s"), theStats::GetTotalSentBytes, stSortChildren | stSortByValue));
+	s_sessionUpload = static_cast<CStatTreeItemUlDlCounter*>(tmpRoot2->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("Uploaded Data (Session (Total)): %s"), theStats::GetTotalSentBytes, stSortChildren | stSortByValue)));
 	// Children will be added on-the-fly
-	s_totalUpOverhead = (CStatTreeItemPacketTotals*)tmpRoot2->AddChild(new CStatTreeItemPacketTotals(wxTRANSLATE("Total Overhead (Packets): %s")));
-	s_fileReqUpOverhead = (CStatTreeItemPackets*)tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("File Request Overhead (Packets): %s")));
+	s_totalUpOverhead = static_cast<CStatTreeItemPacketTotals*>(tmpRoot2->AddChild(new CStatTreeItemPacketTotals(wxTRANSLATE("Total Overhead (Packets): %s"))));
+	s_fileReqUpOverhead = static_cast<CStatTreeItemPackets*>(tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("File Request Overhead (Packets): %s"))));
 	s_totalUpOverhead->AddPacketCounter(s_fileReqUpOverhead);
-	s_sourceXchgUpOverhead = (CStatTreeItemPackets*)tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Source Exchange Overhead (Packets): %s")));
+	s_sourceXchgUpOverhead = static_cast<CStatTreeItemPackets*>(tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Source Exchange Overhead (Packets): %s"))));
 	s_totalUpOverhead->AddPacketCounter(s_sourceXchgUpOverhead);
-	s_serverUpOverhead = (CStatTreeItemPackets*)tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Server Overhead (Packets): %s")));
+	s_serverUpOverhead = static_cast<CStatTreeItemPackets*>(tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Server Overhead (Packets): %s"))));
 	s_totalUpOverhead->AddPacketCounter(s_serverUpOverhead);
-	s_kadUpOverhead = (CStatTreeItemPackets*)tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Kad Overhead (Packets): %s")));
+	s_kadUpOverhead = static_cast<CStatTreeItemPackets*>(tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Kad Overhead (Packets): %s"))));
 	s_totalUpOverhead->AddPacketCounter(s_kadUpOverhead);
-	s_cryptUpOverhead = (CStatTreeItemCounter*)tmpRoot2->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Crypt overhead (UDP): %s")));
+	s_cryptUpOverhead = static_cast<CStatTreeItemCounter*>(tmpRoot2->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Crypt overhead (UDP): %s"))));
 	s_cryptUpOverhead->SetDisplayMode(dmBytes);
-	s_activeUploads = (CStatTreeItemNativeCounter*)tmpRoot2->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Active Uploads: %s")));
-	s_waitingUploads = (CStatTreeItemNativeCounter*)tmpRoot2->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Waiting Uploads: %s")));
-	s_totalSuccUploads = (CStatTreeItemCounter*)tmpRoot2->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Total successful upload sessions: %s")));
-	s_totalFailedUploads = (CStatTreeItemCounter*)tmpRoot2->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Total failed upload sessions: %s")));
+	s_activeUploads = static_cast<CStatTreeItemNativeCounter*>(tmpRoot2->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Active Uploads: %s"))));
+	s_waitingUploads = static_cast<CStatTreeItemNativeCounter*>(tmpRoot2->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Waiting Uploads: %s"))));
+	s_totalSuccUploads = static_cast<CStatTreeItemCounter*>(tmpRoot2->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Total successful upload sessions: %s"))));
+	s_totalFailedUploads = static_cast<CStatTreeItemCounter*>(tmpRoot2->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Total failed upload sessions: %s"))));
 	s_totalUploadTime = new CStatTreeItemCounter(wxEmptyString);
 	tmpRoot2->AddChild(new CStatTreeItemAverage(wxTRANSLATE("Average upload time: %s"), s_totalUploadTime, s_totalSuccUploads, dmTime));
 
 	tmpRoot2 = tmpRoot1->AddChild(new CStatTreeItemBase(wxTRANSLATE("Downloads")), 1);
-	s_sessionDownload = (CStatTreeItemUlDlCounter*)tmpRoot2->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("Downloaded Data (Session (Total)): %s"), theStats::GetTotalReceivedBytes, stSortChildren | stSortByValue));
+	s_sessionDownload = static_cast<CStatTreeItemUlDlCounter*>(tmpRoot2->AddChild(new CStatTreeItemUlDlCounter(wxTRANSLATE("Downloaded Data (Session (Total)): %s"), theStats::GetTotalReceivedBytes, stSortChildren | stSortByValue)));
 	// Children will be added on-the-fly
-	s_totalDownOverhead = (CStatTreeItemPacketTotals*)tmpRoot2->AddChild(new CStatTreeItemPacketTotals(wxTRANSLATE("Total Overhead (Packets): %s")));
-	s_fileReqDownOverhead = (CStatTreeItemPackets*)tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("File Request Overhead (Packets): %s")));
+	s_totalDownOverhead = static_cast<CStatTreeItemPacketTotals*>(tmpRoot2->AddChild(new CStatTreeItemPacketTotals(wxTRANSLATE("Total Overhead (Packets): %s"))));
+	s_fileReqDownOverhead = static_cast<CStatTreeItemPackets*>(tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("File Request Overhead (Packets): %s"))));
 	s_totalDownOverhead->AddPacketCounter(s_fileReqDownOverhead);
-	s_sourceXchgDownOverhead = (CStatTreeItemPackets*)tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Source Exchange Overhead (Packets): %s")));
+	s_sourceXchgDownOverhead = static_cast<CStatTreeItemPackets*>(tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Source Exchange Overhead (Packets): %s"))));
 	s_totalDownOverhead->AddPacketCounter(s_sourceXchgDownOverhead);
-	s_serverDownOverhead = (CStatTreeItemPackets*)tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Server Overhead (Packets): %s")));
+	s_serverDownOverhead = static_cast<CStatTreeItemPackets*>(tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Server Overhead (Packets): %s"))));
 	s_totalDownOverhead->AddPacketCounter(s_serverDownOverhead);
-	s_kadDownOverhead = (CStatTreeItemPackets*)tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Kad Overhead (Packets): %s")));
+	s_kadDownOverhead = static_cast<CStatTreeItemPackets*>(tmpRoot2->AddChild(new CStatTreeItemPackets(wxTRANSLATE("Kad Overhead (Packets): %s"))));
 	s_totalDownOverhead->AddPacketCounter(s_kadDownOverhead);
-	s_cryptDownOverhead = (CStatTreeItemCounter*)tmpRoot2->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Crypt overhead (UDP): %s")));
+	s_cryptDownOverhead = static_cast<CStatTreeItemCounter*>(tmpRoot2->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Crypt overhead (UDP): %s"))));
 	s_cryptDownOverhead->SetDisplayMode(dmBytes);
-	s_foundSources = (CStatTreeItemNativeCounter*)tmpRoot2->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Found Sources: %s"), stSortChildren | stSortByValue));
-	s_activeDownloads = (CStatTreeItemNativeCounter*)tmpRoot2->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Active Downloads (chunks): %s")));
+	s_foundSources = static_cast<CStatTreeItemCounter*>(tmpRoot2->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Found Sources: %s"), stSortChildren | stSortByValue)));
+	s_activeDownloads = static_cast<CStatTreeItemNativeCounter*>(tmpRoot2->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Active Downloads (chunks): %s"))));
 
 	tmpRoot1->AddChild(new CStatTreeItemRatio(wxTRANSLATE("Session UL:DL Ratio (Total): %s"), s_sessionUpload, s_sessionDownload, theStats::GetTotalSentBytes, theStats::GetTotalReceivedBytes), 3);
 
 	tmpRoot1 = s_statTree->AddChild(new CStatTreeItemBase(wxTRANSLATE("Connection")));
 	tmpRoot1->AddChild(new CStatTreeItemAverageSpeed(wxTRANSLATE("Average download rate (Session): %s"), s_sessionDownload, s_uptime));
 	tmpRoot1->AddChild(new CStatTreeItemAverageSpeed(wxTRANSLATE("Average upload rate (Session): %s"), s_sessionUpload, s_uptime));
-	s_downloadrate = (CStatTreeItemRateCounter*)tmpRoot1->AddChild(new CStatTreeItemRateCounter(wxTRANSLATE("Max download rate (Session): %s"), true, 30000));
-	s_uploadrate = (CStatTreeItemRateCounter*)tmpRoot1->AddChild(new CStatTreeItemRateCounter(wxTRANSLATE("Max upload rate (Session): %s"), true, 30000));
-	s_reconnects = (CStatTreeItemReconnects*)tmpRoot1->AddChild(new CStatTreeItemReconnects(wxTRANSLATE("Reconnects: %i")));
-	s_sinceFirstTransfer = (CStatTreeItemTimer*)tmpRoot1->AddChild(new CStatTreeItemTimer(wxTRANSLATE("Time Since First Transfer: %s"), stHideIfZero));
-	s_sinceConnected = (CStatTreeItemTimer*)tmpRoot1->AddChild(new CStatTreeItemTimer(wxTRANSLATE("Connected To Server Since: %s")));
-	s_activeConnections = (CStatTreeItemCounterMax*)tmpRoot1->AddChild(new CStatTreeItemCounterMax(wxTRANSLATE("Active Connections (estimate): %i")));
-	s_limitReached = (CStatTreeItemMaxConnLimitReached*)tmpRoot1->AddChild(new CStatTreeItemMaxConnLimitReached(wxTRANSLATE("Max Connection Limit Reached: %s")));
-	s_avgConnections = (CStatTreeItemSimple*)tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Average Connections (estimate): %g")));
+	s_downloadrate = static_cast<CStatTreeItemRateCounter*>(tmpRoot1->AddChild(new CStatTreeItemRateCounter(wxTRANSLATE("Max download rate (Session): %s"), true, 30000)));
+	s_uploadrate = static_cast<CStatTreeItemRateCounter*>(tmpRoot1->AddChild(new CStatTreeItemRateCounter(wxTRANSLATE("Max upload rate (Session): %s"), true, 30000)));
+	s_reconnects = static_cast<CStatTreeItemReconnects*>(tmpRoot1->AddChild(new CStatTreeItemReconnects(wxTRANSLATE("Reconnects: %i"))));
+	s_sinceFirstTransfer = static_cast<CStatTreeItemTimer*>(tmpRoot1->AddChild(new CStatTreeItemTimer(wxTRANSLATE("Time Since First Transfer: %s"), stHideIfZero)));
+	s_sinceConnected = static_cast<CStatTreeItemTimer*>(tmpRoot1->AddChild(new CStatTreeItemTimer(wxTRANSLATE("Connected To Server Since: %s"))));
+	s_activeConnections = static_cast<CStatTreeItemCounterMax*>(tmpRoot1->AddChild(new CStatTreeItemCounterMax(wxTRANSLATE("Active Connections (estimate): %i"))));
+	s_limitReached = static_cast<CStatTreeItemMaxConnLimitReached*>(tmpRoot1->AddChild(new CStatTreeItemMaxConnLimitReached(wxTRANSLATE("Max Connection Limit Reached: %s"))));
+	s_avgConnections = static_cast<CStatTreeItemSimple*>(tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Average Connections (estimate): %g"))));
 	s_avgConnections->SetValue(0.0);
 	tmpRoot1->AddChild(new CStatTreeItemPeakConnections(wxTRANSLATE("Peak Connections (estimate): %i")));
 
-	s_clients = (CStatTreeItemHiddenCounter*)s_statTree->AddChild(new CStatTreeItemHiddenCounter(wxTRANSLATE("Clients"), stSortChildren | stSortByValue));
-	s_unknown = (CStatTreeItemCounter*)s_clients->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Unknown: %s")), 6);
-	//s_lowID = (CStatTreeItem*)s_clients->AddChild(new CStatTreeItem(wxTRANSLATE("LowID: %u (%.2f%% Total %.2f%% Known)")), 5);
-	//s_secIdentOnOff = (CStatTreeItem*)s_clients->AddChild(new CStatTreeItem(wxTRANSLATE("SecIdent On/Off: %u (%.2f%%) : %u (%.2f%%)")), 4);
+	s_clients = static_cast<CStatTreeItemHiddenCounter*>(s_statTree->AddChild(new CStatTreeItemHiddenCounter(wxTRANSLATE("Clients"), stSortChildren | stSortByValue)));
+	s_unknown = static_cast<CStatTreeItemCounter*>(s_clients->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Unknown: %s")), 6));
+	//s_lowID = static_cast<CStatTreeItem*>(s_clients->AddChild(new CStatTreeItem(wxTRANSLATE("LowID: %u (%.2f%% Total %.2f%% Known)")), 5));
+	//s_secIdentOnOff = static_cast<CStatTreeItem*>(s_clients->AddChild(new CStatTreeItem(wxTRANSLATE("SecIdent On/Off: %u (%.2f%%) : %u (%.2f%%)")), 4));
 #ifdef __DEBUG__
-	s_hasSocket = (CStatTreeItemNativeCounter*)s_clients->AddChild(new CStatTreeItemNativeCounter(wxT("HasSocket: %s")), 3);
+	s_hasSocket = static_cast<CStatTreeItemNativeCounter*>(s_clients->AddChild(new CStatTreeItemNativeCounter(wxT("HasSocket: %s")), 3));
 #endif
-	s_filtered = (CStatTreeItemNativeCounter*)s_clients->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Filtered: %s")), 2);
-	s_banned = (CStatTreeItemNativeCounter*)s_clients->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Banned: %s")), 1);
+	s_filtered = static_cast<CStatTreeItemNativeCounter*>(s_clients->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Filtered: %s")), 2));
+	s_banned = static_cast<CStatTreeItemNativeCounter*>(s_clients->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Banned: %s")), 1));
 	s_clients->AddChild(new CStatTreeItemTotalClients(wxTRANSLATE("Total: %i Known: %i"), s_clients, s_unknown), 0x80000000);
 
 	// TODO: Use counters?
 	tmpRoot1 = s_statTree->AddChild(new CStatTreeItemBase(wxTRANSLATE("Servers")));
-	s_workingServers = (CStatTreeItemSimple*)tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Working Servers: %i")));
-	s_failedServers = (CStatTreeItemSimple*)tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Failed Servers: %i")));
-	s_totalServers = (CStatTreeItemNativeCounter*)tmpRoot1->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Total: %s")));
-	s_deletedServers = (CStatTreeItemNativeCounter*)tmpRoot1->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Deleted Servers: %s")));
-	s_filteredServers = (CStatTreeItemNativeCounter*)tmpRoot1->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Filtered Servers: %s")));
-	s_usersOnWorking = (CStatTreeItemSimple*)tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Users on Working Servers: %llu")));
-	s_filesOnWorking = (CStatTreeItemSimple*)tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Files on Working Servers: %llu")));
-	s_totalUsers = (CStatTreeItemSimple*)tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Total Users: %llu")));
-	s_totalFiles = (CStatTreeItemSimple*)tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Total Files: %llu")));
-	s_serverOccupation = (CStatTreeItemSimple*)tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Server Occupation: %.2f%%")));
+	s_workingServers = static_cast<CStatTreeItemSimple*>(tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Working Servers: %i"))));
+	s_failedServers = static_cast<CStatTreeItemSimple*>(tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Failed Servers: %i"))));
+	s_totalServers = static_cast<CStatTreeItemNativeCounter*>(tmpRoot1->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Total: %s"))));
+	s_deletedServers = static_cast<CStatTreeItemNativeCounter*>(tmpRoot1->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Deleted Servers: %s"))));
+	s_filteredServers = static_cast<CStatTreeItemNativeCounter*>(tmpRoot1->AddChild(new CStatTreeItemNativeCounter(wxTRANSLATE("Filtered Servers: %s"))));
+	s_usersOnWorking = static_cast<CStatTreeItemSimple*>(tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Users on Working Servers: %llu"))));
+	s_filesOnWorking = static_cast<CStatTreeItemSimple*>(tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Files on Working Servers: %llu"))));
+	s_totalUsers = static_cast<CStatTreeItemSimple*>(tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Total Users: %llu"))));
+	s_totalFiles = static_cast<CStatTreeItemSimple*>(tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Total Files: %llu"))));
+	s_serverOccupation = static_cast<CStatTreeItemSimple*>(tmpRoot1->AddChild(new CStatTreeItemSimple(wxTRANSLATE("Server Occupation: %.2f%%"))));
 	s_serverOccupation->SetValue(0.0);
 
 	tmpRoot1 = s_statTree->AddChild(new CStatTreeItemBase(wxTRANSLATE("Shared Files")));
-	s_numberOfShared = (CStatTreeItemCounter*)tmpRoot1->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Number of Shared Files: %s")));
-	s_sizeOfShare = (CStatTreeItemCounter*)tmpRoot1->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Total size of Shared Files: %s")));
+	s_numberOfShared = static_cast<CStatTreeItemCounter*>(tmpRoot1->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Number of Shared Files: %s"))));
+	s_sizeOfShare = static_cast<CStatTreeItemCounter*>(tmpRoot1->AddChild(new CStatTreeItemCounter(wxTRANSLATE("Total size of Shared Files: %s"))));
 	s_sizeOfShare->SetDisplayMode(dmBytes);
 	tmpRoot1->AddChild(new CStatTreeItemAverage(wxTRANSLATE("Average file size: %s"), s_sizeOfShare, s_numberOfShared, dmBytes));
 }
@@ -847,11 +853,11 @@ void CStatistics::UpdateStatsTree()
 
 void CStatistics::AddSourceOrigin(unsigned origin)
 {
-	CStatTreeItemNativeCounter* counter = (CStatTreeItemNativeCounter*)s_foundSources->GetChildById(0x0100 + origin);
+	CStatTreeItemCounter* counter = static_cast<CStatTreeItemCounter*>(s_foundSources->GetChildById(0x0100 + origin));
 	if (counter) {
 		++(*counter);
 	} else {
-		counter = new CStatTreeItemNativeCounter(OriginToText(origin) + wxT(": %s"), stHideIfZero | stShowPercent);
+		counter = new CStatTreeItemCounter(OriginToText(origin) + wxT(": %s"), stHideIfZero | stShowPercent);
 		++(*counter);
 		s_foundSources->AddChild(counter, 0x0100 + origin);
 	}
@@ -859,7 +865,7 @@ void CStatistics::AddSourceOrigin(unsigned origin)
 
 void CStatistics::RemoveSourceOrigin(unsigned origin)
 {
-	CStatTreeItemNativeCounter* counter = (CStatTreeItemNativeCounter*)s_foundSources->GetChildById(0x0100 + origin);
+	CStatTreeItemCounter* counter = static_cast<CStatTreeItemCounter*>(s_foundSources->GetChildById(0x0100 + origin));
 	wxASSERT(counter);
 	--(*counter);
 }
@@ -888,7 +894,7 @@ void CStatistics::AddDownloadFromSoft(uint8 SoftType, uint32 bytes)
 	uint32 id = GetSoftID(SoftType);
 
 	if (s_sessionDownload->HasChildWithId(id)) {
-		(*((CStatTreeItemCounter*)s_sessionDownload->GetChildById(id))) += bytes;
+		(*static_cast<CStatTreeItemCounter*>(s_sessionDownload->GetChildById(id))) += bytes;
 	} else {
 		CStatTreeItemCounter* tmp = new CStatTreeItemCounter(GetSoftName(SoftType) + wxT(": %s"));
 		tmp->SetDisplayMode(dmBytes);
@@ -902,7 +908,7 @@ void CStatistics::AddUploadToSoft(uint8 SoftType, uint32 bytes)
 	uint32 id = GetSoftID(SoftType);
 
 	if (s_sessionUpload->HasChildWithId(id)) {
-		(*((CStatTreeItemCounter*)s_sessionUpload->GetChildById(id))) += bytes;
+		(*static_cast<CStatTreeItemCounter*>(s_sessionUpload->GetChildById(id))) += bytes;
 	} else {
 		CStatTreeItemCounter* tmp = new CStatTreeItemCounter(GetSoftName(SoftType) + wxT(": %s"));
 		tmp->SetDisplayMode(dmBytes);
@@ -940,7 +946,7 @@ void CStatistics::AddKnownClient(CUpDownClient *pClient)
 	CStatTreeItemCounter *client;
 
 	if (s_clients->HasChildWithId(id)) {
-		client = (CStatTreeItemCounter*)s_clients->GetChildById(id);
+		client = static_cast<CStatTreeItemCounter*>(s_clients->GetChildById(id));
 		++(*client);
 	} else {
 		uint32 flags = stSortChildren | stShowPercent | stHideIfZero;
@@ -960,7 +966,7 @@ void CStatistics::AddKnownClient(CUpDownClient *pClient)
 	uint32 clientVersion = pClient->GetVersion();
 
 	if (versionRoot->HasChildWithId(clientVersion)) {
-		CStatTreeItemCounter *version = (CStatTreeItemCounter*)versionRoot->GetChildById(clientVersion);
+		CStatTreeItemCounter *version = static_cast<CStatTreeItemCounter*>(versionRoot->GetChildById(clientVersion));
 		++(*version);
 	} else {
 		const wxString& versionStr = pClient->GetVersionString();
@@ -973,7 +979,7 @@ void CStatistics::AddKnownClient(CUpDownClient *pClient)
 		const wxString& OSInfo = pClient->GetClientOSInfo();
 		uint32 OS_ID = OSInfo.IsEmpty() ? 0 : GetIdFromString(OSInfo);
 		CStatTreeItemBase* OSRoot = client->GetChildById(1);
-		CStatTreeItemCounter* OSNode = (CStatTreeItemCounter*)OSRoot->GetChildById(OS_ID);
+		CStatTreeItemCounter* OSNode = static_cast<CStatTreeItemCounter*>(OSRoot->GetChildById(OS_ID));
 		if (OSNode) {
 			++(*OSNode);
 		} else {
@@ -990,19 +996,19 @@ void CStatistics::RemoveKnownClient(uint32 clientSoft, uint32 clientVersion, con
 
 	uint32 id = GetSoftID(clientSoft);
 
-	CStatTreeItemCounter *client = (CStatTreeItemCounter*)s_clients->GetChildById(id);
+	CStatTreeItemCounter *client = static_cast<CStatTreeItemCounter*>(s_clients->GetChildById(id));
 	wxASSERT(client);
 	--(*client);
 
 	CStatTreeItemBase *versionRoot = SupportsOSInfo(clientSoft) ? client->GetChildById(2) : client;
 
-	CStatTreeItemCounter *version = (CStatTreeItemCounter*)versionRoot->GetChildById(clientVersion);
+	CStatTreeItemCounter *version = static_cast<CStatTreeItemCounter*>(versionRoot->GetChildById(clientVersion));
 	wxASSERT(version);
 	--(*version);
 
 	if (SupportsOSInfo(clientSoft)) {
 		uint32 OS_ID = OSInfo.IsEmpty() ? 0 : GetIdFromString(OSInfo);
-		CStatTreeItemCounter* OSNode = (CStatTreeItemCounter*)client->GetChildById(1)->GetChildById(OS_ID);
+		CStatTreeItemCounter* OSNode = static_cast<CStatTreeItemCounter*>(client->GetChildById(1)->GetChildById(OS_ID));
 		wxASSERT(OSNode);
 		--(*OSNode);
 	}
@@ -1011,8 +1017,7 @@ void CStatistics::RemoveKnownClient(uint32 clientSoft, uint32 clientVersion, con
 #else /* CLIENT_GUI */
 
 CStatistics::CStatistics(CRemoteConnect &conn)
-:
-m_conn(conn)
+	: m_conn(conn)
 {
 	s_start_time = GetTickCount64();
 
@@ -1050,6 +1055,7 @@ void CStatistics::UpdateStats(const CECPacket* stats)
 	s_statData[sdKadIndexedNotes] = stats->GetTagByNameSafe(EC_TAG_STATS_KAD_INDEXED_NOTES)->GetInt();
 	s_statData[sdKadIndexedLoad] = stats->GetTagByNameSafe(EC_TAG_STATS_KAD_INDEXED_LOAD)->GetInt();
 	s_statData[sdKadIPAdress] = stats->GetTagByNameSafe(EC_TAG_STATS_KAD_IP_ADRESS)->GetInt();
+	s_statData[sdKadNodes] = stats->GetTagByNameSafe(EC_TAG_STATS_KAD_NODES)->GetInt();
 	s_statData[sdBuddyStatus] = stats->GetTagByNameSafe(EC_TAG_STATS_BUDDY_STATUS)->GetInt();
 	s_statData[sdBuddyIP] = stats->GetTagByNameSafe(EC_TAG_STATS_BUDDY_IP)->GetInt();
 	s_statData[sdBuddyPort] = stats->GetTagByNameSafe(EC_TAG_STATS_BUDDY_PORT)->GetInt();
@@ -1060,7 +1066,7 @@ void CStatistics::UpdateStats(const CECPacket* stats)
 
 	const CECTag * LoggerTag = stats->GetTagByName(EC_TAG_STATS_LOGGER_MESSAGE);
 	if (LoggerTag) {
-		for (CECTag::const_iterator it = LoggerTag->begin(); it != LoggerTag->end(); it++) {
+		for (CECTag::const_iterator it = LoggerTag->begin(); it != LoggerTag->end(); ++it) {
 			theApp->AddRemoteLogLine(it->GetStringData());
 		}
 	}
@@ -1068,8 +1074,7 @@ void CStatistics::UpdateStats(const CECPacket* stats)
 
 
 void CStatistics::UpdateStatsTree()
-{
-}
+{}
 
 
 void CStatistics::RebuildStatTreeRemote(const CECTag * tag)
diff --git a/src/Statistics.h b/src/Statistics.h
index b4d8f85..d32818b 100644
--- a/src/Statistics.h
+++ b/src/Statistics.h
@@ -236,7 +236,7 @@ class CStatistics {
 	/* Access to the tree */
 
 	// uptime
-	static	uint64	GetUptimeMillis() 			{ return s_uptime->GetTimerValue(); }
+	static	uint64	GetUptimeMillis()			{ return s_uptime->GetTimerValue(); }
 	static	uint64	GetUptimeSeconds()			{ return s_uptime->GetTimerSeconds(); }
 	static	uint64	GetStartTime()				{ return s_uptime->GetTimerStart(); }
 
@@ -319,6 +319,7 @@ class CStatistics {
 	// Kad nodes
 	static void	AddKadNode()				{ ++s_kadNodesCur; }
 	static void	RemoveKadNode()				{ --s_kadNodesCur; }
+	static uint16_t GetKadNodes()			{ return s_kadNodesCur; }
 
 
 	// Other
@@ -357,7 +358,7 @@ class CStatistics {
 	void SetAverageMinutes(uint8 minutes) { average_minutes = minutes; }
 
  private:
- 	std::list<HR>	listHR;
+	std::list<HR>	listHR;
 	typedef std::list<HR>::iterator		listPOS;
 	typedef std::list<HR>::reverse_iterator	listRPOS;
 
@@ -428,7 +429,7 @@ class CStatistics {
 	static	CStatTreeItemPackets*		s_serverDownOverhead;
 	static	CStatTreeItemPackets*		s_kadDownOverhead;
 	static	CStatTreeItemCounter*		s_cryptDownOverhead;
-	static	CStatTreeItemNativeCounter*	s_foundSources;
+	static	CStatTreeItemCounter*		s_foundSources;
 	static	CStatTreeItemNativeCounter*	s_activeDownloads;
 
 	// Connection
@@ -441,7 +442,7 @@ class CStatistics {
 
 	// Clients
 	static	CStatTreeItemHiddenCounter*	s_clients;
-	static	CStatTreeItemCounter*  		s_unknown;
+	static	CStatTreeItemCounter*		s_unknown;
 	//static	CStatTreeItem			s_lowID;
 	//static	CStatTreeItem			s_secIdentOnOff;
 #ifdef __DEBUG__
@@ -499,6 +500,7 @@ enum StatDataIndex {
 	sdKadIndexedNotes,
 	sdKadIndexedLoad,
 	sdKadIPAdress,
+	sdKadNodes,
 	sdBuddyStatus,
 	sdBuddyIP,
 	sdBuddyPort,
@@ -541,9 +543,9 @@ private:
 	static	uint32	GetSharedFileCount()			{ return s_statData[sdSharedFileCount]; }
 
 	static	uint32	GetED2KUsers()			{ return s_statData[sdED2KUsers]; }
-	static	uint32	GetKadUsers() 			{ return s_statData[sdKadUsers]; }
+	static	uint32	GetKadUsers()			{ return s_statData[sdKadUsers]; }
 	static	uint32	GetED2KFiles()			{ return s_statData[sdED2KFiles]; }
-	static	uint32	GetKadFiles() 			{ return s_statData[sdKadFiles]; }
+	static	uint32	GetKadFiles()			{ return s_statData[sdKadFiles]; }
 
 	static	bool	IsFirewalledKadUDP()	{ return s_statData[sdKadFirewalledUDP] != 0; }
 	static	uint32	GetKadIndexedSources()	{ return s_statData[sdKadIndexedSources]; }
@@ -555,6 +557,7 @@ private:
 	static	uint32	GetBuddyIP()			{ return s_statData[sdBuddyIP]; }
 	static	uint32	GetBuddyPort()			{ return s_statData[sdBuddyPort]; }
 	static	bool	IsKadRunningInLanMode()	{ return s_statData[sdKadInLanMode] != 0; }
+	static	uint32	GetKadNodes()			{ return s_statData[sdKadNodes]; }
 
 	static	void	UpdateStats(const CECPacket* stats);
 
diff --git a/src/StatisticsDlg.cpp b/src/StatisticsDlg.cpp
index 42af87b..f1d6564 100644
--- a/src/StatisticsDlg.cpp
+++ b/src/StatisticsDlg.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -55,7 +55,7 @@ class CTreeItemData : public wxTreeItemData
 const wxColour& CStatisticsDlg::getColors(unsigned num)
 {
 	wxCHECK(num < 15, *wxBLACK);
-	
+
 	return acrStat[num];
 }
 
@@ -110,11 +110,11 @@ void CStatisticsDlg::InitGraphs()
 
 // this array is now used to store the current color settings and to define the defaults
 wxColour CStatisticsDlg::acrStat[cntStatColors] =
-	{ 
+	{
 		wxColour(0,0,64), wxColour(192,192,255), wxColour(128, 255, 128), wxColour(0, 210, 0),
 		wxColour(0, 128, 0), wxColour(255, 128, 128), wxColour(200, 0, 0), wxColour(140, 0, 0),
-	  	wxColour(150, 150, 255), wxColour(192, 0, 192), wxColour(255, 255, 128), wxColour(0, 0, 0), 
-	  	wxColour(128, 255, 128), wxColour(0, 210, 0), wxColour(0, 128, 0)
+		wxColour(150, 150, 255), wxColour(192, 0, 192), wxColour(255, 255, 128), wxColour(0, 0, 0),
+		wxColour(128, 255, 128), wxColour(0, 210, 0), wxColour(0, 128, 0)
 	};
 
 void CStatisticsDlg::ApplyStatsColor(int index)
@@ -123,25 +123,25 @@ void CStatisticsDlg::ApplyStatsColor(int index)
 	static int aRes[] = { 0,0, IDC_C0,IDC_C0_3,IDC_C0_2,  IDC_C1,IDC_C1_3,IDC_C1_2,  IDC_S0,IDC_S3,IDC_S1 };
 	static COScopeCtrl** apscope[] = { NULL, NULL, &pscopeDL,&pscopeDL,&pscopeDL, &pscopeUL,&pscopeUL,&pscopeUL, &pscopeConn,&pscopeConn,&pscopeConn };
 
-	const wxColour& cr = acrStat[index];  
+	const wxColour& cr = acrStat[index];
 
 	int iRes = aRes[index];
 	int iTrend = aTrend[index];
 	COScopeCtrl** ppscope = apscope[index];
 	CColorFrameCtrl* ctrl;
 	switch (index) {
-		case 0:	
+		case 0:
 				pscopeDL->SetBackgroundColor(cr);
 				pscopeUL->SetBackgroundColor(cr);
 				pscopeConn->SetBackgroundColor(cr);
 				break;
-		case 1:	
+		case 1:
 				pscopeDL->SetGridColor(cr);
 				pscopeUL->SetGridColor(cr);
 				pscopeConn->SetGridColor(cr);
 				break;
 		case 2:  case 3:  case 4:
-		case 5:  case 6:  case 7:	
+		case 5:  case 6:  case 7:
 		case 8:  case 9:  case 10:
 				(*ppscope)->SetPlotColor(cr, iTrend);
 				if ((ctrl = CastChild(iRes, CColorFrameCtrl)) == NULL) {
@@ -157,7 +157,7 @@ void CStatisticsDlg::ApplyStatsColor(int index)
 
 void CStatisticsDlg::UpdateStatGraphs(const uint32 peakconnections, const GraphUpdateInfo& update)
 {
-	
+
 	std::vector<float *> v1(3);
 	v1[0] = const_cast<float *>(&update.downloads[0]);
 	v1[1] = const_cast<float *>(&update.downloads[1]);
@@ -173,7 +173,7 @@ void CStatisticsDlg::UpdateStatGraphs(const uint32 peakconnections, const GraphU
 	v3[1] = const_cast<float *>(&update.connections[1]);
 	v3[2] = const_cast<float *>(&update.connections[2]);
 	const std::vector<float *> &apfConn(v3);
-	
+
 	if (!IsShownOnScreen()) {
 		pscopeDL->DelayPoints();
 		pscopeUL->DelayPoints();
@@ -185,17 +185,17 @@ void CStatisticsDlg::UpdateStatGraphs(const uint32 peakconnections, const GraphU
 	if (nScale != nScalePrev) {
 		nScalePrev = nScale;
 		wxStaticText* label = CastChild( ID_ACTIVEC, wxStaticText );
-		
+
 		label->SetLabel(CFormat(_("Active connections (1:%u)")) % nScale);
 		label->GetParent()->Layout();
-		
+
 		pscopeConn->SetRange(0.0, (float)nScale*pscopeConn->GetUpperLimit(), 1);
 	}
-	
+
 	if (!IsShownOnScreen()) {
 		return;
 	}
-	
+
 	pscopeDL->AppendPoints(update.timestamp, apfDown);
 	pscopeUL->AppendPoints(update.timestamp, apfUp);
 	pscopeConn->AppendPoints(update.timestamp, apfConn);
@@ -206,13 +206,13 @@ void CStatisticsDlg::SetUpdatePeriod(int step)
 {
 	// this gets called after the value in Preferences/Statistics/Update delay has been changed
 	if (step == 0) {
-	 	pscopeDL->Stop();
- 		pscopeUL->Stop();
-	 	pscopeConn->Stop();
+		pscopeDL->Stop();
+		pscopeUL->Stop();
+		pscopeConn->Stop();
 	} else {
-	 	pscopeDL->Reset(step);
- 		pscopeUL->Reset(step);
-	 	pscopeConn->Reset(step);
+		pscopeDL->Reset(step);
+		pscopeUL->Reset(step);
+		pscopeConn->Reset(step);
 	}
 }
 
@@ -220,8 +220,8 @@ void CStatisticsDlg::SetUpdatePeriod(int step)
 void CStatisticsDlg::ResetAveragingTime()
 {
 	// this gets called after the value in Preferences/Statistics/time for running avg has been changed
- 	pscopeDL->InvalidateGraph();
- 	pscopeUL->InvalidateGraph();
+	pscopeDL->InvalidateGraph();
+	pscopeUL->InvalidateGraph();
 }
 
 
@@ -238,7 +238,7 @@ void CStatisticsDlg::SetARange(bool SetDownload,int maxValue)
 void  CStatisticsDlg::InitTree()
 {
 #ifndef CLIENT_GUI
-	wxTreeItemId root = 
+	wxTreeItemId root =
 #endif
 		stattree->AddRoot(theStats::GetTreeRoot()->GetDisplayString());
 
@@ -264,7 +264,7 @@ void CStatisticsDlg::GetExpandedNodes(NodeIdSet& nodeset, const wxTreeItemId& ro
 {
 	wxTreeItemIdValue cookie;
 	wxTreeItemId temp_it = stattree->GetFirstChild(root,cookie);
-	
+
 	while (temp_it.IsOk()) {
 		if (stattree->IsExpanded(temp_it)) {
 			nodeset.insert(dynamic_cast<CTreeItemData*>(stattree->GetItemData(temp_it))->GetUniqueId());
@@ -286,7 +286,7 @@ void CStatisticsDlg::ShowStatistics(bool init)
 		// Update sorting / get tree via EC
 		m_stats->UpdateStatsTree();
 	}
-	
+
 	CStatTreeItemBase* treeRoot = theStats::GetTreeRoot();
 	wxTreeItemId root = stattree->GetRootItem();
 	FillTree(treeRoot, root, ExpandedNodes);
@@ -330,11 +330,11 @@ void CStatisticsDlg::FillTree(CStatTreeItemBase* statssubtree, wxTreeItemId& Sta
 	StatTreeItemIterator temp_it = statssubtree->GetFirstVisibleChild(thePrefs::GetMaxClientVersions());
 #else
 	StatTreeItemIterator temp_it = statssubtree->GetFirstVisibleChild();
-#endif	
+#endif
 
 	wxTreeItemIdValue cookie;
 	wxTreeItemId temp_GUI_it = stattree->GetFirstChild(StatsGUITree,cookie);
-	
+
 	while (!statssubtree->IsAtEndOfList(temp_it)) {
 		wxTreeItemId temp_item;
 		if (temp_GUI_it.IsOk()) {
@@ -361,7 +361,7 @@ void CStatisticsDlg::FillTree(CStatTreeItemBase* statssubtree, wxTreeItemId& Sta
 			stattree->DeleteChildren(temp_item);
 		}
 		statssubtree->GetNextVisibleChild(temp_it);
-	}	
+	}
 
 	// What if GUI has more items than tree?
 	// Delete the extra items.
diff --git a/src/StatisticsDlg.h b/src/StatisticsDlg.h
index 18b8b4b..155164b 100644
--- a/src/StatisticsDlg.h
+++ b/src/StatisticsDlg.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -65,7 +65,7 @@ public:
 	void InitGraphs();
 	void ApplyStatsColor(int index);
 	void RebuildStatTreeRemote(const CECTag *);
-	static const wxColour& getColors(unsigned num);	
+	static const wxColour& getColors(unsigned num);
 	COScopeCtrl* GetDLScope() { return pscopeDL; };
 	COScopeCtrl* GetConnScope() { return pscopeConn; };
 
diff --git a/src/Tag.cpp b/src/Tag.cpp
index 4dd86cf..2e7e0c8 100644
--- a/src/Tag.cpp
+++ b/src/Tag.cpp
@@ -17,23 +17,21 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //
 
 
-#include "Tag.h"				// Interface declarations
+#include "Tag.h"			// Interface declarations
 
 #include <common/Format.h>		// Needed for WXLONGLONGFMTSPEC
 
-#include "SafeFile.h"		// Needed for CFileDataIO
+#include "SafeFile.h"			// Needed for CFileDataIO
 #include "MD4Hash.h"			// Needed for CMD4Hash
+#include "CompilerSpecific.h"		// Needed for __FUNCTION__
 
-#ifdef __SUNPRO_CC
-#define __FUNCTION__ __FILE__+__LINE__
-#endif
 
 ///////////////////////////////////////////////////////////////////////////////
 // CTag
@@ -88,8 +86,8 @@ CTag::CTag(const CFileDataIO& data, bool bOptUTF8)
 {
 	// Zero variables to allow for safe deletion
 	m_uType = m_uName = m_nSize = m_uVal = 0;
-	m_pData = NULL;	
-	
+	m_pData = NULL;
+
 	try {
 		m_uType = data.ReadUInt8();
 		if (m_uType & 0x80) {
@@ -104,7 +102,7 @@ CTag::CTag(const CFileDataIO& data, bool bOptUTF8)
 				m_Name = data.ReadOnlyString(utf8strNone,length);
 			}
 		}
-	
+
 		// NOTE: It's very important that we read the *entire* packet data,
 		// even if we do not use each tag. Otherwise we will get in trouble
 		// when the packets are returned in a list - like the search results
@@ -113,7 +111,7 @@ CTag::CTag(const CFileDataIO& data, bool bOptUTF8)
 			case TAGTYPE_STRING:
 				m_pstrVal = new wxString(data.ReadString(bOptUTF8));
 				break;
-			
+
 			case TAGTYPE_UINT32:
 				m_uVal = data.ReadUInt32();
 				break;
@@ -121,55 +119,55 @@ CTag::CTag(const CFileDataIO& data, bool bOptUTF8)
 			case TAGTYPE_UINT64:
 				m_uVal = data.ReadUInt64();
 				break;
-			
+
 			case TAGTYPE_UINT16:
 				m_uVal = data.ReadUInt16();
 				m_uType = TAGTYPE_UINT32;
 				break;
-			
+
 			case TAGTYPE_UINT8:
 				m_uVal = data.ReadUInt8();
 				m_uType = TAGTYPE_UINT32;
 				break;
-			
+
 			case TAGTYPE_FLOAT32:
 				//#warning Endianess problem?
 				data.Read(&m_fVal, 4);
 				break;
-			
+
 			case TAGTYPE_HASH16:
 				m_hashVal = new CMD4Hash(data.ReadHash());
 				break;
-			
+
 			case TAGTYPE_BOOL:
 				printf("***NOTE: %s; Reading BOOL tag\n", __FUNCTION__);
 				data.ReadUInt8();
 				break;
-			
+
 			case TAGTYPE_BOOLARRAY: {
 				printf("***NOTE: %s; Reading BOOL Array tag\n", __FUNCTION__);
 				uint16 len = data.ReadUInt16();
-			
+
 				// 07-Apr-2004: eMule versions prior to 0.42e.29 used the formula "(len+7)/8"!
 				//#warning This seems to be off by one! 8 / 8 + 1 == 2, etc.
 				data.Seek((len / 8) + 1, wxFromCurrent);
 				break;
 			}
-	
+
 			case TAGTYPE_BLOB:
 				// 07-Apr-2004: eMule versions prior to 0.42e.29 handled the "len" as int16!
 				m_nSize = data.ReadUInt32();
-				
+
 				// Since the length is 32b, this check is needed to avoid
 				// huge allocations in case of bad tags.
 				if (m_nSize > data.GetLength() - data.GetPosition()) {
 					throw CInvalidPacket(wxT("Malformed tag"));
 				}
-					
+
 				m_pData = new unsigned char[m_nSize];
 				data.Read(m_pData, m_nSize);
 				break;
-		
+
 			default:
 				if (m_uType >= TAGTYPE_STR1 && m_uType <= TAGTYPE_STR16) {
 					uint8 length = m_uType - TAGTYPE_STR1 + 1;
@@ -199,7 +197,7 @@ CTag::~CTag()
 		delete m_hashVal;
 	} else if (IsBlob() || IsBsob()) {
 		delete[] m_pData;
-	} 
+	}
 }
 
 
@@ -251,16 +249,16 @@ CTag &CTag::operator=(const CTag &rhs)
 uint64 CTag::GetInt() const
 {
 	CHECK_TAG_TYPE(IsInt(), Integer);
-	
-	return m_uVal; 
+
+	return m_uVal;
 }
 
 
 const wxString& CTag::GetStr() const
 {
 	CHECK_TAG_TYPE(IsStr(), String);
-	
-	return *m_pstrVal; 	
+
+	return *m_pstrVal;
 }
 
 
@@ -275,23 +273,23 @@ float CTag::GetFloat() const
 const CMD4Hash& CTag::GetHash() const
 {
 	CHECK_TAG_TYPE(IsHash(), Hash);
-	
+
 	return *m_hashVal;
 }
-	
+
 
 uint32 CTag::GetBlobSize() const
 {
 	CHECK_TAG_TYPE(IsBlob(), Blob);
-	
+
 	return m_nSize;
 }
-	
+
 
 const byte* CTag::GetBlob() const
 {
 	CHECK_TAG_TYPE(IsBlob(), Blob);
-	
+
 	return m_pData;
 }
 
@@ -299,15 +297,15 @@ const byte* CTag::GetBlob() const
 uint32 CTag::GetBsobSize() const
 {
 	CHECK_TAG_TYPE(IsBsob(), Bsob);
-	
+
 	return m_nSize;
 }
-	
+
 
 const byte* CTag::GetBsob() const
 {
 	CHECK_TAG_TYPE(IsBsob(), Bsob);
-	
+
 	return m_pData;
 }
 
@@ -316,7 +314,7 @@ bool CTag::WriteNewEd2kTag(CFileDataIO* data, EUtf8Str eStrEncode) const
 
 	// Write tag type
 	uint8 uType;
-	
+
 	if (IsInt()) {
 		if (m_uVal <= 0xFF) {
 			uType = TAGTYPE_UINT8;
@@ -381,7 +379,7 @@ bool CTag::WriteNewEd2kTag(CFileDataIO* data, EUtf8Str eStrEncode) const
 			if (uType >= TAGTYPE_STR1 && uType <= TAGTYPE_STR16) {
 				// Sending '0' as len size makes it not write the len on the IO file.
 				// This is because this tag types send the len as their type.
-				data->WriteString(*m_pstrVal,eStrEncode,0); 
+				data->WriteString(*m_pstrVal,eStrEncode,0);
 			} else {
 				printf("%s; Unknown tag: type=0x%02X\n", __FUNCTION__, uType);
 				wxFAIL;
@@ -395,11 +393,11 @@ bool CTag::WriteNewEd2kTag(CFileDataIO* data, EUtf8Str eStrEncode) const
 
 bool CTag::WriteTagToFile(CFileDataIO* file, EUtf8Str WXUNUSED(eStrEncode), bool restrictive) const
 {
-	
-	// Don't write tags of unknown types, we wouldn't be able to read them in again 
+
+	// Don't write tags of unknown types, we wouldn't be able to read them in again
 	// and the met file would be corrupted
 	if (!restrictive || (IsStr() || IsInt() || IsFloat() || IsBlob())) {
-	
+
 		// If this fails, it'll throw.
 		file->WriteTag(*this);
 		return true;
diff --git a/src/Tag.h b/src/Tag.h
index b49498c..eb5ae25 100644
--- a/src/Tag.h
+++ b/src/Tag.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -50,9 +50,9 @@ public:
 	uint8 GetType() const		{ return m_uType; }
 	uint8 GetNameID() const		{ return m_uName; }
 	const wxString& GetName() const	{ return m_Name; }
-	
+
 	bool IsStr() const		{ return m_uType == TAGTYPE_STRING; }
-	bool IsInt() const		{ return 
+	bool IsInt() const		{ return
 		(m_uType == TAGTYPE_UINT64) ||
 		(m_uType == TAGTYPE_UINT32) ||
 		(m_uType == TAGTYPE_UINT16) ||
@@ -61,29 +61,29 @@ public:
 	bool IsHash() const		{ return m_uType == TAGTYPE_HASH16; }
 	bool IsBlob() const		{ return m_uType == TAGTYPE_BLOB; }
 	bool IsBsob() const		{ return m_uType == TAGTYPE_BSOB; }
-	
+
 	uint64 GetInt() const;
-	
+
 	const wxString& GetStr() const;
-	
+
 	float GetFloat() const;
-	
+
 	const CMD4Hash& GetHash() const;
-	
+
 	const byte* GetBlob() const;
 	uint32 GetBlobSize() const;
-	
+
 	const byte* GetBsob() const;
 	uint32 GetBsobSize() const;
-	
+
 	CTag* CloneTag()		{ return new CTag(*this); }
-	
+
 	bool WriteTagToFile(CFileDataIO* file,
 		EUtf8Str eStrEncode = utf8strNone,
 		bool restrictive = true) const;			// old eD2K tags
 	bool WriteNewEd2kTag(CFileDataIO* file,
 		EUtf8Str eStrEncode = utf8strNone) const;	// new eD2K tags
-	
+
 	wxString GetFullInfo() const;
 
 protected:
@@ -100,11 +100,11 @@ protected:
 	};
 
 	uint32		m_nSize;
-	
+
 private:
 	uint8		m_uName;
 	wxString	m_Name;
-	
+
 };
 
 typedef std::list<CTag*> TagPtrList;
@@ -119,9 +119,9 @@ public:
 
 	CTagIntSized(uint8 name, uint64 value, uint8 bitsize)
 		: CTag(name) {
-			Init(value, bitsize);			
+			Init(value, bitsize);
 		}
-		
+
 protected:
 	CTagIntSized(const wxString& name) : CTag(name) {}
 	CTagIntSized(uint8 name) : CTag(name) {}
@@ -129,22 +129,22 @@ protected:
 	void Init(uint64 value, uint8 bitsize) {
 			switch (bitsize) {
 				case 64:
-					wxASSERT(value <= ULONGLONG(0xFFFFFFFFFFFFFFFF)); 
+					wxASSERT(value <= ULONGLONG(0xFFFFFFFFFFFFFFFF));
 					m_uVal = value;
 					m_uType = TAGTYPE_UINT64;
 					break;
 				case 32:
-					wxASSERT(value <= 0xFFFFFFFF); 
+					wxASSERT(value <= 0xFFFFFFFF);
 					m_uVal = value;
 					m_uType = TAGTYPE_UINT32;
 					break;
 				case 16:
-					wxASSERT(value <= 0xFFFF); 
+					wxASSERT(value <= 0xFFFF);
 					m_uVal = value;
 					m_uType = TAGTYPE_UINT16;
 					break;
 				case 8:
-					wxASSERT(value <= 0xFF); 
+					wxASSERT(value <= 0xFF);
 					m_uVal = value;
 					m_uType = TAGTYPE_UINT8;
 					break;
@@ -170,7 +170,7 @@ private:
 		if (forced_bits) {
 			// The bitsize was forced.
 			Init(value,forced_bits);
-		} else { 
+		} else {
 			m_uVal = value;
 			if (value <= 0xFF) {
 				m_uType = TAGTYPE_UINT8;
@@ -181,7 +181,7 @@ private:
 			} else {
 				m_uType = TAGTYPE_UINT64;
 			}
-		}		
+		}
 	}
 };
 
diff --git a/src/TerminationProcess.cpp b/src/TerminationProcess.cpp
index 7a76483..ff614e7 100644
--- a/src/TerminationProcess.cpp
+++ b/src/TerminationProcess.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/TerminationProcess.h b/src/TerminationProcess.h
index c1a99c2..8942188 100644
--- a/src/TerminationProcess.h
+++ b/src/TerminationProcess.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/TerminationProcessAmuleweb.cpp b/src/TerminationProcessAmuleweb.cpp
index c0397e9..64a770e 100644
--- a/src/TerminationProcessAmuleweb.cpp
+++ b/src/TerminationProcessAmuleweb.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/TerminationProcessAmuleweb.h b/src/TerminationProcessAmuleweb.h
index e5ce138..0aa10e6 100644
--- a/src/TerminationProcessAmuleweb.h
+++ b/src/TerminationProcessAmuleweb.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/TextClient.cpp b/src/TextClient.cpp
index 45bd450..a629be2 100644
--- a/src/TextClient.cpp
+++ b/src/TextClient.cpp
@@ -17,12 +17,12 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //
-	
+
 
 #ifdef HAVE_CONFIG_H
 	#include "config.h"		// Needed for VERSION
@@ -32,7 +32,7 @@
 
 #include "TextClient.h"
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	#include <unistd.h> // Do_not_auto_remove
 #endif
 
@@ -78,16 +78,16 @@ enum {
 	CMD_ID_RELOAD_IPFILTER_NET,
 	CMD_ID_SET_IPFILTER_ON,
 	CMD_ID_SET_IPFILTER_OFF,
- 	CMD_ID_SET_IPFILTER_CLIENTS_ON,
+	CMD_ID_SET_IPFILTER_CLIENTS_ON,
 	CMD_ID_SET_IPFILTER_CLIENTS_OFF,
- 	CMD_ID_SET_IPFILTER_SERVERS_ON,
+	CMD_ID_SET_IPFILTER_SERVERS_ON,
 	CMD_ID_SET_IPFILTER_SERVERS_OFF,
 	CMD_ID_SET_IPFILTER_LEVEL,
- 	CMD_ID_GET_IPFILTER,
- 	CMD_ID_GET_IPFILTER_STATE,
+	CMD_ID_GET_IPFILTER,
+	CMD_ID_GET_IPFILTER_STATE,
 	CMD_ID_GET_IPFILTER_STATE_CLIENTS,
 	CMD_ID_GET_IPFILTER_STATE_SERVERS,
- 	CMD_ID_GET_IPFILTER_LEVEL,
+	CMD_ID_GET_IPFILTER_LEVEL,
 	CMD_ID_SHOW_UL,
 	CMD_ID_SHOW_DL,
 	CMD_ID_SHOW_LOG,
@@ -95,10 +95,10 @@ enum {
 	CMD_ID_SHOW_SHARED,
 	CMD_ID_RESET_LOG,
 	CMD_ID_SHUTDOWN,
- 	CMD_ID_ADDLINK,
- 	CMD_ID_SET_BWLIMIT_UP,
- 	CMD_ID_SET_BWLIMIT_DOWN,
- 	CMD_ID_GET_BWLIMITS,
+	CMD_ID_ADDLINK,
+	CMD_ID_SET_BWLIMIT_UP,
+	CMD_ID_SET_BWLIMIT_DOWN,
+	CMD_ID_GET_BWLIMITS,
 	CMD_ID_STATTREE,
 	CMD_ID_SEARCH,
 	CMD_ID_SEARCH_GLOBAL,
@@ -113,7 +113,7 @@ enum {
 };
 
 // method to create a SearchFile
-SearchFile::SearchFile(CEC_SearchFile_Tag *tag)
+SearchFile::SearchFile(const CEC_SearchFile_Tag *tag)
 {
 	nHash = tag->FileHash();
 	sHash = nHash.Encode();
@@ -130,8 +130,8 @@ IMPLEMENT_APP (CamulecmdApp)
 void CamulecmdApp::OnInitCmdLine(wxCmdLineParser& parser)
 {
 	CaMuleExternalConnector::OnInitCmdLine(parser, "amulecmd");
-	parser.AddOption(wxT("c"), wxT("command"), 
-		_("Execute <str> and exit."), 
+	parser.AddOption(wxT("c"), wxT("command"),
+		_("Execute <str> and exit."),
 		wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
 }
 
@@ -179,7 +179,7 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 			CmdId = CMD_ID_GET_IPFILTER_STATE;
 		}
 	}
-	
+
 	switch (CmdId) {
 		case CMD_ID_STATUS:
 			request_list.push_back(new CECPacket(EC_OP_STAT_REQ, EC_DETAIL_CMD));
@@ -189,12 +189,12 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 			request_list.push_back(new CECPacket(EC_OP_SHUTDOWN));
 			break;
 
- 		case CMD_ID_CONNECT:
+		case CMD_ID_CONNECT:
 			if ( !args.IsEmpty() ) {
 				unsigned int ip[4];
 				unsigned int port;
 				// Not much we can do against this unicode2char.
-				int result = sscanf(unicode2char(args), "%d.%d.%d.%d:%d", &ip[0], &ip[1], &ip[2], &ip[3], &port);
+				int result = sscanf(unicode2char(args), "%3d.%3d.%3d.%3d:%5d", &ip[0], &ip[1], &ip[2], &ip[3], &port);
 				if (result != 5) {
 					// Try to resolve DNS -- good for dynamic IP servers
 					wxString serverName(args.BeforeFirst(wxT(':')));
@@ -204,7 +204,7 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 					wxIPV4address a;
 					a.Hostname(serverName);
 					a.Service(port);
-					result = sscanf(unicode2char(a.IPAddress()), "%d.%d.%d.%d", &ip[0], &ip[1], &ip[2], &ip[3]);
+					result = sscanf(unicode2char(a.IPAddress()), "%3d.%3d.%3d.%3d", &ip[0], &ip[1], &ip[2], &ip[3]);
 					if (serverName.IsEmpty() || !ok || (result != 4)) {
 						Show(_("Invalid IP format. Use xxx.xxx.xxx.xxx:xxxx\n"));
 						return 0;
@@ -228,11 +228,11 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 			request_list.push_back(new CECPacket(EC_OP_SERVER_CONNECT));
 			break;
 
- 		case CMD_ID_CONNECT_KAD:
+		case CMD_ID_CONNECT_KAD:
 			request_list.push_back(new CECPacket(EC_OP_KAD_START));
 			break;
 
- 		case CMD_ID_DISCONNECT:
+		case CMD_ID_DISCONNECT:
 			request_list.push_back(new CECPacket(EC_OP_DISCONNECT));
 			break;
 
@@ -240,7 +240,7 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 			request_list.push_back(new CECPacket(EC_OP_SERVER_DISCONNECT));
 			break;
 
- 		case CMD_ID_DISCONNECT_KAD:
+		case CMD_ID_DISCONNECT_KAD:
 			request_list.push_back(new CECPacket(EC_OP_KAD_STOP));
 			break;
 
@@ -331,7 +331,7 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 				CECPacket request_all(EC_OP_GET_DLOAD_QUEUE, EC_DETAIL_CMD);
 				const CECPacket *reply_all = SendRecvMsg_v2(&request_all);
 
-				if (reply_all) { 
+				if (reply_all) {
 					switch(CmdId) {
 						case CMD_ID_PAUSE:
 								request = new CECPacket(EC_OP_PARTFILE_PAUSE); break;
@@ -345,12 +345,12 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 					// We loop through all the arguments
 					while(argsTokenizer.HasMoreTokens()) {
 						token=argsTokenizer.GetNextToken();
-						
+
 						// If the user requested all, then we select all files and exit the loop
 						// since there is little point to add anything more to "everything"
 						if( token == wxT("all") ) {
-							for (CECPacket::const_iterator it = reply_all->begin(); it != reply_all->end(); it++) {
-								CEC_PartFile_Tag *tag = (CEC_PartFile_Tag *) & *it;
+							for (CECPacket::const_iterator it = reply_all->begin(); it != reply_all->end(); ++it) {
+								const CEC_PartFile_Tag *tag = static_cast<const CEC_PartFile_Tag *>(&*it);
 								request->AddTag(CECTag(EC_TAG_PARTFILE, tag->FileHash()));
 							}
 							break;
@@ -361,8 +361,8 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 							}
 						} else {
 							 // Go through the dl queue and look at each filename
-							for (CECPacket::const_iterator it = reply_all->begin(); it != reply_all->end(); it++) {
-								CEC_PartFile_Tag *tag = (CEC_PartFile_Tag *) & *it;
+							for (CECPacket::const_iterator it = reply_all->begin(); it != reply_all->end(); ++it) {
+								const CEC_PartFile_Tag *tag = static_cast<const CEC_PartFile_Tag *>(&*it);
 								wxString partmetname = tag->PartMetName();
 
 								// We check for filename, XXX.pat.met, XXX.part, XXX
@@ -372,9 +372,9 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 									partmetname.Truncate(partmetname.Len()-5) == token) {
 									Show(_("Processing by filename: "+token+wxT("\n")));
 									request->AddTag(CECTag(EC_TAG_PARTFILE, tag->FileHash()));
-								}		
-							}	
-						} // End of filename check else	
+								}
+							}
+						} // End of filename check else
 					} // End of argument token loop
 
 				request_list.push_back(request);
@@ -423,7 +423,7 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 					}
 				} else {
 						Show(_("Not a valid hash (length should be exactly 32 chars)\n"));
-						return 0;					
+						return 0;
 				}
 			}
 			break;
@@ -514,13 +514,13 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 			if (search_type != EC_SEARCH_GLOBAL && search_type != EC_SEARCH_LOCAL){
 				search_type = EC_SEARCH_KAD;
 			}
-			if (!args.IsEmpty()) 
-			{	
-				wxString search = args; 
+			if (!args.IsEmpty())
+			{
+				wxString search = args;
 				wxString type;
-				wxString extention; 
-				uint32 avail = 0; 
-				uint32 min_size = 0; 
+				wxString extention;
+				uint32 avail = 0;
+				uint32 min_size = 0;
 				uint32 max_size = 0;
 
 				request = new CECPacket(EC_OP_SEARCH_START);
@@ -531,7 +531,7 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 		case CMD_ID_SEARCH:
 			printf("No search type defined.\nType 'help search' to get more help.\n");
 			break;
-			
+
 
 		case CMD_ID_SEARCH_RESULTS:
 			request_list.push_back(new CECPacket(EC_OP_SEARCH_RESULTS, EC_DETAIL_FULL));
@@ -542,8 +542,8 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 			break;
 
 		case CMD_ID_DOWNLOAD:
-			if (!args.IsEmpty()) 
-			{	
+			if (!args.IsEmpty())
+			{
 				unsigned long int id = 0;
 				if (args.ToULong(&id) == true && id < m_Results_map.size()) {
 
@@ -561,7 +561,7 @@ int CamulecmdApp::ProcessCommand(int CmdId)
 				}
 			}
 			break;
-		
+
 		default:
 			return CMD_ERR_PROCESS_CMD;
 	}
@@ -600,33 +600,33 @@ void CamulecmdApp::ShowResults(CResultMap results_map)
 	unsigned int nr_max = 5;
 	unsigned long int id = 0;
 	wxString output, name, sources, mb , kb;
-	
+
 	printf("Nr.    Filename:                                                                        Size(MB):  Sources: \n");
 	printf("-----------------------------------------------------------------------------------------------------------\n");
 
-	for( std::map<unsigned long int,SearchFile*>::iterator iter = results_map.begin(); iter != results_map.end(); iter++ ) {
-    		id = (*iter).first;
+	for( std::map<unsigned long int,SearchFile*>::iterator iter = results_map.begin(); iter != results_map.end(); ++iter ) {
+		id = (*iter).first;
 		SearchFile* file = (*iter).second;
-		
-		output.Printf(wxT("%i.      "), id);		
-		output = output.SubString(0, nr_max).Append(file->sFileName).Append(' ', name_max);		
+
+		output.Printf(wxT("%i.      "), id);
+		output = output.SubString(0, nr_max).Append(file->sFileName).Append(' ', name_max);
 		mb.Printf(wxT("     %d"), file->lFileSize/1024/1024);
 		kb.Printf(wxT(".%d"), file->lFileSize/1024%1024);
-		output = output.SubString(0, nr_max + name_max + mb_max - mb.Length() ).Append(mb).Append(kb);	
+		output = output.SubString(0, nr_max + name_max + mb_max - mb.Length() ).Append(mb).Append(kb);
 		printf("%s     %ld\n",(const char*)unicode2char(output), file->lSourceCount );
- 	}
+	}
 }
 
 
 // Formats a statistics (sub)tree to text
-wxString StatTree2Text(CEC_StatTree_Node_Tag *tree, int depth)
+wxString StatTree2Text(const CEC_StatTree_Node_Tag *tree, int depth)
 {
 	if (!tree) {
 		return wxEmptyString;
 	}
 	wxString result = wxString(wxChar(' '), depth) + tree->GetDisplayString() + wxT("\n");
-	for (CECTag::const_iterator it = tree->begin(); it != tree->end(); it++) {
-		CEC_StatTree_Node_Tag *tmp = (CEC_StatTree_Node_Tag*) & *it;
+	for (CECTag::const_iterator it = tree->begin(); it != tree->end(); ++it) {
+		const CEC_StatTree_Node_Tag *tmp = static_cast<const CEC_StatTree_Node_Tag*>(&*it);
 		if (tmp->GetTagName() == EC_TAG_STATTREE_NODE) {
 			result += StatTree2Text(tmp, depth + 1);
 		}
@@ -688,18 +688,18 @@ void CamulecmdApp::Process_Answer_v2(const CECPacket *response)
 			}
 			break;
 		case EC_OP_STRINGS:
-			for (CECPacket::const_iterator it = response->begin(); it != response->end(); it++) {
+			for (CECPacket::const_iterator it = response->begin(); it != response->end(); ++it) {
 				const CECTag &tag = *it;
 				s << tag.GetStringData() << wxT("\n");
 			}
 			break;
 		case EC_OP_STATS: {
-			CEC_ConnState_Tag *connState = (CEC_ConnState_Tag*)response->GetTagByName(EC_TAG_CONNSTATE);
+			const CEC_ConnState_Tag *connState = static_cast<const CEC_ConnState_Tag*>(response->GetTagByName(EC_TAG_CONNSTATE));
 			if (connState) {
 				s << _("eD2k") << wxT(": ");
 				if (connState->IsConnectedED2K()) {
-					CECTag *server = connState->GetTagByName(EC_TAG_SERVER);
-					CECTag *serverName = server ? server->GetTagByName(EC_TAG_SERVER_NAME) : NULL;
+					const CECTag *server = connState->GetTagByName(EC_TAG_SERVER);
+					const CECTag *serverName = server ? server->GetTagByName(EC_TAG_SERVER_NAME) : NULL;
 					if (server && serverName) {
 						s << CFormat(_("Connected to %s %s %s")) %
 						 serverName->GetStringData() %
@@ -737,42 +737,42 @@ void CamulecmdApp::Process_Answer_v2(const CECPacket *response)
 				s <<	CFormat(_("\nUpload:\t%s")) % CastItoSpeed(tmpTag->GetInt());
 			}
 			if ((tmpTag = response->GetTagByName(EC_TAG_STATS_UL_QUEUE_LEN)) != 0) {
-				s << 	CFormat(_("\nClients in queue:\t%d\n")) % tmpTag->GetInt();
+				s <<	CFormat(_("\nClients in queue:\t%d\n")) % tmpTag->GetInt();
 			}
 			if ((tmpTag = response->GetTagByName(EC_TAG_STATS_TOTAL_SRC_COUNT)) != 0) {
-				s << 	CFormat(_("\nTotal sources:\t%d\n")) % tmpTag->GetInt();
+				s <<	CFormat(_("\nTotal sources:\t%d\n")) % tmpTag->GetInt();
 			}
 			break;
 		}
 		case EC_OP_DLOAD_QUEUE:
-			for (CECPacket::const_iterator it = response->begin(); it != response->end(); it++) {
-				CEC_PartFile_Tag *tag =	(CEC_PartFile_Tag *) & *it;
-					uint64 filesize, donesize;
-					filesize = tag->SizeFull();
-					donesize = tag->SizeDone();
-					s <<	tag->FileHashString() << wxT(" ") <<
-						tag->FileName() <<
-						(CFormat(wxT("\n\t [%.1f%%] %4i/%4i "))
-							% ((float)donesize / ((float)filesize)*100.0)
-							% ((int)tag->SourceCount() - (int)tag->SourceNotCurrCount())
-							% (int)tag->SourceCount()) <<
-						((int)tag->SourceCountA4AF() ? wxString(CFormat(wxT("+%2.2i ")) % (int)tag->SourceCountA4AF()) : wxString(wxT("    "))) <<
-						((int)tag->SourceXferCount() ? wxString(CFormat(wxT("(%2.2i) - ")) % (int)tag->SourceXferCount()) : wxString(wxT("     - "))) <<
-						tag->GetFileStatusString();
-					s << wxT(" - ") << tag->PartMetName();
-                    if (tag->DownPrio() < 10) {
-                            s << wxT(" - ") << PriorityToStr((int)tag->DownPrio(), 0);
-                    } else {
-                            s << wxT(" - ") << PriorityToStr((tag->DownPrio() - 10), 1);
-                    }
-					if ( tag->SourceXferCount() > 0) {
-						s << wxT(" - ") + CastItoSpeed(tag->Speed());
-					}
-					s << wxT("\n");
+			for (CECPacket::const_iterator it = response->begin(); it != response->end(); ++it) {
+				const CEC_PartFile_Tag *tag = static_cast<const CEC_PartFile_Tag *>(&*it);
+				uint64 filesize, donesize;
+				filesize = tag->SizeFull();
+				donesize = tag->SizeDone();
+				s <<	tag->FileHashString() << wxT(" ") <<
+					tag->FileName() <<
+					(CFormat(wxT("\n\t [%.1f%%] %4i/%4i "))
+						% ((float)donesize / ((float)filesize)*100.0)
+						% ((int)tag->SourceCount() - (int)tag->SourceNotCurrCount())
+						% (int)tag->SourceCount()) <<
+					((int)tag->SourceCountA4AF() ? wxString(CFormat(wxT("+%2.2i ")) % (int)tag->SourceCountA4AF()) : wxString(wxT("    "))) <<
+					((int)tag->SourceXferCount() ? wxString(CFormat(wxT("(%2.2i) - ")) % (int)tag->SourceXferCount()) : wxString(wxT("     - "))) <<
+					tag->GetFileStatusString();
+				s << wxT(" - ") << tag->PartMetName();
+				if (tag->DownPrio() < 10) {
+					s << wxT(" - ") << PriorityToStr((int)tag->DownPrio(), 0);
+				} else {
+					s << wxT(" - ") << PriorityToStr((tag->DownPrio() - 10), 1);
+				}
+				if ( tag->SourceXferCount() > 0) {
+					s << wxT(" - ") + CastItoSpeed(tag->Speed());
+				}
+				s << wxT("\n");
 			}
 			break;
 		case EC_OP_ULOAD_QUEUE:
-			for (CECPacket::const_iterator it = response->begin(); it != response->end(); it++) {
+			for (CECPacket::const_iterator it = response->begin(); it != response->end(); ++it) {
 				const CECTag *tag = & *it;
 				const CECTag *clientName = tag->GetTagByName(EC_TAG_CLIENT_NAME);
 				const CECTag *partfileName = tag->GetTagByName(EC_TAG_PARTFILE_NAME);
@@ -789,13 +789,13 @@ void CamulecmdApp::Process_Answer_v2(const CECPacket *response)
 			}
 			break;
 		case EC_OP_LOG:
-			for (CECPacket::const_iterator it = response->begin(); it != response->end(); it++) {
+			for (CECPacket::const_iterator it = response->begin(); it != response->end(); ++it) {
 				const CECTag &tag = *it;
 				s << tag.GetStringData() << wxT("\n");
 			}
 			break;
 		case EC_OP_SERVER_LIST:
-			for (CECPacket::const_iterator it = response->begin(); it != response->end(); it++) {
+			for (CECPacket::const_iterator it = response->begin(); it != response->end(); ++it) {
 				const CECTag &tag = *it;
 				const CECTag *serverName = tag.GetTagByName(EC_TAG_SERVER_NAME);
 				if (serverName) {
@@ -806,7 +806,7 @@ void CamulecmdApp::Process_Answer_v2(const CECPacket *response)
 			}
 			break;
 		case EC_OP_STATSTREE:
-			s << StatTree2Text((CEC_StatTree_Node_Tag*)response->GetTagByName(EC_TAG_STATTREE_NODE), 0);
+			s << StatTree2Text(static_cast<const CEC_StatTree_Node_Tag*>(response->GetTagByName(EC_TAG_STATTREE_NODE)), 0);
 			break;
 
 		case EC_OP_SEARCH_RESULTS:
@@ -814,8 +814,8 @@ void CamulecmdApp::Process_Answer_v2(const CECPacket *response)
 			int i = 0;
 			m_Results_map.clear();
 			s += CFormat(_("Number of search results: %i\n")) % response->GetTagCount();
-			for (CECPacket::const_iterator it = response->begin(); it != response->end(); it++) {
-				CEC_SearchFile_Tag *tag = (CEC_SearchFile_Tag *) & *it;
+			for (CECPacket::const_iterator it = response->begin(); it != response->end(); ++it) {
+				const CEC_SearchFile_Tag *tag = static_cast<const CEC_SearchFile_Tag *>(&*it);
 				//printf("Tag FileName: %s \n",(const char*)unicode2char(tag->FileName()));
 				m_Results_map[i++] = new SearchFile(tag);
 			}
@@ -861,7 +861,7 @@ void CamulecmdApp::OnInitCommandSet()
 
 	tmp2 = tmp->AddCommand(wxT("IPFilter"), CMD_ID_RELOAD_IPFILTER_LOCAL, wxTRANSLATE("Reload IP filtering table."), wxEmptyString, CMD_PARAM_OPTIONAL);
 	tmp2->AddCommand(wxT("File"), CMD_ID_RELOAD_IPFILTER_LOCAL, wxTRANSLATE("Reload current IP filtering table."), wxEmptyString, CMD_PARAM_NEVER);
-	tmp2->AddCommand(wxT("Net"), CMD_ID_RELOAD_IPFILTER_NET, wxTRANSLATE("Update IP filtering table from URL."), 
+	tmp2->AddCommand(wxT("Net"), CMD_ID_RELOAD_IPFILTER_NET, wxTRANSLATE("Update IP filtering table from URL."),
 					wxTRANSLATE("If URL is omitted the URL from the preferences is used."), CMD_PARAM_OPTIONAL);
 
 	tmp = m_commands.AddCommand(wxT("Connect"), CMD_ID_CONNECT, wxTRANSLATE("Connect to the network."),
@@ -874,7 +874,7 @@ void CamulecmdApp::OnInitCommandSet()
 	tmp->AddCommand(wxT("ED2K"), CMD_ID_DISCONNECT_ED2K, wxTRANSLATE("Disconnect from eD2k only."), wxEmptyString, CMD_PARAM_NEVER);
 	tmp->AddCommand(wxT("Kad"), CMD_ID_DISCONNECT_KAD, wxTRANSLATE("Disconnect from Kad only."), wxEmptyString, CMD_PARAM_NEVER);
 
- 	m_commands.AddCommand(wxT("Add"), CMD_ID_ADDLINK, wxTRANSLATE("Add an eD2k or magnet link to core."),
+	m_commands.AddCommand(wxT("Add"), CMD_ID_ADDLINK, wxTRANSLATE("Add an eD2k or magnet link to core."),
 			      wxTRANSLATE("The eD2k link to be added can be:\n*) a file link (ed2k://|file|...), it will be added to the download queue,\n*) a server link (ed2k://|server|...), it will be added to the server list,\n*) or a serverlist link, in which case all servers in the list will be added to the\n   server list.\n\nThe magnet link must contain the eD2k hash and file length.\n"), CMD_PARAM_ALWAYS);
 
 	tmp = m_commands.AddCommand(wxT("Set"), CMD_ERR_INCOMPLETE, wxTRANSLATE("Set a preference value."),
@@ -930,14 +930,14 @@ void CamulecmdApp::OnInitCommandSet()
 	// TODO: These commands below need implementation and/or rewrite!
 	//
 
-  	m_commands.AddCommand(wxT("Pause"), CMD_ID_PAUSE, wxTRANSLATE("Pause download."),
- 			      wxEmptyString, CMD_PARAM_ALWAYS);
+	m_commands.AddCommand(wxT("Pause"), CMD_ID_PAUSE, wxTRANSLATE("Pause download."),
+			      wxEmptyString, CMD_PARAM_ALWAYS);
 
-  	m_commands.AddCommand(wxT("Resume"), CMD_ID_RESUME, wxTRANSLATE("Resume download."),
- 			      wxEmptyString, CMD_PARAM_ALWAYS);
+	m_commands.AddCommand(wxT("Resume"), CMD_ID_RESUME, wxTRANSLATE("Resume download."),
+			      wxEmptyString, CMD_PARAM_ALWAYS);
 
-   	m_commands.AddCommand(wxT("Cancel"), CMD_ID_CANCEL, wxTRANSLATE("Cancel download."),
-  			      wxEmptyString, CMD_PARAM_ALWAYS);
+	m_commands.AddCommand(wxT("Cancel"), CMD_ID_CANCEL, wxTRANSLATE("Cancel download."),
+			      wxEmptyString, CMD_PARAM_ALWAYS);
 
 	tmp = m_commands.AddCommand(wxT("Priority"), CMD_ERR_INCOMPLETE, wxTRANSLATE("Set download priority."),
 				    wxTRANSLATE("Set priority of a download to Low, Normal, High or Auto.\n"), CMD_PARAM_ALWAYS);
@@ -945,14 +945,14 @@ void CamulecmdApp::OnInitCommandSet()
 	tmp->AddCommand(wxT("Normal"), CMD_ID_PRIORITY_NORMAL, wxTRANSLATE("Set priority to normal."), wxEmptyString, CMD_PARAM_ALWAYS);
 	tmp->AddCommand(wxT("High"), CMD_ID_PRIORITY_HIGH, wxTRANSLATE("Set priority to high."), wxEmptyString, CMD_PARAM_ALWAYS);
 	tmp->AddCommand(wxT("Auto"), CMD_ID_PRIORITY_AUTO, wxTRANSLATE("Set priority to auto."), wxEmptyString, CMD_PARAM_ALWAYS);
-				  
+
 	tmp = m_commands.AddCommand(wxT("Show"), CMD_ERR_INCOMPLETE, wxTRANSLATE("Show queues/lists."),
 				    wxTRANSLATE("Show upload/download queue, server list or shared files list.\n"), CMD_PARAM_ALWAYS);
 	tmp->AddCommand(wxT("UL"), CMD_ID_SHOW_UL, wxTRANSLATE("Show upload queue."), wxEmptyString, CMD_PARAM_NEVER);
 	tmp->AddCommand(wxT("DL"), CMD_ID_SHOW_DL, wxTRANSLATE("Show download queue."), wxEmptyString, CMD_PARAM_NEVER);
 	tmp->AddCommand(wxT("Log"), CMD_ID_SHOW_LOG, wxTRANSLATE("Show log."), wxEmptyString, CMD_PARAM_NEVER);
 	tmp->AddCommand(wxT("Servers"), CMD_ID_SHOW_SERVERS, wxTRANSLATE("Show servers list."), wxEmptyString, CMD_PARAM_NEVER);
-// 	tmp->AddCommand(wxT("Shared"), CMD_ID_SHOW_SHARED, wxTRANSLATE("Show shared files list."), wxEmptyString, CMD_PARAM_NEVER);
+//	tmp->AddCommand(wxT("Shared"), CMD_ID_SHOW_SHARED, wxTRANSLATE("Show shared files list."), wxEmptyString, CMD_PARAM_NEVER);
 
 	m_commands.AddCommand(wxT("Reset"), CMD_ID_RESET_LOG, wxTRANSLATE("Reset log."), wxEmptyString, CMD_PARAM_NEVER);
 
@@ -990,4 +990,14 @@ bool ECLogIsEnabled()
 void DoECLogLine(const wxString &)
 {
 }
+
+
+namespace MuleNotify
+{
+	void HandleNotification(const class CMuleNotiferBase&) {}
+	void HandleNotificationAlways(const class CMuleNotiferBase&) {}
+	void UDPSocketSend(class CMuleUDPSocket *) {}
+	void UDPSocketReceive(class CMuleUDPSocket *) {}
+}
+
 // File_checked_for_headers
diff --git a/src/TextClient.h b/src/TextClient.h
index f931933..ec65990 100644
--- a/src/TextClient.h
+++ b/src/TextClient.h
@@ -1,6 +1,6 @@
 //
 // This file is part of the aMule Project.
-// 
+//
 // Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
 // Copyright (c) 2003-2011 Angel Vidal ( kry at amule.org )
 //
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,10 +42,9 @@ class SearchFile {
 		wxString  sHash;
 		long lSourceCount;
 		bool bPresent;
-		
-		SearchFile(CEC_SearchFile_Tag *);
-		
-		void ProcessUpdate(CEC_SearchFile_Tag *);
+
+		SearchFile(const CEC_SearchFile_Tag *);
+
 		static class SearchInfo *GetContainerInstance();
 		CMD4Hash ID() { return nHash; }
 };
diff --git a/src/ThreadScheduler.cpp b/src/ThreadScheduler.cpp
index 5481b82..8f7ebdc 100644
--- a/src/ThreadScheduler.cpp
+++ b/src/ThreadScheduler.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -44,7 +44,7 @@ static bool s_terminated = false;
  * The reason for not using wxThreadHelper are as follows:
  *  - wxThreadHelper makes use of wxThread:Kill, which is warned against
  *    serveral times in the docs, and even calls it in its destructor.
- *  - Managing the thread-object is difficult, since the only way to 
+ *  - Managing the thread-object is difficult, since the only way to
  *    destroy it is to create a new thread.
  */
 class CTaskThread : public CMuleThread
@@ -87,16 +87,16 @@ void CThreadScheduler::Terminate()
 	AddDebugLogLineN(logThreads, wxT("Terminating scheduler"));
 	CThreadScheduler* ptr = NULL;
 
-	{	
+	{
 		wxMutexLocker lock(s_lock);
-		
+
 		// Safely unlink the scheduler, as to avoid race-conditions.
 		ptr = s_scheduler;
 		s_running = false;
 		s_terminated = true;
 		s_scheduler = NULL;
 	}
-		
+
 	delete ptr;
 	AddDebugLogLineN(logThreads, wxT("Scheduler terminated"));
 }
@@ -132,7 +132,7 @@ wxString GetErrMsg(wxThreadError err)
 		case wxTHREAD_MISC_ERROR:	return wxT("wxTHREAD_MISC_ERROR");
 		default:
 			return wxT("Unknown error");
-	}	
+	}
 }
 
 
@@ -148,14 +148,14 @@ void CThreadScheduler::CreateSchedulerThread()
 		m_thread->Stop();
 		delete m_thread;
 	}
-	
+
 	m_thread = new CTaskThread(this);
 
 	wxThreadError err = m_thread->Create();
 	if (err == wxTHREAD_NO_ERROR) {
 		// Try to avoid reducing the latency of the main thread
 		m_thread->SetPriority(WXTHREAD_MIN_PRIORITY);
-		
+
 		err = m_thread->Run();
 		if (err == wxTHREAD_NO_ERROR) {
 			AddDebugLogLineN(logThreads, wxT("Scheduler thread started"));
@@ -166,7 +166,7 @@ void CThreadScheduler::CreateSchedulerThread()
 	} else {
 		AddDebugLogLineC(logThreads, wxT("Error while creating scheduler thread: ") + GetErrMsg(err));
 	}
-	
+
 	// Creation or running failed.
 	m_thread->Stop();
 	delete m_thread;
@@ -175,7 +175,7 @@ void CThreadScheduler::CreateSchedulerThread()
 
 
 /** This is the sorter functor for the task-queue. */
-struct CTaskSorter 
+struct CTaskSorter
 {
 	bool operator()(const CThreadScheduler::CEntryPair& a, const CThreadScheduler::CEntryPair& b) {
 		if (a.first->GetPriority() != b.first->GetPriority()) {
@@ -220,10 +220,10 @@ bool CThreadScheduler::DoAddTask(CThreadTask* task, bool overwrite)
 	// GetTick is too lowres, so we just use a counter to ensure that
 	// the sorted order will match the order in which the tasks were added.
 	static unsigned taskAge = 0;
-	
+
 	// Get the map for this task type, implicitly creating it as needed.
 	CDescMap& map = m_taskDescs[task->GetType()];
-	
+
 	CDescMap::value_type entry(task->GetDesc(), task);
 	if (map.insert(entry).second) {
 		AddDebugLogLineN(logThreads, wxT("Task scheduled: ") + task->GetType() + wxT(" - ") + task->GetDesc());
@@ -241,7 +241,7 @@ bool CThreadScheduler::DoAddTask(CThreadTask* task, bool overwrite)
 			wxCHECK2(map.erase(existingTask->GetDesc()), /* Do nothing. */);
 			delete existingTask;
 		}
-			
+
 		m_tasks.push_back(CEntryPair(task, taskAge++));
 		map[task->GetDesc()] = task;
 		m_tasksDirty = true;
@@ -262,13 +262,13 @@ bool CThreadScheduler::DoAddTask(CThreadTask* task, bool overwrite)
 void* CThreadScheduler::Entry()
 {
 	AddDebugLogLineN(logThreads, wxT("Entering scheduling loop"));
-	
+
 	while (!m_thread->TestDestroy()) {
 		CScopedPtr<CThreadTask> task(NULL);
 
 		{
-			wxMutexLocker lock(s_lock);	
-			
+			wxMutexLocker lock(s_lock);
+
 			// Resort tasks by priority/age if list has been modified.
 			if (m_tasksDirty) {
 				AddDebugLogLineN(logThreads, wxT("Resorting tasks"));
@@ -278,7 +278,7 @@ void* CThreadScheduler::Entry()
 				AddDebugLogLineN(logThreads, wxT("No more tasks, stopping"));
 				break;
 			}
-			
+
 			// Select the next task
 			task.reset(m_tasks.front().first);
 			m_tasks.pop_front();
@@ -290,23 +290,23 @@ void* CThreadScheduler::Entry()
 		task->m_owner = m_thread;
 		task->Entry();
 		task->OnExit();
-	
+
 		// Check if this was the last task of this type
 		bool isLastTask = false;
-		
+
 		{
 			wxMutexLocker lock(s_lock);
 
 			// If the task has been aborted, the entry now refers to
-			// a different task, so dont remove it. That also means 
+			// a different task, so dont remove it. That also means
 			// that it cant be the last task of this type.
 			if (!task->m_abort) {
 				AddDebugLogLineN(logThreads,
-					CFormat(wxT("Completed task '%s%s', %u tasks remaining.")) 
+					CFormat(wxT("Completed task '%s%s', %u tasks remaining."))
 						% task->GetType()
 						% (task->GetDesc().IsEmpty() ? wxString() : (wxT(" - ") + task->GetDesc()))
 						% m_tasks.size() );
-				
+
 				CDescMap& map = m_taskDescs[task->GetType()];
 				if (!map.erase(task->GetDesc())) {
 					wxFAIL;
@@ -325,7 +325,7 @@ void* CThreadScheduler::Entry()
 			task->OnLastTask();
 		}
 	}
-	
+
 	AddDebugLogLineN(logThreads, wxT("Leaving scheduling loop"));
 
 	return 0;
@@ -363,7 +363,7 @@ void CThreadTask::OnExit()
 bool CThreadTask::TestDestroy() const
 {
 	wxCHECK(m_owner, m_abort);
-	
+
 	return m_abort || m_owner->TestDestroy();
 }
 
diff --git a/src/ThreadScheduler.h b/src/ThreadScheduler.h
index 7198b6d..99c47d5 100644
--- a/src/ThreadScheduler.h
+++ b/src/ThreadScheduler.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -54,9 +54,9 @@ enum ETaskPriority
  * Currently it is assumed that all tasks are IO intensive,
  * so that only a single task is allowed to proceed at any
  * one time. All threads are run in lowest priority mode.
- * 
+ *
  * Tasks are sorted by priority (see ETaskPriority) and age.
- *  
+ *
  * Note that the scheduler starts in suspended mode, in
  * which tasks are queued but not executed. Call Start()
  * to begin execution of the tasks.
@@ -66,18 +66,18 @@ class CThreadScheduler
 public:
 	/** Starts execution of queued tasks. */
 	static void Start();
-	
+
 	/**
 	 * Terminates task execution and frees the scheduler object.
 	 *
 	 * Tasks added after this are discarded.
 	 */
 	static void Terminate();
-	
-	
+
+
 	/**
 	 * Adds a new task to the queue, returning true if the task was queued.
-	 * 
+	 *
 	 * Before the task is queued, it is checked against the
 	 * existing tasks based on type and description. If an
 	 * matching task already exists, this task-object is
@@ -99,25 +99,25 @@ private:
 
 	/** Returns the number of tasks on the queue. */
 	size_t GetTaskCount() const;
-	
+
 	/** Tries to add the given task to the queue, returning true on success. */
 	bool DoAddTask(CThreadTask* task, bool overwrite);
-	
+
 	/** Creates the actual scheduler thread if none exist. */
 	void CreateSchedulerThread();
 
 	/** Entry function called via internal thread-object. */
 	void* Entry();
-		
+
 	//! Contains a task and its age.
 	typedef std::pair<CThreadTask*, uint32> CEntryPair;
-	
-	//! List of currently scheduled tasks. 
+
+	//! List of currently scheduled tasks.
 	std::deque<CEntryPair> m_tasks;
 
 	//! Specifies if tasks should be resorted by priority.
 	bool	m_tasksDirty;
-	
+
 	typedef std::map<wxString, CThreadTask*> CDescMap;
 	typedef std::map<wxString, CDescMap> CTypeMap;
 	//! Map of current task by type -> desc. Used to avoid duplicate tasks.
@@ -127,7 +127,7 @@ private:
 	CMuleThread* m_thread;
 	//! The currently running task, if any.
 	CThreadTask* m_currentTask;
-	
+
 	friend class CTaskThread;
 	friend struct CTaskSorter;
 };
@@ -153,25 +153,25 @@ public:
 	 * @param type Should be a name constant among tasks of the type (hashing, completion, etc).
 	 * @param desc Should be an unique description for this task, for detecting duplicates.
 	 * @param priority Decides how soon the task will be carried out.
-	 */	
+	 */
 	CThreadTask(const wxString& type, const wxString& desc, ETaskPriority priority = ETP_Normal);
-	
+
 	/** Needed since CThreadScheduler only works with CThreadTask pointers. */
 	virtual ~CThreadTask();
 
 	/** Returns the task type, used for debugging and duplicate detection. */
 	const wxString& GetType() const;
-	
+
 	/** Returns the task description, used for debugging and duplicate detection. */
 	const wxString& GetDesc() const;
 
 	/** Returns the priority of the task. Used when selecting the next task. */
 	ETaskPriority GetPriority() const;
-	
+
 protected:
 	//! @see wxThread::Entry
 	virtual void Entry() = 0;
-	
+
 	/** Called when the last task of a specific type has been completed. */
 	virtual void OnLastTask();
 
@@ -180,7 +180,7 @@ protected:
 
 	/** @see wxThread::TestDestroy */
 	bool TestDestroy() const;
-	
+
 private:
 	wxString m_type;
 	wxString m_desc;
@@ -190,7 +190,7 @@ private:
 	CMuleThread* m_owner;
 	//! Specifies if the specifc task should be aborted.
 	bool m_abort;
-	
+
 	friend class CThreadScheduler;
 };
 
diff --git a/src/ThreadTasks.cpp b/src/ThreadTasks.cpp
index 089ae8f..7f8cd81 100644
--- a/src/ThreadTasks.cpp
+++ b/src/ThreadTasks.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -43,7 +43,7 @@
 
 //! This hash represents the value for an empty MD4 hashing
 const byte g_emptyMD4Hash[16] = {
-	0x31, 0xD6, 0xCF, 0xE0, 0xD1, 0x6A, 0xE9, 0x31, 
+	0x31, 0xD6, 0xCF, 0xE0, 0xD1, 0x6A, 0xE9, 0x31,
 	0xB7, 0x3C, 0x59, 0xD7, 0xE0, 0xC0, 0x89, 0xC0 };
 
 
@@ -58,9 +58,9 @@ CHashingTask::CHashingTask(const CPath& path, const CPath& filename, const CPart
 	  m_toHash((EHashes)(EH_MD4 | EH_AICH)),
 	  m_owner(part)
 {
-	// We can only create the AICH hashset if the file is a knownfile or 
+	// We can only create the AICH hashset if the file is a knownfile or
 	// if the partfile is complete, since the MD4 hashset is checked first,
-	// so that the AICH hashset only gets assigned if the MD4 hashset 
+	// so that the AICH hashset only gets assigned if the MD4 hashset
 	// matches what we expected. Due to the rareity of post-completion
 	// corruptions, this gives us a nice speedup in most cases.
 	if (part && !part->GetGapList().empty()) {
@@ -90,7 +90,7 @@ void CHashingTask::Entry()
 			CFormat(wxT("Warning, failed to open file, skipping: %s")) % fullPath);
 		return;
 	}
-	
+
 	uint64 fileLength = 0;
 	try {
 		fileLength = file.GetLength();
@@ -113,10 +113,10 @@ void CHashingTask::Entry()
 			AddDebugLogLineC(logHasher,
 				CFormat(wxT("Warning, 0-size file, skipping: %s")) % fullPath);
 		}
-		
+
 		return;
 	}
-	
+
 	// For thread-safety, results are passed via a temporary file object.
 	CScopedPtr<CKnownFile> knownfile;
 	knownfile->m_filePath = m_path;
@@ -126,7 +126,7 @@ void CHashingTask::Entry()
 	knownfile->m_AvailPartFrequency.insert(
 		knownfile->m_AvailPartFrequency.begin(),
 		knownfile->GetPartCount(), 0);
-	
+
 	if ((m_toHash & EH_MD4) && (m_toHash & EH_AICH)) {
 		knownfile->GetAICHHashset()->FreeHashSet();
 		AddDebugLogLineN( logHasher, CFormat(
@@ -143,23 +143,26 @@ void CHashingTask::Entry()
 		wxCHECK_RET(0, (CFormat(wxT("No hashes requested for file, skipping: %s"))
 			% m_filename).GetString());
 	}
-	
-	
+
 	// This loops creates the part-hashes, loop-de-loop.
 	try {
 		for (uint16 part = 0; part < knownfile->GetPartCount() && !TestDestroy(); part++) {
+			SetHashingProgress(part + 1);
 			if (CreateNextPartHash(file, part, knownfile.get(), m_toHash) == false) {
 				AddDebugLogLineC(logHasher,
 					CFormat(wxT("Error while hashing file, skipping: %s"))
 						% m_filename);
-			
+
+				SetHashingProgress(0);
 				return;
 			}
 		}
 	} catch (const CSafeIOException& e) {
 		AddDebugLogLineC(logHasher, wxT("IO exception while hashing file: ") + e.what());
+		SetHashingProgress(0);
 		return;
 	}
+	SetHashingProgress(0);
 
 	if ((m_toHash & EH_MD4) && !TestDestroy()) {
 		// If the file is < PARTSIZE, then the filehash is that one hash,
@@ -176,7 +179,7 @@ void CHashingTask::Entry()
 			wxFAIL;
 		}
 	}
-	
+
 	// Did we create a AICH hashset?
 	if ((m_toHash & EH_AICH) && !TestDestroy()) {
 		CAICHHashSet* AICHHashSet = knownfile->GetAICHHashset();
@@ -189,29 +192,39 @@ void CHashingTask::Entry()
 					CFormat(wxT("Warning, failed to save AICH hashset for file: %s"))
 						% m_filename );
 			}
+			// delete hashset now to free memory
+			AICHHashSet->FreeHashSet();
 		}
 	}
-	
+
 	if ((m_toHash == EH_AICH) && !TestDestroy()) {
 		CHashingEvent evt(MULE_EVT_AICH_HASHING, knownfile.release(), m_owner);
-		
+
 		wxPostEvent(wxTheApp, evt);
 	} else if (!TestDestroy()) {
 		CHashingEvent evt(MULE_EVT_HASHING, knownfile.release(), m_owner);
-		
+
 		wxPostEvent(wxTheApp, evt);
 	}
 }
 
 
+void CHashingTask::SetHashingProgress(uint16 part)
+{
+	if (m_owner) {
+		m_owner->SetHashingProgress(part);
+	}
+}
+
+
 bool CHashingTask::CreateNextPartHash(CFileAutoClose& file, uint16 part, CKnownFile* owner, EHashes toHash)
 {
 	wxCHECK_MSG(!file.Eof(), false, wxT("Unexpected EOF in CreateNextPartHash"));
-	
+
 	const uint64 offset = part * PARTSIZE;
 	// We'll read at most PARTSIZE bytes per cycle
 	const uint64 partLength = owner->GetPartSize(part);
-	
+
 	CMD4Hash hash;
 	CMD4Hash* md4Hash = ((toHash & EH_MD4) ? &hash : NULL);
 	CAICHHashTree* aichHash = NULL;
@@ -222,15 +235,15 @@ bool CHashingTask::CreateNextPartHash(CFileAutoClose& file, uint16 part, CKnownF
 	}
 
 	owner->CreateHashFromFile(file, offset, partLength, md4Hash, aichHash);
-	
+
 	if (toHash & EH_MD4) {
 		// Store the md4 hash
 		owner->m_hashlist.push_back(hash);
-	
-		// This is because of the ed2k implementation for parts. A 2 * PARTSIZE 
-		// file i.e. will have 3 parts (see CKnownFile::SetFileSize for comments). 
+
+		// This is because of the ed2k implementation for parts. A 2 * PARTSIZE
+		// file i.e. will have 3 parts (see CKnownFile::SetFileSize for comments).
 		// So we have to create the hash for the 0-size data, which will be the default
-		// md4 hash for null data: 31D6CFE0D16AE931B73C59D7E0C089C0	
+		// md4 hash for null data: 31D6CFE0D16AE931B73C59D7E0C089C0
 		if ((partLength == PARTSIZE) && file.Eof()) {
 			owner->m_hashlist.push_back(CMD4Hash(g_emptyMD4Hash));
 		}
@@ -243,7 +256,7 @@ bool CHashingTask::CreateNextPartHash(CFileAutoClose& file, uint16 part, CKnownF
 void CHashingTask::OnLastTask()
 {
 	if (GetType() == wxT("Hashing")) {
-		// To prevent rehashing in case of crashes, we 
+		// To prevent rehashing in case of crashes, we
 		// explicity save the list of hashed files here.
 		theApp->knownfiles->Save();
 
@@ -265,13 +278,13 @@ CAICHSyncTask::CAICHSyncTask()
 void CAICHSyncTask::Entry()
 {
 	ConvertToKnown2ToKnown264();
-	
+
 	AddDebugLogLineN( logAICHThread, wxT("Syncronization thread started.") );
-	
+
 	// We collect all masterhashs which we find in the known2.met and store them in a list
 	std::list<CAICHHash> hashlist;
 	const CPath fullpath = CPath(theApp->ConfigDir + KNOWN2_MET_FILENAME);
-	
+
 	CFile file;
 	if (!fullpath.FileExists()) {
 		// File does not exist. Try to create it to see if it can be created at all (and don't start hashing otherwise).
@@ -283,7 +296,7 @@ void CAICHSyncTask::Entry()
 			file.WriteUInt8(KNOWN2_MET_VERSION);
 		} catch (const CIOFailureException& e) {
 			AddDebugLogLineC(logAICHThread, wxT("IO failure while creating hashlist (Aborting): ") + e.what());
-			return;		
+			return;
 		}
 	} else {
 		if (!file.Open(fullpath, CFile::read)) {
@@ -296,7 +309,7 @@ void CAICHSyncTask::Entry()
 			if (file.ReadUInt8() != KNOWN2_MET_VERSION) {
 				throw CEOFException(wxT("Invalid met-file header found, removing file."));
 			}
-			
+
 			uint64 nExistingSize = file.GetLength();
 			while (file.GetPosition() < nExistingSize) {
 				// Read the next hash
@@ -317,10 +330,10 @@ void CAICHSyncTask::Entry()
 			file.SetLength(nLastVerifiedPos);
 		} catch (const CIOFailureException& e) {
 			AddDebugLogLineC(logAICHThread, wxT("IO failure while reading hashlist (Aborting): ") + e.what());
-		
-			return;		
+
+			return;
 		}
-	
+
 		AddDebugLogLineN( logAICHThread, wxT("Masterhashes of known files have been loaded.") );
 	}
 
@@ -337,7 +350,7 @@ bool CAICHSyncTask::ConvertToKnown2ToKnown264()
 
 	const CPath oldfullpath = CPath(theApp->ConfigDir + OLD_KNOWN2_MET_FILENAME);
 	const CPath newfullpath = CPath(theApp->ConfigDir + KNOWN2_MET_FILENAME);
-	
+
 	if (newfullpath.FileExists() || !oldfullpath.FileExists()) {
 		// In this case, there is nothing that we need to do.
 		return false;
@@ -348,7 +361,7 @@ bool CAICHSyncTask::ConvertToKnown2ToKnown264()
 
 	if (!oldfile.Open(oldfullpath, CFile::read)) {
 		AddDebugLogLineC(logAICHThread, wxT("Failed to open 'known2.met' file."));
-		
+
 		// else -> known2.met also doesn't exists, so nothing to convert
 		return false;
 	}
@@ -356,7 +369,7 @@ bool CAICHSyncTask::ConvertToKnown2ToKnown264()
 
 	if (!newfile.Open(newfullpath, CFile::write_excl)) {
 		AddDebugLogLineC(logAICHThread, wxT("Failed to create 'known2_64.met' file."));
-		
+
 		return false;
 	}
 
@@ -365,13 +378,13 @@ bool CAICHSyncTask::ConvertToKnown2ToKnown264()
 
 	try {
 		newfile.WriteUInt8(KNOWN2_MET_VERSION);
-		
+
 		while (newfile.GetPosition() < oldfile.GetLength()) {
 			CAICHHash aichHash(&oldfile);
 			uint32 nHashCount = oldfile.ReadUInt16();
-			
+
 			CScopedArray<byte> buffer(nHashCount * CAICHHash::GetHashSize());
-			
+
 			oldfile.Read(buffer.get(), nHashCount * CAICHHash::GetHashSize());
 			newfile.Write(aichHash.GetRawHash(), CAICHHash::GetHashSize());
 			newfile.WriteUInt32(nHashCount);
@@ -385,7 +398,7 @@ bool CAICHSyncTask::ConvertToKnown2ToKnown264()
 		AddDebugLogLineC(logAICHThread, wxT("IO error while converting 'known2.met' file: ") + e.what());
 		return false;
 	}
-	
+
 	// FIXME LARGE FILES (uncomment)
 	//DeleteFile(oldfullpath);
 
@@ -411,12 +424,12 @@ CCompletionTask::CCompletionTask(const CPartFile* file)
 	wxASSERT(m_metPath.IsOk());
 	wxASSERT(m_owner);
 }
-	
+
 
 void CCompletionTask::Entry()
 {
 	CPath targetPath;
-   
+
 	{
 #ifndef AMULE_DAEMON
 		// Prevent the preference values from changing underneeth us.
@@ -424,7 +437,7 @@ void CCompletionTask::Entry()
 #else
 		//#warning Thread-safety needed
 #endif
-		
+
 		targetPath = theApp->glob_prefs->GetCategory(m_category)->path;
 		if (!targetPath.DirExists()) {
 			targetPath = thePrefs::GetIncomingDir();
@@ -441,7 +454,7 @@ void CCompletionTask::Entry()
 	if (m_filename != dstName) {
 		AddLogLineC(CFormat(_("WARNING: The filename '%s' is invalid and has been renamed to '%s'.")) % m_filename % dstName);
 	}
-	
+
 	// Avoid saving to an already existing filename
 	CPath newName = targetPath.JoinPaths(dstName);
 	for (unsigned count = 0; newName.FileExists(); ++count) {
@@ -461,13 +474,13 @@ void CCompletionTask::Entry()
 			m_error = true;
 			return;
 		}
-		
+
 		if (!CPath::RemoveFile(partfilename)) {
 			AddDebugLogLineC(logPartFile, CFormat(wxT("WARNING: Could not remove original '%s' after creating backup")) % partfilename);
 		}
 	}
 
-	// Removes the various other data-files	
+	// Removes the various other data-files
 	const wxChar* otherMetExt[] = { wxT(""), PARTMET_BAK_EXT, wxT(".seeds"), NULL };
 	for (size_t i = 0; otherMetExt[i]; ++i) {
 		CPath toRemove = m_metPath.AppendExt(otherMetExt[i]);
@@ -487,7 +500,7 @@ void CCompletionTask::OnExit()
 {
 	// Notify the app that the completion has finished for this file.
 	CCompletionEvent evt(m_error, m_owner, m_newName);
-	
+
 	wxPostEvent(wxTheApp, evt);
 }
 
@@ -547,7 +560,7 @@ void CAllocateFileTask::Entry()
 	CFile file;
 	file.Open(m_file->GetFullName().RemoveExt(), CFile::read_write);
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	try {
 		// File is already created as non-sparse, so we only need to set the length.
 		// This will fail to allocate the file e.g. under wine on linux/ext3,
@@ -673,12 +686,12 @@ bool CCompletionEvent::ErrorOccured() const
 	return m_error;
 }
 
-	
+
 const CPartFile* CCompletionEvent::GetOwner() const
 {
 	return m_owner;
 }
-	
+
 
 const CPath& CCompletionEvent::GetFullPath() const
 {
diff --git a/src/ThreadTasks.h b/src/ThreadTasks.h
index 1cb6fc9..732f420 100644
--- a/src/ThreadTasks.h
+++ b/src/ThreadTasks.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,14 +39,14 @@ class CFileAutoClose;
  * This task performs MD4 and/or AICH hashings of a file,
  * depending on the type. For new shared files (using the
  * first constructor, with part == NULL), both MD4 and
- * AICH hashes are created. For incomplete partfiles 
+ * AICH hashes are created. For incomplete partfiles
  * (rehashed due to changed timestamps), only MD4 hashing
- * is done. For complete partfiles, both MD4 and AICH 
+ * is done. For complete partfiles, both MD4 and AICH
  * hashing is done.
  *
  * For existing shared files (using the second constructor),
  * only an AICH hash is created.
- * 
+ *
  * @see CHashingEvent
  * @see CAICHSyncTask
  */
@@ -64,7 +64,7 @@ public:
 	 * @see EVT_MULE_HASHING
 	 */
 	CHashingTask(const CPath& path, const CPath& filename, const CPartFile* part = NULL);
-	
+
 	/**
 	 * Schedules a KnownFile to have a AICH hashset created, used by CAICHSyncTask.
 	 *
@@ -72,7 +72,7 @@ public:
 	 * @see EVT_MULE_AICH_HASHING
 	 **/
 	CHashingTask(const CKnownFile* toAICHHash);
-	
+
 protected:
 	//! Specifies which hashes should be calculated when the task is executed.
 	enum EHashes {
@@ -82,8 +82,8 @@ protected:
 
 	//! @see CThreadTask::OnLastTask
 	virtual void OnLastTask();
-	
-	//! @see CThreadTask::Entry	
+
+	//! @see CThreadTask::Entry
 	virtual void Entry();
 
 	/**
@@ -95,7 +95,7 @@ protected:
 	 * @bool createAICH Specifies if AICH hash-sets should be created as well.
 	 * @return Returns false on read-errors, true otherwise.
 	 *
-	 * This function will create a MD4 hash and, if specified, a AICH hashset for 
+	 * This function will create a MD4 hash and, if specified, a AICH hashset for
 	 * the next part of the file. This function makes the assumption that it wont
 	 * be called for closed or EOF files.
 	 */
@@ -110,6 +110,9 @@ protected:
 	EHashes m_toHash;
 	//! If a partfile or an AICH hashing, this pointer stores it for callbacks.
 	const CKnownFile* m_owner;
+
+private:
+	void SetHashingProgress(uint16 part);
 };
 
 
@@ -124,7 +127,7 @@ public:
 	CAICHSyncTask();
 
 protected:
-	/** See CThreadTask::Entry */	
+	/** See CThreadTask::Entry */
 	virtual void Entry();
 
 	/** Converts old known2.met files to known2_64.met files. */
@@ -136,7 +139,7 @@ protected:
  * This task performs the final tasks on a complete download.
  *
  * This includes finding a usable destination filename, removing
- * old data files and moving the part-file (potentially to a 
+ * old data files and moving the part-file (potentially to a
  * different partition).
  **/
 class CCompletionTask : public CThreadTask
@@ -146,14 +149,14 @@ public:
 	 * Creates a thread which will complete the given download.
 	 */
 	CCompletionTask(const CPartFile* file);
-	
+
 protected:
-	/** See CThreadTask::Entry */	
+	/** See CThreadTask::Entry */
 	virtual void Entry();
 
-	/** See CThreadTask::OnExit */	
+	/** See CThreadTask::OnExit */
 	virtual void OnExit();
-	
+
 	//! The target filename.
 	CPath		m_filename;
 	//! The full path to the .met-file
@@ -200,17 +203,17 @@ class CAllocateFileTask : public CThreadTask
 /**
  * This event is used to signal the completion of a hashing event.
  *
- * @see CHashingTask 
+ * @see CHashingTask
  */
 class CHashingEvent : public wxEvent
 {
 public:
 	/**
 	 * @param type MULE_EVT_HASHING or MULE_EVT_AICH_HASHING.
-	 * @param result 
+	 * @param result
 	 */
 	CHashingEvent(wxEventType type, CKnownFile* result, const CKnownFile* owner = NULL);
-	
+
 	/** @see wxEvent::Clone */
 	virtual wxEvent* Clone() const;
 
@@ -218,7 +221,7 @@ public:
 	const CKnownFile* GetOwner() const;
 	/** Returns a CKnownfile used to store the results of the hashing. */
 	CKnownFile* GetResult() const;
-	
+
 private:
 	//! The file owner.
 	const CKnownFile* m_owner;
@@ -235,16 +238,16 @@ class CCompletionEvent : public wxEvent
 public:
 	/** Constructor, see getter funtion for description of parameters. */
 	CCompletionEvent(bool errorOccured, const CPartFile* owner, const CPath& fullPath);
-	
+
 	/** @see wxEvent::Clone */
 	virtual wxEvent* Clone() const;
 
 	/** Returns true if completion failed. */
 	bool ErrorOccured() const;
-	
+
 	/** Returns the owner of the file that was being completed. */
 	const CPartFile* GetOwner() const;
-	
+
 	/** Returns the full path to the completed file (empty on failure). */
 	const CPath& GetFullPath() const;
 private:
@@ -253,7 +256,7 @@ private:
 
 	//! The owner of the completed .part file.
 	const CPartFile* m_owner;
-	
+
 	//! Specifies if completion failed.
 	bool m_error;
 };
@@ -302,7 +305,7 @@ DECLARE_LOCAL_EVENT_TYPE(MULE_EVT_HASHING, -1)
 DECLARE_LOCAL_EVENT_TYPE(MULE_EVT_AICH_HASHING, -1)
 DECLARE_LOCAL_EVENT_TYPE(MULE_EVT_FILE_COMPLETED, -1)
 
-	
+
 typedef void (wxEvtHandler::*MuleHashingEventFunction)(CHashingEvent&);
 typedef void (wxEvtHandler::*MuleCompletionEventFunction)(CCompletionEvent&);
 typedef void (wxEvtHandler::*MuleAllocFinishedEventFunction)(CAllocFinishedEvent&);
diff --git a/src/ThrottledSocket.h b/src/ThrottledSocket.h
index 21d23a2..e8132b1 100644
--- a/src/ThrottledSocket.h
+++ b/src/ThrottledSocket.h
@@ -1,6 +1,6 @@
 //
 // This file is part of the aMule Project.
-// 
+//
 // Copyright (c) 2005-2011 aMule Team ( admin at amule.org / http://www.amule.org )
 // Copyright (c) 2002-2011 Merkur ( devs at emule-project.net / http://www.emule-project.net )
 //
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/Timer.cpp b/src/Timer.cpp
index ffc3085..2358d79 100644
--- a/src/Timer.cpp
+++ b/src/Timer.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -44,7 +44,7 @@ public:
 		do {
 			// current time
 			uint32 now = GetTickCountFullRes();
-			// This is typically zero, because lastEvent was already incremented by one period. 
+			// This is typically zero, because lastEvent was already incremented by one period.
 			sint32 delta = now - lastEvent;
 			if (delta > 100 * m_period) {
 				// We're way too far behind.  Probably what really happened is
@@ -56,7 +56,7 @@ public:
 
 			// Wait one period (adjusted by the difference just calculated)
 			sint32 timeout = ((m_period < delta) ? 0 : (m_period - delta));
-			
+
 			// In normal operation, we will never actually acquire the
 			// semaphore; we will always timeout.  This is used to
 			// implement a Sleep operation which the owning CTimer can
@@ -66,16 +66,16 @@ public:
 			if (m_sleepSemaphore.WaitTimeout(timeout) == wxSEMA_TIMEOUT) {
 				// Increment for one event only, so no events can be lost.
 				lastEvent += m_period;
-					
+
 				wxPostEvent(m_owner, evt);
 			} else {
 				break;
 			}
 		} while (!m_oneShot);
-		
+
 		return NULL;
 	}
-	
+
 	sint32			m_period;
 	bool			m_oneShot;
 	wxEvtHandler*	m_owner;
@@ -110,11 +110,11 @@ bool CTimer::IsRunning() const
 bool CTimer::Start(int millisecs, bool oneShot)
 {
 	wxCHECK_MSG(m_id != -1, false, wxT("Invalid target-ID for timer-events."));
-	
+
 	// Since this class generally matches wxTimer, calling
 	// start on a running timer stops and then restarts it.
 	Stop();
-	
+
 	m_thread = new CTimerThread();
 	m_thread->m_period	= millisecs;
 	m_thread->m_oneShot	= oneShot;
diff --git a/src/Timer.h b/src/Timer.h
index c95e769..73b1356 100644
--- a/src/Timer.h
+++ b/src/Timer.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -47,21 +47,21 @@ public:
 	 * @param oneShot Specifies if only one event should be produced.
 	 */
 	bool Start(int millisecs, bool oneShot = false);
-	
-	/** 
+
+	/**
 	 * Returns true if the timer is running.
 	 */
 	bool IsRunning() const;
 
 	/**
-	 * Stops the timer. 
+	 * Stops the timer.
 	 *
-	 * Note that this does not delete the actual thread 
-	 * immediatly, but no new events will be queued after 
+	 * Note that this does not delete the actual thread
+	 * immediatly, but no new events will be queued after
 	 * calling this function.
 	 */
 	void Stop();
-	
+
 private:
 	CTimerThread* m_thread;
 	wxEvtHandler* m_owner;
@@ -72,7 +72,7 @@ private:
 
 class CTimerEvent : public wxEvent
 {
-public:	
+public:
 	CTimerEvent(int id = 0);
 
 	virtual wxEvent* Clone() const;
@@ -81,7 +81,7 @@ public:
 
 DECLARE_LOCAL_EVENT_TYPE(MULE_EVT_TIMER, -1)
 
-	
+
 typedef void (wxEvtHandler::*MuleTimerEventFunction)(CTimerEvent&);
 
 #define EVT_MULE_TIMER(id, func) \
diff --git a/src/TransferWnd.cpp b/src/TransferWnd.cpp
index 1966d95..7394e3a 100644
--- a/src/TransferWnd.cpp
+++ b/src/TransferWnd.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -31,7 +31,7 @@
 
 
 // This include must be before amuleDlg.h
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
     #include <wx/msw/winundef.h>	// Needed for windows compilation
 #endif
 
@@ -55,19 +55,19 @@
 BEGIN_EVENT_TABLE(CTransferWnd, wxPanel)
 	EVT_RIGHT_DOWN(CTransferWnd::OnNMRclickDLtab)
 	EVT_NOTEBOOK_PAGE_CHANGED(ID_CATEGORIES,	CTransferWnd::OnCategoryChanged)
-	
- 	EVT_SPLITTER_SASH_POS_CHANGING(ID_DOWNLOADSSPLATTER, CTransferWnd::OnSashPositionChanging)
+
+	EVT_SPLITTER_SASH_POS_CHANGING(ID_DOWNLOADSSPLATTER, CTransferWnd::OnSashPositionChanging)
 
 	EVT_BUTTON(ID_BTNCLRCOMPL,		CTransferWnd::OnBtnClearDownloads)
- 	EVT_BUTTON(ID_CLIENTTOGGLE,		CTransferWnd::OnToggleClientList)
+	EVT_BUTTON(ID_CLIENTTOGGLE,		CTransferWnd::OnToggleClientList)
 
 	EVT_MENU_RANGE(MP_CAT_SET0, MP_CAT_SET0 + 15, CTransferWnd::OnSetDefaultCat)
-	EVT_MENU(MP_CAT_ADD, 			CTransferWnd::OnAddCategory)
-	EVT_MENU(MP_CAT_EDIT, 			CTransferWnd::OnEditCategory)
-	EVT_MENU(MP_CAT_REMOVE, 		CTransferWnd::OnDelCategory)
+	EVT_MENU(MP_CAT_ADD,			CTransferWnd::OnAddCategory)
+	EVT_MENU(MP_CAT_EDIT,			CTransferWnd::OnEditCategory)
+	EVT_MENU(MP_CAT_REMOVE,			CTransferWnd::OnDelCategory)
 	EVT_MENU(MP_PRIOLOW,			CTransferWnd::OnSetCatPriority)
 	EVT_MENU(MP_PRIONORMAL,			CTransferWnd::OnSetCatPriority)
-	EVT_MENU(MP_PRIOHIGH, 			CTransferWnd::OnSetCatPriority)
+	EVT_MENU(MP_PRIOHIGH,			CTransferWnd::OnSetCatPriority)
 	EVT_MENU(MP_PRIOAUTO,			CTransferWnd::OnSetCatPriority)
 	EVT_MENU(MP_PAUSE,			CTransferWnd::OnSetCatStatus)
 	EVT_MENU(MP_STOP,			CTransferWnd::OnSetCatStatus)
@@ -89,14 +89,14 @@ CTransferWnd::CTransferWnd( wxWindow* pParent )
 
 	// Set disabled image for clear complete button
 	CastChild(ID_BTNCLRCOMPL, wxBitmapButton)->SetBitmapDisabled(amuleDlgImages(34));
-	
+
 	// We want to use our own popup
 	m_dlTab->SetPopupHandler( this );
 
 	// Set default category
 	theApp->glob_prefs->GetCategory(0)->title = GetCatTitle(thePrefs::GetAllcatFilter());
 	theApp->glob_prefs->GetCategory(0)->path = thePrefs::GetIncomingDir();
-	
+
 	// Show default + userdefined categories
 	for ( uint32 i = 0; i < theApp->glob_prefs->GetCatCount(); i++ ) {
 		m_dlTab->AddPage( new wxPanel(m_dlTab), theApp->glob_prefs->GetCategory(i)->title );
@@ -104,9 +104,9 @@ CTransferWnd::CTransferWnd( wxWindow* pParent )
 
 	m_menu = NULL;
 	m_splitter = 0;
-	
+
 	wxConfigBase *config = wxConfigBase::Get();
-	
+
 	// Check if the clientlist is hidden
 	bool show = true;
 	config->Read( wxT("/GUI/TransferWnd/ShowClientList"), &show, true );
@@ -123,15 +123,15 @@ CTransferWnd::~CTransferWnd()
 	if ( !clientlistctrl->GetShowing() ) {
 		// Save the splitter position
 		config->Write( wxT("/GUI/TransferWnd/Splitter"), m_splitter );
-	
+
 		// Save the visible status of the list
 		config->Write( wxT("/GUI/TransferWnd/ShowClientList"), false );
 	} else {
 		wxSplitterWindow* splitter = CastChild( wxT("splitterWnd"), wxSplitterWindow );
-		
+
 		// Save the splitter position
-		config->Write( wxT("/GUI/TransferWnd/Splitter"), splitter->GetSashPosition() );		
-		
+		config->Write( wxT("/GUI/TransferWnd/Splitter"), splitter->GetSashPosition() );
+
 		// Save the visible status of the list
 		config->Write( wxT("/GUI/TransferWnd/ShowClientList"), true );
 	}
@@ -157,7 +157,7 @@ void CTransferWnd::UpdateCategory(int index)
 	if (showCatTabInfos) {
 		files.insert(files.begin(), nrCats, 0);
 		downloads.insert(downloads.begin(), nrCats, 0);
-		
+
 #ifdef CLIENT_GUI
 		for (CDownQueueRem::const_iterator it = theApp->downloadqueue->begin(); it != theApp->downloadqueue->end(); ++it) {
 			CPartFile *cur_file = it->second;
@@ -183,7 +183,7 @@ void CTransferWnd::UpdateCategory(int index)
 				}
 			}
 		}
-		
+
 	}
 	int start, end;
 	if (index == -1) {
@@ -227,7 +227,7 @@ void CTransferWnd::OnSetCatPriority( wxCommandEvent& event )
 		default:
 			return;
 	}
-		
+
 	CoreNotify_Download_Set_Cat_Prio( m_dlTab->GetSelection(), priority );
 }
 
@@ -240,11 +240,11 @@ void CTransferWnd::OnAddCategory(wxCommandEvent& WXUNUSED(event))
 	}
 	CCatDialog dialog( this,
 	// Allow browse?
-#ifdef CLIENT_GUI	
+#ifdef CLIENT_GUI
 	false
 #else
 	true
-#endif	
+#endif
 	);
 	dialog.ShowModal();
 }
@@ -281,15 +281,15 @@ void CTransferWnd::RemoveCategoryPage(int index)
 
 void CTransferWnd::OnEditCategory( wxCommandEvent& WXUNUSED(event) )
 {
-	CCatDialog dialog( this, 
+	CCatDialog dialog( this,
 	// Allow browse?
-#ifdef CLIENT_GUI	
+#ifdef CLIENT_GUI
 	false
 #else
 	true
 #endif
 		, m_dlTab->GetSelection());
-	
+
 	dialog.ShowModal();
 }
 
@@ -298,13 +298,13 @@ void CTransferWnd::OnSetDefaultCat( wxCommandEvent& event )
 {
 	thePrefs::SetAllcatFilter( static_cast<AllCategoryFilter>(event.GetId() - MP_CAT_SET0) );
 	theApp->glob_prefs->GetCategory(0)->title = GetCatTitle( thePrefs::GetAllcatFilter() );
-	
+
 	UpdateCategory( 0 );
-	
+
 	downloadlistctrl->ChangeCategory( 0 );
-	
+
 	theApp->glob_prefs->SaveCats();
-	
+
 	downloadlistctrl->SortList();
 }
 
@@ -325,13 +325,13 @@ void CTransferWnd::OnNMRclickDLtab(wxMouseEvent& evt)
 	// Only handle events from the category-notebook
 	if ( evt.GetEventObject() != (wxObject*)m_dlTab )
 		return;
-	
+
 	if ( m_dlTab->GetSelection() == -1 ) {
 		return;
 	}
-	
+
 	// Avoid opening another menu when it's already open
-	if ( m_menu == NULL ) {  
+	if ( m_menu == NULL ) {
 		m_menu = new wxMenu( _("Category") );
 
 		if ( m_dlTab->GetSelection() == 0 ) {
@@ -339,9 +339,9 @@ void CTransferWnd::OnNMRclickDLtab(wxMouseEvent& evt)
 
 			catmenu->Append( MP_CAT_SET0,      _("All") );
 			catmenu->Append( MP_CAT_SET0 + 1,  _("All others") );
-			
+
 			catmenu->AppendSeparator();
-			
+
 			catmenu->Append( MP_CAT_SET0 + 2,  _("Incomplete") );
 			catmenu->Append( MP_CAT_SET0 + 3,  _("Completed") );
 			catmenu->Append( MP_CAT_SET0 + 4,  _("Waiting") );
@@ -350,35 +350,35 @@ void CTransferWnd::OnNMRclickDLtab(wxMouseEvent& evt)
 			catmenu->Append( MP_CAT_SET0 + 7,  _("Paused") );
 			catmenu->Append( MP_CAT_SET0 + 8,  _("Stopped") );
 			catmenu->Append( MP_CAT_SET0 + 15, _("Active") );
-			
+
 			catmenu->AppendSeparator();
-			
+
 			catmenu->Append( MP_CAT_SET0 + 9,  _("Video") );
 			catmenu->Append( MP_CAT_SET0 + 10, _("Audio") );
 			catmenu->Append( MP_CAT_SET0 + 11, _("Archive") );
 			catmenu->Append( MP_CAT_SET0 + 12, _("CD-Images") );
 			catmenu->Append( MP_CAT_SET0 + 13, _("Pictures") );
 			catmenu->Append( MP_CAT_SET0 + 14, _("Text") );
-			
+
 			m_menu->Append(0, _("Select view filter"), catmenu);
 		}
 
 		m_menu->Append( MP_CAT_ADD, _("Add category") );
-		
+
 		if ( m_dlTab->GetSelection() ) {
 			m_menu->Append(MP_CAT_EDIT,_("Edit category"));
 			m_menu->Append(MP_CAT_REMOVE, _("Remove category"));
 		}
-		
+
 		m_menu->AppendSeparator();
-		
+
 		m_menu->Append( MP_CANCEL, _("Cancel"));
 		m_menu->Append( MP_STOP,   _("&Stop"));
 		m_menu->Append( MP_PAUSE,  _("&Pause"));
 		m_menu->Append( MP_RESUME, _("&Resume"));
-		
+
 		PopupMenu(m_menu, evt.GetPosition());
-		
+
 		delete m_menu;
 		m_menu = NULL;
 	}
@@ -397,8 +397,8 @@ void CTransferWnd::Prepare()
 {
 	wxSplitterWindow* splitter = CastChild( wxT("splitterWnd"), wxSplitterWindow );
 	int height = splitter->GetSize().GetHeight();
-	int header_height = s_clientlistHeader->GetSize().GetHeight();	
-	
+	int header_height = s_clientlistHeader->GetSize().GetHeight();
+
 	if ( m_splitter ) {
 		// Some sanity checking
 		if ( m_splitter < s_splitterMin ) {
@@ -424,26 +424,26 @@ void CTransferWnd::OnToggleClientList(wxCommandEvent& WXUNUSED(evt))
 	wxBitmapButton*   button = CastChild( ID_CLIENTTOGGLE, wxBitmapButton );
 
 	if ( !clientlistctrl->GetShowing() ) {
-		splitter->SetSashPosition( m_splitter );		
+		splitter->SetSashPosition( m_splitter );
 		m_splitter = 0;
-		
+
 		clientlistctrl->SetShowing( true );
-		
+
 		button->SetBitmapLabel( amuleDlgImages( 10 ) );
 		button->SetBitmapFocus( amuleDlgImages( 10 ) );
 		button->SetBitmapSelected( amuleDlgImages( 10 ) );
 		button->SetBitmapHover( amuleDlgImages( 10 ) );
 	} else {
 		clientlistctrl->SetShowing( false );
-	
+
 		m_splitter = splitter->GetSashPosition();
-	
+
 		// Add the height of the listctrl to the top-window
 		int height = clientlistctrl->GetSize().GetHeight()
 					 + splitter->GetWindow1()->GetSize().GetHeight();
-	
+
 		splitter->SetSashPosition( height );
-		
+
 		button->SetBitmapLabel( amuleDlgImages( 11 ) );
 		button->SetBitmapFocus( amuleDlgImages( 11 ) );
 		button->SetBitmapSelected( amuleDlgImages( 11 ) );
@@ -459,9 +459,9 @@ void CTransferWnd::OnSashPositionChanging(wxSplitterEvent& evt)
 	} else {
 		wxSplitterWindow* splitter = wxStaticCast( evt.GetEventObject(), wxSplitterWindow);
 		wxCHECK_RET(splitter, wxT("ERROR: NULL splitter in CTransferWnd::OnSashPositionChanging"));
-			
+
 		int height = splitter->GetSize().GetHeight();
-		int header_height = s_clientlistHeader->GetSize().GetHeight();	
+		int header_height = s_clientlistHeader->GetSize().GetHeight();
 		int mousey = wxGetMousePosition().y - splitter->GetScreenRect().GetTop();
 
 		if ( !clientlistctrl->GetShowing() ) {
diff --git a/src/TransferWnd.h b/src/TransferWnd.h
index 8bf38a0..a2cd39c 100644
--- a/src/TransferWnd.h
+++ b/src/TransferWnd.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,7 +42,7 @@ class wxEvent;
 class wxMenu;
 
 /**
- * This class takes care of managing the lists and other controls contained 
+ * This class takes care of managing the lists and other controls contained
  * in the transfer-window. It's primary function is to manage the user-defined
  * categories.
  */
@@ -53,25 +53,25 @@ public:
 	 * Constructor.
 	 */
 	CTransferWnd(wxWindow* pParent = NULL);
-	
+
 	/**
 	 * Destructor.
 	 */
 	~CTransferWnd();
-	
+
 
 	/**
 	 * Adds the specified category to the end of the list.
 	 *
 	 * @param category A pointer to the new category.
 	 *
-	 * This function should be called after a category has been 
+	 * This function should be called after a category has been
 	 * added to the lists of categories. The new category is assumed
 	 * to be the last, and thus will be appended to the end of the tabs
 	 * on the category-notebook.
 	 */
 	void AddCategory( Category_Struct* category );
-	
+
 	/**
 	 * Updates the title of the specified category.
 	 *
@@ -90,7 +90,7 @@ public:
 	 */
 	void	UpdateCatTabTitles() { UpdateCategory(-1); }
 
-	
+
 	/**
 	 * Call this function before displaying the dialog.
 	 *
@@ -102,7 +102,7 @@ public:
 	CDownloadListCtrl*	downloadlistctrl;
 	//! Pointer to the list of clients.
 	CSourceListCtrl*	clientlistctrl;
-	
+
 private:
 	//! Contains the current (or last if the clientlist is hidden) position of the splitter.
 	int m_splitter;
@@ -148,7 +148,7 @@ private:
 	 * Event-handler for changing categories.
 	 */
 	void OnCategoryChanged(wxBookCtrlEvent& evt);
-	
+
 	/**
 	 * Event-handler for displaying the category-popup menu.
 	 */
@@ -158,7 +158,7 @@ private:
 	 * Event-handler for the list-toggle button.
 	 */
 	void OnToggleClientList( wxCommandEvent& event );
-    
+
 	/**
 	 * Event-handler for changes in the sash divider position.
 	 */
diff --git a/src/Types.h b/src/Types.h
index 022d553..f6d9814 100644
--- a/src/Types.h
+++ b/src/Types.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,7 +28,7 @@
 
 #ifndef USE_STD_STRING
 #include <wx/string.h>		// Needed for wxString and wxEmptyString
-#endif 
+#endif
 
 #include <list>			// Needed for std::list
 #include <vector>		// Needed for std::vector
@@ -54,10 +54,10 @@
 	#define ULONGLONG(x) x##ui64
 #endif
 
-// These are _MSC_VER defines used in eMule. They should 
-// not be used in aMule, instead, use this table to 
-// find the type to use in order to get the desired 
-// effect. 
+// These are _MSC_VER defines used in eMule. They should
+// not be used in aMule, instead, use this table to
+// find the type to use in order to get the desired
+// effect.
 //////////////////////////////////////////////////
 // Name              // Type To Use In Amule    //
 //////////////////////////////////////////////////
@@ -91,7 +91,7 @@
 // POINT             // wxPoint                 //
 //////////////////////////////////////////////////
 
-/* 
+/*
  * Backwards compatibility with emule.
  * Note that the int* types are indeed unsigned.
  */
@@ -113,7 +113,7 @@ typedef uint8_t		byte;
 class CKnownFile;
 
 //! Various common list-types.
-//@{ 
+//@{
 #ifndef USE_STD_STRING
 typedef std::list<wxString> CStringList;
 #endif
@@ -128,7 +128,7 @@ typedef std::vector<uint64> ArrayOfUInts64;
 typedef std::list<uint32>	ListOfUInts32;
 
 /* This is the Evil Void String For Returning On Const References From Hell */
-// IT MEANS I WANT TO USE IT EVERYWHERE. DO NOT MOVE IT. 
+// IT MEANS I WANT TO USE IT EVERYWHERE. DO NOT MOVE IT.
 // THE FACT SOMETHING IS USED IN JUST ONE PLACE DOESN'T MEAN IT HAS
 // TO BE MOVED TO THAT PLACE. I MIGHT NEED IT ELSEWHERE LATER.
 //
@@ -142,16 +142,11 @@ static const wxString EmptyString = wxEmptyString;
 #endif
 
 
-#ifdef _WIN32			// Used in non-wx-apps too (ed2k), so don't use __WXMSW__ here !
-#ifdef _MSC_VER
-	#define NOMINMAX
+#ifdef _WIN32			// Used in non-wx-apps too (ed2k), so don't use __WINDOWS__  here !
+	#ifndef NOMINMAX
+		#define NOMINMAX
+	#endif
 	#include <windows.h> // Needed for RECT  // Do_not_auto_remove
-#else
-	#include <windef.h>	// Needed for RECT  // Do_not_auto_remove
-	#include <wingdi.h>	// Do_not_auto_remove
-	#include <winuser.h>	// Do_not_auto_remove
-	#include <winbase.h> // Do_not_auto_remove
-#endif
 	// Windows compilers don't have these constants
 	#ifndef W_OK
 		enum
@@ -162,7 +157,7 @@ static const wxString EmptyString = wxEmptyString;
 			R_OK = 4    //          read
 		};
 	#endif // W_OK
-	#ifdef __WXMSW__
+	#ifdef __WINDOWS__ 
 		#include <wx/msw/winundef.h>	// Do_not_auto_remove
 	#endif
 	#undef GetUserName
diff --git a/src/UPnPBase.cpp b/src/UPnPBase.cpp
index 8fea45d..012d0fe 100644
--- a/src/UPnPBase.cpp
+++ b/src/UPnPBase.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -29,25 +29,36 @@
 
 #ifdef ENABLE_UPNP
 
-#define UPNP_C
+// check for broken Debian-hacked libUPnP
+#include <upnp.h>
+#ifdef STRING_H			// defined in UpnpString.h Yes, I would have liked UPNPSTRING_H much better.
+#define BROKEN_DEBIAN_LIBUPNP
+#endif
 
 #include "UPnPBase.h"
 
-
-#include <dlfcn.h>		// For dlopen(), dlsym(), dlclose()
 #include <algorithm>		// For transform()
 
-
-#ifdef __GNUC__
-	#if __GNUC__ >= 4
-		#define REINTERPRET_CAST(x) reinterpret_cast<x>
-	#endif
-#endif
-#ifndef REINTERPRET_CAST
-	// Let's hope that function pointers are equal in size to data pointers
-	#define REINTERPRET_CAST(x) (x)
+#ifdef BROKEN_DEBIAN_LIBUPNP
+  #define GET_UPNP_STRING(a) UpnpString_get_String(a)
+#else
+  #define GET_UPNP_STRING(a) (a)
 #endif
 
+std::string stdEmptyString;
+
+const char s_argument[] = "argument";
+const char s_argumentList[] = "argumentList";
+const char s_action[] = "action";
+const char s_actionList[] = "actionList";
+const char s_allowedValue[] = "allowedValue";
+const char s_allowedValueList[] = "allowedValueList";
+const char s_stateVariable[] = "stateVariable";
+const char s_serviceStateTable[] = "serviceStateTable";
+const char s_service[] = "service";
+const char s_serviceList[] = "serviceList";
+const char s_device[] = "device";
+const char s_deviceList[] = "deviceList";
 
 /**
  * Case insensitive std::string comparison
@@ -132,12 +143,12 @@ std::string CUPnPLib::processUPnPErrorMessage(
 			": Error code :'";
 		if (doc) {
 			CUPnPError e(*this, doc);
-			msg << e.getErrorCode() << 
+			msg << e.getErrorCode() <<
 				"', Error description :'" <<
 				e.getErrorDescription() <<
 				"'.";
 		} else {
-			msg << errorCode << 
+			msg << errorCode <<
 				"', Error description :'" <<
 				errorString <<
 				"'.";
@@ -147,11 +158,11 @@ std::string CUPnPLib::processUPnPErrorMessage(
 		msg << "Error: " <<
 			messsage <<
 			": UPnP SDK error: " <<
-			GetUPnPErrorMessage(errorCode) << 
+			GetUPnPErrorMessage(errorCode) <<
 			" (" << errorCode << ").";
 		AddLogLineU(false, logUPnP, msg);
 	}
-	
+
 	return msg.str();
 }
 
@@ -187,9 +198,8 @@ void CUPnPLib::ProcessActionResponse(
 IXML_Element *CUPnPLib::Element_GetRootElement(
 	IXML_Document *doc) const
 {
-	IXML_Element *root = REINTERPRET_CAST(IXML_Element *)(
-		ixmlNode_getFirstChild(
-			REINTERPRET_CAST(IXML_Node *)(doc)));
+	IXML_Element *root = reinterpret_cast<IXML_Element *>(
+		ixmlNode_getFirstChild(&doc->n));
 
 	return root;
 }
@@ -201,10 +211,9 @@ IXML_Element *CUPnPLib::Element_GetRootElement(
 IXML_Element *CUPnPLib::Element_GetFirstChild(
 	IXML_Element *parent) const
 {
-	IXML_Node *node = REINTERPRET_CAST(IXML_Node *)(parent);
-	IXML_Node *child = ixmlNode_getFirstChild(node);
+	IXML_Node *child = ixmlNode_getFirstChild(&parent->n);
 
-	return REINTERPRET_CAST(IXML_Element *)(child);
+	return reinterpret_cast<IXML_Element *>(child);
 }
 
 
@@ -214,10 +223,9 @@ IXML_Element *CUPnPLib::Element_GetFirstChild(
 IXML_Element *CUPnPLib::Element_GetNextSibling(
 	IXML_Element *child) const
 {
-	IXML_Node *node = REINTERPRET_CAST(IXML_Node *)(child);
-	IXML_Node *sibling = ixmlNode_getNextSibling(node);
+	IXML_Node *sibling = ixmlNode_getNextSibling(&child->n);
 
-	return REINTERPRET_CAST(IXML_Element *)(sibling);
+	return reinterpret_cast<IXML_Element *>(sibling);
 }
 
 
@@ -227,8 +235,7 @@ IXML_Element *CUPnPLib::Element_GetNextSibling(
 const DOMString CUPnPLib::Element_GetTag(
 	IXML_Element *element) const
 {
-	IXML_Node *node = REINTERPRET_CAST(IXML_Node *)(element);
-	const DOMString tag = ixmlNode_getNodeName(node);
+	const DOMString tag = ixmlNode_getNodeName(&element->n);
 
 	return tag;
 }
@@ -243,8 +250,7 @@ const std::string CUPnPLib::Element_GetTextValue(
 	if (!element) {
 		return stdEmptyString;
 	}
-	IXML_Node *text = ixmlNode_getFirstChild(
-		REINTERPRET_CAST(IXML_Node *)(element));
+	IXML_Node *text = ixmlNode_getFirstChild(&element->n);
 	const DOMString s = ixmlNode_getNodeValue(text);
 	std::string ret;
 	if (s) {
@@ -280,16 +286,15 @@ IXML_Element *CUPnPLib::Element_GetFirstChildByTag(
 	if (!element || !tag) {
 		return NULL;
 	}
-	
-	IXML_Node *node = REINTERPRET_CAST(IXML_Node *)(element);
-	IXML_Node *child = ixmlNode_getFirstChild(node);
+
+	IXML_Node *child = ixmlNode_getFirstChild(&element->n);
 	const DOMString childTag = ixmlNode_getNodeName(child);
 	while(child && childTag && strcmp(tag, childTag)) {
 		child = ixmlNode_getNextSibling(child);
 		childTag = ixmlNode_getNodeName(child);
 	}
 
-	return REINTERPRET_CAST(IXML_Element *)(child);
+	return reinterpret_cast<IXML_Element *>(child);
 }
 
 
@@ -303,23 +308,22 @@ IXML_Element *CUPnPLib::Element_GetNextSiblingByTag(
 	if (!element || !tag) {
 		return NULL;
 	}
-	
-	IXML_Node *child = REINTERPRET_CAST(IXML_Node *)(element);
+
+	IXML_Node *child = &element->n;
 	const DOMString childTag = NULL;
 	do {
 		child = ixmlNode_getNextSibling(child);
 		childTag = ixmlNode_getNodeName(child);
 	} while(child && childTag && strcmp(tag, childTag));
 
-	return REINTERPRET_CAST(IXML_Element *)(child);
+	return reinterpret_cast<IXML_Element *>(child);
 }
 
 
 const std::string CUPnPLib::Element_GetAttributeByTag(
 	IXML_Element *element, const DOMString tag) const
 {
-	IXML_NamedNodeMap *NamedNodeMap = ixmlNode_getAttributes(
-		REINTERPRET_CAST(IXML_Node *)(element));
+	IXML_NamedNodeMap *NamedNodeMap = ixmlNode_getAttributes(&element->n);
 	IXML_Node *attribute = ixmlNamedNodeMap_getNamedItem(NamedNodeMap, tag);
 	const DOMString s = ixmlNode_getNodeValue(attribute);
 	std::string ret;
@@ -470,7 +474,7 @@ m_SCPD(NULL)
 {
 	std::ostringstream msg;
 	int errcode;
-	
+
 	std::vector<char> vscpdURL(URLBase.length() + m_SCPDURL.length() + 1);
 	char *scpdURL = &vscpdURL[0];
 	errcode = UpnpResolveURL(
@@ -659,11 +663,11 @@ bool CUPnPService::Execute(
 			ArgValue[i].GetValue() <<
 			"'";
 	}
-	msgAction << ")";		
+	msgAction << ")";
 	AddDebugLogLineN(logUPnP, msgAction);
 	// Everything is ok, make the action
 	IXML_Document *ActionDoc = NULL;
-	if (ArgValue.size()) {
+	if (!ArgValue.empty()) {
 		for (unsigned int i = 0; i < ArgValue.size(); ++i) {
 			int ret = UpnpAddToAction(
 				&ActionDoc,
@@ -699,7 +703,7 @@ bool CUPnPService::Execute(
 		NULL);
 	return true;
 #endif
-	
+
 	// Send the action synchronously
 	IXML_Document *RespDoc = NULL;
 	int ret = UpnpSendAction(
@@ -715,11 +719,11 @@ bool CUPnPService::Execute(
 		return false;
 	}
 	ixmlDocument_free(ActionDoc);
-	
+
 	// Check the response document
 	m_upnpLib.ProcessActionResponse(
 		RespDoc, action.GetName());
-	
+
 	// Free the response document
 	ixmlDocument_free(RespDoc);
 
@@ -794,7 +798,7 @@ m_presentationURL  (upnpLib.Element_GetChildValueByTag(device, "presentationURL"
 	} else {
 		m_presentationURL = presURL;
 	}
-	
+
 	msg.str("");
 	msg <<	"\n    Device: "                <<
 		"\n        friendlyName: "      << m_friendlyName <<
@@ -857,7 +861,7 @@ m_WanService(NULL)
 	s_CtrlPoint = this;
 	// Null string at first
 	std::ostringstream msg;
-	
+
 	// Start UPnP
 	int ret;
 	char *ipAddress = NULL;
@@ -885,7 +889,7 @@ m_WanService(NULL)
 	// We could ask for just the right device here. If the root device
 	// contains the device we want, it will respond with the full XML doc,
 	// including the root device and every sub-device it has.
-	// 
+	//
 	// But lets find out what we have in our network by calling UPNP_ROOT_DEVICE.
 	//
 	// We should not search twice, because this will produce two
@@ -945,7 +949,7 @@ bool CUPnPControlPoint::AddPortMappings(
 		AddLogLineU(true, logUPnP, msg);
 		return false;
 	}
-	
+
 	int n = upnpPortMapping.size();
 	bool ok = false;
 
@@ -955,15 +959,15 @@ bool CUPnPControlPoint::AddPortMappings(
 			"PortMappingNumberOfEntries"));
 	unsigned long oldNumberOfEntries;
 	PortMappingNumberOfEntries >> oldNumberOfEntries;
-	
+
 	// Add the enabled port mappings
 	for (int i = 0; i < n; ++i) {
 		if (upnpPortMapping[i].getEnabled() == "1") {
-			// Add the mapping to the control point 
+			// Add the mapping to the control point
 			// active mappings list
 			m_ActivePortMappingsMap[upnpPortMapping[i].getKey()] =
 				upnpPortMapping[i];
-			
+
 			// Add the port mapping
 			PrivateAddPortMapping(upnpPortMapping[i]);
 		}
@@ -981,12 +985,12 @@ bool CUPnPControlPoint::AddPortMappings(
 	m_WanService->GetStateVariable("ExternalIPAddress");
 	m_WanService->GetStateVariable("PortMappingNumberOfEntries");
 	m_WanService->GetStateVariable("PortMappingLeaseDuration");
-	
+
 	// Just for testing
 	std::vector<CUPnPArgumentValue> argval;
 	argval.resize(0);
 	m_WanService->Execute("GetStatusInfo", argval);
-	
+
 #if 0
 	// These do not work. Their value must be requested for a
 	// specific port mapping.
@@ -998,14 +1002,14 @@ bool CUPnPControlPoint::AddPortMappings(
 	m_WanService->GetStateVariable("InternalClient");
 	m_WanService->GetStateVariable("PortMappingDescription");
 #endif
-	
+
 	// Debug only
 	msg.str("");
 	msg << "CUPnPControlPoint::DeletePortMappings: "
 		"m_ActivePortMappingsMap.size() == " <<
 		m_ActivePortMappingsMap.size();
 	AddDebugLogLineN(logUPnP, msg);
-	
+
 	// Not very good, must find a better test
 	PortMappingNumberOfEntries.str(
 		m_WanService->GetStateVariable(
@@ -1013,7 +1017,7 @@ bool CUPnPControlPoint::AddPortMappings(
 	unsigned long newNumberOfEntries;
 	PortMappingNumberOfEntries >> newNumberOfEntries;
 	ok = newNumberOfEntries - oldNumberOfEntries == 4;
-	
+
 	return ok;
 }
 
@@ -1036,11 +1040,11 @@ bool CUPnPControlPoint::PrivateAddPortMapping(
 {
 	// Get an IP address. The UPnP server one must do.
 	std::string ipAddress(UpnpGetServerIpAddress());
-	
+
 	// Start building the action
 	std::string actionName("AddPortMapping");
 	std::vector<CUPnPArgumentValue> argval(8);
-	
+
 	// Action parameters
 	argval[0].SetArgument("NewRemoteHost");
 	argval[0].SetValue("");
@@ -1058,7 +1062,7 @@ bool CUPnPControlPoint::PrivateAddPortMapping(
 	argval[6].SetValue(upnpPortMapping.getDescription());
 	argval[7].SetArgument("NewLeaseDuration");
 	argval[7].SetValue("0");
-	
+
 	// Execute
 	bool ret = true;
 	for (ServiceMap::iterator it = m_ServiceMap.begin();
@@ -1081,21 +1085,21 @@ bool CUPnPControlPoint::DeletePortMappings(
 		AddLogLineU(true, logUPnP, msg);
 		return false;
 	}
-	
+
 	int n = upnpPortMapping.size();
 	bool ok = false;
-	
+
 	// Check the number of port mappings before
 	std::istringstream PortMappingNumberOfEntries(
 		m_WanService->GetStateVariable(
 			"PortMappingNumberOfEntries"));
 	unsigned long oldNumberOfEntries;
 	PortMappingNumberOfEntries >> oldNumberOfEntries;
-	
+
 	// Delete the enabled port mappings
 	for (int i = 0; i < n; ++i) {
 		if (upnpPortMapping[i].getEnabled() == "1") {
-			// Delete the mapping from the control point 
+			// Delete the mapping from the control point
 			// active mappings list
 			PortMappingMap::iterator it =
 				m_ActivePortMappingsMap.find(
@@ -1109,19 +1113,19 @@ bool CUPnPControlPoint::DeletePortMappings(
 					"mapping map.";
 				AddLogLineU(true, logUPnP, msg);
 			}
-			
+
 			// Delete the port mapping
 			PrivateDeletePortMapping(upnpPortMapping[i]);
 		}
 	}
-	
+
 	// Debug only
 	msg.str("");
 	msg << "CUPnPControlPoint::DeletePortMappings: "
 		"m_ActivePortMappingsMap.size() == " <<
 		m_ActivePortMappingsMap.size();
 	AddDebugLogLineN(logUPnP, msg);
-	
+
 	// Not very good, must find a better test
 	PortMappingNumberOfEntries.str(
 		m_WanService->GetStateVariable(
@@ -1129,7 +1133,7 @@ bool CUPnPControlPoint::DeletePortMappings(
 	unsigned long newNumberOfEntries;
 	PortMappingNumberOfEntries >> newNumberOfEntries;
 	ok = oldNumberOfEntries - newNumberOfEntries == 4;
-	
+
 	return ok;
 }
 
@@ -1140,7 +1144,7 @@ bool CUPnPControlPoint::PrivateDeletePortMapping(
 	// Start building the action
 	std::string actionName("DeletePortMapping");
 	std::vector<CUPnPArgumentValue> argval(3);
-	
+
 	// Action parameters
 	argval[0].SetArgument("NewRemoteHost");
 	argval[0].SetValue("");
@@ -1148,7 +1152,7 @@ bool CUPnPControlPoint::PrivateDeletePortMapping(
 	argval[1].SetValue(upnpPortMapping.getPort());
 	argval[2].SetArgument("NewProtocol");
 	argval[2].SetValue(upnpPortMapping.getProtocol());
-	
+
 	// Execute
 	bool ret = true;
 	for (ServiceMap::iterator it = m_ServiceMap.begin();
@@ -1169,7 +1173,7 @@ int CUPnPControlPoint::Callback(Upnp_EventType EventType, void *Event, void * /*
 	// happen with a wrong cookie and... boom!
 	// CUPnPControlPoint *upnpCP = static_cast<CUPnPControlPoint *>(Cookie);
 	CUPnPControlPoint *upnpCP = CUPnPControlPoint::s_CtrlPoint;
-	
+
 	//fprintf(stderr, "Callback: %d, Cookie: %p\n", EventType, Cookie);
 	switch (EventType) {
 	case UPNP_DISCOVERY_ADVERTISEMENT_ALIVE:
@@ -1191,7 +1195,7 @@ upnpDiscovery:
 			AddDebugLogLineC(logUPnP, msg);
 		}
 		// Get the XML tree device description in doc
-		ret = UpnpDownloadXmlDoc(d_event->Location, &doc); 
+		ret = UpnpDownloadXmlDoc(d_event->Location, &doc);
 		if (ret != UPNP_E_SUCCESS) {
 			msg << "Error retrieving device description from " <<
 				d_event->Location << ": " <<
@@ -1220,7 +1224,7 @@ upnpDiscovery:
 			if (stdStringIsEqualCI(devType, upnpCP->m_upnpLib.UPNP_DEVICE_IGW)) {
 				// This condition can be used to auto-detect
 				// the UPnP device we are interested in.
-				// Obs.: Don't block the entry here on this 
+				// Obs.: Don't block the entry here on this
 				// condition! There may be more than one device,
 				// and the first that enters may not be the one
 				// we are interested in!
@@ -1245,10 +1249,10 @@ upnpDiscovery:
 		// Search timeout
 		msg << "UPNP_DISCOVERY_SEARCH_TIMEOUT.";
 		AddDebugLogLineN(logUPnP, msg);
-		
+
 		// Unlock the search timeout mutex
 		upnpCP->m_WaitForSearchTimeoutMutex.Unlock();
-		
+
 		break;
 	}
 	case UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE: {
@@ -1299,15 +1303,15 @@ upnpEventRenewalComplete:
 		} else {
 #if 0
 			TvCtrlPointHandleSubscribeUpdate(
-				es_event->PublisherUrl,
+				GET_UPNP_STRING(es_event->PublisherUrl),
 				es_event->Sid,
 				es_event->TimeOut );
 #endif
 		}
-		
+
 		break;
 	}
-	
+
 	case UPNP_EVENT_AUTORENEWAL_FAILED:
 		//fprintf(stderr, "Callback: UPNP_EVENT_AUTORENEWAL_FAILED\n");
 		msg << "error(UPNP_EVENT_AUTORENEWAL_FAILED): ";
@@ -1324,7 +1328,7 @@ upnpEventSubscriptionExpired:
 		int TimeOut = 1801;
 		int ret = UpnpSubscribe(
 			upnpCP->m_UPnPClientHandle,
-			es_event->PublisherUrl,
+			GET_UPNP_STRING(es_event->PublisherUrl),
 			&TimeOut,
 			newSID);
 		if (ret != UPNP_E_SUCCESS) {
@@ -1333,13 +1337,13 @@ upnpEventSubscriptionExpired:
 				msg.str(), es_event->ErrCode, NULL, NULL);
 		} else {
 			ServiceMap::iterator it =
-				upnpCP->m_ServiceMap.find(es_event->PublisherUrl);
+				upnpCP->m_ServiceMap.find(GET_UPNP_STRING(es_event->PublisherUrl));
 			if (it != upnpCP->m_ServiceMap.end()) {
 				CUPnPService &service = *(it->second);
 				service.SetTimeout(TimeOut);
 				service.SetSID(newSID);
 				msg2 << "Re-subscribed to EventURL '" <<
-					es_event->PublisherUrl <<
+					GET_UPNP_STRING(es_event->PublisherUrl) <<
 					"' with SID == '" <<
 					newSID << "'.";
 				AddDebugLogLineC(logUPnP, msg2);
@@ -1387,7 +1391,7 @@ upnpEventSubscriptionExpired:
 				msg.str(), sv_event->ErrCode, NULL, NULL);
 		} else {
 #if 0
-			// Warning: The use of UpnpGetServiceVarStatus and 
+			// Warning: The use of UpnpGetServiceVarStatus and
 			// UpnpGetServiceVarStatusAsync is deprecated by the
 			// UPnP forum.
 			TvCtrlPointHandleGetVar(
@@ -1398,7 +1402,7 @@ upnpEventSubscriptionExpired:
 		}
 		break;
 	}
-	// ignore these cases, since this is not a device 
+	// ignore these cases, since this is not a device
 	case UPNP_CONTROL_GET_VAR_REQUEST:
 		//fprintf(stderr, "Callback: UPNP_CONTROL_GET_VAR_REQUEST\n");
 		msg << "error(UPNP_CONTROL_GET_VAR_REQUEST): ";
@@ -1427,7 +1431,7 @@ eventSubscriptionRequest:
 		//throw CUPnPException(msg);
 		break;
 	}
-	
+
 	return 0;
 }
 
@@ -1474,7 +1478,7 @@ void CUPnPControlPoint::AddRootDevice(
 {
 	// Lock the Root Device List
 	CUPnPMutexLocker lock(m_RootDeviceListMutex);
-	
+
 	// Root node's URLBase
 	std::string OriginalURLBase(urlBase);
 	std::string FixedURLBase(OriginalURLBase.empty() ?
@@ -1560,10 +1564,10 @@ void CUPnPControlPoint::Subscribe(CUPnPService &service)
 			service.GetAbsSCPDURL() << ".";
 		AddLogLineU(true, logUPnP, msg);
 	}
-	
+
 	return;
 
-	// Error processing	
+	// Error processing
 error:
 	AddLogLineU(true, logUPnP, msg);
 }
diff --git a/src/UPnPBase.h b/src/UPnPBase.h
index 7f88a88..15caed3 100644
--- a/src/UPnPBase.h
+++ b/src/UPnPBase.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,12 +36,7 @@
 
 #include "UPnPCompatibility.h"
 
-
-#ifdef UPNP_C
-	std::string stdEmptyString;
-#else // UPNP_C
-	extern std::string stdEmptyString;
-#endif // UPNP_C
+extern std::string stdEmptyString;
 
 
 /**
@@ -60,7 +55,7 @@ private:
 	std::string m_enabled;
 	std::string m_description;
 	std::string m_key;
-	
+
 public:
 	CUPnPPortMapping(
 		int port = 0,
@@ -98,15 +93,15 @@ public:
 	static const std::string &UPNP_SERVICE_WAN_IP_CONNECTION;
 	static const std::string &UPNP_SERVICE_WAN_PPP_CONNECTION;
 	CUPnPControlPoint &m_ctrlPoint;
-	
+
 public:
 	CUPnPLib(CUPnPControlPoint &ctrlPoint);
 	~CUPnPLib() {}
 
-	// Convenience function so we don't have to write explicit calls 
+	// Convenience function so we don't have to write explicit calls
 	// to char2unicode every time
 	std::string GetUPnPErrorMessage(int code) const;
-	
+
 	// Convenience function to avoid repetitive processing of error
 	// messages
 	std::string processUPnPErrorMessage(
@@ -119,7 +114,7 @@ public:
 	void ProcessActionResponse(
 		IXML_Document *RespDoc,
 		const std::string &actionName) const;
-	
+
 	// IXML_Element
 	IXML_Element *Element_GetRootElement(
 		IXML_Document *doc) const;
@@ -216,20 +211,6 @@ extern const char s_serviceList[];
 extern const char s_device[];
 extern const char s_deviceList[];
 
-#ifdef UPNP_C
-	const char s_argument[] = "argument";
-	const char s_argumentList[] = "argumentList";
-	const char s_action[] = "action";
-	const char s_actionList[] = "actionList";
-	const char s_allowedValue[] = "allowedValue";
-	const char s_allowedValueList[] = "allowedValueList";
-	const char s_stateVariable[] = "stateVariable";
-	const char s_serviceStateTable[] = "serviceStateTable";
-	const char s_service[] = "service";
-	const char s_serviceList[] = "serviceList";
-	const char s_device[] = "device";
-	const char s_deviceList[] = "deviceList";
-#endif // UPNP_C
 
 
 class CUPnPArgument;
@@ -272,7 +253,7 @@ private:
 	const std::string m_direction;
 	bool m_retval;
 	const std::string m_relatedStateVariable;
-	
+
 public:
 	CUPnPArgument(
 		const CUPnPControlPoint &upnpControlPoint,
@@ -300,7 +281,7 @@ private:
 	const CUPnPControlPoint &m_UPnPControlPoint;
 	ArgumentList m_ArgumentList;
 	const std::string m_name;
-	
+
 public:
 	CUPnPAction(
 		const CUPnPControlPoint &upnpControlPoint,
@@ -322,7 +303,7 @@ class CUPnPAllowedValue
 private:
 	const CUPnPControlPoint &m_UPnPControlPoint;
 	const std::string m_allowedValue;
-	
+
 public:
 	CUPnPAllowedValue(
 		const CUPnPControlPoint &upnpControlPoint,
@@ -346,7 +327,7 @@ private:
 	const std::string m_dataType;
 	const std::string m_defaultValue;
 	const std::string m_sendEvents;
-	
+
 public:
 	CUPnPStateVariable(
 		const CUPnPControlPoint &upnpControlPoint,
@@ -374,7 +355,7 @@ private:
 	ActionList m_ActionList;
 	ServiceStateTable m_ServiceStateTable;
 	const std::string m_SCPDURL;
-	
+
 public:
 	CUPnPSCPD(
 		const CUPnPControlPoint &upnpControlPoint,
@@ -394,7 +375,7 @@ class CUPnPArgumentValue
 private:
 	std::string m_argument;
 	std::string m_value;
-	
+
 public:
 	CUPnPArgumentValue();
 	CUPnPArgumentValue(const std::string &argument, const std::string &value);
@@ -423,7 +404,7 @@ private:
 	int m_timeout;
 	Upnp_SID m_SID;
 	std::auto_ptr<CUPnPSCPD> m_SCPD;
-	
+
 public:
 	CUPnPService(
 		const CUPnPControlPoint &upnpControlPoint,
@@ -431,7 +412,7 @@ public:
 		IXML_Element *service,
 		const std::string &URLBase);
 	~CUPnPService();
-	
+
 	const std::string &GetServiceType() const
 		{ return m_serviceType; }
 	const std::string &GetServiceId() const
@@ -464,7 +445,7 @@ public:
 		{ return m_SCPD.get() != NULL; }
 	void SetSCPD(CUPnPSCPD *SCPD)
 		{ m_SCPD.reset(SCPD); }
-	
+
 	bool Execute(
 		const std::string &ActionName,
 		const std::vector<CUPnPArgumentValue> &ArgValue) const;
@@ -481,7 +462,7 @@ private:
 	// Please, lock these lists before use
 	DeviceList m_DeviceList;
 	ServiceList m_ServiceList;
-	
+
 	const std::string m_deviceType;
 	const std::string m_friendlyName;
 	const std::string m_manufacturer;
@@ -494,7 +475,7 @@ private:
 	const std::string m_UDN;
 	const std::string m_UPC;
 	std::string m_presentationURL;
-	
+
 public:
 	CUPnPDevice(
 		const CUPnPControlPoint &upnpControlPoint,
@@ -502,7 +483,7 @@ public:
 		IXML_Element *device,
 		const std::string &URLBase);
 	~CUPnPDevice() {}
-	
+
 	const std::string &GetUDN() const
 		{ return m_UDN; }
 	const std::string &GetDeviceType() const
@@ -534,7 +515,7 @@ public:
 		const char *location,
 		int expires);
 	~CUPnPRootDevice() {}
-	
+
 	const std::string &GetURLBase() const
 		{ return m_URLBase; }
 	const std::string &GetLocation() const
@@ -576,7 +557,7 @@ public:
 		std::vector<CUPnPPortMapping> &upnpPortMapping);
 	bool DeletePortMappings(
 		std::vector<CUPnPPortMapping> &upnpPortMapping);
-	
+
 	UpnpClient_Handle GetUPnPClientHandle()	const
 		{ return m_UPnPClientHandle; }
 
@@ -594,7 +575,7 @@ public:
 		Upnp_EventType EventType,
 		void* Event,
 		void* Cookie);
-	
+
 private:
 	void OnEventReceived(
 		const std::string &Sid,
diff --git a/src/UPnPCompatibility.h b/src/UPnPCompatibility.h
index 894e79f..ce247c5 100644
--- a/src/UPnPCompatibility.h
+++ b/src/UPnPCompatibility.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,8 +28,8 @@
 #define UPNPCOMPATIBILITY_H
 
 
-#include "upnp.h"
-#include "upnptools.h"
+#include <upnp.h>
+#include <upnptools.h>
 
 
 #include <sstream>
diff --git a/src/UpDownClientEC.h b/src/UpDownClientEC.h
index a4cda0d..9ee7df4 100644
--- a/src/UpDownClientEC.h
+++ b/src/UpDownClientEC.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -47,7 +47,7 @@ private:
 
 	/**
 	 * Reference count which is increased whenever client is linked to a clientref.
-	 * Clients are to be stored only by ClientRefs, CUpDownClient * are for temporary 
+	 * Clients are to be stored only by ClientRefs, CUpDownClient * are for temporary
 	 * use only.
 	 * Linking is done only by CClientRef which is friend, so methods are private.
 	 */
@@ -70,7 +70,7 @@ private:
 #endif
 
 public:
-	CUpDownClient(class CEC_UpDownClient_Tag *);
+	CUpDownClient(const class CEC_UpDownClient_Tag *);
 
 	void	RequestSharedFileList();
 
@@ -99,7 +99,7 @@ public:
 	uint16				GetRemoteQueueRank() const				{ return m_nRemoteQueueRank; }
 	CPartFile*			GetRequestFile() const					{ return m_reqfile; }
 	uint32				GetScore() const						{ return m_score; }
-	double 				GetScoreRatio() const;
+	double				GetScoreRatio() const;
 	uint32				GetServerIP() const						{ return m_dwServerIP; }
 	const wxString		GetServerName() const					{ return m_ServerName; }
 	uint16				GetServerPort() const					{ return m_nServerPort; }
diff --git a/src/UploadBandwidthThrottler.cpp b/src/UploadBandwidthThrottler.cpp
index aaf125b..a42f0b9 100644
--- a/src/UploadBandwidthThrottler.cpp
+++ b/src/UploadBandwidthThrottler.cpp
@@ -1,6 +1,6 @@
 //
 // This file is part of the aMule Project.
-// 
+//
 // Copyright (c) 2005-2011 aMule Team ( admin at amule.org / http://www.amule.org )
 // Copyright (c) 2002-2011 Merkur ( devs at emule-project.net / http://www.emule-project.net )
 //
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -140,7 +140,7 @@ void UploadBandwidthThrottler::AddToStandardList(uint32 index, ThrottledFileSock
 		if (index > (uint32)m_StandardOrder_list.size()) {
 			index = m_StandardOrder_list.size();
 		}
-		
+
 		m_StandardOrder_list.insert(m_StandardOrder_list.begin() + index, socket);
 	}
 }
@@ -219,7 +219,7 @@ void UploadBandwidthThrottler::DoRemoveFromAllQueues(ThrottledControlSocket* soc
 		// Remove this socket from control packet queue
 		EraseValue( m_ControlQueue_list, socket );
 		EraseValue( m_ControlQueueFirst_list, socket );
-		
+
 		wxMutexLocker lock( m_tempQueueLocker );
 		EraseValue( m_TempControlQueue_list, socket );
 		EraseValue( m_TempControlQueueFirst_list, socket );
@@ -230,7 +230,7 @@ void UploadBandwidthThrottler::DoRemoveFromAllQueues(ThrottledControlSocket* soc
 void UploadBandwidthThrottler::RemoveFromAllQueues(ThrottledControlSocket* socket)
 {
 	wxMutexLocker lock( m_sendLocker );
-	
+
 	DoRemoveFromAllQueues( socket );
 }
 
@@ -238,8 +238,8 @@ void UploadBandwidthThrottler::RemoveFromAllQueues(ThrottledControlSocket* socke
 void UploadBandwidthThrottler::RemoveFromAllQueues(ThrottledFileSocket* socket)
 {
 	wxMutexLocker lock( m_sendLocker );
-	
-	if (m_doRun) {	
+
+	if (m_doRun) {
 		DoRemoveFromAllQueues(socket);
 
 		// And remove it from upload slots
@@ -262,7 +262,7 @@ void UploadBandwidthThrottler::EndThread()
 			// signal the thread to stop looping and exit.
 			m_doRun = false;
 		}
-		
+
 		Wait();
 	}
 }
@@ -281,14 +281,14 @@ void UploadBandwidthThrottler::EndThread()
 void* UploadBandwidthThrottler::Entry()
 {
 	const uint32 TIME_BETWEEN_UPLOAD_LOOPS = 1;
-	
+
 	uint32 lastLoopTick = GetTickCountFullRes();
 	// Bytes to spend in current cycle. If we spend more this becomes negative and causes a wait next time.
 	sint32 bytesToSpend = 0;
 	uint32 allowedDataRate = 0;
 	uint32 rememberedSlotCounter = 0;
 	uint32 extraSleepTime = TIME_BETWEEN_UPLOAD_LOOPS;
-	
+
 	while (m_doRun && !TestDestroy()) {
 		uint32 timeSinceLastLoop = GetTickCountFullRes() - lastLoopTick;
 
@@ -333,7 +333,7 @@ void* UploadBandwidthThrottler::Entry()
 		lastLoopTick = thisLoopTick;
 
 		if (timeSinceLastLoop > sleepTime + 2000) {
-			AddDebugLogLineN(logGeneral, CFormat(wxT("UploadBandwidthThrottler: Time since last loop too long. time: %ims wanted: %ims Max: %ims")) 
+			AddDebugLogLineN(logGeneral, CFormat(wxT("UploadBandwidthThrottler: Time since last loop too long. time: %ims wanted: %ims Max: %ims"))
 				% timeSinceLastLoop % sleepTime % (sleepTime + 2000));
 
 			timeSinceLastLoop = sleepTime + 2000;
@@ -357,18 +357,18 @@ void* UploadBandwidthThrottler::Entry()
 													m_TempControlQueueFirst_list.begin(),
 													m_TempControlQueueFirst_list.end() );
 
-				m_ControlQueue_list.insert( m_ControlQueue_list.end(), 
+				m_ControlQueue_list.insert( m_ControlQueue_list.end(),
 											m_TempControlQueue_list.begin(),
 											m_TempControlQueue_list.end() );
 
 				m_TempControlQueue_list.clear();
 				m_TempControlQueueFirst_list.clear();
 			}
-	
+
 			// Send any queued up control packets first
 			while (spentBytes < bytesToSpend && (!m_ControlQueueFirst_list.empty() || !m_ControlQueue_list.empty())) {
 				ThrottledControlSocket* socket = NULL;
-	
+
 				if (!m_ControlQueueFirst_list.empty()) {
 					socket = m_ControlQueueFirst_list.front();
 					m_ControlQueueFirst_list.pop_front();
@@ -376,24 +376,24 @@ void* UploadBandwidthThrottler::Entry()
 					socket = m_ControlQueue_list.front();
 					m_ControlQueue_list.pop_front();
 				}
-	
+
 				if (socket != NULL) {
 					SocketSentBytes socketSentBytes = socket->SendControlData(bytesToSpend-spentBytes, minFragSize);
 					spentBytes += socketSentBytes.sentBytesControlPackets + socketSentBytes.sentBytesStandardPackets;
 					spentOverhead += socketSentBytes.sentBytesControlPackets;
 				}
 			}
-	
+
 			// Check if any sockets haven't gotten data for a long time. Then trickle them a package.
 			uint32 slots = m_StandardOrder_list.size();
 			for (uint32 slotCounter = 0; slotCounter < slots; slotCounter++) {
 				ThrottledFileSocket* socket = m_StandardOrder_list[ slotCounter ];
-	
+
 				if (socket != NULL) {
 					if (thisLoopTick-socket->GetLastCalledSend() > SEC2MS(1)) {
 						// trickle
 						uint32 neededBytes = socket->GetNeededBytes();
-	
+
 						if (neededBytes > 0) {
 							SocketSentBytes socketSentBytes = socket->SendFileAndControlData(neededBytes, minFragSize);
 							spentBytes += socketSentBytes.sentBytesControlPackets + socketSentBytes.sentBytesStandardPackets;
@@ -405,7 +405,7 @@ void* UploadBandwidthThrottler::Entry()
 						% slotCounter % m_StandardOrder_list.size());
 				}
 			}
-	
+
 			// Give available bandwidth to slots, starting with the one we ended with last time.
 			// There are two passes. First pass gives packets of doubleSendSize, second pass
 			// gives as much as possible.
@@ -444,7 +444,7 @@ void* UploadBandwidthThrottler::Entry()
 					bytesToSpend = bandwidthSavedTolerance;
 				}
 			}
-			
+
 			m_SentBytesSinceLastCall += spentBytes;
 			m_SentBytesSinceLastCallOverhead += spentOverhead;
 
diff --git a/src/UploadBandwidthThrottler.h b/src/UploadBandwidthThrottler.h
index 812e324..a660203 100644
--- a/src/UploadBandwidthThrottler.h
+++ b/src/UploadBandwidthThrottler.h
@@ -1,6 +1,6 @@
 //
 // This file is part of the aMule Project.
-// 
+//
 // Copyright (c) 2005-2011 aMule Team ( admin at amule.org / http://www.amule.org )
 // Copyright (c) 2002-2011 Merkur ( devs at emule-project.net / http://www.emule-project.net )
 //
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,12 +36,12 @@
 class ThrottledControlSocket;
 class ThrottledFileSocket;
 
-class UploadBandwidthThrottler : public wxThread 
+class UploadBandwidthThrottler : public wxThread
 {
 public:
     UploadBandwidthThrottler();
     ~UploadBandwidthThrottler();
-    
+
 	uint64 GetNumberOfSentBytesSinceLastCallAndReset();
     uint64 GetNumberOfSentBytesOverheadSinceLastCallAndReset();
 
@@ -58,28 +58,28 @@ private:
     bool RemoveFromStandardListNoLock(ThrottledFileSocket* socket);
 
     void* Entry();
-	
+
     bool m_doRun;
 
 
     wxMutex m_sendLocker;
     wxMutex m_tempQueueLocker;
-	
+
 	typedef std::deque<ThrottledControlSocket*> SocketQueue;
-	
+
 	// a queue for all the sockets that want to have Send() called on them.
     SocketQueue m_ControlQueue_list;
 	// a queue for all the sockets that want to have Send() called on them.
     SocketQueue m_ControlQueueFirst_list;
-	// sockets that wants to enter m_ControlQueue_list 
+	// sockets that wants to enter m_ControlQueue_list
     SocketQueue m_TempControlQueue_list;
-	// sockets that wants to enter m_ControlQueue_list and has been able to send before 
-    SocketQueue m_TempControlQueueFirst_list; 
+	// sockets that wants to enter m_ControlQueue_list and has been able to send before
+    SocketQueue m_TempControlQueueFirst_list;
 
 
 	typedef std::deque<ThrottledFileSocket*> FileSocketQueue;
 	// sockets that have upload slots. Ordered so the most prioritized socket is first
-    FileSocketQueue m_StandardOrder_list; 
+    FileSocketQueue m_StandardOrder_list;
 
     uint64 m_SentBytesSinceLastCall;
     uint64 m_SentBytesSinceLastCallOverhead;
diff --git a/src/UploadClient.cpp b/src/UploadClient.cpp
index 5bcd784..a74ab92 100644
--- a/src/UploadClient.cpp
+++ b/src/UploadClient.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,7 +48,7 @@
 
 
 //	members of CUpDownClient
-//	which are mainly used for uploading functions 
+//	which are mainly used for uploading functions
 
 void CUpDownClient::SetUploadState(uint8 eNewState)
 {
@@ -89,7 +89,7 @@ uint32 CUpDownClient::CalculateScoreInternal()
 	if (IsBadGuy()) {
 		return 0;
 	}
-	
+
 	// friend slot
 	if (IsFriend() && GetFriendSlot() && !HasLowID()) {
 		return 0x0FFFFFFF;
@@ -105,19 +105,19 @@ uint32 CUpDownClient::CalculateScoreInternal()
 
 	// calculate score, based on waitingtime and other factors
 	float fBaseValue = (float)(::GetTickCount()-GetWaitStartTime())/1000;
-	
+
 	fBaseValue *= GetScoreRatio();	// credits
-	
+
 	// Take file upload priority into account
 	//
 	// One yet unsolved problem here:
-	// sometimes a client asks for 2 files and there is no way to decide, which file the 
-	// client finally gets. so it could happen that he is queued first because of a 
+	// sometimes a client asks for 2 files and there is no way to decide, which file the
+	// client finally gets. so it could happen that he is queued first because of a
 	// high prio file, but then asks for something completely different.
 	float filepriority;
 	switch (pFile->GetUpPriority()) {
 		case PR_POWERSHARE:
-			filepriority = 250.0f; 
+			filepriority = 250.0f;
 			break;
 		case PR_VERYHIGH:
 			filepriority = 1.8f;
@@ -145,15 +145,15 @@ uint32 CUpDownClient::CalculateScoreInternal()
 }
 
 
-// Checks if it is next requested block from another chunk of the actual file or from another file 
-// 
-// [Returns] 
-//   true : Next requested block is from another different chunk or file than last downloaded block 
-//   false: Next requested block is from same chunk that last downloaded block 
-bool CUpDownClient::IsDifferentPartBlock() const // [Tarod 12/22/2002] 
-{ 
+// Checks if it is next requested block from another chunk of the actual file or from another file
+//
+// [Returns]
+//   true : Next requested block is from another different chunk or file than last downloaded block
+//   false: Next requested block is from same chunk that last downloaded block
+bool CUpDownClient::IsDifferentPartBlock() const // [Tarod 12/22/2002]
+{
 	bool different_part = false;
-	
+
 	// Check if we have good lists and proceed to check for different chunks
 	if ((!m_BlockRequests_queue.empty()) && !m_DoneBlocks_list.empty())
 	{
@@ -161,29 +161,29 @@ bool CUpDownClient::IsDifferentPartBlock() const // [Tarod 12/22/2002]
 		Requested_Block_Struct* next_requested_block = NULL;
 		uint64 last_done_part = 0xffffffff;
 		uint64 next_requested_part = 0xffffffff;
-			
-			
+
+
 		// Get last block and next pending
 		last_done_block = m_DoneBlocks_list.front();
 		next_requested_block = m_BlockRequests_queue.front();
-			
+
 		// Calculate corresponding parts to blocks
 		last_done_part = last_done_block->StartOffset / PARTSIZE;
-		next_requested_part = next_requested_block->StartOffset / PARTSIZE; 
-             
+		next_requested_part = next_requested_block->StartOffset / PARTSIZE;
+
 		// Test is we are asking same file and same part
-		if ( last_done_part != next_requested_part) { 
+		if ( last_done_part != next_requested_part) {
 			different_part = true;
 			AddDebugLogLineN(logClient, wxT("Session ended due to new chunk."));
 		}
-	
-		if (md4cmp(last_done_block->FileID, next_requested_block->FileID) != 0) { 
+
+		if (md4cmp(last_done_block->FileID, next_requested_block->FileID) != 0) {
 			different_part = true;
 			AddDebugLogLineN(logClient, wxT("Session ended due to different file."));
 		}
-	} 
+	}
 
-	return different_part; 
+	return different_part;
 }
 
 
@@ -196,22 +196,22 @@ void CUpDownClient::CreateNextBlockPackage()
 
 			Requested_Block_Struct* currentblock = m_BlockRequests_queue.front();
 			CKnownFile* srcfile = theApp->sharedfiles->GetFileByID(CMD4Hash(currentblock->FileID));
-			
+
 			if (!srcfile) {
 				throw wxString(wxT("requested file not found"));
 			}
 
-			// Check if this know file is a CPartFile. 
-			// For completed part files IsPartFile() returns false, so they are 
+			// Check if this know file is a CPartFile.
+			// For completed part files IsPartFile() returns false, so they are
 			// correctly treated as plain CKnownFile.
-			CPartFile* srcPartFile = srcfile->IsPartFile() ? (CPartFile*)srcfile : NULL;
+			CPartFile* srcPartFile = srcfile->IsPartFile() ? static_cast<CPartFile*>(srcfile) : NULL;
 
 			// THIS EndOffset points BEHIND the last byte requested
 			// (other than the offsets used in the PartFile code)
 			if (currentblock->EndOffset > srcfile->GetFileSize()) {
 				throw wxString(CFormat(wxT("Asked for data up to %d beyond end of file (%d)"))
 									% currentblock->EndOffset % srcfile->GetFileSize());
-			} else if (currentblock->StartOffset > currentblock->EndOffset) { 
+			} else if (currentblock->StartOffset > currentblock->EndOffset) {
 				throw wxString(CFormat(wxT("Asked for invalid block (start %d > end %d)"))
 									% currentblock->StartOffset % currentblock->EndOffset);
 			}
@@ -239,7 +239,7 @@ void CUpDownClient::CreateNextBlockPackage()
 					// The file was most likely moved/deleted. So remove it from the list of shared files.
 					AddLogLineN(CFormat( _("Failed to open file (%s), removing from list of shared files.") ) % srcfile->GetFileName() );
 					theApp->sharedfiles->RemoveFile(srcfile);
-					
+
 					throw wxString(wxT("Failed to open requested file: Removing from list of shared files!"));
 				}
 				area.ReadAt(file, currentblock->StartOffset, togo);
@@ -254,30 +254,30 @@ void CUpDownClient::CreateNextBlockPackage()
 			} else {
 				CreateStandardPackets(area.GetBuffer(), togo, currentblock);
 			}
-			
+
 			// file statistic
 			srcfile->statistic.AddTransferred(togo);
 
 			m_addedPayloadQueueSession += togo;
 
 			Requested_Block_Struct* block = m_BlockRequests_queue.front();
-			
-			m_BlockRequests_queue.pop_front();			
+
+			m_BlockRequests_queue.pop_front();
 			m_DoneBlocks_list.push_front(block);
 		}
 
 		return;
 	} catch (const wxString& DEBUG_ONLY(error)) {
-		AddDebugLogLineN(logClient, 
+		AddDebugLogLineN(logClient,
 			CFormat(wxT("Client '%s' (%s) caused error while creating packet (%s) - disconnecting client"))
 				% GetUserName() % GetFullIP() % error);
 	} catch (const CIOFailureException& error) {
 		AddDebugLogLineC(logClient, wxT("IO failure while reading requested file: ") + error.what());
 	} catch (const CEOFException& WXUNUSED(error)) {
-		AddDebugLogLineC(logClient, GetClientFullInfo() + wxT(" requested file-data at an invalid position - disconnecting"));
+		AddDebugLogLineN(logClient, GetClientFullInfo() + wxT(" requested file-data at an invalid position - disconnecting"));
 	}
-	
-	// Error occured.	
+
+	// Error occured.
 	theApp->uploadqueue->RemoveFromUploadQueue(this);
 }
 
@@ -292,20 +292,20 @@ void CUpDownClient::CreateStandardPackets(const byte* buffer, uint32 togo, Reque
 	} else {
 		nPacketSize = togo;
 	}
-	
+
 	while (togo){
 		if (togo < nPacketSize*2) {
 			nPacketSize = togo;
 		}
-		
+
 		wxASSERT(nPacketSize);
 		togo -= nPacketSize;
-		
+
 		uint64 endpos = (currentblock->EndOffset - togo);
 		uint64 startpos = endpos - nPacketSize;
-		
+
 		bool bLargeBlocks = (startpos > 0xFFFFFFFF) || (endpos > 0xFFFFFFFF);
-		
+
 		CMemFile data(nPacketSize + 16 + 2 * (bLargeBlocks ? 8 :4));
 		data.WriteHash(GetUploadFileID());
 		if (bLargeBlocks) {
@@ -319,10 +319,10 @@ void CUpDownClient::CreateStandardPackets(const byte* buffer, uint32 togo, Reque
 		memfile.Read(tempbuf, nPacketSize);
 		data.Write(tempbuf, nPacketSize);
 		delete [] tempbuf;
-		CPacket* packet = new CPacket(data, (bLargeBlocks ? OP_EMULEPROT : OP_EDONKEYPROT), (bLargeBlocks ? (uint8)OP_SENDINGPART_I64 : (uint8)OP_SENDINGPART));	
+		CPacket* packet = new CPacket(data, (bLargeBlocks ? OP_EMULEPROT : OP_EDONKEYPROT), (bLargeBlocks ? (uint8)OP_SENDINGPART_I64 : (uint8)OP_SENDINGPART));
 		theStats::AddUpOverheadFileRequest(16 + 2 * (bLargeBlocks ? 8 :4));
 		theStats::AddUploadToSoft(GetClientSoft(), nPacketSize);
-		AddDebugLogLineN(logLocalClient, 
+		AddDebugLogLineN(logLocalClient,
 			CFormat(wxT("Local Client: %s to %s"))
 				% (bLargeBlocks ? wxT("OP_SENDINGPART_I64") : wxT("OP_SENDINGPART")) % GetFullIP() );
 		m_socket->SendPacket(packet,true,false, nPacketSize);
@@ -339,9 +339,9 @@ void CUpDownClient::CreatePackedPackets(const byte* buffer, uint32 togo, Request
 		CreateStandardPackets(buffer, togo, currentblock);
 		return;
 	}
-	
+
 	CMemFile memfile(output.get(), newsize);
-	
+
 	uint32 totalPayloadSize = 0;
 	uint32 oldSize = togo;
 	togo = newsize;
@@ -351,7 +351,7 @@ void CUpDownClient::CreatePackedPackets(const byte* buffer, uint32 togo, Request
 	} else {
 		nPacketSize = togo;
 	}
-		
+
 	while (togo) {
 		if (togo < nPacketSize*2) {
 			nPacketSize = togo;
@@ -359,7 +359,7 @@ void CUpDownClient::CreatePackedPackets(const byte* buffer, uint32 togo, Request
 		togo -= nPacketSize;
 
 		bool isLargeBlock = (currentblock->StartOffset > 0xFFFFFFFF) || (currentblock->EndOffset > 0xFFFFFFFF);
-		
+
 		CMemFile data(nPacketSize + 16 + (isLargeBlock ? 12 : 8));
 		data.WriteHash(GetUploadFileID());
 		if (isLargeBlock) {
@@ -367,29 +367,29 @@ void CUpDownClient::CreatePackedPackets(const byte* buffer, uint32 togo, Request
 		} else {
 			data.WriteUInt32(currentblock->StartOffset);
 		}
-		data.WriteUInt32(newsize);			
+		data.WriteUInt32(newsize);
 		char *tempbuf = new char[nPacketSize];
 		memfile.Read(tempbuf, nPacketSize);
 		data.Write(tempbuf,nPacketSize);
 		delete [] tempbuf;
 		CPacket* packet = new CPacket(data, OP_EMULEPROT, (isLargeBlock ? OP_COMPRESSEDPART_I64 : OP_COMPRESSEDPART));
-	
+
 		// approximate payload size
 		uint32 payloadSize = nPacketSize*oldSize/newsize;
 
 		if (togo == 0 && totalPayloadSize+payloadSize < oldSize) {
 			payloadSize = oldSize-totalPayloadSize;
 		}
-		
+
 		totalPayloadSize += payloadSize;
 
 		// put packet directly on socket
 		theStats::AddUpOverheadFileRequest(24);
 		theStats::AddUploadToSoft(GetClientSoft(), nPacketSize);
-		AddDebugLogLineN(logLocalClient, 
+		AddDebugLogLineN(logLocalClient,
 			CFormat(wxT("Local Client: %s to %s"))
 				% (isLargeBlock ? wxT("OP_COMPRESSEDPART_I64") : wxT("OP_COMPRESSEDPART")) % GetFullIP() );
-		m_socket->SendPacket(packet,true,false, payloadSize);			
+		m_socket->SendPacket(packet,true,false, payloadSize);
 	}
 }
 
@@ -397,20 +397,20 @@ void CUpDownClient::CreatePackedPackets(const byte* buffer, uint32 togo, Request
 void CUpDownClient::ProcessExtendedInfo(const CMemFile *data, CKnownFile *tempreqfile)
 {
 	m_uploadingfile->UpdateUpPartsFrequency( this, false ); // Decrement
-	m_upPartStatus.clear();		
+	m_upPartStatus.clear();
 	m_nUpCompleteSourcesCount= 0;
-	
+
 	if( GetExtendedRequestsVersion() == 0 ) {
 		// Something is coded wrong on this client if he's sending something it doesn't advertise.
 		return;
 	}
-	
+
 	if (data->GetLength() == 16) {
 		// Wrong again. Advertised >0 but send a 0-type packet.
 		// But this time we'll disconnect it.
 		throw CInvalidPacket(wxT("Wrong size on extended info packet"));
 	}
-	
+
 	uint16 nED2KUpPartCount = data->ReadUInt16();
 	if (!nED2KUpPartCount) {
 		m_upPartStatus.setsize( tempreqfile->GetPartCount(), 0 );
@@ -420,9 +420,9 @@ void CUpDownClient::ProcessExtendedInfo(const CMemFile *data, CKnownFile *tempre
 			m_upPartStatus.clear();
 			return;
 		}
-	
+
 		m_upPartStatus.setsize( tempreqfile->GetPartCount(), 0 );
-	
+
 		try {
 			uint16 done = 0;
 			while (done != m_upPartStatus.size()) {
@@ -441,7 +441,7 @@ void CUpDownClient::ProcessExtendedInfo(const CMemFile *data, CKnownFile *tempre
 		} catch (...) {
 			// We want the increment the frequency even if we didn't read everything
 			m_uploadingfile->UpdateUpPartsFrequency( this, true ); // Increment
-			
+
 			throw;
 		}
 
@@ -454,9 +454,9 @@ void CUpDownClient::ProcessExtendedInfo(const CMemFile *data, CKnownFile *tempre
 			}
 		}
 	}
-	
+
 	m_uploadingfile->UpdateUpPartsFrequency( this, true ); // Increment
-	
+
 	Notify_SharedCtrlRefreshClient(ECID(), AVAILABLE_SOURCE);
 }
 
@@ -469,19 +469,19 @@ void CUpDownClient::SetUploadFileID(CKnownFile* newreqfile)
 		m_uploadingfile->RemoveUploadingClient(this);
 		m_uploadingfile->UpdateUpPartsFrequency(this, false); // Decrement
 	}
-	
+
 	if (newreqfile) {
 		// This is a new file! update info
 		newreqfile->AddUploadingClient(this);
-		
+
 		if (m_requpfileid != newreqfile->GetFileHash()) {
 			m_requpfileid = newreqfile->GetFileHash();
 			m_upPartStatus.setsize( newreqfile->GetPartCount(), 0 );
 		} else {
 			// this is the same file we already had assigned. Only update data.
 			newreqfile->UpdateUpPartsFrequency(this, true); // Increment
- 		}
-		
+		}
+
 		m_uploadingfile = newreqfile;
 	} else {
 		m_upPartStatus.clear();
@@ -499,7 +499,7 @@ void CUpDownClient::AddReqBlock(Requested_Block_Struct* reqblock)
 		delete reqblock;
 		return;
 	}
-	
+
 	{
 		std::list<Requested_Block_Struct*>::iterator it = m_DoneBlocks_list.begin();
 		for (; it != m_DoneBlocks_list.end(); ++it) {
@@ -519,7 +519,7 @@ void CUpDownClient::AddReqBlock(Requested_Block_Struct* reqblock)
 			}
 		}
 	}
-	
+
 	m_BlockRequests_queue.push_back(reqblock);
 }
 
@@ -527,16 +527,16 @@ void CUpDownClient::AddReqBlock(Requested_Block_Struct* reqblock)
 uint32 CUpDownClient::GetWaitStartTime() const
 {
 	uint32 dwResult = 0;
-	
+
 	if ( credits ) {
 		dwResult = credits->GetSecureWaitStartTime(GetIP());
-		
+
 		if (dwResult > m_dwUploadTime && IsDownloading()) {
 			// This happens only if two clients with invalid securehash are in the queue - if at all
 			dwResult = m_dwUploadTime - 1;
 		}
 	}
-		
+
 	return dwResult;
 }
 
@@ -609,7 +609,7 @@ uint32 CUpDownClient::SendBlockData()
         // Store how much data we've transferred this round,
         // to be able to calculate average speed later
         // keep sum of all values in list up to date
-        TransferredData newitem = {sentBytesCompleteFile + sentBytesPartFile, curTick};
+        TransferredData newitem = {(uint32) (sentBytesCompleteFile + sentBytesPartFile), curTick};
         m_AvarageUDR_list.push_back(newitem);
         m_nSumForAvgUpDataRate += sentBytesCompleteFile + sentBytesPartFile;
     }
@@ -643,20 +643,20 @@ uint32 CUpDownClient::SendBlockData()
 void CUpDownClient::SendOutOfPartReqsAndAddToWaitingQueue()
 {
 	// Kry - this is actually taken from eMule, but makes a lot of sense ;)
-	
+
 	//OP_OUTOFPARTREQS will tell the downloading client to go back to OnQueue..
 	//The main reason for this is that if we put the client back on queue and it goes
 	//back to the upload before the socket times out... We get a situation where the
 	//downloader thinks it already sent the requested blocks and the uploader thinks
 	//the downloader didn't send any request blocks. Then the connection times out..
 	//I did some tests with eDonkey also and it seems to work well with them also..
-	
+
 	// Send this inmediately, don't queue.
 	CPacket* pPacket = new CPacket(OP_OUTOFPARTREQS, 0, OP_EDONKEYPROT);
 	theStats::AddUpOverheadFileRequest(pPacket->GetPacketSize());
 	AddDebugLogLineN( logLocalClient, wxT("Local Client: OP_OUTOFPARTREQS to ") + GetFullIP() );
 	SendPacket(pPacket, true, true);
-	
+
 	theApp->uploadqueue->AddClientToQueue(this);
 }
 
@@ -681,11 +681,11 @@ void CUpDownClient::SendHashsetPacket(const CMD4Hash& forfileid)
 		from_dq = true;
 		if ((file = theApp->downloadqueue->GetFileByID(forfileid)) == NULL) {
 			AddLogLineN(CFormat( _("Hashset requested for unknown file: %s") ) % forfileid.Encode() );
-		
+
 			return;
 		}
 	}
-	
+
 	if ( !file->GetHashCount() ) {
 		if (from_dq) {
 			AddDebugLogLineN(logRemoteClient, wxT("Requested hashset could not be found"));
@@ -697,7 +697,7 @@ void CUpDownClient::SendHashsetPacket(const CMD4Hash& forfileid)
 				return;
 			}
 		}
-	}	
+	}
 
 	CMemFile data(1024);
 	data.WriteHash(file->GetFileHash());
@@ -706,7 +706,7 @@ void CUpDownClient::SendHashsetPacket(const CMD4Hash& forfileid)
 	for (int i = 0; i != parts; i++) {
 		data.WriteHash(file->GetPartHash(i));
 	}
-	CPacket* packet = new CPacket(data, OP_EDONKEYPROT, OP_HASHSETANSWER);	
+	CPacket* packet = new CPacket(data, OP_EDONKEYPROT, OP_HASHSETANSWER);
 	theStats::AddUpOverheadFileRequest(packet->GetPacketSize());
 	AddDebugLogLineN(logLocalClient, wxT("Local Client: OP_HASHSETANSWER to ") + GetFullIP());
 	SendPacket(packet,true,true);
@@ -729,7 +729,7 @@ void CUpDownClient::SendRankingInfo(){
 	if (!nRank) {
 		return;
 	}
-		
+
 	CMemFile data;
 	data.WriteUInt16(nRank);
 	// Kry: what are these zero bytes for. are they really correct?
@@ -752,15 +752,15 @@ void CUpDownClient::SendCommentInfo(CKnownFile* file)
 	// Truncate to max len.
 	wxString desc = file->GetFileComment().Left(MAXFILECOMMENTLEN);
 	uint8 rating = file->GetFileRating();
-	
+
 	if ( file->GetFileRating() == 0 && desc.IsEmpty() ) {
 		return;
 	}
-	
+
 	CMemFile data(256);
 	data.WriteUInt8(rating);
 	data.WriteString(desc, GetUnicodeSupport(), 4 /* size it's uint32 */);
-	
+
 	CPacket* packet = new CPacket(data, OP_EMULEPROT, OP_FILEDESC);
 	theStats::AddUpOverheadOther(packet->GetPacketSize());
 	AddDebugLogLineN(logLocalClient, wxT("Local Client: OP_FILEDESC to ") + GetFullIP());
@@ -769,7 +769,7 @@ void CUpDownClient::SendCommentInfo(CKnownFile* file)
 
 void  CUpDownClient::UnBan(){
 	m_Aggressiveness = 0;
-	
+
 	theApp->clientlist->AddTrackClient(this);
 	theApp->clientlist->RemoveBannedClient( GetIP() );
 	SetUploadState(US_NONE);
@@ -779,11 +779,11 @@ void  CUpDownClient::UnBan(){
 void CUpDownClient::Ban(){
 	theApp->clientlist->AddTrackClient(this);
 	theApp->clientlist->AddBannedClient( GetIP() );
-	
+
 	AddDebugLogLineN(logClient, wxT("Client '") + GetUserName() + wxT("' seems to be an aggressive client and is banned from the uploadqueue"));
-	
+
 	SetUploadState(US_BANNED);
-	
+
 	Notify_SharedCtrlRefreshClient(ECID(), UNAVAILABLE_SOURCE);
 }
 
@@ -795,17 +795,17 @@ bool CUpDownClient::IsBanned() const
 void CUpDownClient::CheckForAggressive()
 {
 	uint32 cur_time = ::GetTickCount();
-	
+
 	// First call, initalize
 	if ( !m_LastFileRequest ) {
 		m_LastFileRequest = cur_time;
 		return;
 	}
-	
+
 	// Is this an aggressive request?
 	if ( ( cur_time - m_LastFileRequest ) < MIN_REQUESTTIME ) {
 		m_Aggressiveness += 3;
-		
+
 		// Is the client EVIL?
 		if ( m_Aggressiveness >= 10 && (!IsBanned() && m_nDownloadState != DS_DOWNLOADING )) {
 			AddDebugLogLineN(logClient, CFormat( wxT("Aggressive client banned (score: %d): %s -- %s -- %s") )
@@ -827,7 +827,7 @@ void CUpDownClient::CheckForAggressive()
 
 void CUpDownClient::SetUploadFileID(const CMD4Hash& new_id)
 {
-	// Update the uploading file found 
+	// Update the uploading file found
 	CKnownFile* uploadingfile = theApp->sharedfiles->GetFileByID(new_id);
 	if ( !uploadingfile ) {
 		// Can this really happen?
@@ -837,19 +837,19 @@ void CUpDownClient::SetUploadFileID(const CMD4Hash& new_id)
 }
 
 void CUpDownClient::ProcessRequestPartsPacket(const byte* pachPacket, uint32 nSize, bool largeblocks) {
-	
+
 	CMemFile data(pachPacket, nSize);
-	
+
 	CMD4Hash reqfilehash = data.ReadHash();
-	
+
 	uint64 auStartOffsets[3];
 	uint64 auEndOffsets[3];
-	
+
 	if (largeblocks) {
 		auStartOffsets[0] = data.ReadUInt64();
 		auStartOffsets[1] = data.ReadUInt64();
 		auStartOffsets[2] = data.ReadUInt64();
-		
+
 		auEndOffsets[0] = data.ReadUInt64();
 		auEndOffsets[1] = data.ReadUInt64();
 		auEndOffsets[2] = data.ReadUInt64();
@@ -857,16 +857,16 @@ void CUpDownClient::ProcessRequestPartsPacket(const byte* pachPacket, uint32 nSi
 		auStartOffsets[0] = data.ReadUInt32();
 		auStartOffsets[1] = data.ReadUInt32();
 		auStartOffsets[2] = data.ReadUInt32();
-		
+
 		auEndOffsets[0] = data.ReadUInt32();
 		auEndOffsets[1] = data.ReadUInt32();
-		auEndOffsets[2] = data.ReadUInt32();		
+		auEndOffsets[2] = data.ReadUInt32();
 	}
-	
+
 	for (unsigned int i = 0; i < itemsof(auStartOffsets); i++) {
 		AddDebugLogLineN(logClient,
 			CFormat(wxT("Client %s requests %d File block %d-%d (%d bytes):"))
-				% GetFullIP() % i % auStartOffsets[i] % auEndOffsets[i] 
+				% GetFullIP() % i % auStartOffsets[i] % auEndOffsets[i]
 				% (auEndOffsets[i] - auStartOffsets[i]));
 		if (auEndOffsets[i] > auStartOffsets[i]) {
 			Requested_Block_Struct* reqblock = new Requested_Block_Struct;
@@ -880,16 +880,16 @@ void CUpDownClient::ProcessRequestPartsPacket(const byte* pachPacket, uint32 nSi
 				AddDebugLogLineN(logClient, wxT("Client request is invalid!"));
 			}
 		}
-	}	
+	}
 }
 
 void CUpDownClient::ProcessRequestPartsPacketv2(const CMemFile& data) {
-	
+
 	CMD4Hash reqfilehash = data.ReadHash();
-	
+
 	uint8 numblocks = data.ReadUInt8();
-	
-	for (int i = 0; i < numblocks; i++) {		
+
+	for (int i = 0; i < numblocks; i++) {
 		Requested_Block_Struct* reqblock = new Requested_Block_Struct;
 		try {
 			reqblock->StartOffset = data.GetIntTagValue();
@@ -900,12 +900,12 @@ void CUpDownClient::ProcessRequestPartsPacketv2(const CMemFile& data) {
 					% GetFullIP() % reqblock->StartOffset % reqblock->EndOffset);
 				throw wxString(wxT("Client request is invalid!"));
 			}
-			
+
 			AddDebugLogLineN(logClient,
 				CFormat(wxT("Client %s requests %d File block %d-%d (%d bytes):"))
 					% GetFullIP() % i % reqblock->StartOffset % reqblock->EndOffset
 					% (reqblock->EndOffset - reqblock->StartOffset));
-			
+
 			md4cpy(reqblock->FileID, reqfilehash.GetHash());
 			reqblock->transferred = 0;
 			AddReqBlock(reqblock);
diff --git a/src/UploadQueue.cpp b/src/UploadQueue.cpp
index 7ccf979..ab022b4 100644
--- a/src/UploadQueue.cpp
+++ b/src/UploadQueue.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -34,7 +34,7 @@
 
 #include "Types.h"		// Do_not_auto_remove (win32)
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	#include <winsock.h>	// Do_not_auto_remove
 #else
 	#include <sys/types.h>	// Do_not_auto_remove
@@ -83,7 +83,7 @@ void CUploadQueue::SortGetBestClient(CClientRef * bestClient)
 		CUpDownClient* cur_client = it2->GetClient();
 
 		// clear dead clients
-		if (tick - cur_client->GetLastUpRequest() > MAX_PURGEQUEUETIME 
+		if (tick - cur_client->GetLastUpRequest() > MAX_PURGEQUEUETIME
 			|| !theApp->sharedfiles->GetFileByID(cur_client->GetUploadFileID())) {
 			cur_client->ClearWaitStartTime();
 			RemoveFromWaitingQueue(it2);
@@ -94,7 +94,7 @@ void CUploadQueue::SortGetBestClient(CClientRef * bestClient)
 				}
 			}
 			continue;
-		} 
+		}
 
 		if (cur_client->IsBanned() || IsSuspended(cur_client->GetUploadFileID())) { // Banned client or suspended upload ?
 			cur_client->ClearScore();
@@ -107,11 +107,11 @@ void CUploadQueue::SortGetBestClient(CClientRef * bestClient)
 		// Check if it's better than that of a previous one, and move it up then.
 		CClientRefList::iterator it1 = it2;
 		while (it1 != m_waitinglist.begin()) {
-			it1--;
+			--it1;
 			if (cur_score > it1->GetClient()->GetScore()) {
 				// swap them
 				std::swap(*it2, *it1);
-				it2--;
+				--it2;
 			} else {
 				// no need to check further since list is already sorted
 				break;
@@ -152,7 +152,7 @@ void CUploadQueue::SortGetBestClient(CClientRef * bestClient)
 
 #ifdef __DEBUG__
 	AddDebugLogLineN(logLocalClient, CFormat(wxT("Current UL queue (%d):")) % (rank - 1));
-	for (it = m_waitinglist.begin(); it != m_waitinglist.end(); it++) {
+	for (it = m_waitinglist.begin(); it != m_waitinglist.end(); ++it) {
 		CUpDownClient* c = it->GetClient();
 		AddDebugLogLineN(logLocalClient, CFormat(wxT("%4d %7d  %s %5d  %s"))
 			% c->GetUploadQueueWaitingPosition()
@@ -224,7 +224,7 @@ void CUploadQueue::AddUpNextClient(CUpDownClient* directadd)
 	theStats::AddUploadingClient();
 
 	// Statistic
-	CKnownFile* reqfile = (CKnownFile*) newclient->GetUploadFile();
+	CKnownFile* reqfile = const_cast<CKnownFile*>(newclient->GetUploadFile());
 	if (reqfile) {
 		reqfile->statistic.AddAccepted();
 	}
@@ -234,7 +234,7 @@ void CUploadQueue::AddUpNextClient(CUpDownClient* directadd)
 
 void CUploadQueue::Process()
 {
-	// Check if someone's waiting, if there is a slot for him, 
+	// Check if someone's waiting, if there is a slot for him,
 	// or if we should try to free a slot for him
 	uint32 tick = GetTickCount();
 	// Nobody waiting or upload started recently
@@ -266,7 +266,7 @@ void CUploadQueue::Process()
 	while (it != m_uploadinglist.end()) {
 		// Get the client. Note! Also updates pos as a side effect.
 		CUpDownClient* cur_client = it++->GetClient();
-		
+
 		// It seems chatting or friend slots can get stuck at times in upload.. This needs looked into..
 		if (!cur_client->GetSocket()) {
 			RemoveFromUploadQueue(cur_client);
@@ -329,7 +329,7 @@ CUploadQueue::~CUploadQueue()
 
 bool CUploadQueue::IsOnUploadQueue(const CUpDownClient* client) const
 {
-	for (CClientRefList::const_iterator it = m_waitinglist.begin(); it != m_waitinglist.end(); it++) {
+	for (CClientRefList::const_iterator it = m_waitinglist.begin(); it != m_waitinglist.end(); ++it) {
 		if (it->GetClient() == client) {
 			return true;
 		}
@@ -340,25 +340,25 @@ bool CUploadQueue::IsOnUploadQueue(const CUpDownClient* client) const
 
 bool CUploadQueue::IsDownloading(const CUpDownClient* client) const
 {
-	for (CClientRefList::const_iterator it = m_uploadinglist.begin(); it != m_uploadinglist.end(); it++) {
+	for (CClientRefList::const_iterator it = m_uploadinglist.begin(); it != m_uploadinglist.end(); ++it) {
 		if (it->GetClient() == client) {
 			return true;
 		}
 	}
 	return false;
-}	
+}
 
 
 CUpDownClient* CUploadQueue::GetWaitingClientByIP_UDP(uint32 dwIP, uint16 nUDPPort, bool bIgnorePortOnUniqueIP, bool* pbMultipleIPs)
 {
 	CUpDownClient* pMatchingIPClient = NULL;
-	
+
 	int cMatches = 0;
-	
+
 	CClientRefList::iterator it = m_waitinglist.begin();
 	for (; it != m_waitinglist.end(); ++it) {
 		CUpDownClient* cur_client = it->GetClient();
-		
+
 		if ((dwIP == cur_client->GetIP()) && (nUDPPort == cur_client->GetUDPPort())) {
 			return cur_client;
 		} else if ((dwIP == cur_client->GetIP()) && bIgnorePortOnUniqueIP) {
@@ -370,9 +370,9 @@ CUpDownClient* CUploadQueue::GetWaitingClientByIP_UDP(uint32 dwIP, uint16 nUDPPo
 	if (pbMultipleIPs) {
 		*pbMultipleIPs = cMatches > 1;
 	}
-	
+
 	if (pMatchingIPClient && cMatches == 1) {
-		return pMatchingIPClient;	
+		return pMatchingIPClient;
 	} else {
 		return NULL;
 	}
@@ -399,7 +399,7 @@ void CUploadQueue::AddClientToQueue(CUpDownClient* client)
 	CClientList::SourceList::iterator it = found.begin();
 	while (it != found.end()) {
 		CUpDownClient* cur_client = it++->GetClient();
-		
+
 		if ( IsOnUploadQueue( cur_client ) ) {
 			if ( cur_client == client ) {
 				// This is where LowID clients get their upload slot assigned.
@@ -408,8 +408,8 @@ void CUploadQueue::AddClientToQueue(CUpDownClient* client)
 				// through the connection they initiated.
 				// Since at that time no slot is free they get assigned an extra slot,
 				// so then the number of slots exceeds the configured number by one.
-				// To prevent a further increase no more LowID clients get a slot, until 
-				// - a HighID client has got one (which happens only after two clients 
+				// To prevent a further increase no more LowID clients get a slot, until
+				// - a HighID client has got one (which happens only after two clients
 				//   have been kicked so a slot is free again)
 				// - or there is a free slot, which means there is no HighID client on queue
 				if (client->m_bAddNextConnect) {
@@ -431,7 +431,7 @@ void CUploadQueue::AddClientToQueue(CUpDownClient* client)
 				return;
 			} else {
 				// Hash-clash, remove unidentified clients (possibly both)
-				
+
 				if ( !cur_client->IsIdentified() ) {
 					// Cur_client isn't identifed, remove it
 					theApp->clientlist->AddTrackClient( cur_client );
@@ -464,7 +464,7 @@ void CUploadQueue::AddClientToQueue(CUpDownClient* client)
 	found = theApp->clientlist->GetClientsByIP( client->GetIP() );
 
 	int ipCount = 0;
-	for ( it = found.begin(); it != found.end(); it++ ) {
+	for ( it = found.begin(); it != found.end(); ++it ) {
 		if ( ( it->GetClient() == client ) || IsOnUploadQueue( it->GetClient() ) ) {
 			ipCount++;
 		}
@@ -478,7 +478,7 @@ void CUploadQueue::AddClientToQueue(CUpDownClient* client)
 	}
 
 	// statistic values
-	CKnownFile* reqfile = (CKnownFile*) client->GetUploadFile();
+	CKnownFile* reqfile = const_cast<CKnownFile*>(client->GetUploadFile());
 	if (reqfile) {
 		reqfile->statistic.AddRequest();
 	}
@@ -500,7 +500,7 @@ void CUploadQueue::AddClientToQueue(CUpDownClient* client)
 	uint32 tick = GetTickCount();
 	client->ClearWaitStartTime();
 	// if possible start upload right away
-	if (m_waitinglist.empty() && tick - m_nLastStartUpload >= 1000 
+	if (m_waitinglist.empty() && tick - m_nLastStartUpload >= 1000
 		&& m_uploadinglist.size() < GetMaxSlots()
 		 && !theApp->listensocket->TooManySockets()) {
 		AddUpNextClient(client);
@@ -523,10 +523,10 @@ bool CUploadQueue::RemoveFromUploadQueue(CUpDownClient* client)
 {
 	// Keep track of this client
 	theApp->clientlist->AddTrackClient(client);
-	
+
 	CClientRefList::iterator it = std::find(m_uploadinglist.begin(),
 		m_uploadinglist.end(), CCLIENTREF(client, wxEmptyString));
-	
+
 	if (it != m_uploadinglist.end()) {
 		m_uploadinglist.erase(it);
 		m_allUploadingKnownFile->RemoveUploadingClient(client);
@@ -577,12 +577,12 @@ bool CUploadQueue::CheckForTimeOver(CUpDownClient* client)
 	// "Transfer full chunks": drop client after 10 MB upload, or after an hour.
 	// (so average UL speed should at least be 2.84 kB/s)
 	// We don't track what he is downloading, but if it's all from one chunk he gets it.
-	if (client->GetUpStartTimeDelay() > 3600000 	// time: 1h
+	if (client->GetUpStartTimeDelay() > 3600000	// time: 1h
 		|| client->GetSessionUp() > 10485760) {		// data: 10MB
 		m_allowKicking = false;		// kick max one client per cycle
 		return true;
 	}
-	
+
 	return false;
 }
 
@@ -654,7 +654,7 @@ bool CUploadQueue::RemoveFromWaitingQueue(CUpDownClient* client)
 			// update ranks of remaining queue
 			while (it != m_waitinglist.end()) {
 				it->GetClient()->SetUploadQueueWaitingPosition(rank++);
-				it++;
+				++it;
 			}
 			return true;
 		}
@@ -705,7 +705,7 @@ int CUploadQueue::PopulatePossiblyWaitingList()
 		if (sources.empty()) {
 			continue;
 		}
-		// Make a table which parts are available. No need to notify a client 
+		// Make a table which parts are available. No need to notify a client
 		// which needs nothing we have.
 		uint16 parts = download->GetPartCount();
 		std::vector<bool> partsAvailable;
diff --git a/src/UploadQueue.h b/src/UploadQueue.h
index e712036..9dd3bc9 100644
--- a/src/UploadQueue.h
+++ b/src/UploadQueue.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -57,10 +57,10 @@ public:
 	bool	IsDownloading(const CUpDownClient* client) const;
 	bool	CheckForTimeOver(CUpDownClient* client);
 	void	ResortQueue() { SortGetBestClient(); }
-	
+
 	const CClientRefList& GetWaitingList() const { return m_waitinglist; }
 	const CClientRefList& GetUploadingList() const { return m_uploadinglist; }
-	
+
 	CUpDownClient* GetWaitingClientByIP_UDP(uint32 dwIP, uint16 nUDPPort, bool bIgnorePortOnUniqueIP, bool* pbMultipleIPs = NULL);
 
 	uint16	SuspendUpload(const CMD4Hash &, bool terminate);
diff --git a/src/UserEvents.cpp b/src/UserEvents.cpp
index 70ddd8f..d97e491 100644
--- a/src/UserEvents.cpp
+++ b/src/UserEvents.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -55,13 +55,13 @@ static struct {
 #ifdef __WXDEBUG__
 inline bool CheckIndex(const unsigned int idx)
 {
-	return (idx < sizeof(s_EventList) / sizeof(s_EventList[0]));
+	return (idx < itemsof(s_EventList));
 }
 #endif
 
 unsigned int CUserEvents::GetCount()
 {
-	return sizeof(s_EventList) / sizeof(s_EventList[0]);
+	return itemsof(s_EventList);
 }
 
 const wxString& CUserEvents::GetDisplayName(enum EventType event)
diff --git a/src/UserEvents.h b/src/UserEvents.h
index a654dec..541a071 100644
--- a/src/UserEvents.h
+++ b/src/UserEvents.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -29,7 +29,7 @@
 
 
 #ifdef _MSC_VER
-	#define ATTR(x) 
+	#define ATTR(x)
 #else
 	#define ATTR(x) __attribute__((x))
 #endif
@@ -61,47 +61,41 @@ const int USEREVENTS_FIRST_ID	=	11500;	/* Some safe GUI ID to start from */
 		USEREVENTS_REPLACE_VAR( \
 			wxT("FILE"), \
 			wxTRANSLATE("The full path to the file."), \
-			((CPartFile*)object)->GetFullName().GetRaw() ) \
+			static_cast<const CPartFile*>(object)->GetFullName().GetRaw() ) \
 		USEREVENTS_REPLACE_VAR( \
 			wxT("NAME"), \
 			wxTRANSLATE("The name of the file without path component."), \
-			((CPartFile*)object)->GetFileName().GetRaw() ) \
+			static_cast<const CPartFile*>(object)->GetFileName().GetRaw() ) \
 		USEREVENTS_REPLACE_VAR( \
 			wxT("HASH"), \
 			wxTRANSLATE("The eD2k hash of the file."), \
-			((CPartFile*)object)->GetFileHash().Encode() ) \
+			static_cast<const CPartFile*>(object)->GetFileHash().Encode() ) \
 		USEREVENTS_REPLACE_VAR( \
 			wxT("SIZE"), \
 			wxTRANSLATE("The size of the file in bytes."), \
-			(wxString)(CFormat(wxT("%llu")) % ((CPartFile*)object)->GetFileSize()) ) \
+			(CFormat(wxT("%llu")) % static_cast<const CPartFile*>(object)->GetFileSize()).GetString() ) \
 		USEREVENTS_REPLACE_VAR( \
 			wxT("DLACTIVETIME"), \
 			wxTRANSLATE("Cumulative download activity time."), \
-			CastSecondsToHM(((CPartFile*)object)->GetDlActiveTime()) ) \
+			CastSecondsToHM(static_cast<const CPartFile*>(object)->GetDlActiveTime()) ) \
 	) \
-	USEREVENTS_EVENT( \
-		NewChatSession, \
-		wxTRANSLATE("New chat session started"), \
+	USEREVENTS_EVENT(NewChatSession, wxTRANSLATE("New chat session started"), \
 		USEREVENTS_REPLACE_VAR( \
 			wxT("SENDER"), \
 			wxTRANSLATE("Message sender."), \
-			*((wxString*)object) ) \
+			*static_cast<const wxString*>(object) ) \
 	) \
-	USEREVENTS_EVENT( \
-		OutOfDiskSpace, \
-		wxTRANSLATE("Out of space"), \
+	USEREVENTS_EVENT(OutOfDiskSpace, wxTRANSLATE("Out of space"), \
 		USEREVENTS_REPLACE_VAR( \
 			wxT("PARTITION"), \
 			wxTRANSLATE("Disk partition."), \
-			wxString((wxChar*)object) ) \
+			wxString(static_cast<const wxChar*>(object)) ) \
 	) \
-	USEREVENTS_EVENT( \
-		ErrorOnCompletion, \
-		wxTRANSLATE("Error on completion"), \
+	USEREVENTS_EVENT(ErrorOnCompletion, wxTRANSLATE("Error on completion"), \
 		USEREVENTS_REPLACE_VAR( \
 			wxT("FILE"), \
 			wxTRANSLATE("The full path to the file."), \
-			((CPartFile*)object)->GetFullName().GetRaw() ) \
+			static_cast<const CPartFile*>(object)->GetFullName().GetRaw() ) \
 	)
 
 
diff --git a/src/amule-gui.cpp b/src/amule-gui.cpp
index 43eee23..a0ec915 100644
--- a/src/amule-gui.cpp
+++ b/src/amule-gui.cpp
@@ -267,13 +267,13 @@ int CamuleGuiApp::ShowAlert(wxString msg, wxString title, int flags)
 int CamuleGuiApp::OnExit()
 {
 	delete core_timer;
-	
-	return CamuleApp::OnExit();	
+
+	return CamuleApp::OnExit();
 }
 
 
 void CamuleGuiApp::ShutDown(wxCloseEvent &WXUNUSED(evt))
-{		
+{
 	amuledlg->DlgShutDown();
 	amuledlg->Destroy();
 	CamuleApp::ShutDown();
diff --git a/src/amule-remote-gui.cpp b/src/amule-remote-gui.cpp
index 37e156f..c9fe2fb 100644
--- a/src/amule-remote-gui.cpp
+++ b/src/amule-remote-gui.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -71,16 +71,16 @@ CEConnectDlg::CEConnectDlg()
 wxDialog(theApp->amuledlg, -1, _("Connect to remote amule"), wxDefaultPosition)
 {
 	CoreConnect(this, true);
-	
+
 	wxString pref_host, pref_port;
 	wxConfig::Get()->Read(wxT("/EC/Host"), &pref_host, wxT("localhost"));
 	wxConfig::Get()->Read(wxT("/EC/Port"), &pref_port, wxT("4712"));
 	wxConfig::Get()->Read(wxT("/EC/Password"), &pwd_hash);
-	
+
 	CastChild(ID_REMOTE_HOST, wxTextCtrl)->SetValue(pref_host);
 	CastChild(ID_REMOTE_PORT, wxTextCtrl)->SetValue(pref_port);
 	CastChild(ID_EC_PASSWD, wxTextCtrl)->SetValue(pwd_hash);
-	
+
 	CentreOnParent();
 }
 
@@ -100,7 +100,7 @@ void CEConnectDlg::OnOK(wxCommandEvent& evt)
 {
 	wxString s_port = CastChild(ID_REMOTE_PORT, wxTextCtrl)->GetValue();
 	port = StrToLong(s_port);
-	
+
 	host = CastChild(ID_REMOTE_HOST, wxTextCtrl)->GetValue();
 	passwd = CastChild(ID_EC_PASSWD, wxTextCtrl)->GetValue();
 
@@ -121,7 +121,7 @@ BEGIN_EVENT_TABLE(CamuleRemoteGuiApp, wxApp)
 
 	EVT_CUSTOM(wxEVT_EC_CONNECTION, -1, CamuleRemoteGuiApp::OnECConnection)
 	EVT_CUSTOM(wxEVT_EC_INIT_DONE, -1, CamuleRemoteGuiApp::OnECInitDone)
-	
+
 	EVT_MULE_NOTIFY(CamuleRemoteGuiApp::OnNotifyEvent)
 
 #ifdef ENABLE_IP2COUNTRY
@@ -137,7 +137,7 @@ IMPLEMENT_APP(CamuleRemoteGuiApp)
 int CamuleRemoteGuiApp::OnExit()
 {
 	StopTickTimer();
-	
+
 	return wxApp::OnExit();
 }
 
@@ -146,11 +146,11 @@ void CamuleRemoteGuiApp::OnPollTimer(wxTimerEvent&)
 {
 	static int request_step = 0;
 	static uint32 msPrevStats = 0;
-	
+
 	if (m_connect->RequestFifoFull()) {
 		return;
 	}
-	
+
 	switch (request_step) {
 	case 0:
 		// We used to update the connection state here, but that's done with the stats in the next step now.
@@ -216,6 +216,10 @@ void CamuleRemoteGuiApp::ShutDown(wxCloseEvent &WXUNUSED(evt))
 	delete poll_timer;
 	poll_timer = NULL;
 
+	m_AsioService->Stop();
+	delete m_AsioService;
+	m_AsioService = NULL;
+
 	// Destroy the EC socket
 	m_connect->Destroy();
 	m_connect = NULL;
@@ -235,7 +239,7 @@ bool CamuleRemoteGuiApp::OnInit()
 {
 	StartTickTimer();
 	amuledlg = NULL;
-	
+
 	// Get theApp
 	theApp = &wxGetApp();
 
@@ -255,12 +259,14 @@ bool CamuleRemoteGuiApp::OnInit()
 	}
 
 	m_connect = new CRemoteConnect(this);
-	
+
+	m_AsioService = new CAsioService;
+
 	glob_prefs = new CPreferencesRem(m_connect);
 	long enableZLIB;
 	wxConfig::Get()->Read(wxT("/EC/ZLIB"), &enableZLIB, 1);
 	m_connect->SetCapabilities(enableZLIB != 0, true, false);	// ZLIB, UTF8 numbers, notification
-	
+
 	InitCustomLanguages();
 	InitLocale(m_locale, StrLang2wx(thePrefs::GetLanguageID()));
 
@@ -268,7 +274,7 @@ bool CamuleRemoteGuiApp::OnInit()
 		AddLogLineNS(_("Going to event loop..."));
 		return true;
 	}
-	
+
 	return false;
 }
 
@@ -288,7 +294,7 @@ bool CamuleRemoteGuiApp::ShowConnectionDialog()
 		dialog->OnOK(evt);
 	} else if (dialog->ShowModal() != wxID_OK) {
 		dialog->Destroy();
-		
+
 		return false;
 	}
 	AddLogLineNS(_("Connecting..."));
@@ -296,11 +302,11 @@ bool CamuleRemoteGuiApp::ShowConnectionDialog()
 		dialog->Login(), dialog->PassHash(),
 		wxT("amule-remote"), wxT("0x0001"))) {
 		wxMessageBox(_("Connection failed "),_("ERROR"),wxOK);
-		
+
 		return false;
 	}
 
-	return true;	
+	return true;
 }
 
 
@@ -321,6 +327,8 @@ void CamuleRemoteGuiApp::OnECConnection(wxEvent& event) {
 		} else {		// server disconnected (probably terminated) later
 			wxMessageBox(_("Connection closed - aMule has terminated probably."), _("ERROR"), wxOK);
 		}
+		wxCloseEvent ev;
+		ShutDown(ev);
 		ExitMainLoop();
 	}
 }
@@ -339,7 +347,7 @@ void CamuleRemoteGuiApp::OnNotifyEvent(CMuleGUIEvent& evt)
 
 
 void CamuleRemoteGuiApp::Startup() {
-	
+
 	if (dialog->SaveUserPass()) {
 		wxConfig::Get()->Write(wxT("/EC/Host"), dialog->Host());
 		wxConfig::Get()->Write(wxT("/EC/Port"), dialog->Port());
@@ -347,20 +355,20 @@ void CamuleRemoteGuiApp::Startup() {
 	}
 	dialog->Destroy();
 	dialog = NULL;
-	
+
 	m_ConnState = 0;
 	m_clientID  = 0;
 
 	serverconnect = new CServerConnectRem(m_connect);
 	m_statistics = new CStatistics(*m_connect);
 	stattree = new CStatTreeRem(m_connect);
-	
+
 	clientlist = new CUpDownClientListRem(m_connect);
 	searchlist = new CSearchListRem(m_connect);
 	serverlist = new CServerListRem(m_connect);
 	friendlist = new CFriendListRem(m_connect);
 
-	
+
 	sharedfiles	= new CSharedFilesRem(m_connect);
 	knownfiles = new CKnownFilesRem(m_connect);
 
@@ -377,10 +385,10 @@ void CamuleRemoteGuiApp::Startup() {
 	knownfiles->DoRequery(EC_OP_GET_UPDATE, EC_TAG_KNOWNFILE);
 
 	// Start the Poll Timer
-	poll_timer->Start(1000);	
+	poll_timer->Start(1000);
 	amuledlg->StartGuiTimer();
 
-	// Now activate GeoIP, so that the download dialog doesn't get destroyed immediately 
+	// Now activate GeoIP, so that the download dialog doesn't get destroyed immediately
 #ifdef ENABLE_IP2COUNTRY
 	if (thePrefs::IsGeoIPEnabled()) {
 		amuledlg->m_IP2Country->Enable();
@@ -479,7 +487,7 @@ void CamuleRemoteGuiApp::BootstrapKad(uint32 ip, uint16 port)
 	CECPacket req(EC_OP_KAD_BOOTSTRAP_FROM_IP);
 	req.AddTag(CECTag(EC_TAG_BOOTSTRAP_IP, ip));
 	req.AddTag(CECTag(EC_TAG_BOOTSTRAP_PORT, port));
-	
+
 	m_connect->SendPacket(&req);
 }
 
@@ -488,7 +496,7 @@ void CamuleRemoteGuiApp::UpdateNotesDat(const wxString& url)
 {
 	CECPacket req(EC_OP_KAD_UPDATE_FROM_URL);
 	req.AddTag(CECTag(EC_TAG_KADEMLIA_UPDATE_URL, url));
-	
+
 	m_connect->SendPacket(&req);
 }
 
@@ -514,10 +522,10 @@ uint32 CamuleRemoteGuiApp::GetID() const
 
 void CamuleRemoteGuiApp::ShowUserCount() {
 	wxString buffer;
-	
+
 	static const wxString s_singlenetstatusformat = _("Users: %s | Files: %s");
 	static const wxString s_bothnetstatusformat = _("Users: E: %s K: %s | Files: E: %s K: %s");
-	
+
 	if (thePrefs::GetNetworkED2K() && thePrefs::GetNetworkKademlia()) {
 		buffer = CFormat(s_bothnetstatusformat) % CastItoIShort(theStats::GetED2KUsers()) % CastItoIShort(theStats::GetKadUsers()) % CastItoIShort(theStats::GetED2KFiles()) % CastItoIShort(theStats::GetKadFiles());
 	} else if (thePrefs::GetNetworkED2K()) {
@@ -534,7 +542,7 @@ void CamuleRemoteGuiApp::ShowUserCount() {
 
 /*
  * Preferences: holds both local and remote settings.
- * 
+ *
  * First, everything is loaded from local config file. Later, settings
  * that are relevant on remote side only are loaded thru EC
  */
@@ -566,11 +574,11 @@ CPreferencesRem::CPreferencesRem(CRemoteConnect *conn)
 
 void CPreferencesRem::HandlePacket(const CECPacket *packet)
 {
-	((CEC_Prefs_Packet *)packet)->Apply();
+	static_cast<const CEC_Prefs_Packet *>(packet)->Apply();
 
 	const CECTag *cat_tags = packet->GetTagByName(EC_TAG_PREFS_CATEGORIES);
 	if (cat_tags) {
-		for (CECTag::const_iterator it = cat_tags->begin(); it != cat_tags->end(); it++) {
+		for (CECTag::const_iterator it = cat_tags->begin(); it != cat_tags->end(); ++it) {
 			const CECTag &cat_tag = *it;
 			Category_Struct *cat = new Category_Struct;
 			cat->title = cat_tag.GetTagByName(EC_TAG_CATEGORY_TITLE)->GetStringData();
@@ -589,7 +597,7 @@ void CPreferencesRem::HandlePacket(const CECPacket *packet)
 	}
 	wxECInitDoneEvent event;
 	theApp->AddPendingEvent(event);
-	
+
 }
 
 
@@ -601,9 +609,9 @@ bool CPreferencesRem::LoadRemote()
 
 	// bring categories too
 	req.AddTag(CECTag(EC_TAG_SELECT_PREFS, m_exchange_recv_selected_prefs));
-	
+
 	m_conn->SendRequest(this, &req);
-	
+
 	return true;
 }
 
@@ -629,7 +637,7 @@ void CCatHandler::HandlePacket(const CECPacket *packet)
 			int cat = catTag->GetInt();
 			Category_Struct* cs = theApp->glob_prefs->GetCategory(cat);
 			wxMessageBox(CFormat(_("Can't create directory '%s' for category '%s', keeping directory '%s'."))
-				% cs->path.GetPrintable() % cs->title % pathTag->GetStringData(), 
+				% cs->path.GetPrintable() % cs->title % pathTag->GetStringData(),
 				_("ERROR"), wxOK);
 			cs->path = CPath(pathTag->GetStringData());
 			theApp->amuledlg->m_transferwnd->UpdateCategory(cat);
@@ -659,9 +667,9 @@ bool CPreferencesRem::CreateCategory(
 	category->comment	= comment;
 	category->color		= color;
 	category->prio		= prio;
-			
+
 	AddCat(category);
-	
+
 	return true;
 }
 
@@ -738,19 +746,18 @@ void CServerConnectRem::ConnectToServer(CServer *server)
 
 void CServerConnectRem::HandlePacket(const CECPacket *packet)
 {
-	CEC_ConnState_Tag *tag =
-		(CEC_ConnState_Tag *)packet->GetTagByName(EC_TAG_CONNSTATE);
+	const CEC_ConnState_Tag *tag = static_cast<const CEC_ConnState_Tag *>(packet->GetTagByName(EC_TAG_CONNSTATE));
 	if (!tag) {
 		return;
 	}
-	
+
 	theApp->m_ConnState = 0;
 	CServer *server;
 	m_ID = tag->GetEd2kId();
 	theApp->m_clientID = tag->GetClientId();
-	
+
 	if (tag->IsConnectedED2K()) {
-		CECTag *srvtag = tag->GetTagByName(EC_TAG_SERVER);
+		const CECTag *srvtag = tag->GetTagByName(EC_TAG_SERVER);
 		if (srvtag) {
 			server = theApp->serverlist->GetByID(srvtag->GetInt());
 			if (server != m_CurrServer) {
@@ -775,7 +782,7 @@ void CServerConnectRem::HandlePacket(const CECPacket *packet)
 			theApp->m_ConnState |= CONNECTED_KAD_NOT;
 		}
 	}
-	
+
 	theApp->amuledlg->ShowConnectionState();
 }
 
@@ -802,7 +809,7 @@ void CServerListRem::UpdateServerMetFromURL(wxString url)
 {
 	CECPacket req(EC_OP_SERVER_UPDATE_FROM_URL);
 	req.AddTag(CECTag(EC_TAG_SERVERS_UPDATE_URL, url));
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -816,7 +823,7 @@ void CServerListRem::SetStaticServer(CServer* server, bool isStatic)
 	CECPacket req(EC_OP_SERVER_SET_STATIC_PRIO);
 	req.AddTag(CECTag(EC_TAG_SERVER, server->ECID()));
 	req.AddTag(CECTag(EC_TAG_SERVER_STATIC, isStatic));
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -830,7 +837,7 @@ void CServerListRem::SetServerPrio(CServer* server, uint32 prio)
 	CECPacket req(EC_OP_SERVER_SET_STATIC_PRIO);
 	req.AddTag(CECTag(EC_TAG_SERVER, server->ECID()));
 	req.AddTag(CECTag(EC_TAG_SERVER_PRIO, prio));
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -862,7 +869,7 @@ CServer *CServerListRem::GetServerByIPTCP(uint32 WXUNUSED(nIP), uint16 WXUNUSED(
 	return 0;
 }
 
-CServer *CServerListRem::CreateItem(CEC_Server_Tag *tag)
+CServer *CServerListRem::CreateItem(const CEC_Server_Tag *tag)
 {
 	CServer * server = new CServer(tag);
 	ProcessItemUpdate(tag, server);
@@ -883,7 +890,7 @@ uint32 CServerListRem::GetItemID(CServer *server)
 }
 
 
-void CServerListRem::ProcessItemUpdate(CEC_Server_Tag * tag, CServer * server)
+void CServerListRem::ProcessItemUpdate(const CEC_Server_Tag * tag, CServer * server)
 {
 	if (!tag->HasChildTags()) {
 		return;
@@ -892,25 +899,25 @@ void CServerListRem::ProcessItemUpdate(CEC_Server_Tag * tag, CServer * server)
 	tag->ServerDesc(& server->description);
 	tag->ServerVersion(& server->m_strVersion);
 	tag->GetMaxUsers(& server->maxusers);
-	
+
 	tag->GetFiles(& server->files);
 	tag->GetUsers(& server->users);
-   
+
 	tag->GetPrio(& server->preferences); // SRV_PR_NORMAL = 0, so it's ok
     tag->GetStatic(& server->staticservermember);
 
 	tag->GetPing(& server->ping);
-	tag->GetFailed(& server->failedcount);	
+	tag->GetFailed(& server->failedcount);
 
 	theApp->amuledlg->m_serverwnd->serverlistctrl->RefreshServer(server);
 }
 
 
-CServer::CServer(CEC_Server_Tag *tag) : CECID(tag->GetInt())
+CServer::CServer(const CEC_Server_Tag *tag) : CECID(tag->GetInt())
 {
 	ip = tag->GetTagByNameSafe(EC_TAG_SERVER_IP)->GetInt();
 	port = tag->GetTagByNameSafe(EC_TAG_SERVER_PORT)->GetInt();
-	
+
 	Init();
 }
 
@@ -935,7 +942,7 @@ void CIPFilterRem::Update(wxString url)
 {
 	CECPacket req(EC_OP_IPFILTER_UPDATE);
 	req.AddTag(CECTag(EC_TAG_STRING, url));
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -952,7 +959,7 @@ CSharedFilesRem::CSharedFilesRem(CRemoteConnect *conn)
 void CSharedFilesRem::Reload(bool, bool)
 {
 	CECPacket req(EC_OP_SHAREDFILES_RELOAD);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -968,7 +975,7 @@ bool CSharedFilesRem::RenameFile(CKnownFile* file, const CPath& newName)
 	request.AddTag(CECTag(EC_TAG_PARTFILE_NAME, strNewName));
 
 	m_conn->SendPacket(&request);
-	
+
 	return true;
 }
 
@@ -987,7 +994,7 @@ void CSharedFilesRem::SetFileCommentRating(CKnownFile* file, const wxString& new
 void CSharedFilesRem::CopyFileList(std::vector<CKnownFile*>& out_list) const
 {
 	out_list.reserve(size());
-	for (const_iterator it = begin(); it != end(); it++) {
+	for (const_iterator it = begin(); it != end(); ++it) {
 		out_list.push_back(it->second);
 	}
 }
@@ -1001,7 +1008,7 @@ void CKnownFilesRem::DeleteItem(CKnownFile * file)
 		theApp->sharedfiles->erase(id);
 	}
 	if (theApp->downloadqueue->count(id)) {
-		theApp->amuledlg->m_transferwnd->downloadlistctrl->RemoveFile((CPartFile *) file);
+		theApp->amuledlg->m_transferwnd->downloadlistctrl->RemoveFile(static_cast<CPartFile *>(file));
 		theApp->downloadqueue->erase(id);
 	}
 	delete file;
@@ -1014,9 +1021,9 @@ uint32 CKnownFilesRem::GetItemID(CKnownFile *file)
 }
 
 
-void CKnownFilesRem::ProcessItemUpdate(CEC_SharedFile_Tag *tag, CKnownFile *file)
+void CKnownFilesRem::ProcessItemUpdate(const CEC_SharedFile_Tag *tag, CKnownFile *file)
 {
-	CECTag *parttag = tag->GetTagByName(EC_TAG_PARTFILE_PART_STATUS);
+	const CECTag *parttag = tag->GetTagByName(EC_TAG_PARTFILE_PART_STATUS);
 	if (parttag) {
 		const uint8 *data =	file->m_partStatus.Decode(
 				(uint8 *)parttag->GetTagData(),
@@ -1034,6 +1041,7 @@ void CKnownFilesRem::ProcessItemUpdate(CEC_SharedFile_Tag *tag, CKnownFile *file
 	}
 	tag->UpPrio(&file->m_iUpPriorityEC);
 	tag->GetAICHHash(file->m_AICHMasterHash);
+	// Bad thing - direct writing another class' members
 	tag->GetRequests(&file->statistic.requested);
 	tag->GetAllRequests(&file->statistic.alltimerequested);
 	tag->GetAccepts(&file->statistic.accepted);
@@ -1060,25 +1068,25 @@ void CKnownFilesRem::ProcessItemUpdate(CEC_SharedFile_Tag *tag, CKnownFile *file
 	requested += file->statistic.requested;
 	transferred += file->statistic.transferred;
 	accepted += file->statistic.transferred;
-	
+
 	if (!m_initialUpdate) {
 		theApp->amuledlg->m_sharedfileswnd->sharedfilesctrl->UpdateItem(file);
 	}
 
 	if (file->IsPartFile()) {
-		ProcessItemUpdatePartfile((CEC_PartFile_Tag *) tag, (CPartFile *) file);
+		ProcessItemUpdatePartfile(static_cast<const CEC_PartFile_Tag *>(tag), static_cast<CPartFile *>(file));
 	}
 }
 
 void CSharedFilesRem::SetFilePrio(CKnownFile *file, uint8 prio)
 {
 	CECPacket req(EC_OP_SHARED_SET_PRIO);
-	
+
 	CECTag hashtag(EC_TAG_PARTFILE, file->GetFileHash());
 	hashtag.AddTag(CECTag(EC_TAG_PARTFILE_PRIO, prio));
-	
+
 	req.AddTag(hashtag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1089,7 +1097,7 @@ void CKnownFilesRem::ProcessUpdate(const CECTag *reply, CECPacket *, int)
 	accepted = 0;
 
 	std::set<uint32> core_files;
-	for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); it++) {
+	for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); ++it) {
 		const CECTag * curTag = &*it;
 		ec_tagname_t tagname = curTag->GetTagName();
 		if (tagname == EC_TAG_CLIENT) {
@@ -1099,7 +1107,7 @@ void CKnownFilesRem::ProcessUpdate(const CECTag *reply, CECPacket *, int)
 		} else if (tagname == EC_TAG_FRIEND) {
 			theApp->friendlist->ProcessUpdate(curTag, NULL, EC_TAG_FRIEND);
 		} else if (tagname == EC_TAG_KNOWNFILE || tagname == EC_TAG_PARTFILE) {
-			CEC_SharedFile_Tag *tag = (CEC_SharedFile_Tag *) curTag;
+			const CEC_SharedFile_Tag *tag = static_cast<const CEC_SharedFile_Tag *>(curTag);
 			uint32 id = tag->ID();
 			bool isNew = true;
 			if (!m_initialUpdate) {
@@ -1116,7 +1124,7 @@ void CKnownFilesRem::ProcessUpdate(const CECTag *reply, CECPacket *, int)
 			if (isNew) {
 				CKnownFile * newFile;
 				if (tag->GetTagName() == EC_TAG_PARTFILE) {
-					CPartFile *file = new CPartFile((CEC_PartFile_Tag *) tag);
+					CPartFile *file = new CPartFile(static_cast<const CEC_PartFile_Tag *>(tag));
 					ProcessItemUpdate(tag, file);
 					(*theApp->downloadqueue)[id] = file;
 					theApp->amuledlg->m_transferwnd->downloadlistctrl->AddFile(file);
@@ -1167,7 +1175,7 @@ CRemoteContainer<CClientRef, uint32, CEC_UpDownClient_Tag>(conn, true)
 }
 
 
-CClientRef::CClientRef(CEC_UpDownClient_Tag *tag)
+CClientRef::CClientRef(const CEC_UpDownClient_Tag *tag)
 {
 	m_client = new CUpDownClient(tag);
 #ifdef DEBUG_ZOMBIE_CLIENTS
@@ -1178,7 +1186,7 @@ CClientRef::CClientRef(CEC_UpDownClient_Tag *tag)
 }
 
 
-CUpDownClient::CUpDownClient(CEC_UpDownClient_Tag *tag) : CECID(tag->ID())
+CUpDownClient::CUpDownClient(const CEC_UpDownClient_Tag *tag) : CECID(tag->ID())
 {
 	m_linked = 0;
 #ifdef DEBUG_ZOMBIE_CLIENTS
@@ -1249,13 +1257,13 @@ void CUpDownClient::Unlink()
 #endif
 
 
-uint64 CUpDownClient::GetDownloadedTotal() const 
+uint64 CUpDownClient::GetDownloadedTotal() const
 {
 	return credits->GetDownloadedTotal();
 }
 
 
-uint64 CUpDownClient::GetUploadedTotal() const 
+uint64 CUpDownClient::GetUploadedTotal() const
 {
 	return credits->GetUploadedTotal();
 }
@@ -1275,11 +1283,11 @@ CUpDownClient::~CUpDownClient()
 }
 
 
-CClientRef *CUpDownClientListRem::CreateItem(CEC_UpDownClient_Tag *tag)
+CClientRef *CUpDownClientListRem::CreateItem(const CEC_UpDownClient_Tag *tag)
 {
 	CClientRef *client = new CClientRef(tag);
 	ProcessItemUpdate(tag, client);
-	
+
 	return client;
 }
 
@@ -1323,7 +1331,7 @@ uint32 CUpDownClientListRem::GetItemID(CClientRef *client)
 
 
 void CUpDownClientListRem::ProcessItemUpdate(
-	CEC_UpDownClient_Tag *tag,
+	const CEC_UpDownClient_Tag *tag,
 	CClientRef *clientref)
 {
 	if (!tag->HasChildTags()) {
@@ -1369,7 +1377,7 @@ void CUpDownClientListRem::ProcessItemUpdate(
 	tag->RemoteQueueRank(&client->m_nRemoteQueueRank);
 	client->m_bRemoteQueueFull = client->m_nRemoteQueueRank == 0xffff;
 	tag->OldRemoteQueueRank(&client->m_nOldRemoteQueueRank);
-	
+
 	tag->ClientDownloadState(client->m_nDownloadState);
 	if (tag->ClientUploadState(client->m_nUploadState)) {
 		if (client->m_nUploadState == US_UPLOADING) {
@@ -1378,7 +1386,7 @@ void CUpDownClientListRem::ProcessItemUpdate(
 			theApp->m_allUploadingKnownFile->RemoveUploadingClient(client);
 		}
 	}
-	
+
 	tag->SpeedUp(&client->m_nUpDatarate);
 	if ( client->m_nDownloadState == DS_DOWNLOADING ) {
 		tag->SpeedDown(&client->m_kBpsDown);
@@ -1390,9 +1398,8 @@ void CUpDownClientListRem::ProcessItemUpdate(
 	//tag->XferTime(&client->m_UpStartTimeDelay);
 	//tag->LastReqTime(&client->m_dwLastUpRequest);
 	//tag->QueueTime(&client->m_WaitStartTime);
-	
-	CreditStruct *credit_struct =
-		(CreditStruct *)client->credits->GetDataStruct();
+
+	CreditStruct *credit_struct = const_cast<CreditStruct *>(client->credits->GetDataStruct());
 	tag->XferUp(&credit_struct->uploaded);
 	tag->XferUpSession(&client->m_nTransferredUp);
 
@@ -1428,7 +1435,7 @@ void CUpDownClientListRem::ProcessItemUpdate(
 		}
 		CKnownFile * kf = theApp->knownfiles->GetByID(fileID);
 		if (kf && kf->IsCPartFile()) {
-			client->m_reqfile = (CPartFile *) kf;
+			client->m_reqfile = static_cast<CPartFile *>(kf);
 			client->m_reqfile->AddSource(client);
 			client->m_downPartStatus.setsize(kf->GetPartCount(), 0);
 			Notify_SourceCtrlAddSource(client->m_reqfile, CCLIENTREF(client, wxT("AddSource")), A4AF_SOURCE);
@@ -1437,7 +1444,7 @@ void CUpDownClientListRem::ProcessItemUpdate(
 	}
 
 	// Part status
-	CECTag * partStatusTag = tag->GetTagByName(EC_TAG_CLIENT_PART_STATUS);
+	const CECTag * partStatusTag = tag->GetTagByName(EC_TAG_CLIENT_PART_STATUS);
 	if (partStatusTag) {
 		if (partStatusTag->GetTagDataLen() == 0) {
 			// empty tag means full source
@@ -1460,7 +1467,7 @@ void CUpDownClientListRem::ProcessItemUpdate(
 				type = UNAVAILABLE_SOURCE;
 				break;
 		}
-			
+
 		Notify_SourceCtrlUpdateSource(client->ECID(), type);
 	}
 
@@ -1490,7 +1497,7 @@ void CUpDownClientListRem::ProcessItemUpdate(
 		notified = false;
 	}
 
-	if (!notified && client->m_uploadingfile 
+	if (!notified && client->m_uploadingfile
 		&& (client->m_uploadingfile->ShowPeers() || (client->m_nUploadState == US_UPLOADING))) {
 			// notify if KnowFile is selected, or if it's uploading (in case clients are in show uploading mode)
 		SourceItemType type;
@@ -1510,7 +1517,7 @@ void CUpDownClientListRem::ProcessItemUpdate(
 
 /*
  * Download queue container: hold PartFiles with progress status
- * 
+ *
  */
 
 
@@ -1520,7 +1527,7 @@ bool CDownQueueRem::AddLink(const wxString &link, uint8 cat)
 	CECTag link_tag(EC_TAG_STRING, link);
 	link_tag.AddTag(CECTag(EC_TAG_PARTFILE_CAT, cat));
 	req.AddTag(link_tag);
-	
+
 	m_conn->SendPacket(&req);
 	return true;
 }
@@ -1531,7 +1538,7 @@ void CDownQueueRem::ResetCatParts(int cat)
 	// Called when category is deleted. Command will be performed on the remote side,
 	// but files still should be updated here right away, or drawing errors (colour not available)
 	// will happen.
-	for (iterator it = begin(); it != end(); it++) {
+	for (iterator it = begin(); it != end(); ++it) {
 		CPartFile* file = it->second;
 		file->RemoveCategory(cat);
 	}
@@ -1539,14 +1546,14 @@ void CDownQueueRem::ResetCatParts(int cat)
 
 
 
-void CKnownFilesRem::ProcessItemUpdatePartfile(CEC_PartFile_Tag *tag, CPartFile *file)
+void CKnownFilesRem::ProcessItemUpdatePartfile(const CEC_PartFile_Tag *tag, CPartFile *file)
 {
 	//
 	// update status
 	//
 	tag->Speed(&file->m_kbpsDown);
 	file->kBpsDown = file->m_kbpsDown / 1024.0;
-	
+
 	tag->SizeXfer(&file->transferred);
 	tag->SizeDone(&file->completedsize);
 	tag->SourceXferCount(&file->transferingsrc);
@@ -1562,13 +1569,14 @@ void CKnownFilesRem::ProcessItemUpdatePartfile(CEC_PartFile_Tag *tag, CPartFile
 	tag->AvailablePartCount(&file->m_availablePartsCount);
 	tag->Shared(&file->m_isShared);
 	tag->A4AFAuto(file->m_is_A4AF_auto);
+	tag->HashingProgress(file->m_hashingProgress);
 
 	tag->GetLostDueToCorruption(&file->m_iLostDueToCorruption);
 	tag->GetGainDueToCompression(&file->m_iGainDueToCompression);
 	tag->TotalPacketsSavedDueToICH(&file->m_iTotalPacketsSavedDueToICH);
 
 	tag->FileCat(&file->m_category);
-	
+
 	tag->DownPrio(&file->m_iDownPriorityEC);
 	if ( file->m_iDownPriorityEC >= 10 ) {
 		file->m_iDownPriority = file->m_iDownPriorityEC - 10;
@@ -1583,9 +1591,9 @@ void CKnownFilesRem::ProcessItemUpdatePartfile(CEC_PartFile_Tag *tag, CPartFile
 	//
 	// Copy part/gap status
 	//
-	CECTag *gaptag = tag->GetTagByName(EC_TAG_PARTFILE_GAP_STATUS);
-	CECTag *parttag = tag->GetTagByName(EC_TAG_PARTFILE_PART_STATUS);
-	CECTag *reqtag = tag->GetTagByName(EC_TAG_PARTFILE_REQ_STATUS);
+	const CECTag *gaptag = tag->GetTagByName(EC_TAG_PARTFILE_GAP_STATUS);
+	const CECTag *parttag = tag->GetTagByName(EC_TAG_PARTFILE_PART_STATUS);
+	const CECTag *reqtag = tag->GetTagByName(EC_TAG_PARTFILE_REQ_STATUS);
 	if (gaptag || parttag || reqtag) {
 		PartFileEncoderData &encoder = file->m_PartFileEncoderData;
 
@@ -1622,12 +1630,12 @@ void CKnownFilesRem::ProcessItemUpdatePartfile(CEC_PartFile_Tag *tag, CPartFile
 			}
 		}
 	}
-	
+
 	// Get source names and counts
-	CECTag *srcnametag = tag->GetTagByName(EC_TAG_PARTFILE_SOURCE_NAMES);
+	const CECTag *srcnametag = tag->GetTagByName(EC_TAG_PARTFILE_SOURCE_NAMES);
 	if (srcnametag) {
 		SourcenameItemMap &map = file->GetSourcenameItemMap();
-		for (CECTag::const_iterator it = srcnametag->begin(); it != srcnametag->end(); it++) {
+		for (CECTag::const_iterator it = srcnametag->begin(); it != srcnametag->end(); ++it) {
 			uint32 key = it->GetInt();
 			int count = it->GetTagByNameSafe(EC_TAG_PARTFILE_SOURCE_NAMES_COUNTS)->GetInt();
 			if (count == 0) {
@@ -1642,9 +1650,9 @@ void CKnownFilesRem::ProcessItemUpdatePartfile(CEC_PartFile_Tag *tag, CPartFile
 			}
 		}
 	}
-	
+
 	// Get comments
-	CECTag *commenttag = tag->GetTagByName(EC_TAG_PARTFILE_COMMENTS);
+	const CECTag *commenttag = tag->GetTagByName(EC_TAG_PARTFILE_COMMENTS);
 	if (commenttag) {
 		file->ClearFileRatingList();
 		for (CECTag::const_iterator it = commenttag->begin(); it != commenttag->end(); ) {
@@ -1656,14 +1664,14 @@ void CKnownFilesRem::ProcessItemUpdatePartfile(CEC_PartFile_Tag *tag, CPartFile
 		}
 		file->UpdateFileRatingCommentAvail();
 	}
-		
+
 	// Update A4AF sources
 	ListOfUInts32 & clientIDs = file->GetA4AFClientIDs();
-	CECTag *a4aftag = tag->GetTagByName(EC_TAG_PARTFILE_A4AF_SOURCES);
+	const CECTag *a4aftag = tag->GetTagByName(EC_TAG_PARTFILE_A4AF_SOURCES);
 	if (a4aftag) {
 		file->ClearA4AFList();
 		clientIDs.clear();
-		for (CECTag::const_iterator it = a4aftag->begin(); it != a4aftag->end(); it++) {
+		for (CECTag::const_iterator it = a4aftag->begin(); it != a4aftag->end(); ++it) {
 			if (it->GetTagName() != EC_TAG_ECID) {	// should always be this
 				continue;
 			}
@@ -1688,7 +1696,7 @@ void CKnownFilesRem::ProcessItemUpdatePartfile(CEC_PartFile_Tag *tag, CPartFile
 			}
 		}
 	}
-		
+
 	theApp->amuledlg->m_transferwnd->downloadlistctrl->UpdateItem(file);
 
 	// If file is shared check if it is already listed in shared files.
@@ -1704,7 +1712,7 @@ void CDownQueueRem::SendFileCommand(CPartFile *file, ec_tagname_t cmd)
 {
 	CECPacket req(cmd);
 	req.AddTag(CECTag(EC_TAG_PARTFILE, file->GetFileHash()));
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1712,11 +1720,11 @@ void CDownQueueRem::SendFileCommand(CPartFile *file, ec_tagname_t cmd)
 void CDownQueueRem::Prio(CPartFile *file, uint8 prio)
 {
 	CECPacket req(EC_OP_PARTFILE_PRIO_SET);
-	
+
 	CECTag hashtag(EC_TAG_PARTFILE, file->GetFileHash());
 	hashtag.AddTag(CECTag(EC_TAG_PARTFILE_PRIO, prio));
 	req.AddTag(hashtag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1724,13 +1732,13 @@ void CDownQueueRem::Prio(CPartFile *file, uint8 prio)
 void CDownQueueRem::AutoPrio(CPartFile *file, bool flag)
 {
 	CECPacket req(EC_OP_PARTFILE_PRIO_SET);
-	
+
 	CECTag hashtag(EC_TAG_PARTFILE, file->GetFileHash());
-	
+
 	hashtag.AddTag(CECTag(EC_TAG_PARTFILE_PRIO,
 		(uint8)(flag ? PR_AUTO : file->GetDownPriority())));
 	req.AddTag(hashtag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1739,11 +1747,11 @@ void CDownQueueRem::Category(CPartFile *file, uint8 cat)
 {
 	CECPacket req(EC_OP_PARTFILE_SET_CAT);
 	file->SetCategory(cat);
-	
+
 	CECTag hashtag(EC_TAG_PARTFILE, file->GetFileHash());
 	hashtag.AddTag(CECTag(EC_TAG_PARTFILE_CAT, cat));
 	req.AddTag(hashtag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1754,7 +1762,7 @@ void CDownQueueRem::AddSearchToDownload(CSearchFile* file, uint8 category)
 	CECTag hashtag(EC_TAG_PARTFILE, file->GetFileHash());
 	hashtag.AddTag(CECTag(EC_TAG_PARTFILE_CAT, category));
 	req.AddTag(hashtag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1762,10 +1770,10 @@ void CDownQueueRem::AddSearchToDownload(CSearchFile* file, uint8 category)
 void CDownQueueRem::ClearCompleted(const ListOfUInts32 & ecids)
 {
 	CECPacket req(EC_OP_CLEAR_COMPLETED);
-	for (ListOfUInts32::const_iterator it = ecids.begin(); it != ecids.end(); it++) {
+	for (ListOfUInts32::const_iterator it = ecids.begin(); it != ecids.end(); ++it) {
 		req.AddTag(CECTag(EC_TAG_ECID, *it));
 	}
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1786,7 +1794,7 @@ void CFriendListRem::HandlePacket(const CECPacket *)
 }
 
 
-CFriend * CFriendListRem::CreateItem(CEC_Friend_Tag * tag)
+CFriend * CFriendListRem::CreateItem(const CEC_Friend_Tag * tag)
 {
 	CFriend * Friend = new CFriend(tag->ID());
 	ProcessItemUpdate(tag, Friend);
@@ -1807,7 +1815,7 @@ uint32 CFriendListRem::GetItemID(CFriend * Friend)
 }
 
 
-void CFriendListRem::ProcessItemUpdate(CEC_Friend_Tag * tag, CFriend * Friend)
+void CFriendListRem::ProcessItemUpdate(const CEC_Friend_Tag * tag, CFriend * Friend)
 {
 	if (!tag->HasChildTags()) {
 		return;
@@ -1829,7 +1837,7 @@ void CFriendListRem::ProcessItemUpdate(CEC_Friend_Tag * tag, CFriend * Friend)
 			// Unlink
 			Friend->UnLinkClient(false);
 		}
-	} 
+	}
 	if (!notified) {
 		Notify_ChatUpdateFriend(Friend);
 	}
@@ -1839,11 +1847,11 @@ void CFriendListRem::ProcessItemUpdate(CEC_Friend_Tag * tag, CFriend * Friend)
 void CFriendListRem::AddFriend(const CClientRef& toadd)
 {
 	CECPacket req(EC_OP_FRIEND);
-	
+
 	CECEmptyTag addtag(EC_TAG_FRIEND_ADD);
 	addtag.AddTag(CECTag(EC_TAG_CLIENT, toadd.ECID()));
 	req.AddTag(addtag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1851,14 +1859,14 @@ void CFriendListRem::AddFriend(const CClientRef& toadd)
 void CFriendListRem::AddFriend(const CMD4Hash& userhash, uint32 lastUsedIP, uint32 lastUsedPort, const wxString& name)
 {
 	CECPacket req(EC_OP_FRIEND);
-	
+
 	CECEmptyTag addtag(EC_TAG_FRIEND_ADD);
 	addtag.AddTag(CECTag(EC_TAG_FRIEND_HASH, userhash));
 	addtag.AddTag(CECTag(EC_TAG_FRIEND_IP, lastUsedIP));
 	addtag.AddTag(CECTag(EC_TAG_FRIEND_PORT, lastUsedPort));
 	addtag.AddTag(CECTag(EC_TAG_FRIEND_NAME, name));
 	req.AddTag(addtag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1866,11 +1874,11 @@ void CFriendListRem::AddFriend(const CMD4Hash& userhash, uint32 lastUsedIP, uint
 void CFriendListRem::RemoveFriend(CFriend* toremove)
 {
 	CECPacket req(EC_OP_FRIEND);
-	
+
 	CECEmptyTag removetag(EC_TAG_FRIEND_REMOVE);
 	removetag.AddTag(CECTag(EC_TAG_FRIEND, toremove->ECID()));
 	req.AddTag(removetag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1878,11 +1886,11 @@ void CFriendListRem::RemoveFriend(CFriend* toremove)
 void CFriendListRem::SetFriendSlot(CFriend* Friend, bool new_state)
 {
 	CECPacket req(EC_OP_FRIEND);
-	
+
 	CECTag slottag(EC_TAG_FRIEND_FRIENDSLOT, new_state);
 	slottag.AddTag(CECTag(EC_TAG_FRIEND, Friend->ECID()));
 	req.AddTag(slottag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1890,11 +1898,11 @@ void CFriendListRem::SetFriendSlot(CFriend* Friend, bool new_state)
 void CFriendListRem::RequestSharedFileList(CFriend* Friend)
 {
 	CECPacket req(EC_OP_FRIEND);
-	
+
 	CECEmptyTag sharedtag(EC_TAG_FRIEND_SHARED);
 	sharedtag.AddTag(CECTag(EC_TAG_FRIEND, Friend->ECID()));
 	req.AddTag(sharedtag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1902,11 +1910,11 @@ void CFriendListRem::RequestSharedFileList(CFriend* Friend)
 void CFriendListRem::RequestSharedFileList(CClientRef& client)
 {
 	CECPacket req(EC_OP_FRIEND);
-	
+
 	CECEmptyTag sharedtag(EC_TAG_FRIEND_SHARED);
 	sharedtag.AddTag(CECTag(EC_TAG_CLIENT, client.ECID()));
 	req.AddTag(sharedtag);
-	
+
 	m_conn->SendPacket(&req);
 }
 
@@ -1922,7 +1930,7 @@ CSearchListRem::CSearchListRem(CRemoteConnect *conn) : CRemoteContainer<CSearchF
 
 
 wxString CSearchListRem::StartNewSearch(
-	uint32* nSearchID, SearchType search_type, 
+	uint32* nSearchID, SearchType search_type,
 	const CSearchList::CSearchParams& params)
 {
 	CECPacket search_req(EC_OP_SEARCH_START);
@@ -1936,12 +1944,12 @@ wxString CSearchListRem::StartNewSearch(
 		CEC_Search_Tag(params.searchString, ec_search_type,
 		params.typeText, params.extension, params.availability,
 		params.minSize, params.maxSize));
-		
+
 	m_conn->SendPacket(&search_req);
 	m_curr_search = *(nSearchID); // No kad remote search yet.
-	
+
 	Flush();
-	
+
 	return wxEmptyString; // EC reply will have the error mesg is needed.
 }
 
@@ -1965,7 +1973,7 @@ void CSearchListRem::HandlePacket(const CECPacket *packet)
 }
 
 
-CSearchFile::CSearchFile(CEC_SearchFile_Tag *tag)
+CSearchFile::CSearchFile(const CEC_SearchFile_Tag *tag)
 :
 CECID(tag->ID()),
 m_parent(NULL),
@@ -1981,7 +1989,7 @@ m_kadPublishInfo(0)
 	SetFileName(CPath(tag->FileName()));
 	m_abyFileHash = tag->FileHash();
 	SetFileSize(tag->SizeFull());
-	
+
 	m_searchID = theApp->searchlist->m_curr_search;
 	uint32 parentID = tag->ParentID();
 	if (parentID) {
@@ -2002,17 +2010,17 @@ void CSearchFile::AddChild(CSearchFile* file)
 
 // dtor is virtual - must be implemented
 CSearchFile::~CSearchFile()
-{	
+{
 }
 
 
-CSearchFile *CSearchListRem::CreateItem(CEC_SearchFile_Tag *tag)
+CSearchFile *CSearchListRem::CreateItem(const CEC_SearchFile_Tag *tag)
 {
 	CSearchFile *file = new CSearchFile(tag);
 	ProcessItemUpdate(tag, file);
-	
+
 	theApp->amuledlg->m_searchwnd->AddResult(file);
-	
+
 	return file;
 }
 
@@ -2029,7 +2037,7 @@ uint32 CSearchListRem::GetItemID(CSearchFile *file)
 }
 
 
-void CSearchListRem::ProcessItemUpdate(CEC_SearchFile_Tag *tag, CSearchFile *file)
+void CSearchListRem::ProcessItemUpdate(const CEC_SearchFile_Tag *tag, CSearchFile *file)
 {
 	uint32 sourceCount = file->m_sourceCount;
 	uint32 completeSourceCount = file->m_completeSourceCount;
@@ -2086,7 +2094,7 @@ const CSearchResultList& CSearchListRem::GetSearchResults(long nSearchID)
 void CStatsUpdaterRem::HandlePacket(const CECPacket *packet)
 {
 	theStats::UpdateStats(packet);
-	theApp->amuledlg->ShowTransferRate();			
+	theApp->amuledlg->ShowTransferRate();
 	theApp->ShowUserCount(); // maybe there should be a check if a usercount changed ?
 	// handle the connstate tag which is included in the stats packet
 	theApp->serverconnect->HandlePacket(packet);
@@ -2110,7 +2118,7 @@ bool CUpDownClient::SwapToAnotherFile(
 	req.AddTag(CECTag(EC_TAG_CLIENT, ECID()));
 	req.AddTag(CECTag(EC_TAG_PARTFILE, toFile->GetFileHash()));
 	theApp->m_connect->SendPacket(&req);
-	
+
 	return true;
 }
 
@@ -2171,7 +2179,7 @@ void CPartFile::UpdateFileRatingCommentAvail()
 	FileRatingList::iterator it = m_FileRatingList.begin();
 	for (; it != m_FileRatingList.end(); ++it) {
 		SFileRating& cur_rat = *it;
-		
+
 		if (!cur_rat.Comment.IsEmpty()) {
 			m_hasComment = true;
 		}
@@ -2179,17 +2187,17 @@ void CPartFile::UpdateFileRatingCommentAvail()
 		uint8 rating = cur_rat.Rating;
 		if (rating) {
 			wxASSERT(rating <= 5);
-			
+
 			ratingCount++;
 			m_iUserRating += rating;
 		}
 	}
-	
+
 	if (ratingCount) {
 		m_iUserRating /= ratingCount;
 		wxASSERT(m_iUserRating > 0 && m_iUserRating <= 5);
 	}
-	
+
 	if ((prevComment != m_hasComment) || (prevRating != m_iUserRating)) {
 		UpdateDisplayedInfo();
 	}
diff --git a/src/amule-remote-gui.h b/src/amule-remote-gui.h
index e2e374e..e5ffc6d 100644
--- a/src/amule-remote-gui.h
+++ b/src/amule-remote-gui.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,23 +48,23 @@ class CPath;
 class wxEvtHandler;
 class wxTimer;
 class wxTimerEvent;
-	
+
 #include <wx/dialog.h>
 
 class CEConnectDlg : public wxDialog {
 	wxString host;
 	int port;
-	
+
 	wxString pwd_hash;
 	wxString login, passwd;
 	bool m_save_user_pass;
-	
+
 	DECLARE_EVENT_TABLE()
 public:
 	CEConnectDlg();
-	
+
 	void OnOK(wxCommandEvent& event);
-	
+
 	wxString Host() { return host; }
 	int Port() { return port; }
 
@@ -102,7 +102,7 @@ public:
 						const wxString& comment, uint32 color, uint8 prio);
 
 	void RemoveCat(uint8 cat);
-	
+
 	bool LoadRemote();
 	void SendToRemote();
 };
@@ -120,25 +120,25 @@ protected:
 		STATUS_REQ_SENT, // sent request for item status
 		FULL_REQ_SENT    // sent request for full info
 	} m_state;
-	
+
 	CRemoteConnect *m_conn;
 
 	std::list<T *> m_items;
 	std::map<I, T *> m_items_hash;
-	
+
 	// .size() is O(N) operation in stl
 	int m_item_count;
-	
+
 	// use incremental tags algorithm
 	bool m_inc_tags;
-	
+
 	// command that will be used in full request
 	int m_full_req_cmd, m_full_req_tag;
-	
+
 	virtual void HandlePacket(const CECPacket *packet)
 	{
 		switch(this->m_state) {
-			case IDLE: wxFAIL; // not expecting anything
+			case IDLE: wxFAIL; break; // not expecting anything
 			case STATUS_REQ_SENT:
 				// if derived class choose not to proceed, return - but with good status
 				this->m_state = IDLE;
@@ -150,9 +150,9 @@ protected:
 						// Non-incremental tags: we might get partial info on new items.
 						// Collect all this items in a tag, and then request full info about them.
 						CECPacket req_full(this->m_full_req_cmd);
-				
+
 						ProcessUpdate(packet, &req_full, m_full_req_tag);
-					
+
 						// Phase 3: request full info about files we don't have yet
 						if ( req_full.HasChildTags() ) {
 							m_conn->SendRequest(this, &req_full);
@@ -169,18 +169,17 @@ protected:
 	}
 public:
 	CRemoteContainer(CRemoteConnect *conn, bool inc_tags)
-	{
-		m_state = IDLE;
-		
-		m_conn = conn;
-		m_item_count = 0;
-		m_inc_tags = inc_tags;
-	}
-	
+		: m_state(IDLE),
+		  m_conn(conn),
+		  m_item_count(0),
+		  m_inc_tags(inc_tags),
+		  m_full_req_cmd(0),
+		  m_full_req_tag(0)
+	{}
+
 	virtual ~CRemoteContainer()
-	{
-	}
-	
+	{}
+
 	typedef typename std::list<T *>::iterator iterator;
 	iterator begin() { return m_items.begin(); }
 	iterator end() { return m_items.end(); }
@@ -189,7 +188,7 @@ public:
 	{
 		return m_item_count;
 	}
-	
+
 	void AddItem(T *item)
 	{
 		m_items.push_back(item);
@@ -209,7 +208,7 @@ public:
 		m_items_hash.clear();
 		m_item_count = 0;
 	}
-			
+
 	//
 	// Flush & reload
 	//
@@ -227,11 +226,11 @@ public:
 		for(typename std::list<T *>::iterator j = this->m_items.begin(); j != this->m_items.end(); j++) {
 			this->DeleteItem(*j);
 		}
-		
+
 		Flush();
-		
+
 		ProcessFull(reply.get());
-		
+
 		return true;
 	}
 	*/
@@ -241,10 +240,10 @@ public:
 			return;
 		}
 
-		for(typename std::list<T *>::iterator j = this->m_items.begin(); j != this->m_items.end(); j++) {
+		for(typename std::list<T *>::iterator j = this->m_items.begin(); j != this->m_items.end(); ++j) {
 			this->DeleteItem(*j);
 		}
-		
+
 		Flush();
 
 		CECPacket req(cmd);
@@ -252,7 +251,7 @@ public:
 		this->m_state = FULL_REQ_SENT;
 		this->m_full_req_cmd = cmd;
 	}
-	
+
 	//
 	// Following are like basicly same code as in webserver. Eventually it must
 	// be same class
@@ -275,14 +274,14 @@ public:
 	bool DoRequery(int cmd, int tag)
 	{
 		CECPacket req_sts(cmd, m_inc_tags ? EC_DETAIL_INC_UPDATE : EC_DETAIL_UPDATE);
-	
+
 		//
 		// Phase 1: request status
 		CScopedPtr<const CECPacket> reply(this->m_conn->SendRecvPacket(&req_sts));
 		if ( !reply.get() ) {
 			return false;
 		}
-		
+
 		if ( !this->Phase1Done(reply.get()) ) {
 			// if derived class choose not to proceed, return - but with good status
 			return true;
@@ -290,11 +289,11 @@ public:
 		//
 		// Phase 2: update status, mark new files for subsequent query
 		CECPacket req_full(cmd);
-	
+
 		ProcessUpdate(reply.get(), &req_full, tag);
-	
+
 		reply.reset();
-	
+
 		if ( !m_inc_tags ) {
 			// Phase 3: request full info about files we don't have yet
 			if ( req_full.GetTagCount() ) {
@@ -311,8 +310,8 @@ public:
 
 	void ProcessFull(const CECPacket *reply)
 	{
-		for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); it++) {
-			G *tag = (G *) & *it;
+		for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); ++it) {
+			const G *tag = static_cast<const G *>(&*it);
 			// initialize item data from EC tag
 			AddItem(CreateItem(tag));
 		}
@@ -335,12 +334,12 @@ public:
 	virtual void ProcessUpdate(const CECTag *reply, CECPacket *full_req, int req_type)
 	{
 		std::set<I> core_files;
-		for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); it++) {
-			G *tag = (G *) & *it;
+		for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); ++it) {
+			const G *tag = static_cast<const G *>(&*it);
 			if ( tag->GetTagName() != req_type ) {
 				continue;
 			}
-	
+
 			core_files.insert(tag->ID());
 			if ( m_items_hash.count(tag->ID()) ) {
 				// Item already known: update it
@@ -367,7 +366,7 @@ public:
 		}
 	}
 
-	virtual T *CreateItem(G *)
+	virtual T *CreateItem(const G *)
 	{
 		return 0;
 	}
@@ -378,7 +377,7 @@ public:
 	{
 		return I();
 	}
-	virtual void ProcessItemUpdate(G *, T *)
+	virtual void ProcessItemUpdate(const G *, T *)
 	{
 	}
 
@@ -391,20 +390,20 @@ public:
 class CServerConnectRem {
 	CRemoteConnect *m_Conn;
 	uint32 m_ID;
-	
+
 	CServer *m_CurrServer;
 
 public:
 	void HandlePacket(const CECPacket *packet);
-	
+
 	CServerConnectRem(CRemoteConnect *);
-	
+
 	bool IsConnected() { return (m_ID != 0) && (m_ID != 0xffffffff); }
 	bool IsConnecting() { return m_ID == 0xffffffff; }
 	bool IsLowID() { return m_ID < 16777216; }
 	uint32 GetClientID() { return m_ID; }
 	CServer *GetCurrentServer() { return m_CurrServer; }
-	
+
 	//
 	// Actions
 	//
@@ -416,7 +415,7 @@ public:
 
 class CServerListRem : public CRemoteContainer<CServer, uint32, CEC_Server_Tag> {
 	uint32 m_TotalUser, m_TotalFile;
-	
+
 	virtual void HandlePacket(const CECPacket *packet);
 public:
 	CServerListRem(CRemoteConnect *);
@@ -425,9 +424,9 @@ public:
 		total_user = m_TotalUser;
 		total_file = m_TotalFile;
 	}
-	
+
 	void UpdateUserFileStatus(CServer *server);
-	
+
 	CServer* GetServerByAddress(const wxString& address, uint16 port) const;
 	CServer* GetServerByIPTCP(uint32 nIP, uint16 nPort) const;
 
@@ -440,14 +439,14 @@ public:
 	void SetServerPrio(CServer* server, uint32 prio);
 	void SaveServerMet() {}	// not needed here
 	void FilterServers() {}	// not needed here
-	
+
 	//
 	// template
 	//
-	CServer *CreateItem(CEC_Server_Tag *);
+	CServer *CreateItem(const CEC_Server_Tag *);
 	void DeleteItem(CServer *);
 	uint32 GetItemID(CServer *);
-	void ProcessItemUpdate(CEC_Server_Tag *, CServer *);
+	void ProcessItemUpdate(const CEC_Server_Tag *, CServer *);
 };
 
 class CUpDownClientListRem : public CRemoteContainer<CClientRef, uint32, CEC_UpDownClient_Tag> {
@@ -458,26 +457,26 @@ public:
 	//
 	// template
 	//
-	CClientRef *CreateItem(CEC_UpDownClient_Tag *);
+	CClientRef *CreateItem(const CEC_UpDownClient_Tag *);
 	void DeleteItem(CClientRef *);
 	uint32 GetItemID(CClientRef *);
-	void ProcessItemUpdate(CEC_UpDownClient_Tag *, CClientRef *);
+	void ProcessItemUpdate(const CEC_UpDownClient_Tag *, CClientRef *);
 };
 
 class CDownQueueRem : public std::map<uint32, CPartFile*> {
 	CRemoteConnect *m_conn;
 public:
 	CDownQueueRem(CRemoteConnect * conn) { m_conn = conn; }
-	
+
 	CPartFile* GetFileByID(uint32 id);
-	
+
 	//
 	// User actions
 	//
 	void Prio(CPartFile *file, uint8 prio);
 	void AutoPrio(CPartFile *file, bool flag);
 	void Category(CPartFile *file, uint8 cat);
-	
+
 	void SendFileCommand(CPartFile *file, ec_tagname_t cmd);
 	//
 	// Actions
@@ -495,7 +494,7 @@ class CSharedFilesRem  : public std::map<uint32, CKnownFile*> {
 	CRemoteConnect *m_conn;
 public:
 	CSharedFilesRem(CRemoteConnect * conn);
-	
+
 	CKnownFile *GetFileByID(uint32 id);
 
 	void SetFilePrio(CKnownFile *file, uint8 prio);
@@ -510,13 +509,13 @@ public:
 };
 
 class CKnownFilesRem : public CRemoteContainer<CKnownFile, uint32, CEC_SharedFile_Tag> {
-	CKnownFile * CreateKnownFile(CEC_SharedFile_Tag *tag, CKnownFile *file = NULL);
-	CPartFile  * CreatePartFile(CEC_PartFile_Tag *tag);
+	CKnownFile * CreateKnownFile(const CEC_SharedFile_Tag *tag, CKnownFile *file = NULL);
+	CPartFile  * CreatePartFile(const CEC_PartFile_Tag *tag);
 
 	bool m_initialUpdate;	// improved handling for first data transfer
 public:
 	CKnownFilesRem(CRemoteConnect * conn);
-	
+
 	CKnownFile *FindKnownFileByID(uint32 id) { return GetByID(id); }
 
 	uint16 requested;
@@ -526,21 +525,21 @@ public:
 	//
 	// template
 	//
-	CKnownFile *CreateItem(CEC_SharedFile_Tag *) { wxFAIL; return NULL; }	// unused, required by template
+	CKnownFile *CreateItem(const CEC_SharedFile_Tag *) { wxFAIL; return NULL; }	// unused, required by template
 	void DeleteItem(CKnownFile *);
 	uint32 GetItemID(CKnownFile *);
-	void ProcessItemUpdate(CEC_SharedFile_Tag *, CKnownFile *);
+	void ProcessItemUpdate(const CEC_SharedFile_Tag *, CKnownFile *);
 	bool Phase1Done(const CECPacket *) { return true; }
 	void ProcessUpdate(const CECTag *reply, CECPacket *full_req, int req_type);
 
-	void ProcessItemUpdatePartfile(CEC_PartFile_Tag *, CPartFile *);
+	void ProcessItemUpdatePartfile(const CEC_PartFile_Tag *, CPartFile *);
 };
 
 class CIPFilterRem {
 	CRemoteConnect *m_conn;
 public:
 	CIPFilterRem(CRemoteConnect *conn);
-	
+
 	//
 	// Actions
 	//
@@ -553,7 +552,7 @@ class CSearchListRem : public CRemoteContainer<CSearchFile, uint32, CEC_SearchFi
 	virtual void HandlePacket(const CECPacket *);
 public:
 	CSearchListRem(CRemoteConnect *);
-	
+
 	int m_curr_search;
 	typedef std::map<long, CSearchResultList> ResultMap;
 	ResultMap m_results;
@@ -567,16 +566,16 @@ public:
 
 	wxString StartNewSearch(uint32* nSearchID, SearchType search_type,
 		const CSearchList::CSearchParams& params);
-		
+
 	void StopSearch(bool globalOnly = false);
-	
+
 	//
 	// template
 	//
-	CSearchFile *CreateItem(CEC_SearchFile_Tag *);
+	CSearchFile *CreateItem(const CEC_SearchFile_Tag *);
 	void DeleteItem(CSearchFile *);
 	uint32 GetItemID(CSearchFile *);
-	void ProcessItemUpdate(CEC_SearchFile_Tag *, CSearchFile *);
+	void ProcessItemUpdate(const CEC_SearchFile_Tag *, CSearchFile *);
 	bool Phase1Done(const CECPacket *);
 };
 
@@ -595,10 +594,10 @@ public:
 	//
 	// template
 	//
-	CFriend *CreateItem(CEC_Friend_Tag *);
+	CFriend *CreateItem(const CEC_Friend_Tag *);
 	void DeleteItem(CFriend *);
 	uint32 GetItemID(CFriend *);
-	void ProcessItemUpdate(CEC_Friend_Tag *, CFriend *);
+	void ProcessItemUpdate(const CEC_Friend_Tag *, CFriend *);
 };
 
 class CStatsUpdaterRem : public CECPacketHandlerBase {
@@ -631,7 +630,7 @@ class CamuleRemoteGuiApp : public wxApp, public CamuleGuiBase, public CamuleAppC
 	int OnExit();
 
 	void OnPollTimer(wxTimerEvent& evt);
-	
+
 	void OnECConnection(wxEvent& event);
 	void OnECInitDone(wxEvent& event);
 	void OnNotifyEvent(CMuleGUIEvent& evt);
@@ -656,6 +655,8 @@ public:
 
 	CPreferencesRem *glob_prefs;
 
+	CAsioService*	m_AsioService;
+
 	//
 	// Provide access to core data thru EC
 	CServerConnectRem *serverconnect;
@@ -687,14 +688,14 @@ public:
 	bool IsConnected() const { return IsConnectedED2K() || IsConnectedKad(); }
 	bool IsFirewalled() const;
 	bool IsConnectedED2K() const;
-	bool IsConnectedKad() const 
-	{ 
-		return ((m_ConnState & CONNECTED_KAD_OK) 
+	bool IsConnectedKad() const
+	{
+		return ((m_ConnState & CONNECTED_KAD_OK)
 				|| (m_ConnState & CONNECTED_KAD_FIREWALLED));
 	}
 	bool IsFirewalledKad() const { return (m_ConnState & CONNECTED_KAD_FIREWALLED) != 0; }
-	
-	bool IsKadRunning() const { return ((m_ConnState & CONNECTED_KAD_OK) 
+
+	bool IsKadRunning() const { return ((m_ConnState & CONNECTED_KAD_OK)
 				|| (m_ConnState & CONNECTED_KAD_FIREWALLED)
 				|| (m_ConnState & CONNECTED_KAD_NOT)); }
 
@@ -717,7 +718,7 @@ public:
 
 	void StartKad();
 	void StopKad();
-	
+
 	/** Bootstraps kad from the specified IP (must be in hostorder). */
 	void BootstrapKad(uint32 ip, uint16 port);
 	/** Updates the nodes.dat file from the specified url. */
@@ -726,11 +727,11 @@ public:
 	void DisconnectED2K();
 
 	bool CryptoAvailable() const;
-	
+
 	uint32 GetED2KID() const;
 	uint32 GetID() const;
 	void ShowUserCount();
-	
+
 	uint8 m_ConnState;
 	uint32 m_clientID;
 
diff --git a/src/amule.cpp b/src/amule.cpp
index 4affddd..5cab76a 100644
--- a/src/amule.cpp
+++ b/src/amule.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -29,7 +29,7 @@
 #include <csignal>
 #include <cstring>
 #include <wx/process.h>
-#include <wx/sstream.h>	
+#include <wx/sstream.h>
 
 #ifdef HAVE_CONFIG_H
 	#include "config.h"		// Needed for HAVE_GETRLIMIT, HAVE_SETRLIMIT,
@@ -154,11 +154,11 @@ static void SetResourceLimits()
 // in the signal handler.
 bool g_shutdownSignal = false;
 
-void OnShutdownSignal( int /* sig */ ) 
+void OnShutdownSignal( int /* sig */ )
 {
 	signal(SIGINT, SIG_DFL);
 	signal(SIGTERM, SIG_DFL);
-	
+
 	g_shutdownSignal = true;
 
 #ifdef AMULE_DAEMON
@@ -172,12 +172,12 @@ CamuleApp::CamuleApp()
 	// Madcat - Initialize timer as the VERY FIRST thing to avoid any issues later.
 	// Kry - I love to init the vars on init, even before timer.
 	StartTickTimer();
-	
+
 	// Initialization
 	m_app_state = APP_STATE_STARTING;
 
 	theApp = &wxGetApp();
-	
+
 	clientlist	= NULL;
 	searchlist	= NULL;
 	knownfiles	= NULL;
@@ -201,16 +201,13 @@ CamuleApp::CamuleApp()
 	m_upnpMappings.resize(4);
 #endif
 	core_timer	= NULL;
-	
+
 	m_localip	= 0;
 	m_dwPublicIP	= 0;
 	webserver_pid	= 0;
 
 	enable_daemon_fork = false;
 
-	strFullMuleVersion = NULL;
-	strOSDescription = NULL;
-	
 	// Apprently needed for *BSD
 	SetResourceLimits();
 
@@ -224,13 +221,6 @@ CamuleApp::~CamuleApp()
 	// Closing the log-file as the very last thing, since
 	// wxWidgets log-events are saved in it as well.
 	theLogger.CloseLogfile();
-
-	if (strFullMuleVersion) {
-		free(strFullMuleVersion);
-	}
-	if (strOSDescription) {
-		free(strOSDescription);
-	}
 }
 
 int CamuleApp::OnExit()
@@ -243,7 +233,7 @@ int CamuleApp::OnExit()
 	// ...
 	// Note that you must delete this object (usually in wxApp::OnExit)
 	// in order to avoid memory leaks, wxWidgets won't do it automatically.
-	// 
+	//
 	// As it happens, you may even further simplify the procedure described
 	// above: you may forget about calling Set(). When Get() is called and
 	// there is no current object, it will create one using Create() function.
@@ -331,6 +321,11 @@ int CamuleApp::OnExit()
 	delete uploadBandwidthThrottler;
 	uploadBandwidthThrottler = NULL;
 
+	delete m_AsioService;
+	m_AsioService = NULL;
+
+	wxSocketBase::Shutdown();	// needed because we also called Initialize() manually
+
 	if (m_app_state!=APP_STATE_STARTING) {
 		AddLogLineNS(_("aMule shutdown completed."));
 	}
@@ -376,10 +371,10 @@ bool CamuleApp::OnInit()
 
 	// Forward wxLog events to CLogger
 	wxLog::SetActiveTarget(new CLoggerTarget);
-	
+
 	m_localip = StringHosttoUint32(::wxGetFullHostName());
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	// get rid of sigpipe
 	signal(SIGPIPE, SIG_IGN);
 #else
@@ -410,13 +405,16 @@ bool CamuleApp::OnInit()
 	} else {
 		return false;
 	}
-	
+
 	if (CheckMuleDirectory(wxT("incoming"), thePrefs::GetIncomingDir(), ConfigDir + wxT("Incoming"), outDir)) {
 		thePrefs::SetIncomingDir(outDir);
 	} else {
 		return false;
 	}
 
+	// Initialize wx sockets (needed for http download in background with Asio sockets)
+	wxSocketBase::Initialize();
+
 	// Some sanity check
 	if (!thePrefs::UseTrayIcon()) {
 		thePrefs::SetMinToTray(false);
@@ -433,31 +431,31 @@ bool CamuleApp::OnInit()
 	// Configure EC for amuled when invoked with ec-config
 	if (ec_config) {
 		AddLogLineNS(_("\nEC configuration"));
-		thePrefs::SetECPass(GetPassword());
+		thePrefs::SetECPass(GetPassword(false).Encode());
 		thePrefs::EnableExternalConnections(true);
 		AddLogLineNS(_("Password set and external connections enabled."));
 	}
-	
-#ifndef __WXMSW__
+
+#ifndef __WINDOWS__ 
 	if (getuid() == 0) {
-		wxString msg = 
+		wxString msg =
 			wxT("Warning! You are running aMule as root.\n")
 			wxT("Doing so is not recommended for security reasons,\n")
 			wxT("and you are advised to run aMule as an normal\n")
 			wxT("user instead.");
-		
+
 		ShowAlert(msg, _("WARNING"), wxCENTRE | wxOK | wxICON_ERROR);
-	
+
 		fprintf(stderr, "\n--------------------------------------------------\n");
 		fprintf(stderr, "%s", (const char*)unicode2UTF8(msg));
 		fprintf(stderr, "\n--------------------------------------------------\n\n");
 	}
 #endif
-	
+
 	// Display notification on new version or first run
 	wxTextFile vfile( ConfigDir + wxT("lastversion") );
 	wxString newMule(wxT( VERSION ));
-	
+
 	if ( !wxFileExists( vfile.GetName() ) ) {
 		vfile.Create();
 	}
@@ -477,14 +475,14 @@ bool CamuleApp::OnInit()
 		if ( !found ) {
 			// Insert new at top to provide faster searches
 			vfile.InsertLine( newMule, 0 );
-			
+
 			Trigger_New_version( newMule );
 		}
-		
+
 		// Keep at most 10 entires
 		while ( vfile.GetLineCount() > 10 )
 			vfile.RemoveLine( vfile.GetLineCount() - 1 );
-			
+
 		vfile.Write();
 		vfile.Close();
 	}
@@ -498,17 +496,17 @@ bool CamuleApp::OnInit()
 	}
 
 	m_statistics = new CStatistics();
-	
+
 	clientlist	= new CClientList();
 	friendlist	= new CFriendList();
 	searchlist	= new CSearchList();
 	knownfiles	= new CKnownFileList();
 	canceledfiles	= new CCanceledFileList;
 	serverlist	= new CServerList();
-	
+
 	sharedfiles	= new CSharedFileList(knownfiles);
 	clientcredits	= new CClientCreditsList();
-	
+
 	// bugfix - do this before creating the uploadqueue
 	downloadqueue	= new CDownloadQueue();
 	uploadqueue	= new CUploadQueue();
@@ -524,7 +522,7 @@ bool CamuleApp::OnInit()
 	// Test if there's any new version
 	if (thePrefs::GetCheckNewVersion()) {
 		// We use the thread base because I don't want a dialog to pop up.
-		CHTTPDownloadThread* version_check = 
+		CHTTPDownloadThread* version_check =
 			new CHTTPDownloadThread(wxT("http://amule.sourceforge.net/lastversion"),
 				theApp->ConfigDir + wxT("last_version_check"), theApp->ConfigDir + wxT("last_version"), HTTP_VersionCheck, false, false);
 		version_check->Create();
@@ -533,7 +531,7 @@ bool CamuleApp::OnInit()
 
 	// Create main dialog, or fork to background (daemon).
 	InitGui(m_geometryEnabled, m_geometryString);
-	
+
 #ifdef AMULE_DAEMON
 	// Need to refresh wxSingleInstanceChecker after the daemon fork() !
 	if (enable_daemon_fork) {
@@ -542,25 +540,28 @@ bool CamuleApp::OnInit()
 	}
 #endif
 
-	// Has to be created after the call to InitGui, as fork 
+	// Has to be created after the call to InitGui, as fork
 	// (when using posix threads) only replicates the mainthread,
 	// and the UBT constructor creates a thread.
 	uploadBandwidthThrottler = new UploadBandwidthThrottler();
+
+	m_AsioService = new CAsioService;
+
 	
 	// Start performing background tasks
 	// This will start loading the IP filter. It will start right away.
 	// Log is confusing, because log entries from background will only be printed
-	// once foreground becomes idle, and that will only be after loading 
+	// once foreground becomes idle, and that will only be after loading
 	// of the partfiles has finished.
 	CThreadScheduler::Start();
-	
+
 	// These must be initialized after the gui is loaded.
 	if (thePrefs::GetNetworkED2K()) {
 		serverlist->Init();
 	}
 	downloadqueue->LoadMetFiles(thePrefs::GetTempDir());
 	sharedfiles->Reload();
-	
+
 	// Ensure that the up/down ratio is used
 	CPreferences::CheckUlDlRatio();
 
@@ -569,11 +570,10 @@ bool CamuleApp::OnInit()
 
 	// The user can start pressing buttons like mad if he feels like it.
 	m_app_state = APP_STATE_RUNNING;
-	
+
 	if (!serverlist->GetServerCount() && thePrefs::GetNetworkED2K()) {
 		// There are no servers and ED2K active -> ask for download.
 		// As we cannot ask in amuled, we just update there
-		// Kry TODO: Store server.met URL on preferences and use it here and in GUI.
 #ifndef AMULE_DAEMON
 		if (wxYES == wxMessageBox(
 			wxString(
@@ -583,15 +583,11 @@ bool CamuleApp::OnInit()
 			static_cast<wxWindow*>(theApp->amuledlg)))
 #endif
 		{
-		// workaround amuled crash
-#ifndef AMULE_DAEMON
-			serverlist->UpdateServerMetFromURL(
-				wxT("http://gruk.org/server.met.gz"));
-#endif
+			serverlist->UpdateServerMetFromURL(thePrefs::GetEd2kServersUrl());
 		}
 	}
-	
-	
+
+
 	// Autoconnect if that option is enabled
 	if (thePrefs::DoAutoConnect()) {
 		// IP filter is still loading and will be finished on event.
@@ -635,7 +631,7 @@ bool CamuleApp::OnInit()
 		}
 #endif
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 #	define QUOTE	wxT("\"")
 #else
 #	define QUOTE	wxT("\'")
@@ -667,12 +663,12 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 {
 	bool ok = true;
 	static bool firstTime = true;
-	
+
 	if (!firstTime) {
 		// TODO: Destroy previously created sockets
 	}
 	firstTime = false;
-	
+
 	// Some sanity checks first
 	if (thePrefs::ECPort() == thePrefs::GetPort()) {
 		// Select a random usable port in the range 1025 ... 2^16 - 1
@@ -681,10 +677,10 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 			port = (uint16)rand();
 		}
 		thePrefs::SetECPort( port );
-		
+
 		wxString err =
 			wxT("Network configuration failed! You cannot use the same port\n")
-			wxT("for the main TCP port and the External Connections port.\n") 
+			wxT("for the main TCP port and the External Connections port.\n")
 			wxT("The EC port has been changed to avoid conflict, see the\n")
 			wxT("preferences for the new value.\n");
 		*msg << err;
@@ -695,7 +691,7 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 
 		ok = false;
 	}
-	
+
 	if (thePrefs::GetUDPPort() == thePrefs::GetPort() + 3) {
 		// Select a random usable value in the range 1025 ... 2^16 - 1
 		uint16 port = thePrefs::GetUDPPort();
@@ -704,7 +700,7 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 		}
 		thePrefs::SetUDPPort( port );
 
-		wxString err = 
+		wxString err =
 			wxT("Network configuration failed! You set your UDP port to\n")
 			wxT("the value of the main TCP port plus 3.\n")
 			wxT("This port has been reserved for the Server-UDP port. The\n")
@@ -715,10 +711,10 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 		AddLogLineN(wxEmptyString );
 		AddLogLineC(err );
 		AddLogLineN(wxEmptyString );
-		
+
 		ok = false;
 	}
-	
+
 	// Create the address where we are going to listen
 	// TODO: read this from configuration file
 	amuleIPV4Address myaddr[4];
@@ -731,7 +727,7 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 	}
 	myaddr[0].Service(thePrefs::ECPort());
 	ECServerHandler = new ExternalConn(myaddr[0], msg);
-	
+
 	// Create the UDP socket TCP+3.
 	// Used for source asking on servers.
 	if (thePrefs::GetAddress().IsEmpty()) {
@@ -739,7 +735,7 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 	} else if (!myaddr[1].Hostname(thePrefs::GetAddress())) {
 		myaddr[1].AnyAddress();
 		AddLogLineC(CFormat(_("Could not bind ports to the specified address: %s"))
-			% thePrefs::GetAddress());				
+			% thePrefs::GetAddress());
 	}
 
 	wxString ip = myaddr[1].IPAddress();
@@ -747,7 +743,7 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 	serverconnect = new CServerConnect(serverlist, myaddr[1]);
 	*msg << CFormat( wxT("*** Server UDP socket (TCP+3) at %s:%u\n") )
 		% ip % ((unsigned int)thePrefs::GetPort() + 3u);
-	
+
 	// Create the ListenSocket (aMule TCP socket).
 	// Used for Client Port / Connections from other clients,
 	// Client to Client Source Exchange.
@@ -757,12 +753,9 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 	listensocket = new CListenSocket(myaddr[2]);
 	*msg << CFormat( wxT("*** TCP socket (TCP) listening on %s:%u\n") )
 		% ip % (unsigned int)(thePrefs::GetPort());
-	// This command just sets a flag to control maximum number of connections.
 	// Notify(true) has already been called to the ListenSocket, so events may
 	// be already comming in.
-	if (listensocket->Ok()) {
-		listensocket->StartListening();
-	} else {
+	if (!listensocket->IsOk()) {
 		// If we wern't able to start listening, we need to warn the user
 		wxString err;
 		err = CFormat(_("Port %u is not available. You will be LOWID\n")) %
@@ -771,7 +764,7 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 		AddLogLineC(err);
 		err.Clear();
 		err = CFormat(
-			_("Port %u is not available!\n\nThis means that you will be LOWID.\n\nCheck your network to make sure the port is open for output and input.")) % 
+			_("Port %u is not available!\n\nThis means that you will be LOWID.\n\nCheck your network to make sure the port is open for output and input.")) %
 			(unsigned int)(thePrefs::GetPort());
 		ShowAlert(err, _("ERROR"), wxOK | wxICON_ERROR);
 	}
@@ -788,7 +781,7 @@ bool CamuleApp::ReinitializeNetwork(wxString* msg)
 			% ip % thePrefs::GetUDPPort();
 	} else {
 		*msg << wxT("*** Client UDP socket (extended eMule) disabled on preferences");
-	}	
+	}
 
 #ifdef ENABLE_UPNP
 	if (thePrefs::GetUPnPEnabled()) {
@@ -847,7 +840,7 @@ void CamuleApp::OnlineSig(bool zero /* reset stats (used on shutdown) */)
 
 	wxTextFile amulesig_out;
 	wxTextFile emulesig_out;
-	
+
 	// Open both files if needed
 	if ( !emulesig_out.Create( m_emulesig_path) ) {
 		AddLogLineC(_("Failed to create OnlineSig File"));
@@ -867,7 +860,7 @@ void CamuleApp::OnlineSig(bool zero /* reset stats (used on shutdown) */)
 
 	wxString emulesig_string;
 	wxString temp;
-	
+
 	if (zero) {
 		emulesig_string = wxT("0\xA0.0|0.0|0");
 		amulesig_out.AddLine(wxT("0\n0\n0\n0\n0\n0\n0.0\n0.0\n0\n0"));
@@ -875,7 +868,7 @@ void CamuleApp::OnlineSig(bool zero /* reset stats (used on shutdown) */)
 		if (IsConnectedED2K()) {
 
 			temp = CFormat(wxT("%d")) % serverconnect->GetCurrentServer()->GetPort();
-			
+
 			// We are online
 			emulesig_string =
 				// Connected
@@ -947,7 +940,7 @@ void CamuleApp::OnlineSig(bool zero /* reset stats (used on shutdown) */)
 		// Number of users waiting for upload
 		temp = CFormat(wxT("%d")) % theStats::GetWaitingUserCount();
 
-		emulesig_string += temp; 
+		emulesig_string += temp;
 		amulesig_out.AddLine(temp);
 
 		// Number of shared files (not on eMule)
@@ -1003,21 +996,23 @@ void CamuleApp::OnlineSig(bool zero /* reset stats (used on shutdown) */)
 void CamuleApp::OnFatalException()
 {
 	/* Print the backtrace */
-	fprintf(stderr, "\n--------------------------------------------------------------------------------\n");	
-	fprintf(stderr, "A fatal error has occurred and aMule has crashed.\n");
-	fprintf(stderr, "Please assist us in fixing this problem by posting the backtrace below in our\n");
-	fprintf(stderr, "'aMule Crashes' forum and include as much information as possible regarding the\n");
-	fprintf(stderr, "circumstances of this crash. The forum is located here:\n");
-	fprintf(stderr, "    http://forum.amule.org/index.php?board=67.0\n");
-	fprintf(stderr, "If possible, please try to generate a real backtrace of this crash:\n");
-	fprintf(stderr, "    http://wiki.amule.org/index.php/Backtraces\n\n");
-	fprintf(stderr, "----------------------------=| BACKTRACE FOLLOWS: |=----------------------------\n");
-	fprintf(stderr, "Current version is: %s\n", strFullMuleVersion);
-	fprintf(stderr, "Running on: %s\n\n", strOSDescription);
-	
-	print_backtrace(1); // 1 == skip this function.
-	
-	fprintf(stderr, "\n--------------------------------------------------------------------------------\n");	
+	wxString msg;
+	msg	<< wxT("\n--------------------------------------------------------------------------------\n")
+		<< wxT("A fatal error has occurred and aMule has crashed.\n")
+		<< wxT("Please assist us in fixing this problem by posting the backtrace below in our\n")
+		<< wxT("'aMule Crashes' forum and include as much information as possible regarding the\n")
+		<< wxT("circumstances of this crash. The forum is located here:\n")
+		<< wxT("    http://forum.amule.org/index.php?board=67.0\n")
+		<< wxT("If possible, please try to generate a real backtrace of this crash:\n")
+		<< wxT("    http://wiki.amule.org/index.php/Backtraces\n\n")
+		<< wxT("----------------------------=| BACKTRACE FOLLOWS: |=----------------------------\n")
+		<< wxT("Current version is: ") << FullMuleVersion
+		<< wxT("\nRunning on: ") << OSDescription
+		<< wxT("\n\n")
+		<< get_backtrace(1) // 1 == skip this function.
+		<< wxT("\n--------------------------------------------------------------------------------\n");
+
+	theLogger.EmergencyLog(msg, true);
 }
 #endif
 
@@ -1043,7 +1038,7 @@ void CamuleApp::Trigger_New_version(wxString new_version)
 		info += _("we give no warranty it won't break anything, burn your house,\n");
 		info += _("or kill your dog. But it *should* be safe to use anyway.\n");
 	}
-	
+
 	// General info
 	info += wxT("\n");
 	info += _("More information, support and new releases can found at our homepage,\n");
@@ -1055,7 +1050,7 @@ void CamuleApp::Trigger_New_version(wxString new_version)
 }
 
 
-void CamuleApp::SetOSFiles(const wxString new_path)
+void CamuleApp::SetOSFiles(const wxString& new_path)
 {
 	if ( thePrefs::IsOnlineSignatureEnabled() ) {
 		if ( ::wxDirExists(new_path) ) {
@@ -1077,26 +1072,27 @@ void CamuleApp::SetOSFiles(const wxString new_path)
 #ifndef wxUSE_STACKWALKER
 #define wxUSE_STACKWALKER 0
 #endif
-void CamuleApp::OnAssertFailure(const wxChar* file, int line, 
+void CamuleApp::OnAssertFailure(const wxChar* file, int line,
 				const wxChar* func, const wxChar* cond, const wxChar* msg)
 {
-	if (!wxUSE_STACKWALKER || !wxThread::IsMain() || !IsRunning()) {
-		wxString errmsg = CFormat( wxT("%s:%s:%d: Assertion '%s' failed. %s") )
-			% file % func % line % cond % ( msg ? msg : wxT("") );
+	wxString errmsg = CFormat( wxT("Assertion failed: %s:%s:%d: Assertion '%s' failed. %s\nBacktrace follows:\n%s\n") )
+		% file % func % line % cond % ( msg ? msg : wxT("") )
+		% get_backtrace(2);		// Skip the function-calls directly related to the assert call.
+	theLogger.EmergencyLog(errmsg, false);
 
-		fprintf(stderr, "Assertion failed: %s\n", (const char*)unicode2char(errmsg));
-		
-		// Skip the function-calls directly related to the assert call.
-		fprintf(stderr, "\nBacktrace follows:\n");
-		print_backtrace(3);
-		fprintf(stderr, "\n");
-	}
-		
 	if (wxThread::IsMain() && IsRunning()) {
 		AMULE_APP_BASE::OnAssertFailure(file, line, func, cond, msg);
-	} else {	
+	} else {
+#ifdef _MSC_VER
+		wxString s = CFormat(wxT("%s in %s")) % cond % func;
+		if (msg) {
+			s << wxT(" : ") << msg;
+		}
+		_wassert(s.wc_str(), file, line);
+#else
 		// Abort, allows gdb to catch the assertion
 		raise( SIGABRT );
+#endif
 	}
 }
 #endif
@@ -1104,7 +1100,7 @@ void CamuleApp::OnAssertFailure(const wxChar* file, int line,
 
 void CamuleApp::OnUDPDnsDone(CMuleInternalEvent& evt)
 {
-	CServerUDPSocket* socket =(CServerUDPSocket*)evt.GetClientData();	
+	CServerUDPSocket* socket =reinterpret_cast<CServerUDPSocket*>(evt.GetClientData());
 	socket->OnHostnameResolved(evt.GetExtraLong());
 }
 
@@ -1161,7 +1157,7 @@ void CamuleApp::OnCoreTimer(CTimerEvent& WXUNUSED(evt))
 #endif
 
 	// There is a theoretical chance that the core time function can recurse:
-	// if an event function gets blocked on a mutex (communicating with the 
+	// if an event function gets blocked on a mutex (communicating with the
 	// UploadBandwidthThrottler) wx spawns a new event loop and processes more events.
 	// If CPU load gets high a new core timer event could be generated before the last
 	// one was finished and so recursion could occur, which would be bad.
@@ -1184,20 +1180,20 @@ void CamuleApp::OnCoreTimer(CTimerEvent& WXUNUSED(evt))
 		// history list keeps an average of one node per second and gets thinned out
 		// correctly as time progresses.
 		msPrevHist += 1000;
-		
+
 		m_statistics->RecordHistory();
-		
+
 	}
-	
-	
+
+
 	if (msCur-msPrev1 > 1000) {  // approximately every second
 		msPrev1 = msCur;
 		clientcredits->Process();
 		clientlist->Process();
-		
+
 		// Publish files to server if needed.
 		sharedfiles->Process();
-		
+
 		if( Kademlia::CKademlia::IsRunning() ) {
 			Kademlia::CKademlia::Process();
 			if(Kademlia::CKademlia::GetPrefs()->HasLostConnection()) {
@@ -1209,7 +1205,7 @@ void CamuleApp::OnCoreTimer(CTimerEvent& WXUNUSED(evt))
 				}
 			}
 		}
-			
+
 		if( serverconnect->IsConnecting() && !serverconnect->IsSingleConnect() ) {
 			serverconnect->TryAnotherConnectionrequest();
 		}
@@ -1217,10 +1213,10 @@ void CamuleApp::OnCoreTimer(CTimerEvent& WXUNUSED(evt))
 			serverconnect->CheckForTimeout();
 		}
 		listensocket->UpdateConnectionsStatus();
-		
+
 	}
 
-	
+
 	if (msCur-msPrev5 > 5000) {  // every 5 seconds
 		msPrev5 = msCur;
 		listensocket->Process();
@@ -1233,17 +1229,17 @@ void CamuleApp::OnCoreTimer(CTimerEvent& WXUNUSED(evt))
 
 	// Special
 	if (msCur - msPrevOS >= thePrefs::GetOSUpdate() * 1000ull) {
-		OnlineSig(); // Added By Bouc7		
+		OnlineSig(); // Added By Bouc7
 		msPrevOS = msCur;
 	}
-	
+
 	if (msCur - msPrevKnownMet >= 30*60*1000/*There must be a prefs option for this*/) {
 		// Save Shared Files data
 		knownfiles->Save();
 		msPrevKnownMet = msCur;
 	}
 
-	
+
 	// Recomended by lugdunummaster himself - from emule 0.30c
 	serverconnect->KeepConnectionAlive();
 
@@ -1255,10 +1251,10 @@ void CamuleApp::OnCoreTimer(CTimerEvent& WXUNUSED(evt))
 void CamuleApp::OnFinishedHashing(CHashingEvent& evt)
 {
 	wxCHECK_RET(evt.GetResult(), wxT("No result of hashing"));
-	
+
 	CKnownFile* owner = const_cast<CKnownFile*>(evt.GetOwner());
 	CKnownFile* result = evt.GetResult();
-	
+
 	if (owner) {
 		// Check if the partfile still exists, as it might have
 		// been deleted in the mean time.
@@ -1276,8 +1272,8 @@ void CamuleApp::OnFinishedHashing(CHashingEvent& evt)
 			sharedfiles->SafeAddKFile(result);
 
 			bytecount += result->GetFileSize();
-			// If we have added files with a total size of ~300mb
-			if (bytecount >= 314572800) {
+			// If we have added files with a total size of ~3000mb
+			if (bytecount >= wxULL(3145728000)) {
 				AddDebugLogLineN(logKnownFiles, wxT("Failsafe for crash on file hashing creation"));
 				if ( m_app_state != APP_STATE_SHUTTINGDOWN ) {
 					knownfiles->Save();
@@ -1296,10 +1292,10 @@ void CamuleApp::OnFinishedHashing(CHashingEvent& evt)
 void CamuleApp::OnFinishedAICHHashing(CHashingEvent& evt)
 {
 	wxCHECK_RET(evt.GetResult(), wxT("No result of AICH-hashing"));
-	
+
 	CKnownFile* owner = const_cast<CKnownFile*>(evt.GetOwner());
 	CScopedPtr<CKnownFile> result(evt.GetResult());
-	
+
 	if (result->GetAICHHashset()->GetStatus() == AICH_HASHSETCOMPLETE) {
 		CAICHHashSet* oldSet = owner->GetAICHHashset();
 		CAICHHashSet* newSet = result->GetAICHHashset();
@@ -1318,7 +1314,7 @@ void CamuleApp::OnFinishedCompletion(CCompletionEvent& evt)
 	CPartFile* completed = const_cast<CPartFile*>(evt.GetOwner());
 	wxCHECK_RET(completed, wxT("Completion event sent for unspecified file"));
 	wxASSERT_MSG(downloadqueue->IsPartFile(completed), wxT("CCompletionEvent for unknown partfile."));
-	
+
 	completed->CompleteFileEnded(evt.ErrorOccured(), evt.GetFullPath());
 	if (evt.ErrorOccured()) {
 		CUserEvents::ProcessEvent(CUserEvents::ErrorOnCompletion, completed);
@@ -1372,9 +1368,15 @@ void CamuleApp::ShutDown()
 
 	// Signal the hashing thread to terminate
 	m_app_state = APP_STATE_SHUTTINGDOWN;
-	
+
+	// Stop ASIO thread
+#ifdef ASIO_SOCKETS			// only needed to suppress the log message in non-Asio build
+	AddDebugLogLineN(logGeneral, wxT("Terminate ASIO thread."));
+	m_AsioService->Stop();
+#endif
+
 	StopKad();
-	
+
 	// Kry - Save the sources seeds on app exit
 	if (thePrefs::GetSrcSeedsOn()) {
 		downloadqueue->SaveSourceSeeds();
@@ -1394,9 +1396,9 @@ void CamuleApp::ShutDown()
 	// Close sockets to avoid new clients coming in
 	if (listensocket) {
 		listensocket->Close();
-		listensocket->KillAllSockets();	
+		listensocket->KillAllSockets();
 	}
-	
+
 	if (serverconnect) {
 		serverconnect->Disconnect();
 	}
@@ -1410,7 +1412,7 @@ void CamuleApp::ShutDown()
 		}
 	}
 #endif
-	
+
 	// saving data & stuff
 	if (knownfiles) {
 		knownfiles->Save();
@@ -1424,7 +1426,7 @@ void CamuleApp::ShutDown()
 	if (clientlist) {
 		clientlist->DeleteAll();
 	}
-	
+
 	// Log
 	AddDebugLogLineN(logGeneral, wxT("CamuleApp::ShutDown() has ended."));
 }
@@ -1449,15 +1451,15 @@ uint32 CamuleApp::GetPublicIP(bool ignorelocal) const
 			return ignorelocal ? 0 : m_localip;
 		}
 	}
-	
-	return m_dwPublicIP;	
+
+	return m_dwPublicIP;
 }
 
 
 void CamuleApp::SetPublicIP(const uint32 dwIP)
 {
 	wxASSERT((dwIP == 0) || !IsLowID(dwIP));
-	
+
 	if (dwIP != 0 && dwIP != m_dwPublicIP && serverlist != NULL) {
 		m_dwPublicIP = dwIP;
 		serverlist->CheckForExpiredUDPKeys();
@@ -1532,7 +1534,11 @@ void CamuleApp::OnFinishedHTTPDownload(CMuleInternalEvent& event)
 			ipfilter->DownloadFinished(event.GetExtraLong());
 			break;
 		case HTTP_ServerMet:
-			serverlist->DownloadFinished(event.GetExtraLong());
+			if (serverlist->DownloadFinished(event.GetExtraLong()) && !IsConnectedED2K()) {
+				// If successfully downloaded a server list, and are not connected at the moment, try to connect.
+				// This happens when no server met is available on startup.
+				serverconnect->ConnectToAnyServer();
+			}
 			break;
 		case HTTP_ServerMetAuto:
 			serverlist->AutoDownloadFinished(event.GetExtraLong());
@@ -1542,7 +1548,7 @@ void CamuleApp::OnFinishedHTTPDownload(CMuleInternalEvent& event)
 			break;
 		case HTTP_NodesDat:
 			if (event.GetExtraLong() == HTTP_Success) {
-				
+
 				wxString file = ConfigDir + wxT("nodes.dat");
 				if (wxFileExists(file)) {
 					wxRemoveFile(file);
@@ -1553,10 +1559,10 @@ void CamuleApp::OnFinishedHTTPDownload(CMuleInternalEvent& event)
 				}
 
 				wxRenameFile(file + wxT(".download"),file);
-				
+
 				Kademlia::CKademlia::Start();
 				theApp->ShowConnectionState();
-				
+			// cppcheck-suppress duplicateBranch
 			} else if (event.GetExtraLong() == HTTP_Skipped) {
 				AddLogLineN(CFormat(_("Skipped download of %s, because requested file is not newer.")) % wxT("nodes.dat"));
 			} else {
@@ -1574,11 +1580,11 @@ void CamuleApp::OnFinishedHTTPDownload(CMuleInternalEvent& event)
 }
 
 void CamuleApp::CheckNewVersion(uint32 result)
-{	
+{
 	if (result == HTTP_Success) {
 		wxString filename = ConfigDir + wxT("last_version_check");
 		wxTextFile file;
-		
+
 		if (!file.Open(filename)) {
 			AddLogLineC(_("Failed to open the downloaded version check file") );
 			return;
@@ -1587,9 +1593,9 @@ void CamuleApp::CheckNewVersion(uint32 result)
 		} else {
 			wxString versionLine = file.GetFirstLine();
 			wxStringTokenizer tkz(versionLine, wxT("."));
-			
+
 			AddDebugLogLineN(logGeneral, wxString(wxT("Running: ")) + wxT(VERSION) + wxT(", Version check: ") + versionLine);
-			
+
 			long fields[] = {0, 0, 0};
 			for (int i = 0; i < 3; ++i) {
 				if (!tkz.HasMoreTokens()) {
@@ -1597,7 +1603,7 @@ void CamuleApp::CheckNewVersion(uint32 result)
 					return;
 				} else {
 					wxString token = tkz.GetNextToken();
-					
+
 					if (!token.ToLong(&fields[i])) {
 						AddLogLineC(_("Corrupted version check file"));
 						return;
@@ -1607,9 +1613,10 @@ void CamuleApp::CheckNewVersion(uint32 result)
 
 			long curVer = make_full_ed2k_version(VERSION_MJR, VERSION_MIN, VERSION_UPDATE);
 			long newVer = make_full_ed2k_version(fields[0], fields[1], fields[2]);
-			
+
 			if (curVer < newVer) {
 				AddLogLineC(_("You are using an outdated version of aMule!"));
+				// cppcheck-suppress zerodiv
 				AddLogLineN(CFormat(_("Your aMule version is %i.%i.%i and the latest version is %li.%li.%li")) % VERSION_MJR % VERSION_MIN % VERSION_UPDATE % fields[0] % fields[1] % fields[2]);
 				AddLogLineN(_("The latest version can always be found at http://www.amule.org"));
 				#ifdef AMULE_DAEMON
@@ -1620,13 +1627,13 @@ void CamuleApp::CheckNewVersion(uint32 result)
 				AddLogLineN(_("Your copy of aMule is up to date."));
 			}
 		}
-		
+
 		file.Close();
 		wxRemoveFile(filename);
 	} else {
 		AddLogLineC(_("Failed to download the version check file"));
-	}	
-	
+	}
+
 }
 
 
@@ -1644,7 +1651,7 @@ bool CamuleApp::IsConnectedED2K() const
 
 bool CamuleApp::IsConnectedKad() const
 {
-	return Kademlia::CKademlia::IsConnected(); 
+	return Kademlia::CKademlia::IsConnected();
 }
 
 
@@ -1784,14 +1791,14 @@ bool CamuleApp::CanDoCallback(uint32 clientServerIP, uint16 clientServerPort)
 
 void CamuleApp::ShowUserCount() {
 	uint32 totaluser = 0, totalfile = 0;
-	
+
 	theApp->serverlist->GetUserFileStatus( totaluser, totalfile );
-	
+
 	wxString buffer;
-	
+
 	static const wxString s_singlenetstatusformat = _("Users: %s | Files: %s");
 	static const wxString s_bothnetstatusformat = _("Users: E: %s K: %s | Files: E: %s K: %s");
-	
+
 	if (thePrefs::GetNetworkED2K() && thePrefs::GetNetworkKademlia()) {
 		buffer = CFormat(s_bothnetstatusformat) % CastItoIShort(totaluser) % CastItoIShort(Kademlia::CKademlia::GetKademliaUsers()) % CastItoIShort(totalfile) % CastItoIShort(Kademlia::CKademlia::GetKademliaFiles());
 	} else if (thePrefs::GetNetworkED2K()) {
@@ -1811,17 +1818,17 @@ void CamuleApp::ListenSocketHandler(wxSocketEvent& event)
 	{ wxCHECK_RET(listensocket, wxT("Connection-event for NULL'd listen-socket")); }
 	{ wxCHECK_RET(event.GetSocketEvent() == wxSOCKET_CONNECTION,
 		wxT("Invalid event received for listen-socket")); }
-	
+
 	if (m_app_state == APP_STATE_RUNNING) {
-		listensocket->OnAccept(0);
+		listensocket->OnAccept();
 	} else if (m_app_state == APP_STATE_STARTING) {
 		// When starting up, connection may be made before we are able
 		// to handle them. However, if these are ignored, no futher
 		// connection-events will be triggered, so we have to accept it.
-		wxSocketBase* socket = listensocket->Accept(false);
-		
+		CLibSocket* socket = listensocket->Accept(false);
+
 		wxCHECK_RET(socket, wxT("NULL returned by Accept() during startup"));
-		
+
 		socket->Destroy();
 	}
 }
@@ -1830,13 +1837,13 @@ void CamuleApp::ListenSocketHandler(wxSocketEvent& event)
 void CamuleApp::ShowConnectionState(bool forceUpdate)
 {
 	static uint8 old_state = (1<<7); // This flag doesn't exist
-	
+
 	uint8 state = 0;
-	
+
 	if (theApp->serverconnect->IsConnected()) {
 		state |= CONNECTED_ED2K;
 	}
-	
+
 	if (Kademlia::CKademlia::IsRunning()) {
 		if (Kademlia::CKademlia::IsConnected()) {
 			if (!Kademlia::CKademlia::IsFirewalled()) {
@@ -1848,11 +1855,11 @@ void CamuleApp::ShowConnectionState(bool forceUpdate)
 			state |= CONNECTED_KAD_NOT;
 		}
 	}
-	
+
 	if (old_state != state) {
-		// Get the changed value 
+		// Get the changed value
 		int changed_flags = old_state ^ state;
-		
+
 		if (changed_flags & CONNECTED_ED2K) {
 			// ED2K status changed
 			wxString connected_server;
@@ -1866,6 +1873,7 @@ void CamuleApp::ShowConnectionState(bool forceUpdate)
 
 				AddLogLineC(CFormat(_("Connected to %s %s")) % connected_server % id);
 			} else {
+				// cppcheck-suppress duplicateBranch
 				if ( theApp->serverconnect->IsConnecting() ) {
 					AddLogLineC(CFormat(_("Connecting to %s")) % connected_server);
 				} else {
@@ -1873,17 +1881,19 @@ void CamuleApp::ShowConnectionState(bool forceUpdate)
 				}
 			}
 		}
-		
+
 		if (changed_flags & CONNECTED_KAD_NOT) {
+			// cppcheck-suppress duplicateBranch
 			if (state & CONNECTED_KAD_NOT) {
 				AddLogLineC(_("Kad started."));
 			} else {
 				AddLogLineC(_("Kad stopped."));
 			}
 		}
-		
+
 		if (changed_flags & (CONNECTED_KAD_OK | CONNECTED_KAD_FIREWALLED)) {
 			if (state & (CONNECTED_KAD_OK | CONNECTED_KAD_FIREWALLED)) {
+				// cppcheck-suppress duplicateBranch
 				if (state & CONNECTED_KAD_OK) {
 					AddLogLineC(_("Connected to Kad (ok)"));
 				} else {
@@ -1893,12 +1903,12 @@ void CamuleApp::ShowConnectionState(bool forceUpdate)
 				AddLogLineC(_("Disconnected from Kad"));
 			}
 		}
-		
+
 		old_state = state;
-	
+
 		theApp->downloadqueue->OnConnectionState(IsConnected());
 	}
-	
+
 	ShowUserCount();
 	Notify_ShowConnState(forceUpdate);
 }
@@ -1906,7 +1916,7 @@ void CamuleApp::ShowConnectionState(bool forceUpdate)
 
 void CamuleApp::UDPSocketHandler(wxSocketEvent& event)
 {
-	CMuleUDPSocket* socket = (CMuleUDPSocket*)(event.GetClientData());
+	CMuleUDPSocket* socket = reinterpret_cast<CMuleUDPSocket*>(event.GetClientData());
 	wxCHECK_RET(socket, wxT("No socket owner specified."));
 
 	if (IsOnShutDown() || thePrefs::IsUDPDisabled()) return;
@@ -1927,7 +1937,7 @@ void CamuleApp::UDPSocketHandler(wxSocketEvent& event)
 		case wxSOCKET_OUTPUT:
 			socket->OnSend(0);
 			break;
-		
+
 		case wxSOCKET_LOST:
 			socket->OnDisconnected(0);
 			break;
@@ -1942,7 +1952,7 @@ void CamuleApp::UDPSocketHandler(wxSocketEvent& event)
 void CamuleApp::OnUnhandledException()
 {
 	// Call the generic exception-handler.
-	fprintf(stderr, "\taMule Version: %s\n", (const char*)unicode2char(GetFullMuleVersion()));	
+	fprintf(stderr, "\taMule Version: %s\n", (const char*)unicode2char(GetFullMuleVersion()));
 	::OnUnhandledException();
 }
 
@@ -1979,7 +1989,7 @@ void CamuleApp::BootstrapKad(uint32 ip, uint16 port)
 		Kademlia::CKademlia::Start();
 		theApp->ShowConnectionState();
 	}
-	
+
 	Kademlia::CKademlia::Bootstrap(ip, port);
 }
 
@@ -1987,7 +1997,7 @@ void CamuleApp::BootstrapKad(uint32 ip, uint16 port)
 void CamuleApp::UpdateNotesDat(const wxString& url)
 {
 	wxString strTempFilename(theApp->ConfigDir + wxT("nodes.dat.download"));
-		
+
 	CHTTPDownloadThread *downloader = new CHTTPDownloadThread(url, strTempFilename, theApp->ConfigDir + wxT("nodes.dat"), HTTP_NodesDat, true, false);
 	downloader->Create();
 	downloader->Run();
@@ -2013,7 +2023,7 @@ uint32 CamuleApp::GetED2KID() const {
 
 uint32 CamuleApp::GetID() const {
 	uint32 ID;
-	
+
 	if( Kademlia::CKademlia::IsConnected() && !Kademlia::CKademlia::IsFirewalled() ) {
 		// We trust Kad above ED2K
 		ID = ENDIAN_NTOHL(Kademlia::CKademlia::GetIPAddress());
@@ -2025,8 +2035,8 @@ uint32 CamuleApp::GetID() const {
 	} else {
 		ID = 0;
 	}
-	
-	return ID;	
+
+	return ID;
 }
 
 DEFINE_LOCAL_EVENT_TYPE(wxEVT_CORE_FINISHED_HTTP_DOWNLOAD)
diff --git a/src/amule.h b/src/amule.h
index 9ec5e8e..864086b 100644
--- a/src/amule.h
+++ b/src/amule.h
@@ -34,10 +34,10 @@
 
 #include "Types.h"		// Needed for int32, uint16 and uint64
 #include <map>
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	#include <signal.h>
 //	#include <wx/unix/execute.h>
-#endif // __WXMSW__
+#endif // __WINDOWS__ 
 
 
 class CAbstractFile;
@@ -63,6 +63,7 @@ class CFriendList;
 class CClientUDPSocket;
 class CIPFilter;
 class UploadBandwidthThrottler;
+class CAsioService;
 #ifdef ENABLE_UPNP
 class CUPnPControlPoint;
 class CUPnPPortMapping;
@@ -114,8 +115,8 @@ private:
 
 	bool		CheckPassedLink(const wxString &in, wxString &out, int cat);
 protected:
-	char		*strFullMuleVersion;
-	char		*strOSDescription;
+	wxString	FullMuleVersion;
+	wxString	OSDescription;
 	wxString	OSType;
 	bool		enable_daemon_fork;
 	bool		ec_config;
@@ -138,8 +139,7 @@ public:
 	void		AddLinksFromFile();
 	// URL functions
 	wxString	CreateMagnetLink(const CAbstractFile *f);
-	wxString	CreateED2kLink(const CAbstractFile* f, bool add_source = false, bool use_hostname = false, bool addcryptoptions = false);
-	wxString	CreateED2kAICHLink(const CKnownFile* f);
+	wxString	CreateED2kLink(const CAbstractFile* f, bool add_source = false, bool use_hostname = false, bool add_cryptoptions = false, bool add_AICH = false);
 	// Who am I ?
 #ifdef AMULE_DAEMON
 	bool		IsDaemon() const { return true; }
@@ -259,6 +259,7 @@ public:
 	CStatistics*		m_statistics;
 	CIPFilter*		ipfilter;
 	UploadBandwidthThrottler* uploadBandwidthThrottler;
+	CAsioService*		m_AsioService;
 #ifdef ENABLE_UPNP
 	CUPnPControlPoint*	m_upnp;
 	std::vector<CUPnPPortMapping> m_upnpMappings;
@@ -276,7 +277,7 @@ public:
 #ifdef __DEBUG__
 	void AddSocketDeleteDebug(uint32 socket_pointer, uint32 creation_time);
 #endif
-	void SetOSFiles(const wxString new_path);
+	void SetOSFiles(const wxString& new_path);
 
 	const wxString& GetOSType() const { return OSType; }
 
@@ -424,15 +425,24 @@ extern CamuleGuiApp *theApp;
 // but works only with 2.9
 
 #if !wxCHECK_VERSION(2, 9, 0)
-	#ifdef __WXMSW__
-		// MSW: can't run amuled with 2.8 anyway, just get it compiled
-		#define AMULED_DUMMY
-	#else
-		#define AMULED28
+	// wx 2.8 needs a hand-made event loop in any case
+	#define AMULED28_EVENTLOOP
+
+	// wx 2.8 also needs extra socket code, unless we have ASIO sockets
+	// 
+	#ifdef HAVE_CONFIG_H
+	#	include "config.h"		// defines ASIO_SOCKETS
+	#endif
+
+	#ifndef ASIO_SOCKETS
+		// MSW: can't run amuled with 2.8 without ASIO sockets, just get it compiled
+		#ifndef __WINDOWS__ 
+			#define AMULED28_SOCKETS
+		#endif
 	#endif
 #endif
 
-#ifdef AMULED28
+#ifdef AMULED28_SOCKETS
 #include <wx/socket.h>
 
 class CSocketSet;
@@ -463,10 +473,18 @@ public:
 };
 
 
-#endif // AMULED28
+#endif // AMULED28_SOCKETS
+
+// AppTrait functionality is required for 2.8 wx sockets
+// Otherwise it's used to prevent zombie child processes,
+// which stops working with wx 2.9.5.
+// So disable it there (no idea if this has a noticeable impact).
+
+#if !wxCHECK_VERSION(2, 9, 5) && !defined(__WINDOWS__ )
+#define AMULED_APPTRAITS
+#endif
 
-// no AppTraits used on Windows
-#ifndef __WXMSW__
+#ifdef AMULED_APPTRAITS
 
 typedef std::map<int, class wxEndProcessData *> EndProcessDataMap;
 
@@ -478,7 +496,7 @@ private:
 	struct sigaction m_oldSignalChildAction;
 	struct sigaction m_newSignalChildAction;
 
-#ifdef AMULED28
+#ifdef AMULED28_SOCKETS
 	CAmuledGSocketFuncTable *m_table;
 	wxMutex m_lock;
 	std::list<wxObject *> m_sched_delete;
@@ -489,10 +507,10 @@ public:
 	virtual void RemoveFromPendingDelete(wxObject *object);
 
 	void DeletePending();
-#else	// AMULED28
+#else	// AMULED28_SOCKETS
 public:
 	CDaemonAppTraits();
-#endif	// !AMULED28
+#endif	// !AMULED28_SOCKETS
 
 	virtual int WaitForChild(wxExecuteData& execData);
 
@@ -503,14 +521,17 @@ public:
 
 void OnSignalChildHandler(int signal, siginfo_t *siginfo, void *ucontext);
 pid_t AmuleWaitPid(pid_t pid, int *status, int options, wxString *msg);
-#endif // __WXMSW__
+
+#endif // AMULED_APPTRAITS
 
 
 class CamuleDaemonApp : public CamuleApp
 {
 private:
-#ifdef AMULED28
+#ifdef AMULED28_EVENTLOOP
 	bool m_Exit;
+#endif
+#ifdef AMULED28_SOCKETS
 	CAmuledGSocketFuncTable *m_table;
 #endif
 	bool OnInit();
@@ -519,25 +540,21 @@ private:
 
 	virtual int InitGui(bool geometry_enable, wxString &geometry_string);
 
-#ifndef __WXMSW__
+#ifdef AMULED_APPTRAITS
 	struct sigaction m_oldSignalChildAction;
 	struct sigaction m_newSignalChildAction;
 public:
 	wxAppTraits *CreateTraits();
-#endif // __WXMSW__
+#endif // AMULED_APPTRAITS
 
 public:
 
-#ifdef AMULED28
+#ifdef AMULED28_EVENTLOOP
 	CamuleDaemonApp();
 
 	void ExitMainLoop() { m_Exit = true; }
 #endif
 
-#ifdef AMULED_DUMMY
-	void ExitMainLoop() {}
-#endif
-
 	bool CopyTextToClipboard(wxString strText);
 
 	virtual int ShowAlert(wxString msg, wxString title, int flags);
diff --git a/src/amuleAppCommon.cpp b/src/amuleAppCommon.cpp
index f8f6096..6208360 100644
--- a/src/amuleAppCommon.cpp
+++ b/src/amuleAppCommon.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -97,7 +97,7 @@ void CamuleAppCommon::AddLinksFromFile()
 	if (!wxFile::Exists(fullPath)) {
 		return;
 	}
-	
+
 	// Attempt to lock the ED2KLinks file.
 	CFileLock lock((const char*)unicode2char(fullPath));
 
@@ -105,7 +105,7 @@ void CamuleAppCommon::AddLinksFromFile()
 	if ( file.Open() ) {
 		for ( unsigned int i = 0; i < file.GetLineCount(); i++ ) {
 			wxString line = file.GetLine( i ).Strip( wxString::both );
-			
+
 			if ( !line.IsEmpty() ) {
 				// Special case! used by a secondary running mule to raise this one.
 				if (line == wxT("RAISE_DIALOG")) {
@@ -127,7 +127,7 @@ void CamuleAppCommon::AddLinksFromFile()
 	} else {
 		AddLogLineNS(_("Failed to open ED2KLinks file."));
 	}
-	
+
 	// Delete the file.
 	wxRemoveFile(theApp->ConfigDir + wxT("ED2KLinks"));
 }
@@ -146,15 +146,26 @@ wxString CamuleAppCommon::CreateMagnetLink(const CAbstractFile *f)
 	return uri.GetLink();
 }
 
+
 // Returns a ed2k file URL
-wxString CamuleAppCommon::CreateED2kLink(const CAbstractFile *f, bool add_source, bool use_hostname, bool addcryptoptions)
+wxString CamuleAppCommon::CreateED2kLink(const CAbstractFile *f, bool add_source, bool use_hostname, bool add_cryptoptions, bool add_AICH)
 {
-	wxASSERT(!(!add_source && (use_hostname || addcryptoptions)));
+	wxASSERT(!(!add_source && (use_hostname || add_cryptoptions)));
 	// Construct URL like this: ed2k://|file|<filename>|<size>|<hash>|/
-	wxString strURL = CFormat(wxT("ed2k://|file|%s|%i|%s|/"))
+	wxString strURL = CFormat(wxT("ed2k://|file|%s|%i|%s|"))
 		% f->GetFileName().Cleanup(false)
 		% f->GetFileSize() % f->GetFileHash().Encode();
-	
+
+	// Append the AICH info
+	if (add_AICH) {
+		const CKnownFile* kf = dynamic_cast<const CKnownFile*>(f);
+		if (kf && kf->HasProperAICHHashSet()) {
+			strURL << wxT("h=") << kf->GetAICHMasterHash() << wxT("|");
+		}
+	}
+
+	strURL << wxT("/");
+
 	if (add_source && theApp->IsConnected() && !theApp->IsFirewalled()) {
 		// Create the first part of the URL
 		strURL << wxT("|sources,");
@@ -169,18 +180,18 @@ wxString CamuleAppCommon::CreateED2kLink(const CAbstractFile *f, bool add_source
 				% ((clientID >> 16) & 0xff)
 				% ((clientID >> 24) & 0xff);
 		}
-		
- 		strURL << wxT(":") <<
+
+		strURL << wxT(":") <<
 			thePrefs::GetPort();
-		
-		if (addcryptoptions) {
+
+		if (add_cryptoptions) {
 			uint8 uSupportsCryptLayer = thePrefs::IsClientCryptLayerSupported() ? 1 : 0;
 			uint8 uRequestsCryptLayer = thePrefs::IsClientCryptLayerRequested() ? 1 : 0;
 			uint8 uRequiresCryptLayer = thePrefs::IsClientCryptLayerRequired() ? 1 : 0;
 			uint16 byCryptOptions = (uRequiresCryptLayer << 2) | (uRequestsCryptLayer << 1) | (uSupportsCryptLayer << 0) | (uSupportsCryptLayer ? 0x80 : 0x00);
-			
+
 			strURL << wxT(":") << byCryptOptions;
-			
+
 			if (byCryptOptions & 0x80) {
 				strURL << wxT(":") << thePrefs::GetUserHash().Encode();
 			}
@@ -190,32 +201,16 @@ wxString CamuleAppCommon::CreateED2kLink(const CAbstractFile *f, bool add_source
 		AddLogLineC(_("WARNING: You can't add yourself as a source for an eD2k link while having a lowid."));
 	}
 
-	// Result is "ed2k://|file|<filename>|<size>|<hash>|/|sources,[(<ip>|<hostname>):<port>[:cryptoptions[:hash]]]|/"
+	// Result is "ed2k://|file|<filename>|<size>|<hash>|[h=<AICH master hash>|]/|sources,[(<ip>|<hostname>):<port>[:cryptoptions[:hash]]]|/"
 	return strURL;
 }
 
-// Returns a ed2k link with AICH info if available
-wxString CamuleAppCommon::CreateED2kAICHLink(const CKnownFile* f)
-{
-	// Create the first part of the URL
-	wxString strURL = CreateED2kLink(f);
-	// Append the AICH info
-	if (f->HasProperAICHHashSet()) {
-		strURL.RemoveLast();		// remove trailing '/'
-		strURL << wxT("h=") << f->GetAICHMasterHash() << wxT("|/");
-	}	
-
-	// Result is "ed2k://|file|<filename>|<size>|<hash>|h=<AICH master hash>|/"
-	return strURL;
-}
 
 bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 {
 	theApp->SetAppName(wxT("aMule"));
-	wxString FullMuleVersion = GetFullMuleVersion();
-	wxString OSDescription = wxGetOsDescription();
-	strFullMuleVersion = strdup((const char *)unicode2char(FullMuleVersion));
-	strOSDescription = strdup((const char *)unicode2char(OSDescription));
+	FullMuleVersion = GetFullMuleVersion();
+	OSDescription = wxGetOsDescription();
 	OSType = OSDescription.BeforeFirst( wxT(' ') );
 	if ( OSType.IsEmpty() ) {
 		OSType = wxT("Unknown");
@@ -234,7 +229,7 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 	cmdline.AddSwitch(wxT("e"), wxT("ec-config"), wxT("Configure EC (External Connections)."));
 #else
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	// MSW shows help otions in a dialog box, and the formatting doesn't fit there
 #define HELPTAB wxT("\t")
 #else
@@ -256,7 +251,7 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 	// Change webserver path. This is also a config option, so this switch will go at some time.
 	cmdline.AddOption(wxT("w"), wxT("use-amuleweb"), wxT("Specify location of amuleweb binary."));
 #endif
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	cmdline.AddSwitch(wxT("d"), wxT("disable-fatal"), wxT("Do not handle fatal exception."));
 // Keep stdin open to run valgrind --gen_suppressions
 	cmdline.AddSwitch(wxT("i"), wxT("enable-stdin"), wxT("Do not disable stdin."));
@@ -271,18 +266,18 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 
 	// Show help on --help or invalid commands
 	if ( cmdline.Parse() ) {
-		return false;		
+		return false;
 	} else if (cmdline.Found(wxT("help"))) {
 		cmdline.Usage();
 		return false;
-	}	
+	}
 
 	if ( cmdline.Found(wxT("version"))) {
 		// This looks silly with logging macros that add a timestamp.
 		printf("%s\n", (const char*)unicode2char(wxString(CFormat(wxT("%s (OS: %s)")) % FullMuleVersion % OSType)));
 		return false;
 	}
-	
+
 	if ( cmdline.Found(wxT("config-dir"), &ConfigDir) ) {
 		// Make an absolute path from the config dir
 		wxFileName fn(ConfigDir);
@@ -295,7 +290,11 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 		ConfigDir = GetConfigDir();
 	}
 
-#ifndef __WXMSW__
+	// Backtracing works in MSW.
+	// Problem is just that the backtraces are useless, because apparently the context gets lost 
+	// in the try/catch somewhere.
+	// So leave it out.
+#ifndef __WINDOWS__ 
 	#if wxUSE_ON_FATAL_EXCEPTION
 		if ( !cmdline.Found(wxT("disable-fatal")) ) {
 			// catch fatal exceptions
@@ -305,7 +304,7 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 #endif
 
 	theLogger.SetEnabledStdoutLog(cmdline.Found(wxT("log-stdout")));
-#ifdef AMULE_DAEMON		
+#ifdef AMULE_DAEMON
 	enable_daemon_fork = cmdline.Found(wxT("full-daemon"));
 	if ( cmdline.Found(wxT("pid-file"), &m_PidFile) ) {
 		// Remove any existing PidFile
@@ -329,7 +328,7 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 			AddLogLineNS(wxT("Logging to stdout enabled"));
 		}
 	}
-	
+
 	AddLogLineNS(wxT("Initialising ") + FullMuleVersion);
 
 	// Ensure that "~/.aMule/" is accessible.
@@ -337,7 +336,7 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 	if (!CheckMuleDirectory(wxT("configuration"), CPath(ConfigDir), wxEmptyString, outDir)) {
 		return false;
 	}
-	
+
 	if (cmdline.Found(wxT("reset-config"))) {
 		// Make a backup first.
 		wxRemoveFile(ConfigDir + m_configFile + wxT(".backup"));
@@ -346,6 +345,7 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 	}
 
 	size_t linksPassed = cmdline.GetParamCount();	// number of links from the command line
+	// cppcheck-suppress variableScope
 	int linksActuallyPassed = 0;					// number of links that pass the syntax check
 	if (linksPassed) {
 		long cat = 0;
@@ -370,7 +370,7 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 			AddLogLineCS(wxT("Failed to open 'ED2KLinks', cannot add links."));
 		}
 	}
-	
+
 #if defined(__WXMAC__) && defined(AMULE_DAEMON)
 	//#warning TODO: fix wxSingleInstanceChecker for amuled on Mac (wx link problems)
 	AddLogLineCS(wxT("WARNING: The check for other instances is currently disabled in amuled.\n"
@@ -385,35 +385,35 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 		AddLogLineCS(CFormat(wxT("There is an instance of %s already running")) % m_appName);
 		AddLogLineNS(CFormat(wxT("(lock file: %s%s)")) % ConfigDir % lockfile);
 		if (linksPassed) {
-			AddLogLineNS(CFormat(wxT("passed %d %s to it, finished")) % linksActuallyPassed 
+			AddLogLineNS(CFormat(wxT("passed %d %s to it, finished")) % linksActuallyPassed
 				% (linksPassed == 1 ? wxT("link") : wxT("links")));
 			return false;
 		}
-		
+
 		// This is very tricky. The most secure way to communicate is via ED2K links file
 		wxTextFile ed2kFile(ConfigDir + wxT("ED2KLinks"));
 		if (!ed2kFile.Exists()) {
 			ed2kFile.Create();
 		}
-			
+
 		if (ed2kFile.Open()) {
 			ed2kFile.AddLine(wxT("RAISE_DIALOG"));
 			ed2kFile.Write();
-			
+
 			AddLogLineNS(wxT("Raising current running instance."));
 		} else {
 			AddLogLineCS(wxT("Failed to open 'ED2KFile', cannot signal running instance."));
 		}
-			
+
 		return false;
 	} else {
 		AddLogLineNS(wxT("No other instances are running."));
 	}
 #endif
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	// Close standard-input
-	if ( !cmdline.Found(wxT("enable-stdin")) ) 	{
+	if ( !cmdline.Found(wxT("enable-stdin")) )	{
 		// The full daemon will close all std file-descriptors by itself,
 		// so closing it here would lead to the closing on the first open
 		// file, which is the logfile opened below
@@ -425,7 +425,7 @@ bool CamuleAppCommon::InitCommon(int argc, wxChar ** argv)
 
 	// Create the CFG file we shall use and set the config object as the global cfg file
 	wxConfig::Set(new wxFileConfig( wxEmptyString, wxEmptyString, ConfigDir + m_configFile));
-	
+
 	// Make a backup of the log file
 	CPath logfileName = CPath(ConfigDir + m_logFile);
 	if (logfileName.FileExists()) {
@@ -539,8 +539,8 @@ bool CamuleAppCommon::CheckMuleDirectory(const wxString& desc, const CPath& dire
 		}
 
 		return CheckMuleDirectory(desc, fallback, wxEmptyString, outDir);
-	} 
-	
+	}
+
 	theApp->ShowAlert(msg, wxT("Fatal error."), wxICON_ERROR | wxOK);
 	outDir = CPath(wxEmptyString);
 	return false;
diff --git a/src/amuleDlg.cpp b/src/amuleDlg.cpp
index 3947930..cc5360f 100644
--- a/src/amuleDlg.cpp
+++ b/src/amuleDlg.cpp
@@ -77,7 +77,7 @@
 #endif
 #include "IPFilter.h"
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 #include "aMule.xpm"
 #endif
 
@@ -211,7 +211,7 @@ m_clientSkinNames(CLIENT_SKIN_SIZE)
 	wxInitAllImageHandlers();
 	Apply_Clients_Skin();
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	wxSystemOptions::SetOption(wxT("msw.remap"), 0);
 #endif
 
@@ -1060,7 +1060,7 @@ void CamuleDlg::DoIconize(bool iconize)
 void CamuleDlg::OnMinimize(wxIconizeEvent& evt)
 {
 // Evil Hack: check if the mouse is inside the window
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	if (GetScreenRect().Contains(wxGetMousePosition()))
 #endif
 	{
@@ -1085,7 +1085,7 @@ void CamuleDlg::OnGUITimer(wxTimerEvent& WXUNUSED(evt))
 
 	static uint32	msPrev1, msPrev5;
 
-	uint32 			msCur = theStats::GetUptimeMillis();
+	uint32			msCur = theStats::GetUptimeMillis();
 
 	// can this actually happen under wxwin ?
 	if (!SafeState()) {
@@ -1125,6 +1125,7 @@ void CamuleDlg::OnGUITimer(wxTimerEvent& WXUNUSED(evt))
 			m_transferwnd->clientlistctrl->SortList();
 			m_sharedfileswnd->peerslistctrl->SortList();
 		}
+		m_kademliawnd->UpdateNodeCount(CStatistics::GetKadNodes());
 	}
 
 	if (msCur-msPrev1 > 1000) {  // every second
@@ -1213,7 +1214,7 @@ bool CamuleDlg::Check_and_Init_Skin()
 	wxString userDir(JoinPaths(GetConfigDir(), wxT("skins")) + wxFileName::GetPathSeparator());
 
 	wxStandardPathsBase &spb(wxStandardPaths::Get());
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	wxString dataDir(spb.GetPluginsDir());
 #elif defined(__WXMAC__)
 		wxString dataDir(spb.GetDataDir());
@@ -1429,21 +1430,21 @@ void CamuleDlg::OnExit(wxCommandEvent& WXUNUSED(evt))
 
 void CamuleDlg::DoNetworkRearrange()
 {
+#if !defined(__WXOSX_COCOA__)
+	// in Mac OS with wxWidgets >= 3.0 and COCOA the following seems to cause problems
+	// (window is not refreshed after changes in network settings)
 	wxWindowUpdateLocker freezer(this);
+#endif
 
 	wxToolBarToolBase* toolbarTool = m_wndToolbar->RemoveTool(ID_BUTTONNETWORKS);
 
+	// set the log windows
 	wxNotebook* logs_notebook = CastChild( ID_SRVLOG_NOTEBOOK, wxNotebook);
-	wxNotebook* networks_notebook = CastChild( ID_NETNOTEBOOK, wxNotebook);
 
 	while (logs_notebook->GetPageCount() > 1) {
 		logs_notebook->RemovePage(logs_notebook->GetPageCount() - 1);
 	}
 
-	while (networks_notebook->GetPageCount() > 0) {
-		networks_notebook->RemovePage(networks_notebook->GetPageCount() - 1);
-	}
-
 	if (thePrefs::GetNetworkED2K()) {
 #ifndef CLIENT_GUI
 		logs_notebook->AddPage(m_logpages[1].page, m_logpages[1].name);
@@ -1451,57 +1452,88 @@ void CamuleDlg::DoNetworkRearrange()
 		logs_notebook->AddPage(m_logpages[2].page, m_logpages[2].name);
 	}
 
-	m_networkpages[0].page->Show(thePrefs::GetNetworkED2K());
-
 	if (thePrefs::GetNetworkKademlia()) {
 		logs_notebook->AddPage(m_logpages[3].page, m_logpages[3].name);
 	}
 
-	m_networkpages[1].page->Show(thePrefs::GetNetworkKademlia());
-
-	networks_notebook->Show(thePrefs::GetNetworkED2K() && thePrefs::GetNetworkKademlia());
+	// Set the main window.
+	// If we have both networks active, activate a notebook to select between them.
+	// If only one is active, show the window directly without a surrounding one tab notebook.
 
-	wxWindow* replacement = NULL;
-
-	m_networknotebooksizer->Clear();
+	// States:
+	// 1: ED2K only
+	// 2: Kad only
+	// 3: both (in Notebook)
 
+	static uint8 currentState = 3;		// on startup we have both enabled
+	uint8 newState;
 	if (thePrefs::GetNetworkED2K() && thePrefs::GetNetworkKademlia()) {
+		newState = 3;
 		toolbarTool->SetLabel(_("Networks"));
+	}
+	else if (thePrefs::GetNetworkED2K()) {
+		newState = 1;
+		toolbarTool->SetLabel(_("eD2k network"));
+	}
+	else {			// Kad only or no network
+		newState = 2;	// no network makes no sense anyway, so just show Kad there
+		toolbarTool->SetLabel(thePrefs::GetNetworkKademlia() ? _("Kad network") : _("No network"));
+	}
 
-		m_networkpages[0].page->Reparent(networks_notebook);
-		m_networkpages[1].page->Reparent(networks_notebook);
+	if (newState != currentState) {
+		wxNotebook* networks_notebook = CastChild(ID_NETNOTEBOOK, wxNotebook);
+		// First hide all windows
+		networks_notebook->Show(false);
+		m_networkpages[0].page->Show(false);
+		m_networkpages[1].page->Show(false);
+		m_networknotebooksizer->Clear();
 
-		networks_notebook->AddPage(m_networkpages[0].page, m_networkpages[0].name);
-		networks_notebook->AddPage(m_networkpages[1].page, m_networkpages[1].name);
+		wxWindow* replacement = NULL;
 
-		replacement = networks_notebook;
+		// Move both pages into the notebook if they aren't already there.
+		if (currentState == 1) {	// ED2K
+			m_networkpages[0].page->Reparent(networks_notebook);
+			networks_notebook->InsertPage(0, m_networkpages[0].page, m_networkpages[0].name);
+		} else if (currentState == 2) {	// Kad
+			m_networkpages[1].page->Reparent(networks_notebook);
+			networks_notebook->AddPage(m_networkpages[1].page, m_networkpages[1].name);
+		}
 
-	} else if (thePrefs::GetNetworkED2K()) {
-		toolbarTool->SetLabel(_("eD2k network"));
-		replacement = m_networkpages[0].page;
-		m_networkpages[1].page->Reparent(m_networknotebooksizer->GetContainingWindow());
-	} else if (thePrefs::GetNetworkKademlia()) {
-		toolbarTool->SetLabel(_("Kad network"));
-		m_networkpages[0].page->Reparent(m_networknotebooksizer->GetContainingWindow());
-		replacement = m_networkpages[1].page;
-	} else {
-		// No networks.
-		toolbarTool->SetLabel(_("No network"));
-	}
+		// Now both pages are in the notebook. If we want to show one of them outside, move it back out again.
+		// Windows that are part of a notebook can't be reparented.
+		if (newState == 3) {
+			// Since we messed with the notebook, we now have to show both pages, one after the other.
+			// Otherwise GTK gets confused and shows the first tab only.
+			// (So much for "platform independent".)
+			networks_notebook->SetSelection(1);
+			m_networkpages[1].page->Show();
+			networks_notebook->SetSelection(0);
+			m_networkpages[0].page->Show();
+			replacement = networks_notebook;
+		} else if (newState == 1) {
+			replacement = m_networkpages[0].page;
+			networks_notebook->RemovePage(0);
+		} else {
+			replacement = m_networkpages[1].page;
+			networks_notebook->RemovePage(1);
+		}
 
-	if (replacement) {
 		replacement->Reparent(m_networknotebooksizer->GetContainingWindow());
-		m_networknotebooksizer->Add( replacement, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP, 5 );
+		replacement->Show();
+		m_networknotebooksizer->Add(replacement, 1, wxGROW | wxALIGN_CENTER_VERTICAL | wxTOP, 5);
 		m_networknotebooksizer->Layout();
+		currentState = newState;
 	}
 
-	m_wndToolbar->InsertTool(2, toolbarTool);
+	// Tool bar
 
+	m_wndToolbar->InsertTool(2, toolbarTool);
 	m_wndToolbar->EnableTool(ID_BUTTONNETWORKS, (thePrefs::GetNetworkED2K() || thePrefs::GetNetworkKademlia()));
 	m_wndToolbar->EnableTool(ID_BUTTONCONNECT, (thePrefs::GetNetworkED2K() || thePrefs::GetNetworkKademlia()) && theApp->ipfilter->IsReady());
 
 	m_wndToolbar->Realize();
 
+	ShowConnectionState();	// status in the bottom right
 	m_searchwnd->FixSearchTypes();
 }
 
diff --git a/src/amuleDlg.h b/src/amuleDlg.h
index 07dbedd..6d82d36 100644
--- a/src/amuleDlg.h
+++ b/src/amuleDlg.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,7 +36,7 @@
 #include <wx/zipstrm.h>
 
 #include "Types.h"			// Needed for uint32
-
+#include "StatisticsDlg.h"
 
 class wxTimerEvent;
 class wxTextCtrl;
@@ -47,12 +47,11 @@ class CServerWnd;
 class CSharedFilesWnd;
 class CSearchDlg;
 class CChatWnd;
-class CStatisticsDlg;
 class CKadDlg;
-class PrefsUnifiedDlg;	
+class PrefsUnifiedDlg;
 
 
-class CMuleTrayIcon;		
+class CMuleTrayIcon;
 
 struct PageType {
 	wxWindow* page;
@@ -67,7 +66,7 @@ struct PageType {
 
 #define DEFAULT_SIZE_X  800
 #define DEFAULT_SIZE_Y  600
-		
+
 
 enum ClientSkinEnum {
 	Client_Green_Smiley = 0,
@@ -103,7 +102,7 @@ enum ClientSkinEnum {
 
 
 // CamuleDlg Dialogfeld
-class CamuleDlg : public wxFrame 
+class CamuleDlg : public wxFrame
 {
 public:
 	CamuleDlg(
@@ -116,14 +115,14 @@ public:
 	void AddLogLine(const wxString& line);
 	void AddServerMessageLine(wxString& message);
 	void ResetLog(int id);
-	
+
 	void ShowUserCount(const wxString& info = wxEmptyString);
 	void ShowConnectionState(bool skinChanged = false);
 	void ShowTransferRate();
-	
+
 	bool StatisticsWindowActive()
-		{ return (m_activewnd == (wxWindow*)m_statisticswnd); }
-	
+		{ return (m_activewnd == static_cast<wxWindow*>(m_statisticswnd)); }
+
 	/* Returns the active dialog. Needed to check what to redraw. */
 	enum DialogType {
 		DT_TRANSFER_WND,
@@ -145,7 +144,7 @@ public:
 	 */
 	bool IsDialogVisible( DialogType dlg )
 	{
-		return m_nActiveDialog == dlg && m_is_safe_state /* && !IsIconized() */; 
+		return m_nActiveDialog == dlg && m_is_safe_state /* && !IsIconized() */;
 	}
 
 	void ShowED2KLinksHandler( bool show );
@@ -159,7 +158,7 @@ public:
 	bool SafeState()	{ return m_is_safe_state; }
 
 	void LaunchUrl(const wxString &url);
-	
+
 	//! These are the currently known web-search providers
 	enum WebSearch {
 		WS_FILEHASH
@@ -168,7 +167,7 @@ public:
 	wxString GenWebSearchUrl( const wxString &filename, WebSearch provider );
 
 	void CreateSystray();
-	void RemoveSystray();	
+	void RemoveSystray();
 
 	void StartGuiTimer()	{ gui_timer->Start(100); }
 	void StopGuiTimer()	{ gui_timer->Stop(); }
@@ -180,9 +179,9 @@ public:
 
 	void SetMessageBlink(bool state) { m_BlinkMessages = state; }
 	void Create_Toolbar(bool orientation);
-	
+
 	void DoNetworkRearrange();
-	
+
 	CIP2Country*		m_IP2Country;
 	void IP2CountryDownloadFinished(uint32 result);
 	void EnableIP2Country();
@@ -199,10 +198,10 @@ public:
 	PrefsUnifiedDlg*	m_prefsDialog;
 
 	int			m_srv_split_pos;
-	
+
 	wxImageList m_imagelist;
 	wxImageList m_tblist;
-	
+
 protected:
 	void OnToolBarButton(wxCommandEvent& ev);
 	void OnAboutButton(wxCommandEvent& ev);
@@ -237,11 +236,11 @@ private:
 	PageType m_logpages[4];
 	PageType m_networkpages[2];
 
-	bool LoadGUIPrefs(bool override_pos, bool override_size); 
+	bool LoadGUIPrefs(bool override_pos, bool override_size);
 	bool SaveGUIPrefs();
 
 	void UpdateTrayIcon(int percent);
-	
+
 	void Apply_Clients_Skin();
 	void Apply_Toolbar_Skin(wxToolBar *wndToolbar);
 	bool Check_and_Init_Skin();
diff --git a/src/amuleIPV4Address.h b/src/amuleIPV4Address.h
index e1ffc5b..d9f9235 100644
--- a/src/amuleIPV4Address.h
+++ b/src/amuleIPV4Address.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -26,35 +26,52 @@
 #ifndef AMULEIPV4ADDRESS_H
 #define AMULEIPV4ADDRESS_H
 
-#include <wx/object.h>			// Needed by wx/sckaddr.h
-
-#include "NetworkFunctions.h"	// Needed for StringIPtoUint32
+#include "NetworkFunctions.h"	// Needed for Uint32toStringIP
 
-class amuleIPV4Address : public wxIPV4address
+class amuleIPV4Address
 {
 public:
-	amuleIPV4Address() {}
-	amuleIPV4Address(const wxIPV4address &a) : wxIPV4address(a) {}
+	amuleIPV4Address();
+	amuleIPV4Address(const amuleIPV4Address &a);
+	amuleIPV4Address(const class CamuleIPV4Endpoint &ep);
+	virtual ~amuleIPV4Address();
+	amuleIPV4Address& operator=(const amuleIPV4Address &a);
+	amuleIPV4Address& operator=(const class CamuleIPV4Endpoint &a);
 
-	virtual bool Hostname(const wxString& name)
-	{
-		// Some people are sometimes fools.
-		if (name.IsEmpty()) {
-			return false;
-		}
-		
-		return wxIPV4address::Hostname(name);
-	}
+	virtual bool Hostname(const wxString& name);
 
-	virtual bool Hostname(uint32 ip) 
+	virtual bool Hostname(uint32 ip)
 	{
 		// Some people are sometimes fools.
 		if (!ip) {
 			return false;
 		}
-		
-		return wxIPV4address::Hostname(Uint32toStringIP(ip));
+
+		return Hostname(Uint32toStringIP(ip));
 	}
+
+
+	// Set the port to that corresponding to the specified service.
+	// Returns true on success, false if something goes wrong (invalid service).
+	virtual bool Service(uint16 service);
+
+	// Returns the current service.
+	virtual uint16 Service() const;
+
+	// Determines if current address is set to localhost.
+	virtual bool IsLocalHost() const;
+
+	// Returns a wxString containing the IP address.
+	virtual wxString IPAddress() const;
+
+	// Set address to any of the addresses of the current machine.
+	virtual bool AnyAddress();
+
+	const class CamuleIPV4Endpoint & GetEndpoint() const;
+	class CamuleIPV4Endpoint & GetEndpoint();
+
+private:
+	class CamuleIPV4Endpoint * m_endpoint;
 };
 
 #endif // AMULEIPV4ADDRESS_H
diff --git a/src/amuled.cpp b/src/amuled.cpp
index c34a672..6aa551e 100644
--- a/src/amuled.cpp
+++ b/src/amuled.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -65,19 +65,23 @@
 #include <sys/resource.h> // Do_not_auto_remove
 #endif
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	#ifdef  HAVE_SYS_WAIT_H
-		#include <sys/wait.h> // Do_not_auto_remove 
+		#include <sys/wait.h> // Do_not_auto_remove
 	#endif
+	#include <wx/ffile.h>
+#endif
 
+#ifdef AMULED_APPTRAITS
 	#include <wx/unix/execute.h>
 #endif
 
+
 BEGIN_EVENT_TABLE(CamuleDaemonApp, wxAppConsole)
 	//
 	// Socket handlers
 	//
-	
+
 	// Listen Socket
 	EVT_SOCKET(ID_LISTENSOCKET_EVENT, CamuleDaemonApp::ListenSocketHandler)
 
@@ -96,7 +100,7 @@ BEGIN_EVENT_TABLE(CamuleDaemonApp, wxAppConsole)
 
 	// Async dns handling
 	EVT_MULE_INTERNAL(wxEVT_CORE_UDP_DNS_DONE, -1, CamuleDaemonApp::OnUDPDnsDone)
-	
+
 	EVT_MULE_INTERNAL(wxEVT_CORE_SOURCE_DNS_DONE, -1, CamuleDaemonApp::OnSourceDnsDone)
 
 	EVT_MULE_INTERNAL(wxEVT_CORE_SERVER_DNS_DONE, -1, CamuleDaemonApp::OnServerDnsDone)
@@ -104,7 +108,7 @@ BEGIN_EVENT_TABLE(CamuleDaemonApp, wxAppConsole)
 	// Hash ended notifier
 	EVT_MULE_HASHING(CamuleDaemonApp::OnFinishedHashing)
 	EVT_MULE_AICH_HASHING(CamuleDaemonApp::OnFinishedAICHHashing)
-	
+
 	// File completion ended notifier
 	EVT_MULE_FILE_COMPLETED(CamuleDaemonApp::OnFinishedCompletion)
 
@@ -117,10 +121,10 @@ END_EVENT_TABLE()
 
 IMPLEMENT_APP(CamuleDaemonApp)
 
-#ifdef AMULED28
+#ifdef AMULED28_SOCKETS
 /*
  * Socket handling in wxBase
- * 
+ *
  */
 class CSocketSet {
 		int m_count;
@@ -133,9 +137,9 @@ class CSocketSet {
 		void AddSocket(GSocket *);
 		void RemoveSocket(GSocket *);
 		void FillSet(int &max_fd);
-		
+
 		void Detected(void (GSocket::*func)());
-		
+
 		fd_set *Set() { return &m_set; }
 };
 
@@ -152,7 +156,7 @@ CSocketSet::CSocketSet()
 void CSocketSet::AddSocket(GSocket *socket)
 {
 	wxASSERT(socket);
-	
+
 	int fd = socket->m_fd;
 
 	if ( fd == -1 ) {
@@ -160,7 +164,7 @@ void CSocketSet::AddSocket(GSocket *socket)
 	}
 
 	wxASSERT( (fd > 2) && (fd < FD_SETSIZE) );
-	
+
 	if ( m_gsocks[fd] ) {
 		return;
 	}
@@ -173,15 +177,15 @@ void CSocketSet::AddSocket(GSocket *socket)
 void CSocketSet::RemoveSocket(GSocket *socket)
 {
 	wxASSERT(socket);
-	
+
 	int fd = socket->m_fd;
 
 	if ( fd == -1 ) {
 		return;
 	}
-	
+
 	wxASSERT( (fd > 2) && (fd < FD_SETSIZE) );
-	
+
 	int i = m_fd_idx[fd];
 	if ( i == 0xffff ) {
 		return;
@@ -202,7 +206,7 @@ void CSocketSet::FillSet(int &max_fd)
 	for(int i = 0; i < m_count; i++) {
 	    FD_SET(m_fds[i], &m_set);
 	    if ( m_fds[i] > max_fd ) {
-	    	max_fd = m_fds[i];
+		max_fd = m_fds[i];
 	    }
 	}
 }
@@ -222,7 +226,7 @@ CAmuledGSocketFuncTable::CAmuledGSocketFuncTable() : m_lock(wxMUTEX_RECURSIVE)
 {
 	m_in_set = new CSocketSet;
 	m_out_set = new CSocketSet;
-	
+
 	m_lock.Unlock();
 }
 
@@ -259,7 +263,7 @@ void CAmuledGSocketFuncTable::RunSelect()
 	struct timeval tv;
 	tv.tv_sec = 0;
 	tv.tv_usec = 10000; // 10ms
-	
+
 	int result = select(max_fd + 1, m_in_set->Set(), m_out_set->Set(), 0, &tv);
 	if ( result > 0 ) {
 		m_in_set->Detected(&GSocket::Detected_Read);
@@ -321,11 +325,6 @@ void CAmuledGSocketFuncTable::Disable_Events(GSocket *socket)
 	Uninstall_Callback(socket, GSOCK_OUTPUT);
 }
 
-#endif	// AMULED28
-
-#ifndef __WXMSW__
-
-#ifdef AMULED28
 
 CDaemonAppTraits::CDaemonAppTraits(CAmuledGSocketFuncTable *table)
 :
@@ -378,7 +377,9 @@ wxAppTraits *CamuleDaemonApp::CreateTraits()
 	return new CDaemonAppTraits(m_table);
 }
 
-#else	// AMULED28
+#else	// AMULED28_SOCKETS
+
+#ifdef AMULED_APPTRAITS
 
 CDaemonAppTraits::CDaemonAppTraits()
 :
@@ -393,9 +394,9 @@ wxAppTraits *CamuleDaemonApp::CreateTraits()
 	return new CDaemonAppTraits();
 }
 
-#endif	// !AMULED28
+#endif	// AMULED_APPTRAITS
 
-#endif	// __WXMSW__
+#endif	// !AMULED28_SOCKETS
 
 #if defined(__WXMAC__) && !wxCHECK_VERSION(2, 9, 0)
 #include <wx/stdpaths.h> // Do_not_auto_remove (guess)
@@ -407,25 +408,26 @@ wxStandardPathsBase& CDaemonAppTraits::GetStandardPaths()
 #endif
 
 
-#ifdef AMULED28
+#ifdef AMULED28_EVENTLOOP
 
 CamuleDaemonApp::CamuleDaemonApp()
 :
-m_Exit(false),
-m_table(new CAmuledGSocketFuncTable())
+m_Exit(false)
+#ifdef AMULED28_SOCKETS
+,m_table(new CAmuledGSocketFuncTable())
+#endif
 {
+	// work around problem from http://trac.wxwidgets.org/ticket/2145
 	wxPendingEventsLocker = new wxCriticalSection;
 }
 
-#endif	// !AMULED28
-
+#endif	// AMULED28_EVENTLOOP
 
-#ifndef __WXMSW__
 
+#ifdef AMULED_APPTRAITS
 
 static EndProcessDataMap endProcDataMap;
 
-
 int CDaemonAppTraits::WaitForChild(wxExecuteData &execData)
 {
 	int status = 0;
@@ -441,7 +443,7 @@ int CDaemonAppTraits::WaitForChild(wxExecuteData &execData)
 		if (result == -1 || (!WIFEXITED(status) && !WIFSIGNALED(status))) {
 			msg << wxT(" Waiting for subprocess termination failed.");
 			AddDebugLogLineN(logGeneral, msg);
-		}	
+		}
 	} else {
 		/** wxEXEC_ASYNC */
 		// Give the process a chance to start or forked child to exit
@@ -460,7 +462,7 @@ int CDaemonAppTraits::WaitForChild(wxExecuteData &execData)
 			status = execData.pid;
 		} else {
 			// if result != 0, then either waitpid() failed (result == -1)
-			// and there is nothing we can do, or the child has changed 
+			// and there is nothing we can do, or the child has changed
 			// status, which means it is probably dead.
 			status = 0;
 		}
@@ -550,8 +552,35 @@ pid_t AmuleWaitPid(pid_t pid, int *status, int options, wxString *msg)
 	return result;
 }
 
+#endif	// AMULED_APPTRAITS
 
-#endif // __WXMSW__
+
+#ifdef __WINDOWS__ 
+//
+// CTRL-C-Handler
+// see http://msdn.microsoft.com/en-us/library/windows/desktop/ms685049%28v=vs.85%29.aspx
+//
+static BOOL CtrlHandler(DWORD fdwCtrlType)
+{
+	switch (fdwCtrlType) {
+		case CTRL_C_EVENT:
+		case CTRL_CLOSE_EVENT:
+		case CTRL_BREAK_EVENT:
+			// handle these
+			AddLogLineNS(wxT("Received break event, exit main loop"));
+			theApp->ExitMainLoop();
+			return TRUE;
+			break;
+		case CTRL_LOGOFF_EVENT:
+		case CTRL_SHUTDOWN_EVENT:
+		default:
+			// don't handle these
+			return FALSE;
+			break;
+	}
+}
+
+#endif // __WINDOWS__ 
 
 
 int CamuleDaemonApp::OnRun()
@@ -564,47 +593,52 @@ int CamuleDaemonApp::OnRun()
 		return 0;
 	}
 
-#ifndef __WXMSW__
-	// Process the return code of dead children so that we do not create 
+#ifdef __WINDOWS__ 
+	SetConsoleCtrlHandler((PHANDLER_ROUTINE) CtrlHandler, TRUE);
+#endif // __WINDOWS__ 
+
+#ifdef AMULED_APPTRAITS
+	// Process the return code of dead children so that we do not create
 	// zombies. wxBase does not implement wxProcess callbacks, so no one
 	// actualy calls wxHandleProcessTermination() in console applications.
 	// We do our best here.
-	int ret = 0;
-	ret = sigaction(SIGCHLD, NULL, &m_oldSignalChildAction);
+	DEBUG_ONLY( int ret = 0; )
+	DEBUG_ONLY( ret = ) sigaction(SIGCHLD, NULL, &m_oldSignalChildAction);
 	m_newSignalChildAction = m_oldSignalChildAction;
 	m_newSignalChildAction.sa_sigaction = OnSignalChildHandler;
 	m_newSignalChildAction.sa_flags |=  SA_SIGINFO;
 	m_newSignalChildAction.sa_flags &= ~SA_RESETHAND;
-	ret = sigaction(SIGCHLD, &m_newSignalChildAction, NULL);
+	DEBUG_ONLY( ret = ) sigaction(SIGCHLD, &m_newSignalChildAction, NULL);
+#ifdef __DEBUG__
 	if (ret == -1) {
 		AddDebugLogLineC(logStandard, CFormat(wxT("CamuleDaemonApp::OnRun(): Installation of SIGCHLD callback with sigaction() failed: %m.")));
 	} else {
 		AddDebugLogLineN(logGeneral, wxT("CamuleDaemonApp::OnRun(): Installation of SIGCHLD callback with sigaction() succeeded."));
 	}
-#endif // __WXMSW__
-	
-#ifdef AMULED28
+#endif
+#endif	// AMULED_APPTRAITS
+
+#ifdef AMULED28_EVENTLOOP
 
 	while ( !m_Exit ) {
+#ifdef AMULED28_SOCKETS
 		m_table->RunSelect();
 		ProcessPendingEvents();
 		((CDaemonAppTraits *)GetTraits())->DeletePending();
+#else
+		wxMilliSleep(10);
+		ProcessPendingEvents();
+#endif
 	}
-	
+
 	// ShutDown is beeing called twice. Once here and again in OnExit().
 	ShutDown();
 
 	return 0;
 
 #else
-
-#ifdef AMULED_DUMMY
-	return 0;
-#else
 	return wxApp::OnRun();
 #endif
-
-#endif
 }
 
 bool CamuleDaemonApp::OnInit()
@@ -617,13 +651,13 @@ bool CamuleDaemonApp::OnInit()
 	core_timer->Start(CORE_TIMER_PERIOD);
 	glob_prefs->GetCategory(0)->title = GetCatTitle(thePrefs::GetAllcatFilter());
 	glob_prefs->GetCategory(0)->path = thePrefs::GetIncomingDir();
-	
+
 	return true;
 }
 
 int CamuleDaemonApp::InitGui(bool ,wxString &)
 {
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	if ( !enable_daemon_fork ) {
 		return 0;
 	}
@@ -636,16 +670,16 @@ int CamuleDaemonApp::InitGui(bool ,wxString &)
 	for(int i_fd = 0;i_fd < 3; i_fd++) {
 		close(i_fd);
 	}
-  	int fd = open("/dev/null",O_RDWR);
+	int fd = open("/dev/null",O_RDWR);
 	if (dup(fd)){}	// prevent GCC warning
 	if (dup(fd)){}
-  	pid_t pid = fork();
+	pid_t pid = fork();
 
 	wxASSERT(pid != -1);
 
-  	if ( pid ) {
-  		exit(0);
-  	} else {
+	if ( pid ) {
+		exit(0);
+	} else {
 		pid = setsid();
 		//
 		// Create a Pid file with the Pid of the Child, so any daemon-manager
@@ -661,8 +695,8 @@ int CamuleDaemonApp::InitGui(bool ,wxString &)
 				AddLogLineNS(_("Cannot Create Pid File"));
 			}
 		}
-  	}
-  	
+	}
+
 #endif
 	return 0;
 }
@@ -670,7 +704,7 @@ int CamuleDaemonApp::InitGui(bool ,wxString &)
 
 int CamuleDaemonApp::OnExit()
 {
-#ifdef AMULED28
+#ifdef AMULED28_SOCKETS
 	/*
 	 * Stop all socket threads before entering
 	 * shutdown sequence.
@@ -685,22 +719,19 @@ int CamuleDaemonApp::OnExit()
 
 	ShutDown();
 
-#ifndef __WXMSW__
-	int ret = sigaction(SIGCHLD, &m_oldSignalChildAction, NULL);
+#ifdef AMULED_APPTRAITS
+	DEBUG_ONLY( int ret = ) sigaction(SIGCHLD, &m_oldSignalChildAction, NULL);
+#ifdef __DEBUG__
 	if (ret == -1) {
 		AddDebugLogLineC(logStandard, CFormat(wxT("CamuleDaemonApp::OnRun(): second sigaction() failed: %m.")));
 	} else {
 		AddDebugLogLineN(logGeneral, wxT("CamuleDaemonApp::OnRun(): Uninstallation of SIGCHLD callback with sigaction() succeeded."));
 	}
-#endif // __WXMSW__
-	
-	// lfroen: delete socket threads
-	if (ECServerHandler) {
-		ECServerHandler = 0;
-	}
+#endif
+#endif // AMULED_APPTRAITS
 
 	delete core_timer;
-	
+
 	return CamuleApp::OnExit();
 }
 
diff --git a/src/extern/wxWidgets/listctrl.cpp b/src/extern/wxWidgets/listctrl.cpp
index 99e7d25..38f4e3f 100644
--- a/src/extern/wxWidgets/listctrl.cpp
+++ b/src/extern/wxWidgets/listctrl.cpp
@@ -3,7 +3,7 @@
 // Purpose:     generic implementation of wxListCtrl
 // Author:      Robert Roebling
 //              Vadim Zeitlin (virtual list control support)
-// Id:          $Id: listctrl.cpp 10612 2011-09-18 11:01:52Z sturedman $
+// Id:          $Id: listctrl.cpp 10680 2011-11-20 18:08:59Z gonosztopi $
 // Copyright:   Copyright (c) 1998-2011 Robert Roebling
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -624,7 +624,7 @@ public:
     }
 
     void OnChildFocus(wxChildFocusEvent& event);
-    
+
     void DrawImage( int index, wxDC *dc, int x, int y );
     void GetImageSize( int index, int &width, int &height ) const;
     int GetTextLength( const wxString &s ) const;
diff --git a/src/extern/wxWidgets/listctrl.h b/src/extern/wxWidgets/listctrl.h
index 7314a15..ca3b17b 100644
--- a/src/extern/wxWidgets/listctrl.h
+++ b/src/extern/wxWidgets/listctrl.h
@@ -3,7 +3,7 @@
 // Purpose:     Generic list control
 // Author:      Robert Roebling
 // Created:     01/02/97
-// RCS-ID:      $Id: listctrl.h 10579 2011-06-13 08:50:25Z gonosztopi $
+// RCS-ID:      $Id: listctrl.h 10680 2011-11-20 18:08:59Z gonosztopi $
 // Copyright:   Copyright (c) 1998-2011 Robert Roebling and Julian Smart
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -92,7 +92,7 @@ public:
     bool SetItemPtrData(long item, wxUIntPtr data);
 #endif // wxABI 2.8.4+
 
-// It is not certain that sizeof(long) == sizeof(void*), and since we 
+// It is not certain that sizeof(long) == sizeof(void*), and since we
 // just about only use pointers as item-data, I've choosen to disable
 // this function to prevent mistakes. Use SetItemPtrData instead.
 #if 0
@@ -205,7 +205,7 @@ public:
     virtual bool SetCursor( const wxCursor &cursor );
 
     virtual int GetScrollPos(int orient) const;
-    virtual void SetScrollPos(int orient, int pos, bool refresh = true); 
+    virtual void SetScrollPos(int orient, int pos, bool refresh = true);
 
 #if wxUSE_DRAG_AND_DROP
     virtual void SetDropTarget( wxDropTarget *dropTarget );
@@ -290,7 +290,7 @@ public:
     : wxGenericListCtrl(parent, winid, pos, size, style, validator, name)
     {
     }
-    
+
 };
 #endif // !__WXMSW__ || __WXUNIVERSAL__
 
diff --git a/src/include/common/ClientVersion.h b/src/include/common/ClientVersion.h
index 5d1647f..8398bef 100644
--- a/src/include/common/ClientVersion.h
+++ b/src/include/common/ClientVersion.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -35,19 +35,19 @@
 #define	CURRENT_VERSION_SHORT			0x47
 
 // This is only used to server login. It has no real "version" meaning anymore.
-#define	EDONKEYVERSION				0x3c 
+#define	EDONKEYVERSION				0x3c
 
-// aMule version 
+// aMule version
 
 // No more Mod Version unless we're cvs
 
 // RELEASERS: REMOVE THE DEFINE ON THE RELEASES, PLEASE
 // AND FIX THE MOD_VERSION_LONG
 
-/* #undef __SVN__ */
+#define __SVN__
 
 #ifndef VERSION
-	#define VERSION "2.3.1"
+	#define VERSION "2.4.0"
 #endif
 
 #ifdef __SVN__
@@ -57,8 +57,8 @@
 #endif
 
 #define	VERSION_MJR		2
-#define	VERSION_MIN		3
-#define	VERSION_UPDATE		1
+#define	VERSION_MIN		4
+#define	VERSION_UPDATE		0
 
 #ifndef PACKAGE
 #define PACKAGE "amule"
diff --git a/src/include/common/Constants.h b/src/include/common/Constants.h
index 9de8fc3..c6abaef 100644
--- a/src/include/common/Constants.h
+++ b/src/include/common/Constants.h
@@ -17,14 +17,14 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //
 
 #ifndef COMMONCONSTANTS_H
-#define COMMONMACROS_H
+#define COMMONCONSTANTS_H
 
 const unsigned UNLIMITED = 0;
 
diff --git a/src/include/common/DataFileVersion.h b/src/include/common/DataFileVersion.h
index f0e6ccc..01c4635 100644
--- a/src/include/common/DataFileVersion.h
+++ b/src/include/common/DataFileVersion.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/common/EventIDs.h b/src/include/common/EventIDs.h
index 09f7ff9..27bd229 100644
--- a/src/include/common/EventIDs.h
+++ b/src/include/common/EventIDs.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,7 +36,7 @@ enum {
 	ID_SERVERSOCKET_EVENT,
 	ID_CLIENTUDPSOCKET_EVENT,
 	ID_PROXY_SOCKET_EVENT,
-	
+
 	// Custom Timer Events
 	ID_CORE_TIMER_EVENT,
 	ID_GUI_TIMER_EVENT,
diff --git a/src/include/common/Macros.h b/src/include/common/Macros.h
index 4dd19ac..228e91f 100644
--- a/src/include/common/Macros.h
+++ b/src/include/common/Macros.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,6 +39,9 @@
 #define COMPILE_TIME				__TIME__
 
 
+//! Returns the number of items in an array.
+#define itemsof(x)	(sizeof(x) / sizeof(x[0]))
+
 // Build type specific macro
 
 #ifdef __DEBUG__
diff --git a/src/include/common/MacrosProgramSpecific.h b/src/include/common/MacrosProgramSpecific.h
index edc0408..8679815 100644
--- a/src/include/common/MacrosProgramSpecific.h
+++ b/src/include/common/MacrosProgramSpecific.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/common/MenuIDs.h b/src/include/common/MenuIDs.h
index 6dd2f91..fc639cc 100644
--- a/src/include/common/MenuIDs.h
+++ b/src/include/common/MenuIDs.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -49,7 +49,7 @@ enum {
 	MP_GETCOMMENTS,
 	MP_SEARCHRELATED,
 	MP_MARK_AS_KNOWN,
-//For comments 
+//For comments
 	MP_CMT,
 
 	MP_PRIOVERYLOW,
@@ -62,10 +62,11 @@ enum {
 	MP_GETMAGNETLINK,
 	MP_GETED2KLINK,
 	MP_GETSOURCEED2KLINK,
-	MP_GETCRYPTSOURCEDED2KLINK,	
+	MP_GETCRYPTSOURCEDED2KLINK,
 	MP_GETHOSTNAMESOURCEED2KLINK,
 	MP_GETHOSTNAMECRYPTSOURCEED2KLINK,
 	MP_GETAICHED2KLINK,
+	MP_GETAICHED2KLINKSRC,
 	MP_METINFO,
 	MP_CONNECTTO,
 	MP_REMOVE,
@@ -122,7 +123,7 @@ enum {
 	MP_LISTCOL_14,
 	MP_LISTCOL_15,
 
-	MP_ASSIGNCAT 	= MP_LISTCOL_15   + 1,   // reserve some for categories (about 100)
+	MP_ASSIGNCAT	= MP_LISTCOL_15   + 1,   // reserve some for categories (about 100)
 	MP_CAT_SET0		= MP_ASSIGNCAT    + 100, // reserve some for change all-cats (about 50)
 	MP_SWITCHCTRL_0 = MP_CAT_SET0     + 50,
 	MP_SWITCHCTRL_9	= MP_SWITCHCTRL_0 + 9,
diff --git a/src/include/protocol/Protocols.h b/src/include/protocol/Protocols.h
index b237b34..69950d4 100644
--- a/src/include/protocol/Protocols.h
+++ b/src/include/protocol/Protocols.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,18 +36,18 @@ enum Protocols {
 	OP_PACKEDPROT			= 0xD4,
 	OP_EMULEPROT			= 0xC5,
 
-	// Reserved for later UDP headers (important for EncryptedDatagramSocket)	
+	// Reserved for later UDP headers (important for EncryptedDatagramSocket)
 	OP_UDPRESERVEDPROT1 = 0xA3,
 	OP_UDPRESERVEDPROT2 = 0xB2,
 
 	// Kademlia 1/2
 	OP_KADEMLIAHEADER		= 0xE4,
 	OP_KADEMLIAPACKEDPROT	= 0xE5,
-	
+
 	// Kry tests
 	OP_ED2KV2HEADER			= 0xF4,
 	OP_ED2KV2PACKEDPROT		= 0xF5,
-	
+
 	OP_MLDONKEYPROT			= 0x00
 };
 
diff --git a/src/include/protocol/ed2k/Client2Client/TCP.h b/src/include/protocol/ed2k/Client2Client/TCP.h
index e0d1dd0..a293044 100644
--- a/src/include/protocol/ed2k/Client2Client/TCP.h
+++ b/src/include/protocol/ed2k/Client2Client/TCP.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -27,16 +27,16 @@
 #define ED2KC2CTCP_H
 
 // Client <-> Client
-enum ED2KStandardClientTCP {	
+enum ED2KStandardClientTCP {
 	OP_HELLO					= 0x01,	// 0x10<HASH 16><ID 4><PORT 2><1 Tag_set>
 	OP_SENDINGPART				= 0x46,	// <HASH 16><von 4><bis 4><Daten len:(von-bis)>
 	OP_REQUESTPARTS				= 0x47,	// <HASH 16><von[3] 4*3><bis[3] 4*3>
 	OP_FILEREQANSNOFIL			= 0x48,	// <HASH 16>
-	OP_END_OF_DOWNLOAD     		= 0x49,	// <HASH 16> // Unused for sending
+	OP_END_OF_DOWNLOAD		= 0x49,	// <HASH 16> // Unused for sending
 	OP_ASKSHAREDFILES			= 0x4A,	// (null)
-	OP_ASKSHAREDFILESANSWER 	= 0x4B,	// <count 4>(<HASH 16><ID 4><PORT 2><1 Tag_set>)[count]
+	OP_ASKSHAREDFILESANSWER		= 0x4B,	// <count 4>(<HASH 16><ID 4><PORT 2><1 Tag_set>)[count]
 	OP_HELLOANSWER				= 0x4C,	// <HASH 16><ID 4><PORT 2><1 Tag_set><SERVER_IP 4><SERVER_PORT 2>
-	OP_CHANGE_CLIENT_ID 		= 0x4D,	// <ID_old 4><ID_new 4> // Unused for sending
+	OP_CHANGE_CLIENT_ID		= 0x4D,	// <ID_old 4><ID_new 4> // Unused for sending
 	OP_MESSAGE					= 0x4E,	// <len 2><Message len>
 	OP_SETREQFILEID				= 0x4F,	// <HASH 16>
 	OP_FILESTATUS				= 0x50,	// <HASH 16><count 2><status(bit array) len:((count+7)/8)>
@@ -44,7 +44,7 @@ enum ED2KStandardClientTCP {
 	OP_HASHSETANSWER			= 0x52,	// <count 2><HASH[count] 16*count>
 	OP_STARTUPLOADREQ			= 0x54,	// <HASH 16>
 	OP_ACCEPTUPLOADREQ			= 0x55,	// (null)
-	OP_CANCELTRANSFER			= 0x56,	// (null)	
+	OP_CANCELTRANSFER			= 0x56,	// (null)
 	OP_OUTOFPARTREQS			= 0x57,	// (null)
 	OP_REQUESTFILENAME			= 0x58,	// <HASH 16>	(more correctly file_name_request)
 	OP_REQFILENAMEANSWER		= 0x59,	// <HASH 16><len 4><NAME len>
@@ -71,7 +71,7 @@ enum ED2KExtendedClientTCP {
 	OP_REQUESTSOURCES			= 0x81,	// <HASH 16>
 	OP_ANSWERSOURCES			= 0x82,	//
 	OP_REQUESTSOURCES2			= 0x83,	// <HASH 16>
-	OP_ANSWERSOURCES2			= 0x84,	//	
+	OP_ANSWERSOURCES2			= 0x84,	//
 	OP_PUBLICKEY				= 0x85,	// <len 1><pubkey len>
 	OP_SIGNATURE				= 0x86,	// v1: <len 1><signature len>
 										// v2:<len 1><signature len><sigIPused 1>
@@ -89,14 +89,14 @@ enum ED2KExtendedClientTCP {
 	OP_REASKCALLBACKTCP			= 0x9A,
 	OP_AICHREQUEST				= 0x9B,	// <HASH 16><uint16><HASH aichhashlen>
 	OP_AICHANSWER				= 0x9C,	// <HASH 16><uint16><HASH aichhashlen> <data>
-	OP_AICHFILEHASHANS			= 0x9D,	  
+	OP_AICHFILEHASHANS			= 0x9D,
 	OP_AICHFILEHASHREQ			= 0x9E,
 	OP_BUDDYPING				= 0x9F,
 	OP_BUDDYPONG				= 0xA0,
 	OP_COMPRESSEDPART_I64		= 0xA1,	// <HASH 16><von 8><size 4><Data len:size>
 	OP_SENDINGPART_I64			= 0xA2,	// <HASH 16><start 8><end 8><Data len:(end-start)>
 	OP_REQUESTPARTS_I64			= 0xA3,	// <HASH 16><start[3] 8*3><end[3] 8*3>
-	OP_MULTIPACKET_EXT			= 0xA4,	
+	OP_MULTIPACKET_EXT			= 0xA4,
 	OP_CHATCAPTCHAREQ			= 0xA5,
 	OP_CHATCAPTCHARES			= 0xA6,
 };
diff --git a/src/include/protocol/ed2k/Client2Client/UDP.h b/src/include/protocol/ed2k/Client2Client/UDP.h
index 592aa24..c62d7f1 100644
--- a/src/include/protocol/ed2k/Client2Client/UDP.h
+++ b/src/include/protocol/ed2k/Client2Client/UDP.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/protocol/ed2k/Client2Server/TCP.h b/src/include/protocol/ed2k/Client2Server/TCP.h
index b476f11..6c56430 100644
--- a/src/include/protocol/ed2k/Client2Server/TCP.h
+++ b/src/include/protocol/ed2k/Client2Server/TCP.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -42,7 +42,7 @@ enum OP_ClientToServerTCP {
 //	OP_CHAT_MESSAGE				= 0x1E,	// (deprecated, not supported by server any longer)
 //	OP_JOIN_ROOM				= 0x1F,	// (deprecated, not supported by server any longer)
 	OP_QUERY_MORE_RESULT		= 0x21,	// (null)
-	OP_GETSOURCES_OBFU	= 0x23,	
+	OP_GETSOURCES_OBFU	= 0x23,
 	OP_SERVERLIST				= 0x32,	// <count 1>(<IP 4><PORT 2>)[count] server->client
 	OP_SEARCHRESULT				= 0x33,	// <count 4>(<HASH 16><ID 4><PORT 2><1 Tag_set>)[count]
 	OP_SERVERSTATUS				= 0x34,	// <USER 4><FILES 4>
diff --git a/src/include/protocol/ed2k/Client2Server/UDP.h b/src/include/protocol/ed2k/Client2Server/UDP.h
index ab30ba9..373db65 100644
--- a/src/include/protocol/ed2k/Client2Server/UDP.h
+++ b/src/include/protocol/ed2k/Client2Server/UDP.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,11 +30,11 @@ enum OP_ClientToServerUDP {
 	OP_GLOBSEARCHREQ3			= 0x90, // <1 tag set><search_tree>
 	OP_GLOBSEARCHREQ2			= 0x92, // <search_tree>
 	OP_GLOBGETSOURCES2			= 0x94,	// <HASH 16><FILESIZE 4>
-										// largefiles only: <HASH 16><FILESIZE 4(0)><FILESIZE 8> (17.8)		
+										// largefiles only: <HASH 16><FILESIZE 4(0)><FILESIZE 8> (17.8)
 	OP_GLOBSERVSTATREQ			= 0x96,	// (null)
 	OP_GLOBSERVSTATRES			= 0x97,	// <USER 4><FILES 4>
 	OP_GLOBSEARCHREQ			= 0x98,	// <search_tree>
-	OP_GLOBSEARCHRES			= 0x99,	// 
+	OP_GLOBSEARCHRES			= 0x99,	//
 	OP_GLOBGETSOURCES			= 0x9A,	// <HASH 16>
 	OP_GLOBFOUNDSOURCES			= 0x9B,	//
 	OP_GLOBCALLBACKREQ			= 0x9C,	// <IP 4><PORT 2><client_ID 4>
diff --git a/src/include/protocol/ed2k/ClientSoftware.h b/src/include/protocol/ed2k/ClientSoftware.h
index 5ccded3..b696c7f 100644
--- a/src/include/protocol/ed2k/ClientSoftware.h
+++ b/src/include/protocol/ed2k/ClientSoftware.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/protocol/ed2k/Constants.h b/src/include/protocol/ed2k/Constants.h
index 529117e..a872f2e 100644
--- a/src/include/protocol/ed2k/Constants.h
+++ b/src/include/protocol/ed2k/Constants.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -69,7 +69,7 @@
 #define	PURGESOURCESWAPSTOP			MIN2MS(15)	// How long forbid swapping a source to a certain file (NNP,...)
 #define	CONNECTION_LATENCY			22050	// latency for responces
 #define	CLIENTBANTIME				HR2MS(2) // 2h
-#define	TRACKED_CLEANUP_TIME			HR2MS(1) 
+#define	TRACKED_CLEANUP_TIME			HR2MS(1)
 #define	KEEPTRACK_TIME				HR2MS(2) // how long to keep track of clients which were once in the uploadqueue
 #define	CLIENTLIST_CLEANUP_TIME	MIN2MS(34)	// 34 min
 
diff --git a/src/include/protocol/kad/Client2Client/UDP.h b/src/include/protocol/kad/Client2Client/UDP.h
index d032bae..945c3af 100644
--- a/src/include/protocol/kad/Client2Client/UDP.h
+++ b/src/include/protocol/kad/Client2Client/UDP.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/protocol/kad/Constants.h b/src/include/protocol/kad/Constants.h
index e426b93..82b8fcc 100644
--- a/src/include/protocol/kad/Constants.h
+++ b/src/include/protocol/kad/Constants.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/protocol/kad2/Client2Client/TCP.h b/src/include/protocol/kad2/Client2Client/TCP.h
index c084bbb..44c591f 100644
--- a/src/include/protocol/kad2/Client2Client/TCP.h
+++ b/src/include/protocol/kad2/Client2Client/TCP.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/protocol/kad2/Client2Client/UDP.h b/src/include/protocol/kad2/Client2Client/UDP.h
index 267aa09..c7ee205 100644
--- a/src/include/protocol/kad2/Client2Client/UDP.h
+++ b/src/include/protocol/kad2/Client2Client/UDP.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/protocol/kad2/Constants.h b/src/include/protocol/kad2/Constants.h
index 4cc55ee..9c60334 100644
--- a/src/include/protocol/kad2/Constants.h
+++ b/src/include/protocol/kad2/Constants.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/tags/ClientTags.h b/src/include/tags/ClientTags.h
index f2c5735..9308f74 100644
--- a/src/include/tags/ClientTags.h
+++ b/src/include/tags/ClientTags.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/include/tags/FileTags.h b/src/include/tags/FileTags.h
index ddb8b78..291a3db 100644
--- a/src/include/tags/FileTags.h
+++ b/src/include/tags/FileTags.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -50,7 +50,7 @@
 #define	FT_DL_ACTIVE_TIME		0x23	// <uint32>
 #define	FT_CORRUPTEDPARTS		0x24	// <string>
 #define	FT_DL_PREVIEW			0x25
-#define	FT_KADLASTPUBLISHNOTES		0x26	// <uint32> 
+#define	FT_KADLASTPUBLISHNOTES		0x26	// <uint32>
 #define	FT_AICH_HASH			0x27
 #define	FT_COMPLETE_SOURCES		0x30	// nr. of sources which share a
 						// complete version of the
@@ -119,11 +119,11 @@
 #define	TAG_SOURCETYPE			wxT("\xFF")	// <uint8>
 
 // Media values for FT_FILETYPE
-#define	ED2KFTSTR_AUDIO			wxT("Audio")	
-#define	ED2KFTSTR_VIDEO			wxT("Video")	
-#define	ED2KFTSTR_IMAGE			wxT("Image")	
-#define	ED2KFTSTR_DOCUMENT		wxT("Doc")	
-#define	ED2KFTSTR_PROGRAM		wxT("Pro")	
+#define	ED2KFTSTR_AUDIO			wxT("Audio")
+#define	ED2KFTSTR_VIDEO			wxT("Video")
+#define	ED2KFTSTR_IMAGE			wxT("Image")
+#define	ED2KFTSTR_DOCUMENT		wxT("Doc")
+#define	ED2KFTSTR_PROGRAM		wxT("Pro")
 #define	ED2KFTSTR_ARCHIVE		wxT("Arc")	// *Mule internal use only
 #define	ED2KFTSTR_CDIMAGE		wxT("Iso")	// *Mule internal use only
 
diff --git a/src/include/tags/ServerTags.h b/src/include/tags/ServerTags.h
index 7f3914a..1fcd67c 100644
--- a/src/include/tags/ServerTags.h
+++ b/src/include/tags/ServerTags.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -49,7 +49,7 @@ enum Server_tags {
 	ST_UDPKEY		= 0x95,	// <uint32>
 	ST_UDPKEYIP		= 0x96,	// <uint32>
 	ST_TCPPORTOBFUSCATION	= 0x97,	// <uint16>
-	ST_UDPPORTOBFUSCATION	= 0x98	// <uint16>	
+	ST_UDPPORTOBFUSCATION	= 0x98	// <uint16>
 };
 
 #endif // SERVERTAGS_H
diff --git a/src/include/tags/TagTypes.h b/src/include/tags/TagTypes.h
index f302e0c..8541bde 100644
--- a/src/include/tags/TagTypes.h
+++ b/src/include/tags/TagTypes.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/inetdownload.h b/src/inetdownload.h
index 53a780e..7330fea 100644
--- a/src/inetdownload.h
+++ b/src/inetdownload.h
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/kademlia/Defines.h b/src/kademlia/kademlia/Defines.h
index fe5781c..abaf77b 100644
--- a/src/kademlia/kademlia/Defines.h
+++ b/src/kademlia/kademlia/Defines.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/kademlia/Entry.cpp b/src/kademlia/kademlia/Entry.cpp
index 098bab5..3c7e800 100644
--- a/src/kademlia/kademlia/Entry.cpp
+++ b/src/kademlia/kademlia/Entry.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -65,11 +65,11 @@ CEntry* CEntry::Copy() const
 		entry->m_filenames.push_back(*it);
 	}
 	entry->m_uIP = m_uIP;
-	entry->m_uKeyID.SetValue(m_uKeyID);
+	entry->m_uKeyID = m_uKeyID;
 	entry->m_tLifeTime = m_tLifeTime;
 	entry->m_uSize = m_uSize;
 	entry->m_bSource = m_bSource;
-	entry->m_uSourceID.SetValue(m_uSourceID);
+	entry->m_uSourceID = m_uSourceID;
 	entry->m_uTCPport = m_uTCPport;
 	entry->m_uUDPport = m_uUDPport;
 	for (TagPtrList::const_iterator it = m_taglist.begin(); it != m_taglist.end(); ++it) {
@@ -349,7 +349,7 @@ void CKeyEntry::AdjustGlobalPublishTracking(uint32_t ip, bool increase, const wx
 
 void CKeyEntry::MergeIPsAndFilenames(CKeyEntry* fromEntry)
 {
-	// this is called when replacing a stored entry with a refreshed one. 
+	// this is called when replacing a stored entry with a refreshed one.
 	// we want to take over the tracked IPs and the different filenames from the old entry, the rest is still
 	// "overwritten" with the refreshed values. This might be not perfect for the taglist in some cases, but we can't afford
 	// to store hundreds of taglists to figure out the best one like we do for the filenames now
@@ -371,7 +371,7 @@ void CKeyEntry::MergeIPsAndFilenames(CKeyEntry* fromEntry)
 	} else {
 		// merge the tracked IPs, add this one if not already on the list
 		m_publishingIPs = fromEntry->m_publishingIPs;
-		fromEntry->m_publishingIPs = NULL;	
+		fromEntry->m_publishingIPs = NULL;
 		bool fastRefresh = false;
 		for (PublishingIPList::iterator it = m_publishingIPs->begin(); it != m_publishingIPs->end(); ++it) {
 			if (it->m_ip == m_uIP) {
@@ -432,7 +432,7 @@ void CKeyEntry::MergeIPsAndFilenames(CKeyEntry* fromEntry)
 			AdjustGlobalPublishTracking(curEntry.m_ip, false, wxT("more than 100 publishers purge"));
 		}
 
-		// since we added a new publisher, we want to (re)calculate the trust value for this entry		
+		// since we added a new publisher, we want to (re)calculate the trust value for this entry
 		ReCalculateTrustValue();
 	}
 	AddDebugLogLineN(logKadEntryTracking, CFormat(wxT("Indexed Keyword, Refresh: %s, Current Publisher: %s, Total Publishers: %u, Total different Names: %u, TrustValue: %.2f, file: %s"))
@@ -561,16 +561,16 @@ void CKeyEntry::ReadPublishTrackingDataFromFile(CFileDataIO* data)
 	}
 	ReCalculateTrustValue();
 // #ifdef __DEBUG__
-// 	if (GetTrustValue() < 1.0) {
-// 		AddDebugLogLineN(logKadEntryTracking,CFormat(wxT("Loaded %u different names, %u different publishIPs (trustvalue = %.2f) for file %s"))
-// 			% nameCount % ipCount % GetTrustValue() % m_uSourceID.ToHexString());
-// 	}
+//	if (GetTrustValue() < 1.0) {
+//		AddDebugLogLineN(logKadEntryTracking,CFormat(wxT("Loaded %u different names, %u different publishIPs (trustvalue = %.2f) for file %s"))
+//			% nameCount % ipCount % GetTrustValue() % m_uSourceID.ToHexString());
+//	}
 // #endif
 }
 
 void CKeyEntry::DirtyDeletePublishData()
 {
-	// instead of deleting our publishers properly in the destructor with decreasing the count in the global map 
+	// instead of deleting our publishers properly in the destructor with decreasing the count in the global map
 	// we just remove them, and trust that the caller in the end also resets the global map, so the
 	// kad shutdown is speed up a bit
 	delete m_publishingIPs;
@@ -579,7 +579,7 @@ void CKeyEntry::DirtyDeletePublishData()
 
 void CKeyEntry::WriteTagListWithPublishInfo(CFileDataIO* data)
 {
-	if (m_publishingIPs == NULL || m_publishingIPs->size() == 0) {
+	if (m_publishingIPs == NULL || m_publishingIPs->empty()) {
 		wxFAIL;
 		WriteTagList(data);
 		return;
diff --git a/src/kademlia/kademlia/Entry.h b/src/kademlia/kademlia/Entry.h
index d9c48f2..de60532 100644
--- a/src/kademlia/kademlia/Entry.h
+++ b/src/kademlia/kademlia/Entry.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -75,7 +75,7 @@ public:
 	virtual		~CEntry();
 	virtual CEntry*	Copy() const;
 	virtual bool	IsKeyEntry() const throw()	{ return false; }
-	
+
 	bool	 GetIntTagValue(const wxString& tagname, uint64_t& value, bool includeVirtualTags = true) const;
 	wxString GetStrTagValue(const wxString& tagname) const;
 
diff --git a/src/kademlia/kademlia/Error.h b/src/kademlia/kademlia/Error.h
index 83eb268..8a74cd4 100644
--- a/src/kademlia/kademlia/Error.h
+++ b/src/kademlia/kademlia/Error.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -67,7 +67,7 @@ namespace Kademlia {
 class CKademliaError
 {
 public:
-	
+
 	CKademliaError(int errorCode, const wxString& errorDescription)
 		: m_ErrorCode(errorCode), m_ErrorDescription(errorDescription)
 		{}
diff --git a/src/kademlia/kademlia/Indexed.cpp b/src/kademlia/kademlia/Indexed.cpp
index 2fca0cc..3355a0f 100644
--- a/src/kademlia/kademlia/Indexed.cpp
+++ b/src/kademlia/kademlia/Indexed.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -213,8 +213,8 @@ void CIndexed::ReadFile()
 									}
 									tagList--;
 								}
-								toAdd->m_uKeyID.SetValue(keyID);
-								toAdd->m_uSourceID.SetValue(sourceID);
+								toAdd->m_uKeyID = keyID;
+								toAdd->m_uSourceID = sourceID;
 								uint8_t load;
 								if (AddSources(keyID, sourceID, toAdd, load)) {
 									totalSource++;
@@ -230,12 +230,12 @@ void CIndexed::ReadFile()
 				}
 			}
 			s_file.Close();
-
-			m_totalIndexSource = totalSource;
-			m_totalIndexKeyword = totalKeyword;
-			m_totalIndexLoad = totalLoad;
-			AddDebugLogLineN(logKadIndex, CFormat(wxT("Read %u source, %u keyword, and %u load entries")) % totalSource % totalKeyword % totalLoad);
 		}
+
+		m_totalIndexSource = totalSource;
+		m_totalIndexKeyword = totalKeyword;
+		m_totalIndexLoad = totalLoad;
+		AddDebugLogLineN(logKadIndex, CFormat(wxT("Read %u source, %u keyword, and %u load entries")) % totalSource % totalKeyword % totalLoad);
 	} catch (const CSafeIOException& err) {
 		AddDebugLogLineC(logKadIndex, wxT("CSafeIOException in CIndexed::readFile: ") + err.what());
 	} catch (const CInvalidPacket& err) {
@@ -365,7 +365,7 @@ CIndexed::~CIndexed()
 				delete currNote;
 			}
 			delete currNoteHash;
-		} 
+		}
 
 		m_Notes_map.clear();
 	} catch (const CSafeIOException& err) {
@@ -436,7 +436,7 @@ void CIndexed::Clean()
 
 		CKadSourcePtrList::iterator itSource = currSrcHash->m_Source_map.begin();
 		while (itSource != currSrcHash->m_Source_map.end()) {
-			Source* currSource = *itSource;			
+			Source* currSource = *itSource;
 
 			CKadEntryPtrList::iterator itEntry = currSource->entryList.begin();
 			while (itEntry != currSource->entryList.end()) {
@@ -489,22 +489,22 @@ bool CIndexed::AddKeyword(const CUInt128& keyID, const CUInt128& sourceID, Kadem
 		return false;
 	}
 
-	KeyHashMap::iterator itKeyHash = m_Keyword_map.find(keyID); 
+	KeyHashMap::iterator itKeyHash = m_Keyword_map.find(keyID);
 	KeyHash* currKeyHash = NULL;
 	if (itKeyHash == m_Keyword_map.end()) {
 		Source* currSource = new Source;
-		currSource->sourceID.SetValue(sourceID);
+		currSource->sourceID = sourceID;
 		entry->MergeIPsAndFilenames(NULL); // IpTracking init
 		currSource->entryList.push_front(entry);
 		currKeyHash = new KeyHash;
-		currKeyHash->keyID.SetValue(keyID);
+		currKeyHash->keyID = keyID;
 		currKeyHash->m_Source_map[currSource->sourceID] = currSource;
 		m_Keyword_map[currKeyHash->keyID] = currKeyHash;
 		load = 1;
 		m_totalIndexKeyword++;
 		return true;
 	} else {
-		currKeyHash = itKeyHash->second; 
+		currKeyHash = itKeyHash->second;
 		size_t indexTotal = currKeyHash->m_Source_map.size();
 		if (indexTotal > KADEMLIAMAXINDEX) {
 			load = 100;
@@ -515,7 +515,7 @@ bool CIndexed::AddKeyword(const CUInt128& keyID, const CUInt128& sourceID, Kadem
 		CSourceKeyMap::iterator itSource = currKeyHash->m_Source_map.find(sourceID);
 		if (itSource != currKeyHash->m_Source_map.end()) {
 			currSource = itSource->second;
-			if (currSource->entryList.size() > 0) {
+			if (!currSource->entryList.empty()) {
 				if (indexTotal > KADEMLIAMAXINDEX - 5000) {
 					load = 100;
 					//We are in a hot node.. If we continued to update all the publishes
@@ -549,7 +549,7 @@ bool CIndexed::AddKeyword(const CUInt128& keyID, const CUInt128& sourceID, Kadem
 			return true;
 		} else {
 			currSource = new Source;
-			currSource->sourceID.SetValue(sourceID);
+			currSource->sourceID = sourceID;
 			entry->MergeIPsAndFilenames(NULL); // IpTracking init
 			currSource->entryList.push_front(entry);
 			currKeyHash->m_Source_map[currSource->sourceID] = currSource;
@@ -570,15 +570,15 @@ bool CIndexed::AddSources(const CUInt128& keyID, const CUInt128& sourceID, Kadem
 	if( entry->m_uIP == 0 || entry->m_uTCPport == 0 || entry->m_uUDPport == 0 || entry->GetTagCount() == 0 || entry->m_tLifeTime < time(NULL)) {
 		return false;
 	}
-		
+
 	SrcHash* currSrcHash = NULL;
 	SrcHashMap::iterator itSrcHash = m_Sources_map.find(keyID);
 	if (itSrcHash == m_Sources_map.end()) {
 		Source* currSource = new Source;
-		currSource->sourceID.SetValue(sourceID);
+		currSource->sourceID = sourceID;
 		currSource->entryList.push_front(entry);
 		currSrcHash = new SrcHash;
-		currSrcHash->keyID.SetValue(keyID);
+		currSrcHash->keyID = keyID;
 		currSrcHash->m_Source_map.push_front(currSource);
 		m_Sources_map[currSrcHash->keyID] =  currSrcHash;
 		m_totalIndexSource++;
@@ -590,7 +590,7 @@ bool CIndexed::AddSources(const CUInt128& keyID, const CUInt128& sourceID, Kadem
 
 		for (CKadSourcePtrList::iterator itSource = currSrcHash->m_Source_map.begin(); itSource != currSrcHash->m_Source_map.end(); ++itSource) {
 			Source* currSource = *itSource;
-			if (currSource->entryList.size()) {
+			if (!currSource->entryList.empty()) {
 				CEntry* currEntry = currSource->entryList.front();
 				wxASSERT(currEntry != NULL);
 				if (currEntry->m_uIP == entry->m_uIP && (currEntry->m_uTCPport == entry->m_uTCPport || currEntry->m_uUDPport == entry->m_uUDPport)) {
@@ -617,14 +617,14 @@ bool CIndexed::AddSources(const CUInt128& keyID, const CUInt128& sourceID, Kadem
 			currSource->entryList.pop_back();
 			wxASSERT(currName != NULL);
 			delete currName;
-			currSource->sourceID.SetValue(sourceID);
+			currSource->sourceID = sourceID;
 			currSource->entryList.push_front(entry);
 			currSrcHash->m_Source_map.push_front(currSource);
 			load = 100;
 			return true;
 		} else {
 			Source* currSource = new Source;
-			currSource->sourceID.SetValue(sourceID);
+			currSource->sourceID = sourceID;
 			currSource->entryList.push_front(entry);
 			currSrcHash->m_Source_map.push_front(currSource);
 			m_totalIndexSource++;
@@ -632,7 +632,7 @@ bool CIndexed::AddSources(const CUInt128& keyID, const CUInt128& sourceID, Kadem
 			return true;
 		}
 	}
-	
+
 	return false;
 }
 
@@ -650,10 +650,10 @@ bool CIndexed::AddNotes(const CUInt128& keyID, const CUInt128& sourceID, Kademli
 	SrcHashMap::iterator itNoteHash = m_Notes_map.find(keyID);
 	if (itNoteHash == m_Notes_map.end()) {
 		Source* currNote = new Source;
-		currNote->sourceID.SetValue(sourceID);
+		currNote->sourceID = sourceID;
 		currNote->entryList.push_front(entry);
 		currNoteHash = new SrcHash;
-		currNoteHash->keyID.SetValue(keyID);
+		currNoteHash->keyID = keyID;
 		currNoteHash->m_Source_map.push_front(currNote);
 		m_Notes_map[currNoteHash->keyID] = currNoteHash;
 		load = 1;
@@ -663,9 +663,9 @@ bool CIndexed::AddNotes(const CUInt128& keyID, const CUInt128& sourceID, Kademli
 		currNoteHash = itNoteHash->second;
 		size_t size = currNoteHash->m_Source_map.size();
 
-		for (CKadSourcePtrList::iterator itSource = currNoteHash->m_Source_map.begin(); itSource != currNoteHash->m_Source_map.end(); ++itSource) {			
-			Source* currNote = *itSource;			
-			if( currNote->entryList.size() ) {
+		for (CKadSourcePtrList::iterator itSource = currNoteHash->m_Source_map.begin(); itSource != currNoteHash->m_Source_map.end(); ++itSource) {
+			Source* currNote = *itSource;
+			if (!currNote->entryList.empty()) {
 				CEntry* currEntry = currNote->entryList.front();
 				wxASSERT(currEntry!=NULL);
 				if (currEntry->m_uIP == entry->m_uIP || currEntry->m_uSourceID == entry->m_uSourceID) {
@@ -693,14 +693,14 @@ bool CIndexed::AddNotes(const CUInt128& keyID, const CUInt128& sourceID, Kademli
 			currNote->entryList.pop_back();
 			wxASSERT(currName != NULL);
 			delete currName;
-			currNote->sourceID.SetValue(sourceID);
+			currNote->sourceID = sourceID;
 			currNote->entryList.push_front(entry);
 			currNoteHash->m_Source_map.push_front(currNote);
 			load = 100;
 			return true;
 		} else {
 			Source* currNote = new Source;
-			currNote->sourceID.SetValue(sourceID);
+			currNote->sourceID = sourceID;
 			currNote->entryList.push_front(entry);
 			currNoteHash->m_Source_map.push_front(currNote);
 			load = (size * 100) / KADEMLIAMAXNOTESPERFILE;
@@ -725,7 +725,7 @@ bool CIndexed::AddLoad(const CUInt128& keyID, uint32_t timet)
 	}
 
 	load = new Load();
-	load->keyID.SetValue(keyID);
+	load->keyID = keyID;
 	load->time = timet;
 	m_Load_map[load->keyID] = load;
 	m_totalIndexLoad++;
@@ -827,8 +827,8 @@ void CIndexed::SendValidSourceResult(const CUInt128& keyID, uint32_t ip, uint16_
 		int count = 0 - startPosition;
 
 		for (CKadSourcePtrList::iterator itSource = currSrcHash->m_Source_map.begin(); itSource != currSrcHash->m_Source_map.end(); ++itSource) {
-			Source* currSource = *itSource;	
-			if (currSource->entryList.size()) {
+			Source* currSource = *itSource;
+			if (!currSource->entryList.empty()) {
 				Kademlia::CEntry* currName = currSource->entryList.front();
 				if (count < 0) {
 					count++;
@@ -868,7 +868,7 @@ void CIndexed::SendValidNoteResult(const CUInt128& keyID, uint32_t ip, uint16_t
 	SrcHash* currNoteHash = NULL;
 	SrcHashMap::iterator itNote = m_Notes_map.find(keyID);
 	if (itNote != m_Notes_map.end()) {
-		currNoteHash = itNote->second;		
+		currNoteHash = itNote->second;
 		CMemFile packetdata(1024*50);
 		packetdata.WriteUInt128(Kademlia::CKademlia::GetPrefs()->GetKadID());
 		packetdata.WriteUInt128(keyID);
@@ -878,7 +878,7 @@ void CIndexed::SendValidNoteResult(const CUInt128& keyID, uint32_t ip, uint16_t
 
 		for (CKadSourcePtrList::iterator itSource = currNoteHash->m_Source_map.begin(); itSource != currNoteHash->m_Source_map.end(); ++itSource ) {
 			Source* currNote = *itSource;
-			if (currNote->entryList.size()) {
+			if (!currNote->entryList.empty()) {
 				Kademlia::CEntry* currName = currNote->entryList.front();
 				if (count < maxResults) {
 					if (!fileSize || !currName->m_uSize || fileSize == currName->m_uSize) {
@@ -926,12 +926,12 @@ bool CIndexed::SendStoreRequest(const CUInt128& keyID)
 }
 
 SSearchTerm::SSearchTerm()
-{
-	type = AND;
-	tag = NULL;
-	left = NULL;
-	right = NULL;
-}
+	: type(AND),
+	  tag(NULL),
+	  astr(NULL),
+	  left(NULL),
+	  right(NULL)
+{}
 
 SSearchTerm::~SSearchTerm()
 {
diff --git a/src/kademlia/kademlia/Indexed.h b/src/kademlia/kademlia/Indexed.h
index a15b740..627728f 100644
--- a/src/kademlia/kademlia/Indexed.h
+++ b/src/kademlia/kademlia/Indexed.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -80,7 +80,7 @@ struct SSearchTerm
 {
 	SSearchTerm();
 	~SSearchTerm();
-	
+
 	enum ESearchTermType {
 		AND,
 		OR,
@@ -94,7 +94,7 @@ struct SSearchTerm
 		OpEqual,
 		OpNotEqual
 	} type;
-	
+
 	CTag* tag;
 	wxArrayString* astr;
 
diff --git a/src/kademlia/kademlia/Kademlia.cpp b/src/kademlia/kademlia/Kademlia.cpp
index beec808..f08d735 100644
--- a/src/kademlia/kademlia/Kademlia.cpp
+++ b/src/kademlia/kademlia/Kademlia.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -245,7 +245,7 @@ void CKademlia::Process()
 						zone->m_nextBigTimer = HR2S(1) + now;
 						m_bigTimer = SEC(10) + now;
 					}
-				} 
+				}
 			}
 		}
 
@@ -254,7 +254,7 @@ void CKademlia::Process()
 			zone->m_nextSmallTimer = MIN2S(1) + now;
 		}
 	}
-	
+
 	// This is a convenient place to add this, although not related to routing
 	if (m_nextSearchJumpStart <= now) {
 		CSearchManager::JumpStart();
@@ -505,11 +505,11 @@ void KadGetKeywordHash(const wxString& rstrKeyword, Kademlia::CUInt128* pKadID)
 
 	// This should be safe - we assume rstrKeyword is ANSI anyway.
 	char* ansi_buffer = strdup(unicode2UTF8(rstrKeyword));
-	
+
 	//printf("Kad keyword hash: UTF8 %s\n",ansi_buffer);
 	md4_hasher.CalculateDigest(Output,(const unsigned char*)ansi_buffer,strlen(ansi_buffer));
 	//DumpMem(Output,16);
 	free(ansi_buffer);
-	
+
 	pKadID->SetValueBE(Output);
 }
diff --git a/src/kademlia/kademlia/Kademlia.h b/src/kademlia/kademlia/Kademlia.h
index 16166db..035fd3a 100644
--- a/src/kademlia/kademlia/Kademlia.h
+++ b/src/kademlia/kademlia/Kademlia.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -62,10 +62,10 @@ typedef std::map<CRoutingZone*, CRoutingZone*> EventMap;
 class CKademlia
 {
 public:
-	static void Start() 		{ Start(new CPrefs); }
+	static void Start()		{ Start(new CPrefs); }
 	static void Start(CPrefs *prefs);
 	static void Stop();
- 
+
 	static CPrefs *			GetPrefs() throw()		{ if (instance == NULL || instance->m_prefs == NULL) return NULL; else return instance->m_prefs; }
 	static CRoutingZone *		GetRoutingZone()		{ wxCHECK(instance && instance->m_routingZone, NULL); return instance->m_routingZone; }
 	static CKademliaUDPListener *	GetUDPListener()		{ wxCHECK(instance && instance->m_udpListener, NULL); return instance->m_udpListener; }
diff --git a/src/kademlia/kademlia/Prefs.cpp b/src/kademlia/kademlia/Prefs.cpp
index f155887..b62c13e 100644
--- a/src/kademlia/kademlia/Prefs.cpp
+++ b/src/kademlia/kademlia/Prefs.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/kademlia/Prefs.h b/src/kademlia/kademlia/Prefs.h
index 5652da2..60433c0 100644
--- a/src/kademlia/kademlia/Prefs.h
+++ b/src/kademlia/kademlia/Prefs.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/kademlia/Search.cpp b/src/kademlia/kademlia/Search.cpp
index 7b24bcf..cb399b3 100644
--- a/src/kademlia/kademlia/Search.cpp
+++ b/src/kademlia/kademlia/Search.cpp
@@ -19,7 +19,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -232,7 +232,7 @@ void CSearch::PrepareToStop() throw()
 	// Adjust created time so that search will delete within 15 seconds.
 	// This gives late results time to be processed.
 	m_created = time(NULL) - baseTime + SEC(15);
-	m_stopping = true;	
+	m_stopping = true;
 }
 
 void CSearch::JumpStart()
@@ -279,7 +279,7 @@ void CSearch::JumpStart()
 	while (!m_possible.empty()) {
 		// Get a contact closest to our target.
 		CContact *c = m_possible.begin()->second;
-	
+
 		// Have we already tried to contact this node.
 		if (m_tried.count(m_possible.begin()->first) > 0) {
 			// Did we get a response from this node, if so, try to store or get info.
@@ -297,7 +297,7 @@ void CSearch::JumpStart()
 			break;
 		}
 	}
-	
+
 }
 
 void CSearch::ProcessResponse(uint32_t fromIP, uint16_t fromPort, ContactList *results)
@@ -584,7 +584,7 @@ void CSearch::StorePacket()
 				CUInt128 id(CKademlia::GetPrefs()->GetClientHash());
 				TagPtrList taglist;
 
-				//We can use type for different types of sources. 
+				//We can use type for different types of sources.
 				//1 HighID sources..
 				//2 cannot be used as older clients will not work.
 				//3 Firewalled Kad Source.
@@ -674,7 +674,7 @@ void CSearch::StorePacket()
 
 			while (count && (itListFileID != m_fileIDs.end())) {
 				uint16_t packetCount = 0;
-				CMemFile packetdata(1024*50); // Allocate a good amount of space.			
+				CMemFile packetdata(1024*50); // Allocate a good amount of space.
 				packetdata.WriteUInt128(m_target);
 				packetdata.WriteUInt16(0); // Will be updated before sending.
 				while ((packetCount < 50) && (itListFileID != m_fileIDs.end())) {
@@ -915,7 +915,7 @@ void CSearch::ProcessResultFile(const CUInt128& answer, TagPtrList *info)
 			m_answers++;
 			theApp->downloadqueue->KademliaSearchFile(m_searchID, &answer, &buddy, type, ip, tcp, udp, buddyip, buddyport, byCryptOptions);
 			break;
-		case 2: 
+		case 2:
 			//Don't use this type, some clients will process it wrong.
 		default:
 			break;
@@ -927,8 +927,8 @@ void CSearch::ProcessResultNotes(const CUInt128& answer, TagPtrList *info)
 	// Process a received Note to a file.
 	// Create a Note and set the IDs.
 	CEntry* entry = new CEntry();
-	entry->m_uKeyID.SetValue(m_target);
-	entry->m_uSourceID.SetValue(answer);
+	entry->m_uKeyID = m_target;
+	entry->m_uSourceID = answer;
 
 	bool bFilterComment = false;
 
@@ -966,7 +966,7 @@ void CSearch::ProcessResultNotes(const CUInt128& answer, TagPtrList *info)
 
 	if (!file) {
 		// If we didn't find anything check if it's in our download queue.
-		file = (CKnownFile*)theApp->downloadqueue->GetFileByID(fileHash);
+		file = theApp->downloadqueue->GetFileByID(fileHash);
 	}
 
 	// If we found a file try to add the note to the file.
@@ -1208,7 +1208,7 @@ void CSearch::PreparePacketForTags(CMemFile *bio, CKnownFile *file)
 {
 	// We're going to publish a keyword, set up the tag list
 	TagPtrList taglist;
-	
+
 	try {
 		if (file && bio) {
 			// Name, Size
@@ -1222,14 +1222,14 @@ void CSearch::PreparePacketForTags(CMemFile *bio, CKnownFile *file)
 			if (!strED2KFileType.IsEmpty()) {
 				taglist.push_back(new CTagString(TAG_FILETYPE, strED2KFileType));
 			}
-			
+
 			// additional meta data (Artist, Album, Codec, Length, ...)
 			// only send verified meta data to nodes
 			if (file->GetMetaDataVer() > 0) {
 				static const struct{
 					uint8_t	nName;
 					uint8_t	nType;
-				} _aMetaTags[] = 
+				} _aMetaTags[] =
 				{
 					{ FT_MEDIA_ARTIST,  2 },
 					{ FT_MEDIA_ALBUM,   2 },
@@ -1269,7 +1269,7 @@ void CSearch::PreparePacketForTags(CMemFile *bio, CKnownFile *file)
 		AddDebugLogLineC(logKadSearch, wxT("CInvalidPacket Exception in CSearch::PreparePacketForTags: ") + err.what());
 	} catch (const wxString& e) {
 		AddDebugLogLineC(logKadSearch, wxT("Exception in CSearch::PreparePacketForTags: ") + e);
-	} 
+	}
 
 	deleteTagPtrListEntries(&taglist);
 }
diff --git a/src/kademlia/kademlia/Search.h b/src/kademlia/kademlia/Search.h
index 88c3289..f781c86 100644
--- a/src/kademlia/kademlia/Search.h
+++ b/src/kademlia/kademlia/Search.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/kademlia/SearchManager.cpp b/src/kademlia/kademlia/SearchManager.cpp
index 5f23983..e7f25d4 100644
--- a/src/kademlia/kademlia/SearchManager.cpp
+++ b/src/kademlia/kademlia/SearchManager.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,13 +48,10 @@ there client on the eMule forum..
 #include "../../Logger.h"
 #include "../../RandomFunctions.h"		// Needed for GetRandomUInt128()
 #include "../../OtherFunctions.h"		// Needed for DeleteContents()
+#include "../../CompilerSpecific.h"		// Needed for __FUNCTION__
 
 #include <wx/tokenzr.h>
 
-#if defined(__SUNPRO_CC)
-#define __FUNCTION__ __FILE__+__LINE__
-#endif
-
 ////////////////////////////////////////
 using namespace Kademlia;
 ////////////////////////////////////////
@@ -270,7 +267,7 @@ void CSearchManager::JumpStart()
 					current_it->second->PrepareToStop();
 				} else {
 					current_it->second->JumpStart();
-				}					
+				}
 				break;
 			}
 			case CSearch::KEYWORD: {
@@ -406,7 +403,7 @@ void CSearchManager::UpdateStats() throw()
 	uint8_t m_totalSource = 0;
 	uint8_t m_totalNotes = 0;
 	uint8_t m_totalStoreNotes = 0;
-		
+
 	for (SearchMap::const_iterator it = m_searches.begin(); it != m_searches.end(); ++it) {
 		switch(it->second->GetSearchTypes()){
 			case CSearch::FILE: {
diff --git a/src/kademlia/kademlia/SearchManager.h b/src/kademlia/kademlia/SearchManager.h
index 487a13d..8659868 100644
--- a/src/kademlia/kademlia/SearchManager.h
+++ b/src/kademlia/kademlia/SearchManager.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/kademlia/UDPFirewallTester.cpp b/src/kademlia/kademlia/UDPFirewallTester.cpp
index 4e6186b..ab1f6f1 100644
--- a/src/kademlia/kademlia/UDPFirewallTester.cpp
+++ b/src/kademlia/kademlia/UDPFirewallTester.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/kademlia/UDPFirewallTester.h b/src/kademlia/kademlia/UDPFirewallTester.h
index 3a4c1ce..a7e2f90 100644
--- a/src/kademlia/kademlia/UDPFirewallTester.h
+++ b/src/kademlia/kademlia/UDPFirewallTester.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/net/KademliaUDPListener.cpp b/src/kademlia/net/KademliaUDPListener.cpp
index 4b057ba..084eef5 100644
--- a/src/kademlia/net/KademliaUDPListener.cpp
+++ b/src/kademlia/net/KademliaUDPListener.cpp
@@ -66,15 +66,12 @@ there client on the eMule forum..
 #include "../../ScopedPtr.h"
 #include "../../IPFilter.h"
 #include "../../RandomFunctions.h"		// Needed for GetRandomUint128()
+#include "../../CompilerSpecific.h"		// Needed for __FUNCTION__
 
 #include <wx/tokenzr.h>
 
 #define THIS_DEBUG_IS_JUST_FOR_KRY_DONT_TOUCH_IT_KTHX 0
 
-#if defined(__SUNPRO_CC)
-#define __FUNCTION__ __FILE__+__LINE__
-#endif
-
 #define CHECK_PACKET_SIZE(OP, SIZE) \
 	if (lenPacket OP (uint32_t)(SIZE)) \
 		throw wxString(CFormat(wxT("***NOTE: Received wrong size (%u) packet in %s")) % lenPacket % wxString::FromAscii(__FUNCTION__))
@@ -118,7 +115,7 @@ void CKademliaUDPListener::SendMyDetails(uint8_t opcode, uint32_t ip, uint16_t p
 {
 	CMemFile packetdata;
 	packetdata.WriteUInt128(CKademlia::GetPrefs()->GetKadID());
-	
+
 	if (kadVersion > 1) {
 		packetdata.WriteUInt16(thePrefs::GetPort());
 		packetdata.WriteUInt8(KADEMLIA_VERSION);
@@ -585,6 +582,7 @@ void CKademliaUDPListener::Process2HelloResponseAck(const uint8_t *packetData, u
 	// Additional packet to complete a three-way-handshake, making sure the remote contact is not using a spoofed ip.
 	CMemFile bio(packetData, lenPacket);
 	CUInt128 remoteID = bio.ReadUInt128();
+	// cppcheck-suppress duplicateBranch
 	if (!CKademlia::GetRoutingZone()->VerifyContact(remoteID, ip)) {
 		AddDebugLogLineN(logKadRouting, wxT("Unable to find valid sender in routing table (sender: ") + KadIPToString(ip) + wxT(")"));
 	} else {
@@ -653,7 +651,7 @@ void CKademliaUDPListener::ProcessKademlia2Request(const uint8_t *packetData, ui
 	CUInt128 target = bio.ReadUInt128();
 	// Convert Target to Distance as this is how we store contacts.
 	CUInt128 distance(CKademlia::GetPrefs()->GetKadID());
-	distance.XOR(target);
+	distance ^= target;
 
 	// This makes sure we are not mistaken identify. Some client may have fresh installed and have a new KadID.
 	CUInt128 check = bio.ReadUInt128();
@@ -702,6 +700,7 @@ void CKademliaUDPListener::ProcessKademlia2Response(const uint8_t *packetData, u
 	CUInt128 contactID;
 	if (IsLegacyChallenge(target, ip, KADEMLIA2_REQ, contactID)) {
 		// yup it is, set the contact as verified
+		// cppcheck-suppress duplicateBranch
 		if (!routingZone->VerifyContact(contactID, ip)) {
 			AddDebugLogLineN(logKadRouting, wxT("Unable to find valid sender in routing table (sender: ") + KadIPToString(ip) + wxT(")"));
 		} else {
@@ -779,7 +778,7 @@ void CKademliaUDPListener::Free(SSearchTerm* pSearchTerms)
 
 SSearchTerm* CKademliaUDPListener::CreateSearchExpressionTree(CMemFile& bio, int iLevel)
 {
-	// the max. depth has to match our own limit for creating the search expression 
+	// the max. depth has to match our own limit for creating the search expression
 	// (see also 'ParsedSearchExpression' and 'GetSearchPacket')
 	if (iLevel >= 24){
 		AddDebugLogLineN(logKadSearch, wxT("***NOTE: Search expression tree exceeds depth limit!"));
@@ -793,14 +792,11 @@ SSearchTerm* CKademliaUDPListener::CreateSearchExpressionTree(CMemFile& bio, int
 		if (boolop == 0x00) { // AND
 			SSearchTerm* pSearchTerm = new SSearchTerm;
 			pSearchTerm->type = SSearchTerm::AND;
-			//TRACE(" AND");
-			if ((pSearchTerm->left = CreateSearchExpressionTree(bio, iLevel)) == NULL){
-				wxFAIL;
+			if ((pSearchTerm->left = CreateSearchExpressionTree(bio, iLevel)) == NULL) {
 				delete pSearchTerm;
 				return NULL;
 			}
-			if ((pSearchTerm->right = CreateSearchExpressionTree(bio, iLevel)) == NULL){
-				wxFAIL;
+			if ((pSearchTerm->right = CreateSearchExpressionTree(bio, iLevel)) == NULL) {
 				Free(pSearchTerm->left);
 				delete pSearchTerm;
 				return NULL;
@@ -809,14 +805,11 @@ SSearchTerm* CKademliaUDPListener::CreateSearchExpressionTree(CMemFile& bio, int
 		} else if (boolop == 0x01) { // OR
 			SSearchTerm* pSearchTerm = new SSearchTerm;
 			pSearchTerm->type = SSearchTerm::OR;
-			//TRACE(" OR");
-			if ((pSearchTerm->left = CreateSearchExpressionTree(bio, iLevel)) == NULL){
-				wxFAIL;
+			if ((pSearchTerm->left = CreateSearchExpressionTree(bio, iLevel)) == NULL) {
 				delete pSearchTerm;
 				return NULL;
 			}
-			if ((pSearchTerm->right = CreateSearchExpressionTree(bio, iLevel)) == NULL){
-				wxFAIL;
+			if ((pSearchTerm->right = CreateSearchExpressionTree(bio, iLevel)) == NULL) {
 				Free(pSearchTerm->left);
 				delete pSearchTerm;
 				return NULL;
@@ -825,14 +818,11 @@ SSearchTerm* CKademliaUDPListener::CreateSearchExpressionTree(CMemFile& bio, int
 		} else if (boolop == 0x02) { // NOT
 			SSearchTerm* pSearchTerm = new SSearchTerm;
 			pSearchTerm->type = SSearchTerm::NOT;
-			//TRACE(" NOT");
-			if ((pSearchTerm->left = CreateSearchExpressionTree(bio, iLevel)) == NULL){
-				wxFAIL;
+			if ((pSearchTerm->left = CreateSearchExpressionTree(bio, iLevel)) == NULL) {
 				delete pSearchTerm;
 				return NULL;
 			}
-			if ((pSearchTerm->right = CreateSearchExpressionTree(bio, iLevel)) == NULL){
-				wxFAIL;
+			if ((pSearchTerm->right = CreateSearchExpressionTree(bio, iLevel)) == NULL) {
 				Free(pSearchTerm->left);
 				delete pSearchTerm;
 				return NULL;
@@ -844,17 +834,17 @@ SSearchTerm* CKademliaUDPListener::CreateSearchExpressionTree(CMemFile& bio, int
 		}
 	} else if (op == 0x01) { // String
 		wxString str(bio.ReadString(true));
-		
+
 		// Make lowercase, the search code expects lower case strings!
-		str.MakeLower(); 
-		
+		str.MakeLower();
+
 		SSearchTerm* pSearchTerm = new SSearchTerm;
 		pSearchTerm->type = SSearchTerm::String;
 		pSearchTerm->astr = new wxArrayString;
 
 		// pre-tokenize the string term
 		//#warning TODO: TokenizeOptQuotedSearchTerm
-		wxStringTokenizer token(str, CSearchManager::GetInvalidKeywordChars(),wxTOKEN_DEFAULT );
+		wxStringTokenizer token(str, CSearchManager::GetInvalidKeywordChars(), wxTOKEN_DEFAULT );
 		while (token.HasMoreTokens()) {
 			wxString strTok(token.GetNextToken());
 			if (!strTok.IsEmpty()) {
@@ -961,11 +951,11 @@ void CKademliaUDPListener::ProcessSearchResponse(CMemFile& bio)
 
 		// Get info about answer
 		// NOTE: this is the one and only place in Kad where we allow string conversion to local code page in
-		// case we did not receive an UTF8 string. this is for backward compatibility for search results which are 
+		// case we did not receive an UTF8 string. this is for backward compatibility for search results which are
 		// supposed to be 'viewed' by user only and not feed into the Kad engine again!
 		// If that tag list is once used for something else than for viewing, special care has to be taken for any
 		// string conversion!
- 		CScopedContainer<TagPtrList> tags;
+		CScopedContainer<TagPtrList> tags;
 		bio.ReadTagPtrList(tags.get(), true/*bOptACP*/);
 		CSearchManager::ProcessResult(target, answer, tags.get());
 		count--;
@@ -1013,7 +1003,7 @@ void CKademliaUDPListener::Process2PublishKeyRequest(const uint8_t *packetData,
 	CUInt128 file = bio.ReadUInt128();
 
 	CUInt128 distance(CKademlia::GetPrefs()->GetKadID());
-	distance.XOR(file);
+	distance ^= file;
 
 	if (distance.Get32BitChunk(0) > SEARCHTOLERANCE && !::IsLanIP(wxUINT32_SWAP_ALWAYS(ip))) {
 		return;
@@ -1032,8 +1022,8 @@ void CKademliaUDPListener::Process2PublishKeyRequest(const uint8_t *packetData,
 		{
 			entry->m_uIP = ip;
 			entry->m_uUDPport = port;
-			entry->m_uKeyID.SetValue(file);
-			entry->m_uSourceID.SetValue(target);
+			entry->m_uKeyID = file;
+			entry->m_uSourceID = target;
 			entry->m_tLifeTime = (uint32_t)time(NULL) + KADEMLIAREPUBLISHTIMEK;
 			entry->m_bSource = false;
 			uint32_t tags = bio.ReadUInt8();
@@ -1111,7 +1101,7 @@ void CKademliaUDPListener::Process2PublishSourceRequest(const uint8_t *packetDat
 	CUInt128 file = bio.ReadUInt128();
 
 	CUInt128 distance(CKademlia::GetPrefs()->GetKadID());
-	distance.XOR(file);
+	distance ^= file;
 
 	if (distance.Get32BitChunk(0) > SEARCHTOLERANCE && !::IsLanIP(wxUINT32_SWAP_ALWAYS(ip))) {
 		return;
@@ -1125,8 +1115,8 @@ void CKademliaUDPListener::Process2PublishSourceRequest(const uint8_t *packetDat
 	try {
 		entry->m_uIP = ip;
 		entry->m_uUDPport = port;
-		entry->m_uKeyID.SetValue(file);
-		entry->m_uSourceID.SetValue(target);
+		entry->m_uKeyID = file;
+		entry->m_uSourceID = target;
 		entry->m_bSource = false;
 		entry->m_tLifeTime = (uint32_t)time(NULL) + KADEMLIAREPUBLISHTIMES;
 		bool addUDPPortTag = true;
@@ -1291,7 +1281,7 @@ void CKademliaUDPListener::Process2PublishNotesRequest(const uint8_t *packetData
 	CUInt128 target = bio.ReadUInt128();
 
 	CUInt128 distance(CKademlia::GetPrefs()->GetKadID());
-	distance.XOR(target);
+	distance ^= target;
 
 	if (distance.Get32BitChunk(0) > SEARCHTOLERANCE && !::IsLanIP(wxUINT32_SWAP_ALWAYS(ip))) {
 		return;
@@ -1303,8 +1293,8 @@ void CKademliaUDPListener::Process2PublishNotesRequest(const uint8_t *packetData
 	try {
 		entry->m_uIP = ip;
 		entry->m_uUDPport = port;
-		entry->m_uKeyID.SetValue(target);
-		entry->m_uSourceID.SetValue(source);
+		entry->m_uKeyID = target;
+		entry->m_uSourceID = source;
 		entry->m_bSource = false;
 		uint32_t tags = bio.ReadUInt8();
 		while (tags > 0) {
@@ -1477,7 +1467,7 @@ void CKademliaUDPListener::ProcessFindBuddyResponse(const uint8_t *packetData, u
 
 	CMemFile bio(packetData, lenPacket);
 	CUInt128 check = bio.ReadUInt128();
-	check.XOR(CUInt128(true));
+	check ^= CUInt128(true);
 	if (CKademlia::GetPrefs()->GetKadID() == check) {
 		CUInt128 userID = bio.ReadUInt128();
 		uint16_t tcpport = bio.ReadUInt16();
@@ -1532,7 +1522,7 @@ void CKademliaUDPListener::Process2Ping(uint32_t ip, uint16_t port, const CKadUD
 	CMemFile packetdata(2);
 	packetdata.WriteUInt16(port);
 	DebugSend(Kad2Pong, ip, port);
-	SendPacket(packetdata, KADEMLIA2_PONG, ip, port, senderKey, NULL); 
+	SendPacket(packetdata, KADEMLIA2_PONG, ip, port, senderKey, NULL);
 }
 
 // KADEMLIA2_PONG
@@ -1545,6 +1535,7 @@ void CKademliaUDPListener::Process2Pong(const uint8_t *packetData, uint32_t lenP
 	CUInt128 contactID;
 	if (IsLegacyChallenge(CUInt128((uint32_t)0), ip, KADEMLIA2_PING, contactID)) {
 		// yup it is, set the contact as verified
+		// cppcheck-suppress duplicateBranch
 		if (!CKademlia::GetRoutingZone()->VerifyContact(contactID, ip)) {
 			AddDebugLogLineN(logKadRouting, wxT("Unable to find valid sender in routing table (sender: ") + KadIPToString(ip) + wxT(")"));
 		} else {
diff --git a/src/kademlia/net/KademliaUDPListener.h b/src/kademlia/net/KademliaUDPListener.h
index f803c72..5edd12f 100644
--- a/src/kademlia/net/KademliaUDPListener.h
+++ b/src/kademlia/net/KademliaUDPListener.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -53,7 +53,7 @@ struct SSearchTerm;
 namespace Kademlia {
 ////////////////////////////////////////
 
-class CContact; 
+class CContact;
 class CKadUDPKey;
 class CKadClientSearcher;
 
diff --git a/src/kademlia/net/PacketTracking.cpp b/src/kademlia/net/PacketTracking.cpp
index 2685509..15c39b2 100644
--- a/src/kademlia/net/PacketTracking.cpp
+++ b/src/kademlia/net/PacketTracking.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -225,7 +225,7 @@ bool CPacketTracking::InTrackListIsAllowedPacket(uint32_t ip, uint8_t opcode, bo
 				it->m_dbgLogged = false;
 			}
 			return true;
-		}	
+		}
 	}
 
 	// add a new entry for this request, no checks needed since 1 is always ok
diff --git a/src/kademlia/net/PacketTracking.h b/src/kademlia/net/PacketTracking.h
index b4f3557..07c13f2 100644
--- a/src/kademlia/net/PacketTracking.h
+++ b/src/kademlia/net/PacketTracking.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/routing/Contact.h b/src/kademlia/routing/Contact.h
index d138fc5..de98012 100644
--- a/src/kademlia/routing/Contact.h
+++ b/src/kademlia/routing/Contact.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -85,7 +85,7 @@ public:
 
 	time_t	 GetCreatedTime() const throw()			{ return m_created; }
 
-	void	 SetExpireTime(time_t value) throw()		{ m_expires = value; };	
+	void	 SetExpireTime(time_t value) throw()		{ m_expires = value; };
 	time_t	 GetExpireTime() const throw()			{ return m_expires; }
 
 	time_t	 GetLastTypeSet() const throw()			{ return m_lastTypeSet; }
diff --git a/src/kademlia/routing/Maps.h b/src/kademlia/routing/Maps.h
index af1fd2d..1fcb3a2 100644
--- a/src/kademlia/routing/Maps.h
+++ b/src/kademlia/routing/Maps.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/routing/RoutingBin.cpp b/src/kademlia/routing/RoutingBin.cpp
index 8394dac..9373eac 100644
--- a/src/kademlia/routing/RoutingBin.cpp
+++ b/src/kademlia/routing/RoutingBin.cpp
@@ -172,7 +172,7 @@ void CRoutingBin::GetEntries(ContactList *result, bool emptyFirst) const
 	}
 
 	// Append all entries to the results.
-	if (m_entries.size() > 0) {
+	if (!m_entries.empty()) {
 		result->insert(result->end(), m_entries.begin(), m_entries.end());
 	}
 }
@@ -185,7 +185,7 @@ void CRoutingBin::GetClosestTo(uint32_t maxType, const CUInt128 &target, uint32_
 	}
 
 	// No entries, no closest.
-	if (m_entries.size() == 0) {
+	if (m_entries.empty()) {
 		return;
 	}
 
@@ -205,11 +205,11 @@ void CRoutingBin::GetClosestTo(uint32_t maxType, const CUInt128 &target, uint32_
 	// Remove any extra results by least wanted first.
 	while (result->size() > maxRequired) {
 		// Dec in use count.
- 		if (inUse) {
-  			(--result->end())->second->DecUse();
+		if (inUse) {
+			(--result->end())->second->DecUse();
 		}
- 		// Remove from results
- 		result->erase(--result->end());
+		// Remove from results
+		result->erase(--result->end());
 	}
 }
 
diff --git a/src/kademlia/routing/RoutingBin.h b/src/kademlia/routing/RoutingBin.h
index 971a7dd..271a90b 100644
--- a/src/kademlia/routing/RoutingBin.h
+++ b/src/kademlia/routing/RoutingBin.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/routing/RoutingZone.cpp b/src/kademlia/routing/RoutingZone.cpp
index 1253655..21ff9e3 100644
--- a/src/kademlia/routing/RoutingZone.cpp
+++ b/src/kademlia/routing/RoutingZone.cpp
@@ -42,7 +42,7 @@ there client on the eMule forum..
  * Each zone is either an internal node or a leaf node.
  * Internal nodes have "bin == null" and "subZones[i] != null",
  * leaf nodes have "subZones[i] == null" and "bin != null".
- * 
+ *
  * All key unique id's are relative to the center (self), which
  * is considered to be 000..000
  */
@@ -142,14 +142,13 @@ void CRoutingZone::ReadFile(const wxString& specialNodesdat)
 	bool doHaveVerifiedContacts = false;
 	// Read in the saved contact list
 	try {
-		uint32_t numContacts = 0;
 		uint32_t validContacts = 0;
 		CFile file;
 		if (CPath::FileExists(specialNodesdat.IsEmpty() ? m_filename : specialNodesdat) && file.Open(m_filename, CFile::read)) {
 			// Get how many contacts in the saved list.
 			// NOTE: Older clients put the number of contacts here...
 			//       Newer clients always have 0 here to prevent older clients from reading it.
-			numContacts = file.ReadUInt32();
+			uint32_t numContacts = file.ReadUInt32();
 			uint32_t fileVersion = 0;
 			if (numContacts == 0) {
 				if (file.GetLength() >= 8) {
@@ -251,10 +250,10 @@ void CRoutingZone::ReadBootstrapNodesDat(CFileDataIO& file)
 
 			if (::IsGoodIPPort(wxUINT32_SWAP_ALWAYS(ip), udpPort)) {
 				if (!theApp->ipfilter->IsFiltered(wxUINT32_SWAP_ALWAYS(ip)) &&
-				    !(udpPort == 53 && contactVersion <= 5) && 
+				    !(udpPort == 53 && contactVersion <= 5) &&
 				    (contactVersion > 1))	// only kad2 nodes
 				{
-					// we want the 50 nodes closest to our own ID (provides randomness between different users and gets has good chances to get a bootstrap with close Nodes which is a nice start for our routing table) 
+					// we want the 50 nodes closest to our own ID (provides randomness between different users and gets has good chances to get a bootstrap with close Nodes which is a nice start for our routing table)
 					CUInt128 distance = me;
 					distance ^= id;
 					validContacts++;
@@ -458,7 +457,7 @@ bool CRoutingZone::Add(CContact *contact, bool& update, bool& outIpVerified)
 						m_bin->SetAlive(contactUpdate);
 						AddDebugLogLineN(logKadRouting, CFormat(wxT("Updated kad contact refreshtimer only for legacy kad2 contact (%s, %u)")) % KadIPToString(contactUpdate->GetIPAddress()) % contactUpdate->GetVersion());
 					} else {
-						AddDebugLogLineN(logKadRouting, CFormat(wxT("Rejected value update for legacy kad2 contact (%s -> %s, %u -> %u)")) 
+						AddDebugLogLineN(logKadRouting, CFormat(wxT("Rejected value update for legacy kad2 contact (%s -> %s, %u -> %u)"))
 							% KadIPToString(contactUpdate->GetIPAddress()) % KadIPToString(contact->GetIPAddress()) % contactUpdate->GetVersion() % contact->GetVersion());
 						update = false;
 					}
@@ -573,7 +572,7 @@ void CRoutingZone::GetAllEntries(ContactList *result, bool emptyFirst) const
 		m_bin->GetEntries(result, emptyFirst);
 	} else {
 		m_subZones[0]->GetAllEntries(result, emptyFirst);
-		m_subZones[1]->GetAllEntries(result, false);			
+		m_subZones[1]->GetAllEntries(result, false);
 	}
 }
 
@@ -609,7 +608,7 @@ uint32_t CRoutingZone::GetMaxDepth() const throw()
 void CRoutingZone::Split()
 {
 	StopTimer();
-		
+
 	m_subZones[0] = GenSubZone(0);
 	m_subZones[1] = GenSubZone(1);
 
@@ -710,7 +709,7 @@ bool CRoutingZone::OnBigTimer() const
 }
 
 //This is used when we find a leaf and want to know what this sample looks like.
-//We fall back two levels and take a sample to try to minimize any areas of the 
+//We fall back two levels and take a sample to try to minimize any areas of the
 //tree that will give very bad results.
 uint32_t CRoutingZone::EstimateCount() const
 {
@@ -730,7 +729,7 @@ uint32_t CRoutingZone::EstimateCount() const
 	// First calculate users assuming the tree is full.
 	// Modify count by bin size.
 	// Modify count by how full the tree is.
-	
+
 	// LowIDModififier
 	// Modify count by assuming 20% of the users are firewalled and can't be a contact for < 0.49b nodes
 	// Modify count by actual statistics of Firewalled ratio for >= 0.49b if we are not firewalled ourself
@@ -746,7 +745,7 @@ uint32_t CRoutingZone::EstimateCount() const
 	float newRatio = CKademlia::GetPrefs()->StatsGetKadV8Ratio();
 	float firewalledModifyTotal = 0;
 	if (newRatio > 0 && firewalledModifyNew > 0) {	// weight the old and the new modifier based on how many new contacts we have
-		firewalledModifyTotal = (newRatio * firewalledModifyNew) + ((1 - newRatio) * firewalledModifyOld); 
+		firewalledModifyTotal = (newRatio * firewalledModifyNew) + ((1 - newRatio) * firewalledModifyOld);
 	} else {
 		firewalledModifyTotal = firewalledModifyOld;
 	}
@@ -760,7 +759,7 @@ void CRoutingZone::OnSmallTimer()
 	if (!IsLeaf()) {
 		return;
 	}
-	
+
 	CContact *c = NULL;
 	time_t now = time(NULL);
 	ContactList entries;
@@ -812,7 +811,7 @@ void CRoutingZone::OnSmallTimer()
 			CKademlia::GetUDPListener()->SendMyDetails(KADEMLIA2_HELLO_REQ, c->GetIPAddress(), c->GetUDPPort(), c->GetVersion(), 0, NULL, false);
 			wxASSERT(c->GetUDPKey() == CKadUDPKey(0));
 		} else {
-			wxFAIL;
+			//wxFAIL;	// thanks, I'm having enough problems without any Kad asserts
 		}
 	}
 }
@@ -855,7 +854,7 @@ uint32_t CRoutingZone::GetBootstrapContacts(ContactList *results, uint32_t maxRe
 	uint32_t count = 0;
 	ContactList top;
 	TopDepth(LOG_BASE_EXPONENT, &top);
-	if (top.size() > 0) {
+	if (!top.empty()) {
 		for (ContactList::const_iterator it = top.begin(); it != top.end(); ++it) {
 			results->push_back(*it);
 			count++;
diff --git a/src/kademlia/routing/RoutingZone.h b/src/kademlia/routing/RoutingZone.h
index f9fb64d..7fc4802 100644
--- a/src/kademlia/routing/RoutingZone.h
+++ b/src/kademlia/routing/RoutingZone.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -57,7 +57,7 @@ class CKadUDPKey;
  * Each zone is either an internal node or a leaf node.
  * Internal nodes have "bin == null" and "subZones[i] != null",
  * leaf nodes have "subZones[i] == null" and "bin != null".
- * 
+ *
  * All key pseudoaddresses are relative to the center (self), which
  * is considered to be 000..000
  */
diff --git a/src/kademlia/utils/KadClientSearcher.h b/src/kademlia/utils/KadClientSearcher.h
index 4731735..3c268e5 100644
--- a/src/kademlia/utils/KadClientSearcher.h
+++ b/src/kademlia/utils/KadClientSearcher.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/utils/KadUDPKey.h b/src/kademlia/utils/KadUDPKey.h
index f23f08d..f086b30 100644
--- a/src/kademlia/utils/KadUDPKey.h
+++ b/src/kademlia/utils/KadUDPKey.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/kademlia/utils/UInt128.cpp b/src/kademlia/utils/UInt128.cpp
index af9cd4f..2a47fed 100644
--- a/src/kademlia/utils/UInt128.cpp
+++ b/src/kademlia/utils/UInt128.cpp
@@ -19,7 +19,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,40 +48,38 @@ there client on the eMule forum..
 using namespace Kademlia;
 ////////////////////////////////////////
 
-CUInt128::CUInt128(const CUInt128 &value, uint32_t numBits)
+CUInt128::CUInt128(const CUInt128 &value, unsigned numBits)
 {
 	// Copy the whole uint32s
-	uint32_t numULONGs = numBits / 32;
-	for (uint32_t i = 0; i < numULONGs; ++i) {
-		m_data[i] = value.m_data[i];
+	unsigned numULONGs = numBits / 32;
+	for (unsigned i = 0; i < numULONGs; i++) {
+		Set32BitChunk(i, value.Get32BitChunk(i));
 	}
 
 	// Copy the remaining bits
-	for (uint32_t i = (32 * numULONGs); i < numBits; ++i) {
+	for (unsigned i = numULONGs * 32; i < numBits; i++) {
 		SetBitNumber(i, value.GetBitNumber(i));
 	}
 
-	// Pad with random bytes (Not seeding based on time to allow multiple different ones to be created in quick succession)
-	for (uint32_t i = numBits; i < 128; ++i) {
-		SetBitNumber(i, (rand() % 2));
+	// Fill the remaining bits of the current 32-bit chunk with random bits
+	// (Not seeding based on time to allow multiple different ones to be created in quick succession)
+	numULONGs = (numBits + 31) / 32;
+	for (unsigned i = numBits; i < numULONGs * 32; i++) {
+		SetBitNumber(i, rand() % 2);
 	}
-}
 
-CUInt128& CUInt128::SetValueBE(const uint8_t *valueBE) throw()
-{
-	m_data[0] = wxUINT32_SWAP_ON_LE(RawPeekUInt32(valueBE+0));
-	m_data[1] = wxUINT32_SWAP_ON_LE(RawPeekUInt32(valueBE+4));
-	m_data[2] = wxUINT32_SWAP_ON_LE(RawPeekUInt32(valueBE+8));
-	m_data[3] = wxUINT32_SWAP_ON_LE(RawPeekUInt32(valueBE+12));
-	return *this;
+	// Pad with random bytes
+	for (unsigned i = numULONGs; i < 3; i++) {
+		Set32BitChunk(i, rand());
+	}
 }
 
 wxString CUInt128::ToHexString() const
 {
 	wxString str;
 
-	for (int i = 0; i < 4; ++i) {
-		str.Append(CFormat(wxT("%08X")) % m_data[i]);
+	for (int i = 3; i >= 0; i--) {
+		str.Append(CFormat(wxT("%08X")) % m_data.u32_data[i]);
 	}
 
 	return str;
@@ -92,7 +90,7 @@ wxString CUInt128::ToBinaryString(bool trim) const
 	wxString str;
 	str.Alloc(128);
 	int b;
-	for (int i = 0; i < 128; ++i) {
+	for (int i = 0; i < 128; i++) {
 		b = GetBitNumber(i);
 		if ((!trim) || (b != 0)) {
 			str.Append(b ? wxT("1") : wxT("0"));
@@ -105,32 +103,42 @@ wxString CUInt128::ToBinaryString(bool trim) const
 	return str;
 }
 
+CUInt128& CUInt128::SetValueBE(const uint8_t *valueBE) throw()
+{
+	m_data.u32_data[3] = wxUINT32_SWAP_ON_LE(RawPeekUInt32(valueBE));
+	m_data.u32_data[2] = wxUINT32_SWAP_ON_LE(RawPeekUInt32(valueBE + 4));
+	m_data.u32_data[1] = wxUINT32_SWAP_ON_LE(RawPeekUInt32(valueBE + 8));
+	m_data.u32_data[0] = wxUINT32_SWAP_ON_LE(RawPeekUInt32(valueBE + 12));
+
+	return *this;
+}
+
 void CUInt128::ToByteArray(uint8_t *b) const
 {
 	wxCHECK_RET(b != NULL, wxT("Destination buffer missing."));
 
-	RawPokeUInt32(b,      wxUINT32_SWAP_ON_LE(m_data[0]));
-	RawPokeUInt32(b + 4,  wxUINT32_SWAP_ON_LE(m_data[1]));
-	RawPokeUInt32(b + 8,  wxUINT32_SWAP_ON_LE(m_data[2]));
-	RawPokeUInt32(b + 12, wxUINT32_SWAP_ON_LE(m_data[3]));
+	RawPokeUInt32(b,      wxUINT32_SWAP_ON_LE(m_data.u32_data[3]));
+	RawPokeUInt32(b + 4,  wxUINT32_SWAP_ON_LE(m_data.u32_data[2]));
+	RawPokeUInt32(b + 8,  wxUINT32_SWAP_ON_LE(m_data.u32_data[1]));
+	RawPokeUInt32(b + 12, wxUINT32_SWAP_ON_LE(m_data.u32_data[0]));
 }
 
 void CUInt128::StoreCryptValue(uint8_t *buf) const
 {
 	wxCHECK_RET(buf != NULL, wxT("Destination buffer missing."));
 
-	RawPokeUInt32(buf,      wxUINT32_SWAP_ON_BE(m_data[0]));
-	RawPokeUInt32(buf + 4,  wxUINT32_SWAP_ON_BE(m_data[1]));
-	RawPokeUInt32(buf + 8,  wxUINT32_SWAP_ON_BE(m_data[2]));
-	RawPokeUInt32(buf + 12, wxUINT32_SWAP_ON_BE(m_data[3]));
+	RawPokeUInt32(buf,      wxUINT32_SWAP_ON_BE(m_data.u32_data[3]));
+	RawPokeUInt32(buf + 4,  wxUINT32_SWAP_ON_BE(m_data.u32_data[2]));
+	RawPokeUInt32(buf + 8,  wxUINT32_SWAP_ON_BE(m_data.u32_data[1]));
+	RawPokeUInt32(buf + 12, wxUINT32_SWAP_ON_BE(m_data.u32_data[0]));
 }
 
 int CUInt128::CompareTo(const CUInt128 &other) const throw()
 {
-	for (int i = 0; i < 4; ++i) {
-	    if (m_data[i] < other.m_data[i])
+	for (int i = 3; i >= 0; i--) {
+	    if (m_data.u32_data[i] < other.m_data.u32_data[i])
 			return -1;
-	    if (m_data[i] > other.m_data[i])
+	    if (m_data.u32_data[i] > other.m_data.u32_data[i])
 			return 1;
 	}
 	return 0;
@@ -138,9 +146,9 @@ int CUInt128::CompareTo(const CUInt128 &other) const throw()
 
 int CUInt128::CompareTo(uint32_t value) const throw()
 {
-	if ((m_data[0] > 0) || (m_data[1] > 0) || (m_data[2] > 0) || (m_data[3] > value))
+	if ((m_data.u64_data[1] > 0) || (m_data.u32_data[1] > 0) || (m_data.u32_data[0] > value))
 		return 1;
-	if (m_data[3] < value)
+	if (m_data.u32_data[0] < value)
 		return -1;
 	return 0;
 }
@@ -150,10 +158,10 @@ CUInt128& CUInt128::Add(const CUInt128 &value) throw()
 	if (value.IsZero()) return *this;
 
 	int64_t sum = 0;
-	for (int i = 3; i >= 0; i--) {
-		sum += m_data[i];
-		sum += value.m_data[i];
-		m_data[i] = (uint32_t)sum;
+	for (int i = 0; i < 4; i++) {
+		sum += m_data.u32_data[i];
+		sum += value.m_data.u32_data[i];
+		m_data.u32_data[i] = (uint32_t)sum;
 		sum >>= 32;
 	}
 	return *this;
@@ -164,10 +172,10 @@ CUInt128& CUInt128::Subtract(const CUInt128 &value) throw()
 	if (value.IsZero()) return *this;
 
 	int64_t sum = 0;
-	for (int i = 3; i >= 0; i--) {
-		sum += m_data[i];
-		sum -= value.m_data[i];
-		m_data[i] = (uint32_t)sum;
+	for (int i = 0; i < 4; i++) {
+		sum += m_data.u32_data[i];
+		sum -= value.m_data.u32_data[i];
+		m_data.u32_data[i] = (uint32_t)sum;
 		sum >>= 32;
 	}
 	return *this;
@@ -183,17 +191,20 @@ CUInt128& CUInt128::ShiftLeft(unsigned bits) throw()
 		return *this;
 	}
 
-	uint32_t result[] = {0,0,0,0};
+	union {
+		uint32_t u32_data[4];
+		uint64_t u64_data[2];
+	} result = {{ 0, 0, 0, 0 }};
 	int indexShift = (int)bits / 32;
 	int64_t shifted = 0;
 	for (int i = 3; i >= indexShift; i--)
 	{
-		shifted += ((int64_t)m_data[i]) << (bits % 32);
-		result[i-indexShift] = (uint32_t)shifted;
+		shifted += ((int64_t)m_data.u32_data[3 - i]) << (bits % 32);
+		result.u32_data[3 - i + indexShift] = (uint32_t)shifted;
 		shifted = shifted >> 32;
 	}
-	for (int i = 0; i < 4; ++i)
-		m_data[i] = result[i];
+	m_data.u64_data[0] = result.u64_data[0];
+	m_data.u64_data[1] = result.u64_data[1];
 
 	return *this;
 }
diff --git a/src/kademlia/utils/UInt128.h b/src/kademlia/utils/UInt128.h
index 4a0272f..46efb81 100644
--- a/src/kademlia/utils/UInt128.h
+++ b/src/kademlia/utils/UInt128.h
@@ -19,7 +19,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -46,6 +46,17 @@ there client on the eMule forum..
 namespace Kademlia {
 ////////////////////////////////////////
 
+/**
+ * Class representing an unsigned 128-bit integer.
+ *
+ * Not all operations are valid, especially multiplicative operations
+ * (multiply, divide) and shift right are not implemented.
+ *
+ * @if maint
+ * Internal representation: The number is stored as a whole little-endian
+ * 128-bit number.
+ * @endif
+ */
 class CUInt128
 {
 public:
@@ -56,7 +67,7 @@ public:
 
 	explicit CUInt128(bool fill = false) throw()
 	{
-		m_data[0] = m_data[1] = m_data[2] = m_data[3] = (fill ? (uint32_t)-1 : 0);
+		m_data.u64_data[0] = m_data.u64_data[1] = (fill ? (uint64_t)-1 : 0);
 	}
 
 	explicit CUInt128(uint32_t value) throw()
@@ -73,51 +84,47 @@ public:
 	 * Generates a new number, copying the most significant 'numBits' bits from 'value'.
 	 * The remaining bits are randomly generated.
 	 */
-	CUInt128(const CUInt128& value, uint32_t numBits);
+	CUInt128(const CUInt128& value, unsigned numBits);
 
-	/** Bit at level 0 being most significant. */
+	/* Bit at level 0 being most significant. */
 	unsigned GetBitNumber(unsigned bit) const throw()
 	{
-		return bit <= 127 ? (m_data[bit / 32] >> (31 - (bit % 32))) & 1 : 0;
+		return bit <= 127 ? (m_data.u32_data[(127 - bit) / 32] >> ((127 - bit) % 32)) & 1 : 0;
 	}
 
-	int CompareTo(const CUInt128& other) const throw();
-	int CompareTo(uint32_t value) const throw();
+	/* Bit at level 0 being most significant. */
+	CUInt128& SetBitNumber(unsigned bit, unsigned value)
+	{
+		wxCHECK(bit <= 127, *this);
 
-	wxString ToHexString() const;
-	wxString ToBinaryString(bool trim = false) const;
-	void ToByteArray(uint8_t *b) const;
+		if (value)
+			m_data.u32_data[(127 - bit) / 32] |= 1 << ((127 - bit) % 32);
+		else
+			m_data.u32_data[(127 - bit) / 32] &= ~(1 << ((127 - bit) % 32));
+
+		return *this;
+	}
 
+	/* Chunk 0 being the most significant */
 	uint32_t Get32BitChunk(unsigned val) const throw()
 	{
-		return val < 4 ? m_data[val] : 0;
+		return val < 4 ? m_data.u32_data[3 - val] : 0;
 	}
 
+	/* Chunk 0 being the most significant */
 	void Set32BitChunk(unsigned chunk, uint32_t value)
 	{
 		wxCHECK2(chunk < 4, return);
 
-		m_data[chunk] = value;
-	}
-
-	CUInt128& SetValue(const CUInt128& value) throw()
-	{
-		m_data[0] = value.m_data[0];
-		m_data[1] = value.m_data[1];
-		m_data[2] = value.m_data[2];
-		m_data[3] = value.m_data[3];
-		return *this;
-	}
-
-	CUInt128& SetValue(uint32_t value) throw()
-	{
-		m_data[0] = m_data[1] = m_data[2] = 0;
-		m_data[3] = value;
-		return *this;
+		m_data.u32_data[3 - chunk] = value;
 	}
 
 	CUInt128& SetValueBE(const uint8_t *valueBE) throw();
 
+	wxString ToHexString() const;
+	wxString ToBinaryString(bool trim = false) const;
+	void ToByteArray(uint8_t *b) const;
+
 	/**
 	 * Stores value used by the crypt functions.
 	 *
@@ -129,84 +136,81 @@ public:
 	 */
 	void StoreCryptValue(uint8_t *buf) const;
 
-	/** Bit at level 0 being most significant. */
-	CUInt128& SetBitNumber(unsigned bit, unsigned value)
-	{
-		wxCHECK(bit <= 127, *this);
-
-		if (value)
-			m_data[bit / 32] |= 1 << (31 - (bit % 32));
-		else
-			m_data[bit / 32] &= ~(1 << (31 - (bit % 32)));
-
-		return *this;
-	}
-
-	CUInt128& ShiftLeft(unsigned bits) throw();
-
+      private:
+	int CompareTo(const CUInt128& other) const throw();
+	int CompareTo(uint32_t value) const throw();
 	CUInt128& Add(const CUInt128& value) throw();
-	CUInt128& Add(uint32_t value) throw()
-	{
-		return value ? Add(CUInt128(value)) : *this;
-	}
-
+	CUInt128& Add(uint32_t value) throw() { return value ? Add(CUInt128(value)) : *this; }
 	CUInt128& Subtract(const CUInt128& value) throw();
-	CUInt128& Subtract(uint32_t value) throw()
-	{
-		return value ? Subtract(CUInt128(value)) : *this;
-	}
+	CUInt128& Subtract(uint32_t value) throw() { return value ? Subtract(CUInt128(value)) : *this; }
+	CUInt128& ShiftLeft(unsigned bits) throw();
 
 	CUInt128& XOR(const CUInt128& value) throw()
 	{
-		m_data[0] ^= value.m_data[0];
-		m_data[1] ^= value.m_data[1];
-		m_data[2] ^= value.m_data[2];
-		m_data[3] ^= value.m_data[3];
+		m_data.u64_data[0] ^= value.m_data.u64_data[0];
+		m_data.u64_data[1] ^= value.m_data.u64_data[1];
+
 		return *this;
 	}
 
-	CUInt128& XORBE(const uint8_t *valueBE) throw() { return XOR(CUInt128(valueBE)); }
+	bool IsZero() const throw() { return (m_data.u64_data[0] | m_data.u64_data[1]) == 0; }
+
+      public:
+	bool operator< (const CUInt128& value) const throw() { return (CompareTo(value) <  0); }
+	bool operator> (const CUInt128& value) const throw() { return (CompareTo(value) >  0); }
+	bool operator<=(const CUInt128& value) const throw() { return (CompareTo(value) <= 0); }
+	bool operator>=(const CUInt128& value) const throw() { return (CompareTo(value) >= 0); }
+	bool operator==(const CUInt128& value) const throw() { return (CompareTo(value) == 0); }
+	bool operator!=(const CUInt128& value) const throw() { return (CompareTo(value) != 0); }
 
-	bool operator<  (const CUInt128& value) const throw() {return (CompareTo(value) <  0);}
-	bool operator>  (const CUInt128& value) const throw() {return (CompareTo(value) >  0);}
-	bool operator<= (const CUInt128& value) const throw() {return (CompareTo(value) <= 0);}
-	bool operator>= (const CUInt128& value) const throw() {return (CompareTo(value) >= 0);}
-	bool operator== (const CUInt128& value) const throw() {return (CompareTo(value) == 0);}
-	bool operator!= (const CUInt128& value) const throw() {return (CompareTo(value) != 0);}
+	bool operator< (uint32_t value) const throw() { return (CompareTo(value) <  0); }
+	bool operator> (uint32_t value) const throw() { return (CompareTo(value) >  0); }
+	bool operator<=(uint32_t value) const throw() { return (CompareTo(value) <= 0); }
+	bool operator>=(uint32_t value) const throw() { return (CompareTo(value) >= 0); }
+	bool operator==(uint32_t value) const throw() { return (CompareTo(value) == 0); }
+	bool operator!=(uint32_t value) const throw() { return (CompareTo(value) != 0); }
 
-	CUInt128& operator= (const CUInt128& value) throw() { return SetValue(value); }
+	CUInt128& operator= (const CUInt128& value) throw() { SetValue(value); return *this; }
 	CUInt128& operator+=(const CUInt128& value) throw() { return Add(value); }
 	CUInt128& operator-=(const CUInt128& value) throw() { return Subtract(value); }
 	CUInt128& operator^=(const CUInt128& value) throw() { return XOR(value); }
-	CUInt128  operator+ (const CUInt128& value) const throw() { return CUInt128(*this).Add(value); }
-	CUInt128  operator- (const CUInt128& value) const throw() { return CUInt128(*this).Subtract(value); }
-	CUInt128  operator^ (const CUInt128& value) const throw() { return CUInt128(*this).XOR(value); }
-
-	bool operator<  (uint32_t value) const throw() {return (CompareTo(value) <  0);}
-	bool operator>  (uint32_t value) const throw() {return (CompareTo(value) >  0);}
-	bool operator<= (uint32_t value) const throw() {return (CompareTo(value) <= 0);}
-	bool operator>= (uint32_t value) const throw() {return (CompareTo(value) >= 0);}
-	bool operator== (uint32_t value) const throw() {return (CompareTo(value) == 0);}
-	bool operator!= (uint32_t value) const throw() {return (CompareTo(value) != 0);}
-
-	CUInt128& operator= (uint32_t value) throw() { return SetValue(value); }
+
+	CUInt128& operator= (uint32_t value) throw() { SetValue(value); return *this; }
 	CUInt128& operator+=(uint32_t value) throw() { return Add(value); }
 	CUInt128& operator-=(uint32_t value) throw() { return Subtract(value); }
 	CUInt128& operator^=(uint32_t value) throw() { return value ? XOR(CUInt128(value)) : *this; }
-	CUInt128  operator+ (uint32_t value) const throw() { return CUInt128(*this).Add(value); }
-	CUInt128  operator- (uint32_t value) const throw() { return CUInt128(*this).Subtract(value); }
-	CUInt128  operator^ (uint32_t value) const throw() { return value ? CUInt128(*this).XOR(CUInt128(value)) : *this; }
 
-	CUInt128  operator<< (uint32_t bits) const throw() { return CUInt128(*this).ShiftLeft(bits); }
-	CUInt128& operator<<=(uint32_t bits) throw() { return ShiftLeft(bits); }
+	CUInt128& operator<<=(unsigned bits) throw() { return ShiftLeft(bits); }
+
+	CUInt128  operator+(const CUInt128& value) const throw() { return CUInt128(*this).operator+=(value); }
+	CUInt128  operator-(const CUInt128& value) const throw() { return CUInt128(*this).operator-=(value); }
+	CUInt128  operator^(const CUInt128& value) const throw() { return CUInt128(*this).operator^=(value); }
+
+	CUInt128  operator+(uint32_t value) const throw() { return CUInt128(*this).operator+=(value); }
+	CUInt128  operator-(uint32_t value) const throw() { return CUInt128(*this).operator-=(value); }
+	CUInt128  operator^(uint32_t value) const throw() { return CUInt128(*this).operator^=(value); }
+
+	CUInt128  operator<<(unsigned bits) const throw() { return CUInt128(*this).operator<<=(bits); }
+
 
 private:
-	bool IsZero() const throw()
+	void SetValue(const CUInt128& other) throw()
+	{
+		m_data.u64_data[0] = other.m_data.u64_data[0];
+		m_data.u64_data[1] = other.m_data.u64_data[1];
+	}
+
+	void SetValue(uint32_t value) throw()
 	{
-		return (m_data[0] | m_data[1] | m_data[2] | m_data[3]) == 0;
+		m_data.u32_data[0] = value;
+		m_data.u32_data[1] = 0;
+		m_data.u64_data[1] = 0;
 	}
 
-	uint32_t m_data[4];
+	union {
+		uint32_t u32_data[4];
+		uint64_t u64_data[2];
+	} m_data;
 };
 
 inline bool operator==(uint32_t x, const CUInt128& y) throw() { return y.operator==(x); }
@@ -216,7 +220,7 @@ inline bool operator>(uint32_t x, const CUInt128& y) throw() { return y.operator
 inline bool operator<=(uint32_t x, const CUInt128& y) throw() { return y.operator>=(x); }
 inline bool operator>=(uint32_t x, const CUInt128& y) throw() { return y.operator<=(x); }
 inline CUInt128 operator+(uint32_t x, const CUInt128& y) throw() { return y.operator+(x); }
-inline CUInt128 operator-(uint32_t x, const CUInt128& y) throw() { return CUInt128(x).Subtract(y); }
+inline CUInt128 operator-(uint32_t x, const CUInt128& y) throw() { return CUInt128(x).operator-(y); }
 inline CUInt128 operator^(uint32_t x, const CUInt128& y) throw() { return y.operator^(x); }
 
 } // End namespace
diff --git a/src/libs/Makefile.in b/src/libs/Makefile.in
index eba749a..e34d570 100644
--- a/src/libs/Makefile.in
+++ b/src/libs/Makefile.in
@@ -39,23 +39,23 @@ subdir = src/libs
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -128,6 +128,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -154,6 +160,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -244,6 +251,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/libs/common/FileFunctions.cpp b/src/libs/common/FileFunctions.cpp
index c4840a5..6d0db34 100644
--- a/src/libs/common/FileFunctions.cpp
+++ b/src/libs/common/FileFunctions.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -35,6 +35,7 @@
 #include <zlib.h> // Do_not_auto_remove
 #endif
 #include <memory>		// Needed for std::auto_ptr
+#include <algorithm>	// Needed for std::min
 
 #include "FileFunctions.h"
 #include "StringFunctions.h"
@@ -42,7 +43,7 @@
 //
 // This class assumes that the following line has been executed:
 //
-// 	wxConvFileName = &aMuleConvBrokenFileNames;
+//	wxConvFileName = &aMuleConvBrokenFileNames;
 //
 // This line is necessary so that wxWidgets handles unix file names correctly.
 //
@@ -53,7 +54,7 @@ CDirIterator::CDirIterator(const CPath& dir)
 
 
 CDirIterator::~CDirIterator()
-{	
+{
 }
 
 
@@ -62,7 +63,7 @@ CPath CDirIterator::GetFirstFile(FileType type, const wxString& mask)
 	if (!IsOpened()) {
 		return CPath();
 	}
-	
+
 	wxString fileName;
 	if (!GetFirst(&fileName, mask, type)) {
 		return CPath();
@@ -113,16 +114,16 @@ EFileType GuessFiletype(const wxString& file)
 		return EFT_Met;
 	}
 
-	// Check at most the first ten chars, if all are printable, 
+	// Check at most the first ten chars, if all are printable,
 	// then we can probably assume it is ascii text-file.
 	for (int i = 0; i < read; ++i) {
-		if (!(		isprint(head[i]) 
+		if (!(		isprint(head[i])
 				||	isspace(head[i])
 				||	(i < 3 && head[i] == UTF8bom[i]))) {
 			return EFT_Unknown;
 		}
 	}
-	
+
 	return EFT_Text;
 }
 
@@ -133,41 +134,34 @@ EFileType GuessFiletype(const wxString& file)
  */
 bool UnpackZipFile(const wxString& file, const wxChar* files[])
 {
-	wxZipFSHandler archive; 
-	wxString filename = archive.FindFirst(
-		wxT("file:") + file + wxT("#zip:/*"), wxFILE);
-	
 	wxTempFile target(file);
-
-	while (!filename.IsEmpty() && !target.Length()) {
-		// Extract the filename part of the URI
-		filename = filename.AfterLast(wxT(':')).Lower();
-	
+	std::auto_ptr<wxZipEntry> entry;
+	wxFFileInputStream fileInputStream(file);
+	wxZipInputStream zip(fileInputStream);
+	bool run = true;
+	while (run) {
+		entry.reset(zip.GetNextEntry());
+		if (entry.get() == NULL) {
+			break;
+		}
+		// access meta-data
+		wxString name = entry->GetName();
 		// We only care about the files specified in the array
-		for (size_t i = 0; files[i] && !target.Length(); ++i) {
-			if (files[i] == filename) {
-				std::auto_ptr<wxZipEntry> entry;
-				wxFFileInputStream fileInputStream(file);
-				wxZipInputStream zip(fileInputStream);
-				while (entry.reset(zip.GetNextEntry()), entry.get() != NULL) {
-					// access meta-data
-					wxString name = entry->GetName();
-					// read 'zip' to access the entry's data
-					if (name == filename) {
-						char buffer[10240];
-						while (!zip.Eof()) {
-							zip.Read(buffer, sizeof(buffer));
-							target.Write(buffer, zip.LastRead());
-						}						
-						break;
-					}
+		// probably needed to weed out included nfos
+		for (int i = 0; run && files[i]; i++) {
+			if (name.CmpNoCase(files[i]) == 0) {
+				// we found the entry we want
+				// read 'zip' to access the entry's data
+				char buffer[10240];
+				while (!zip.Eof()) {
+					zip.Read(buffer, sizeof(buffer));
+					target.Write(buffer, zip.LastRead());
 				}
+				run = false;
 			}
 		}
-
-		filename = archive.FindNext();
 	}
-	
+
 	if (target.Length()) {
 		target.Commit();
 		return true;
@@ -207,7 +201,7 @@ bool UnpackGZipFile(const wxString& file)
 				} else {
 					errString = wxString::FromAscii(gzerrstr);
 				}
-				
+
 				// AddDebugLogLineN( logFileIO, wxT("Error reading gzip stream (") + errString + wxT(")") );
 				write = false;
 				break;
diff --git a/src/libs/common/FileFunctions.h b/src/libs/common/FileFunctions.h
index f6bbc91..a484669 100644
--- a/src/libs/common/FileFunctions.h
+++ b/src/libs/common/FileFunctions.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -33,7 +33,7 @@
 #include <wx/dir.h>
 
 
-// Dir iterator: needed because wxWidget's wxFindNextFile and 
+// Dir iterator: needed because wxWidget's wxFindNextFile and
 // wxFindFirstFile are bugged like hell.
 class CDirIterator : private wxDir
 {
@@ -54,7 +54,7 @@ public:
 
 	bool HasSubDirs(const wxString& spec = wxEmptyString);
 };
-	
+
 
 //! Filetypes understood by UnpackArchive
 enum EFileType
diff --git a/src/libs/common/Format.cpp b/src/libs/common/Format.cpp
index 3613eed..433567e 100644
--- a/src/libs/common/Format.cpp
+++ b/src/libs/common/Format.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -136,7 +136,7 @@ enum eStringParserStates {
  * converted to '%').
  */
 static eStringParserStates stringParser[][3] = {
-			/* %-sign, 		type-char, 	other */
+			/* %-sign,		type-char,	other */
 /* esNonFormat */	{ esFormatStart,	esNonFormat,	esNonFormat	},
 /* esFormatStart */	{ esFormatEnd,		esFormatEnd,	esFormat	},
 /* esFormat */		{ esInvalidFormat,	esFormatEnd,	esFormat	},
@@ -162,7 +162,7 @@ enum eFormatParserStates {
  * State machine to parse format specifiers
  *
  * Format specifiers are expected to follow the following structure:
- * 	%[argIndex$][Flags][Width][.Precision][Length]<Type>
+ *	%[argIndex$][Flags][Width][.Precision][Length]<Type>
  */
 static eFormatParserStates formatParser[][7] = {
 			/* [1-9],	'0',		flagChar,	'.',		lengthChar,	typeChar,	'$' */
@@ -544,7 +544,7 @@ void CFormat::ProcessArgument(FormatList::iterator it, void * value)
 		// -> format it as hex
 		if (sizeof(void*) == 8) {
 			// 64 bit
-			it->result = wxString::Format(wxT("0x%016x"), (uintptr_t)value);
+			it->result = wxString::Format(wxString(wxT("0x%016")) + WXLONGLONGFMTSPEC + wxT("x"), (uintptr_t)value);
 		} else {
 			// 32 bit
 			it->result = wxString::Format(wxT("0x%08x"), (uintptr_t)value);
diff --git a/src/libs/common/Format.h b/src/libs/common/Format.h
index c2eae7c..aebe5be 100644
--- a/src/libs/common/Format.h
+++ b/src/libs/common/Format.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -26,6 +26,7 @@
 #define FORMAT_H
 
 #include <list>
+#include <string> // Needed to use std::string
 #include "MuleDebug.h"
 
 
@@ -92,7 +93,7 @@ class CFormat
 		unsigned	argIndex;	//!< Argument index. (Position, unless specified otherwise.)
 		wxChar		flag;		//!< The optional flag character.
 		unsigned	width;		//!< The optional field width.
-		signed 		precision;	//!< The optional precision value.
+		signed		precision;	//!< The optional precision value.
 		// length is not stored
 		wxChar		type;		//!< The conversion type.
 		size_t		startPos;	//!< Position of the first character of the format-specifier in the format-string.
@@ -111,7 +112,7 @@ public:
 	/**
 	 * Constructor.
 	 *
-	 * This form is required to construct from a plain char * 
+	 * This form is required to construct from a plain char *
 	 * with wx 2.9
 	 *
 	 * @param str The format-string to be used.
@@ -138,17 +139,18 @@ public:
 	// explicit overloads to avoid pass-by-value even in debug builds.
 	CFormat& operator%(const wxString& value)		{ return this->operator%<const wxString&>(value); }
 	CFormat& operator%(const CFormat& value)		{ return this->operator%<const wxString&>(value); }
+	CFormat& operator%(const std::string& value)	{ return this->operator%<const wxString&>(wxString(value.c_str(), wxConvUTF8)); }
 
 	/**
 	 * Returns the resulting string.
 	 */
 	wxString GetString() const;
-	
+
 	/**
 	 * Implicit conversion to wxString.
 	 */
 	operator wxString() const		{ return GetString(); };
-	 
+
 private:
 	/**
 	 * Initialize internal structures.
diff --git a/src/libs/common/MD5Sum.cpp b/src/libs/common/MD5Sum.cpp
index 46bfbb3..cfc103a 100644
--- a/src/libs/common/MD5Sum.cpp
+++ b/src/libs/common/MD5Sum.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -52,13 +52,13 @@ MD5Sum::MD5Sum(const uint8* buffer, size_t len)
 	Calculate(buffer, len);
 }
 
-wxString MD5Sum::Calculate(const wxString& sSource)
+void MD5Sum::Calculate(const wxString& sSource)
 {
 	// Nothing we can do against this unicode2char
-	return Calculate( (const uint8*)(const char*)unicode2char(sSource), sSource.Length());
+	Calculate( (const uint8*)(const char*)unicode2char(sSource), sSource.Length());
 }
 
-wxString MD5Sum::Calculate(const uint8* buffer, size_t len)
+void MD5Sum::Calculate(const uint8* buffer, size_t len)
 {
 	MD5_CTX context;
 	unsigned char digest[16];
@@ -67,20 +67,20 @@ wxString MD5Sum::Calculate(const uint8* buffer, size_t len)
 	MD5Update (&context, buffer, len);
 	MD5Final (digest, &context);
 
-	m_sHash.Clear();
-	for (int i = 0; i < 16; ++i) {
-		wxString sT;
-		sT = CFormat(wxT("%02x")) % digest[i];
-		m_sHash += sT;
-	}
-
 	memcpy(m_rawhash, digest, 16);
-	
-	return m_sHash;
+	m_sHash.Clear();
 }
 
 wxString MD5Sum::GetHash()
 {
+	if (m_sHash.empty()) {
+		// That's still far from optimal, but called much less often.
+		for (int i = 0; i < 16; ++i) {
+			wxString sT;
+			sT = CFormat(wxT("%02x")) % m_rawhash[i];
+			m_sHash += sT;
+		}
+	}
 	return m_sHash;
 }
 
@@ -188,7 +188,7 @@ void MD5Update (MD5_CTX *context, const unsigned char *input, size_t inputLen)
 }
 
 /* MD5 finalization. Ends an MD5 message-digest operation, writing the
- * the message digest and zeroizing the context. 
+ * the message digest and zeroizing the context.
  */
 void MD5Final (unsigned char digest[16], MD5_CTX *context)
 {
diff --git a/src/libs/common/MD5Sum.h b/src/libs/common/MD5Sum.h
index e71cf2b..51047b4 100644
--- a/src/libs/common/MD5Sum.h
+++ b/src/libs/common/MD5Sum.h
@@ -1,5 +1,5 @@
 // This file is part of the aMule Project.
- /* 
+ /*
  Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
  Copyright (c) 1991-2011, RSA Data Security, Inc. Created 1991. All
  rights reserved.
@@ -32,9 +32,9 @@ public:
 	MD5Sum();
 	MD5Sum(const wxString& sSource);
 	MD5Sum(const uint8* buffer, size_t len);
-	
-	wxString Calculate(const wxString& sSource);
-	wxString Calculate(const uint8* buffer, size_t len);
+
+	void Calculate(const wxString& sSource);
+	void Calculate(const uint8* buffer, size_t len);
 
 	wxString GetHash();
 	const uint8* GetRawHash() const { return m_rawhash; }
diff --git a/src/libs/common/Makefile.in b/src/libs/common/Makefile.in
index e24308c..7489e7a 100644
--- a/src/libs/common/Makefile.in
+++ b/src/libs/common/Makefile.in
@@ -40,23 +40,23 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -129,6 +129,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -155,6 +161,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -245,6 +252,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/libs/common/MuleDebug.cpp b/src/libs/common/MuleDebug.cpp
index 47f3ea9..e6c2279 100644
--- a/src/libs/common/MuleDebug.cpp
+++ b/src/libs/common/MuleDebug.cpp
@@ -35,16 +35,21 @@
 
 #ifdef HAVE_EXECINFO
 #	include <execinfo.h>
+#	include <wx/utils.h>			// Needed for wxArrayString
+#	ifndef HAVE_BFD
+#		include <wx/thread.h>		// Needed for wxThread
+#	endif
 #endif
 
 #ifdef HAVE_CXXABI
+#	ifdef HAVE_TYPEINFO
+#		include <typeinfo>	// Needed for some MacOSX versions with broken system headers
+#	endif
 #	include <cxxabi.h>
 #endif
 
-#include <wx/thread.h> // Do_not_auto_remove (Old wx < 2.7)
-#include <wx/utils.h> // Do_not_auto_remove (Old wx < 2.7)
 
-#if wxUSE_STACKWALKER && defined(__WXMSW__)
+#if wxUSE_STACKWALKER && defined(__WINDOWS__ )
 	#include <wx/stackwalk.h> // Do_not_auto_remove
 #elif defined(HAVE_BFD)
 	#include <ansidecl.h> // Do_not_auto_remove
@@ -55,7 +60,7 @@
 
 
 /**
- * This functions displays a verbose description of 
+ * This functions displays a verbose description of
  * any unhandled exceptions that occour and then
  * terminate the program by raising SIGABRT.
  */
@@ -64,12 +69,12 @@ void OnUnhandledException()
 	// Revert to the original exception handler, to avoid
 	// infinate recursion, in case something goes wrong in
 	// this function.
-	std::set_terminate(std::abort);	
+	std::set_terminate(std::abort);
 
 #ifdef HAVE_CXXABI
 	std::type_info *t = __cxxabiv1::__cxa_current_exception_type();
 	FILE* output = stderr;
-#else 
+#else
 	FILE* output = stdout;
 	bool t = true;
 #endif
@@ -112,9 +117,9 @@ void InstallMuleExceptionHandler()
 
 
 // Make it 1 for getting the file path also
-#define TOO_VERBOSE_BACKTRACE 0 
+#define TOO_VERBOSE_BACKTRACE 0
 
-#if wxUSE_STACKWALKER && defined(__WXMSW__)
+#if wxUSE_STACKWALKER && defined(__WINDOWS__ )
 
 // Derived class to define the actions to be done on frame print.
 // I was tempted to name it MuleSkyWalker
@@ -247,7 +252,7 @@ void init_backtrace_info()
 		return;
 	}
 
-	s_have_backtrace_symbols = (get_backtrace_symbols(s_abfd, &s_symbol_list) > 0); 
+	s_have_backtrace_symbols = (get_backtrace_symbols(s_abfd, &s_symbol_list) > 0);
 }
 
 
@@ -285,20 +290,20 @@ wxString demangle(const wxString& function)
 {
 #ifdef HAVE_CXXABI
 	wxString result;
-	
+
 	if (function.Mid(0,2) == wxT("_Z")) {
 		int status;
 		char *demangled = abi::__cxa_demangle(function.mb_str(), NULL, NULL, &status);
-		
+
 		if (!status) {
 			result = wxConvCurrent->cMB2WX(demangled);
 		}
-		
+
 		if (demangled) {
 			free(demangled);
 		}
 	}
-	
+
 	return result;
 #else
 	return wxEmptyString;
@@ -329,7 +334,7 @@ wxString get_backtrace(unsigned n)
 	std::vector<wxString> funcname(num_entries);
 	std::vector<wxString> address(num_entries);
 	wxString AllAddresses;
-	
+
 	for (int i = 0; i < num_entries; ++i) {
 		wxString wxBtString = wxConvCurrent->cMB2WX(bt_strings[i]);
 		int posLPar = wxBtString.Find(wxT('('));
@@ -450,7 +455,7 @@ wxString get_backtrace(unsigned n)
 		} else {
 			btLine += libname[i];
 		}
-		
+
 		trace += btLine + wxT("\n");
 	}
 
@@ -464,7 +469,7 @@ wxString get_backtrace(unsigned n)
 #elif defined( __APPLE__ )
 
 // According to sources, parts of this code originate at http://www.tlug.org.za/wiki/index.php/Obtaining_a_stack_trace_in_C_upon_SIGSEGV
-// which doesn't exist anymore. 
+// which doesn't exist anymore.
 
 // Other code (stack frame list and demangle related) has been modified from code with license:
 
@@ -515,11 +520,11 @@ void fill_frames(std::list<stack_frame> &frames)
 
 		// First frame is skipped
 		while (fp != NULL) {
-   			fp = (void**)(*fp);
+			fp = (void**)(*fp);
 			if (*fp == NULL) {
-    				break;
+				break;
 			}
-	
+
 #if defined(__i386__)
 			saved_pc = fp[1];
 #elif defined(__ppc__)
@@ -552,7 +557,7 @@ wxString get_backtrace(unsigned n)
 	while (it != frames.end()) {
 		if (count >= n) {
 			backtrace << (*it).instruction() << " : " << (*it).function() << std::endl;
- 			++it;
+			++it;
 		}
 
 		++count;
@@ -565,8 +570,7 @@ wxString get_backtrace(unsigned n)
 
 wxString get_backtrace(unsigned WXUNUSED(n))
 {
-	fprintf(stderr, "--== no BACKTRACE for your platform ==--\n\n");
-	return wxEmptyString;
+	return wxT("--== no BACKTRACE for your platform ==--\n\n");
 }
 
 #endif /* !__LINUX__ */
@@ -576,7 +580,7 @@ void print_backtrace(unsigned n)
 	wxString trace = get_backtrace(n);
 
 	// This is because the string is ansi anyway, and the conv classes are very slow
-	fprintf(stderr, "%s\n", (const char*)unicode2char(trace.c_str()));
+	fprintf(stderr, "%s\n", (const char*)unicode2char(trace));
 }
 
 // File_checked_for_headers
diff --git a/src/libs/common/MuleDebug.h b/src/libs/common/MuleDebug.h
index befde61..32698b3 100644
--- a/src/libs/common/MuleDebug.h
+++ b/src/libs/common/MuleDebug.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -48,7 +48,7 @@ wxString get_backtrace(unsigned n);
 
 /**
  * This exception should be used to implement other
- * types of exceptions. It should never be caught, 
+ * types of exceptions. It should never be caught,
  * instead catch the subtypes.
  */
 class CMuleException
@@ -65,7 +65,7 @@ private:
 
 
 /**
- * This exception type is used to represent exceptions that are 
+ * This exception type is used to represent exceptions that are
  * caused by invalid operations. Exceptions of this type should
  * not be caught as they are the result of bugs.
  */
@@ -106,7 +106,7 @@ struct CInvalidPacket : public CMuleException
 };
 
 
-// This ifdef ensures that we wont get assertions while 
+// This ifdef ensures that we wont get assertions while
 // unittesting, which would otherwise impede the tests.
 #ifdef MULEUNIT
 	#define _MULE_THROW(cond, cls, msg) \
diff --git a/src/libs/common/Path.cpp b/src/libs/common/Path.cpp
index 38cf26a..1274847 100644
--- a/src/libs/common/Path.cpp
+++ b/src/libs/common/Path.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -26,39 +26,19 @@
 #include "StringFunctions.h"		// Needed for filename2char()
 
 #include <wx/file.h>
-#if defined __WXMSW__ || defined __IRIX__
+#if defined __WINDOWS__  || defined __IRIX__
 #	include <wx/ffile.h>
 #endif
 #include <wx/utils.h>
 #include <wx/filename.h>
-
-
-// This is required in order to ensure that wx can "handle" filenames
-// using a different encoding than the current system-wide setting. If
-// this is not done, such filenames will fail during conversion to/from
-// multibyte (as in cWC2MB/cMB2WC).
-#if !wxUSE_GUI && !defined(__WXMSW__)
-void* setFNConv()
-{
-	// This uses the same method as wxApp::Initialize under GTK2
-	wxString encName = wxLocale::GetSystemEncodingName().Upper();
-	if (encName.IsEmpty() || (encName == wxT("US-ASCII"))) {
-		encName = wxT("UTF-8");
-	}
-
-	return wxConvFileName = new wxConvBrokenFileNames(encName);
-}
-
-// Ensure intialization
-static void* s_foo = setFNConv();
-#endif
+#include <algorithm>	// Needed for std::min
 
 
 // Windows has case-insensitive paths, so we use a
 // case-insensitive cmp for that platform. TODO:
 // Perhaps it would be better to simply lowercase
 // m_filesystem in the constructor ...
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	#define PATHCMP(a, b)		wxStricmp(a, b)
 	#define PATHNCMP(a, b, n)	wxStrnicmp(a, b, n)
 #else
@@ -150,7 +130,7 @@ wxString DoCleanup(const wxString& filename, bool keepSpaces, bool isFAT32)
 				if (isFAT32) {
 					continue;
 				}
-				
+
 			default:
 				if ((c == wxT(' ')) && !keepSpaces) {
 					result += wxT("%20");
@@ -198,10 +178,10 @@ wxString DoRemoveExt(const wxString& path)
 /** Readies a path for use with wxAccess.. */
 wxString DoCleanPath(const wxString& path)
 {
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	// stat fails on windows if there are trailing path-separators.
 	wxString cleanPath = StripSeparators(path, wxString::trailing);
-	
+
 	// Root paths must end with a separator (X:\ rather than X:).
 	// See comments in wxDirExists.
 	if ((cleanPath.Length() == 2) && (cleanPath.Last() == wxT(':'))) {
@@ -233,7 +213,7 @@ bool IsSameAs(const wxString& a, const wxString& b)
 	// lead to some unexpected behavior.
 	wxFileName fn1(a);
 	wxFileName fn2(b);
-	
+
 	fn1.Normalize(flags, cwd);
 	fn2.Normalize(flags, cwd);
 
@@ -269,12 +249,12 @@ CPath::CPath(const wxString& filename)
 		// saved as UTF8, even if the system is not unicode enabled,
 		// preserving the original filename till the user has fixed
 		// his system ...
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 		// Magic fails on Windows where we always work with wide char file names.
 		m_filesystem = DeepCopy(filename);
 		m_printable = m_filesystem;
 #else
-		fn = wxConvUTF8.cWC2MB(filename);
+		fn = filename.utf8_str();
 		m_filesystem = wxConvFile.cMB2WC(fn);
 
 		// There's no need to try to unmangle the filename here.
@@ -296,7 +276,7 @@ CPath::CPath(const CPath& other)
 
 CPath CPath::FromUniv(const wxString& path)
 {
-	wxCharBuffer fn = wxConvISO8859_1.cWC2MB(path);
+	wxCharBuffer fn = path.mb_str(wxConvISO8859_1);
 
 	return CPath(wxConvFile.cMB2WC(fn));
 
@@ -309,7 +289,7 @@ wxString CPath::ToUniv(const CPath& path)
 	// as a raw bytestream (which is what ISO8859-1 amounts
 	// to), we can always recreate the on-disk filename, as
 	// if we had read it using wx functions.
-	wxCharBuffer fn = wxConvFile.cWC2MB(path.m_filesystem);
+	wxCharBuffer fn = path.m_filesystem.mb_str(wxConvFile);
 
 	return wxConvISO8859_1.cMB2WC(fn);
 }
@@ -471,7 +451,7 @@ CPath CPath::JoinPaths(const CPath& other) const
 		return CPath(other);
 	} else if (!other.IsOk()) {
 		return CPath(*this);
-	} 
+	}
 
 	CPath joinedPath;
 	// DeepCopy shouldn't be needed, as JoinPaths results in the creation of a new string.
@@ -508,7 +488,7 @@ CPath CPath::AppendExt(const wxString& ext) const
 {
 	wxASSERT(ext.IsAscii());
 
-	// Though technically, and empty extension would simply 
+	// Though technically, and empty extension would simply
 	// be another . at the end of the filename, we ignore them.
 	if (ext.IsEmpty()) {
 		return *this;
@@ -566,7 +546,7 @@ bool CPath::StartsWith(const CPath& other) const
 	// normalized first (in the constructor).
 	const wxString a = StripSeparators(m_filesystem, wxString::trailing) + wxFileName::GetPathSeparator();
 	const wxString b = StripSeparators(other.m_filesystem, wxString::trailing) + wxFileName::GetPathSeparator();
-	
+
 	if (a.Length() < b.Length()) {
 		// Cannot possibly be a prefix.
 		return false;
@@ -602,8 +582,8 @@ bool CPath::BackupFile(const CPath& src, const wxString& appendix)
 	CPath dst = CPath(src.m_filesystem + appendix);
 
 	if (CPath::CloneFile(src, dst, true)) {
-		// Try to ensure that the backup gets physically written 
-#if defined __WXMSW__ || defined __IRIX__
+		// Try to ensure that the backup gets physically written
+#if defined __WINDOWS__  || defined __IRIX__
 		wxFFile backupFile;
 #else
 		wxFile backupFile;
@@ -699,7 +679,7 @@ wxString CPath::TruncatePath(size_t length, bool isFilePath) const
 	}
 
 	if (file.Length() > length) {
-		if (length > 5) {		
+		if (length > 5) {
 			file = file.Left(length - 5) + wxT("[...]");
 		} else {
 			file.Clear();
diff --git a/src/libs/common/Path.h b/src/libs/common/Path.h
index aed991f..de112bc 100644
--- a/src/libs/common/Path.h
+++ b/src/libs/common/Path.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -162,13 +162,13 @@ public:
 	 */
 	wxString TruncatePath(size_t length, bool isFilePath = false) const;
 
-	/** 
+	/**
 	 * Renames the file 'src' to the file 'dst', overwriting if specified. Note that
 	 * renaming cannot be done across volumes. For that CopyFile is required.
 	 */
 	static bool RenameFile(const CPath& src, const CPath& dst, bool overwrite = false);
 	/**
-	 * Copies the file 'src' to the file 'dst', overwriting if specified. 
+	 * Copies the file 'src' to the file 'dst', overwriting if specified.
 	 * The silly name is used to avoid conflicts with the #define CopyFile,
 	 * which is set on MSW.
 	 */
diff --git a/src/libs/common/StringFunctions.cpp b/src/libs/common/StringFunctions.cpp
index 8ca1d87..3710760 100644
--- a/src/libs/common/StringFunctions.cpp
+++ b/src/libs/common/StringFunctions.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -70,7 +70,7 @@ wxString URLEncode(const wxString& sIn)
 {
 	wxString sOut;
 	unsigned char curChar;
-	
+
 	for ( unsigned int i = 0; i < sIn.Length(); ++i ) {
 		curChar = sIn.GetChar( i );
 
@@ -94,11 +94,11 @@ wxChar HexToDec( const wxString& hex )
 {
 	wxChar result = 0;
 	wxString str = hex.Upper();
-	
+
 	for ( size_t i = 0; i < str.Len(); ++i ) {
 		result *= 16;
 		wxChar cur = str.GetChar(i);
-		
+
 		if ( isdigit( cur ) ) {
 			result += cur - wxT('0');
 		} else if ( cur >= wxT('A') && cur <= wxT('F') ) {
@@ -152,7 +152,7 @@ wxString UnescapeHTML(const wxString& str)
 wxString validateURI(const wxString& url)
 {
 	wxURI uri(url);
-	
+
 	return uri.BuildURI();
 }
 
@@ -167,7 +167,7 @@ inline wxString GetNextField(const wxString& str, size_t& cookie)
 {
 	// These are taken to seperate "fields"
 	static const wxChar* s_delims = wxT("\t\n\x0b\x0c\r !\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~");
-	
+
 	wxString field;
 	ECharType curType = ECTNone;
 	for (; cookie < str.Length(); ++cookie) {
@@ -212,7 +212,7 @@ int FuzzyStrCmp(const wxString& a, const wxString& b)
 		if (aField.IsNumber() && bField.IsNumber()) {
 			unsigned long aInteger = StrToULong(aField);
 			unsigned long bInteger = StrToULong(bField);
-			
+
 			if (aInteger < bInteger) {
 				return -1;
 			} else if (aInteger > bInteger) {
@@ -235,7 +235,7 @@ int FuzzyStrCaseCmp(const wxString& a, const wxString& b)
 }
 
 
-	
+
 CSimpleTokenizer::CSimpleTokenizer(const wxString& str, wxChar token)
 	: m_string(str),
 	  m_delim(token),
diff --git a/src/libs/common/StringFunctions.h b/src/libs/common/StringFunctions.h
index 32e61ff..3b06002 100644
--- a/src/libs/common/StringFunctions.h
+++ b/src/libs/common/StringFunctions.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,52 +38,57 @@ enum EUtf8Str
 	utf8strRaw
 };
 
-/****************************************************/ 
+/****************************************************/
 /******************* Inlines ************************/
 /****************************************************/
 
-/** 
+/**
  * Functions to perform Unicode <-> (char *) and UTF-8 conversion
- * 
- * Please, DO NOT store pointers returned by unicode2char(), because they 
+ *
+ * Please, DO NOT store pointers returned by unicode2char(), because they
  * get free'ed as soon as the return value of cWX2MB gets out of scope.
- * If you need to store a pointer, use a buffer of type wxWX2MBbuf:
+ * If you need to store a pointer, use a buffer of type wxCharBuffer:
  * and then cast it to a char pointer, e.g.:
- * 
- * const wxWX2MBbuf buf(unicode2char(aWxString));
- * 
+ *
+ * const wxCharBuffer buf(unicode2char(aWxString));
+ *
  * --- Now you can freely use buf as if it were a (const char *) ---
- * 
+ *
  * puts(buf);
  * printf("%s", (const char *)buf);
  *
  * The cast in printf is necessary because variable number of parameter
  * functions have no type for these parameters, so the automatic casting
- * of wxWX2MBbuf to (const char *) is not performed.
- * 
+ * of wxCharBuffer to (const char *) is not performed.
+ *
  * --- don't worry about memory allocation, memory will be       ---
  * --- free'ed when buf gets out of scope, i.e., upon return     ---
- * 
- * wxMB2WXbuf, wxWX2MBbuf are always the appropriate return type,
+ *
+ * wxWCharBuffer, wxCharBuffer are always the appropriate return type,
  * either (wxChar *) or (wxWCharBuffer)
  *
  * Use the simplified names Unicode2CharBuf and Char2UnicodeBuf, and
  * do not declare these names const or the compiler will complain about
  * a double const.
  */
-typedef const wxWX2MBbuf Unicode2CharBuf;
-typedef const wxMB2WXbuf Char2UnicodeBuf;
+typedef const wxCharBuffer Unicode2CharBuf;
+typedef const wxWCharBuffer Char2UnicodeBuf;
 
 Unicode2CharBuf unicode2char(const wxChar* x);
+Unicode2CharBuf unicode2char(const Char2UnicodeBuf& x);
+inline Unicode2CharBuf unicode2char(const wxString& x)		{ return unicode2char(x.wc_str()); }
 inline Char2UnicodeBuf char2unicode(const char* x)	{ return wxConvLocal.cMB2WX(x); }
 
 inline Unicode2CharBuf unicode2UTF8(const wxChar* x)	{ return wxConvUTF8.cWX2MB(x); }
+inline Unicode2CharBuf unicode2UTF8(const Char2UnicodeBuf& x)	{ return wxConvUTF8.cWX2MB(x); }
+inline Unicode2CharBuf unicode2UTF8(const wxString& x)	{ return x.utf8_str(); }
 inline Char2UnicodeBuf UTF82unicode(const char* x)	{ return wxConvUTF8.cMB2WX(x); }
 
 inline const wxCharBuffer char2UTF8(const char *x)	{ return unicode2UTF8(char2unicode(x)); }
 inline const wxCharBuffer UTF82char(const char *x)	{ return unicode2char(UTF82unicode(x)); }
 
 inline Unicode2CharBuf filename2char(const wxChar* x)	{ return wxConvFile.cWC2MB(x); }
+inline Unicode2CharBuf filename2char(const wxString& x)	{ return x.mb_str(wxConvFile); }
 inline Char2UnicodeBuf char2filename(const char* x)	{ return wxConvFile.cMB2WC(x); }
 
 
@@ -187,7 +192,7 @@ inline size_t GetRawSize(const wxString& rstr, EUtf8Str eEncode)
 }
 
 
-/****************************************************/ 
+/****************************************************/
 /***************** Non-inlines **********************/
 /****************************************************/
 
@@ -226,7 +231,7 @@ wxString validateURI(const wxString& url);
  * @return Returns -1 if a < b, 1 if a > b and 0 if a = b
  *
  * This function basically splits the two strings into a number of
- * fields, deliniated by whitespace, non-alphanumerical chars. The 
+ * fields, deliniated by whitespace, non-alphanumerical chars. The
  * numerals are then converted to integers, and the fields are
  * compared. This allows strings such as "a (2)" and "a (10)" to
  * be properly sorted for displaying.
@@ -282,10 +287,10 @@ public:
 private:
 	//! The string being tokenized.
 	wxString m_string;
-	
+
 	//! The delimiter used to split the string.
 	wxChar m_delim;
-	
+
 	//! A pointer to the current position in the string.
 	const wxChar* m_ptr;
 
diff --git a/src/libs/common/TextFile.cpp b/src/libs/common/TextFile.cpp
index 631b542..f269f88 100644
--- a/src/libs/common/TextFile.cpp
+++ b/src/libs/common/TextFile.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -49,7 +49,7 @@ bool CTextFile::Open(const CPath& path, EOpenMode mode)
 	Close();
 
 	m_mode = mode;
-	
+
 	if (mode == read) {
 		if (path.FileExists()) {
 			m_file.Open(path.GetRaw(), wxT("r"));
@@ -78,7 +78,7 @@ bool CTextFile::IsOpened() const
 bool CTextFile::Eof() const
 {
 	// This is needed because feof will crash if the
-	// underlying FILE pointer is NULL, as is the 
+	// underlying FILE pointer is NULL, as is the
 	// case when the file is closed.
 	return m_file.IsOpened() ? m_file.Eof() : true;
 }
@@ -104,7 +104,7 @@ wxString CTextFile::GetNextLine(EReadTextFile flags, const wxMBConv& conv, bool*
 	// Loop until EOF (fgets will then return NULL) or a newline is read.
 	while (fgets(buffer, TXTBUF_SIZE, m_file.fp())) {
 		// Filters must be first applied here to avoid unnecessary CPU usage.
-		
+
 		if (line.IsEmpty()) {
 			if (buffer[0] == '\0') {
 				// Empty line.
@@ -137,7 +137,7 @@ wxString CTextFile::GetNextLine(EReadTextFile flags, const wxMBConv& conv, bool*
 						line.RemoveLast(2);
 					} else {
 						// Only a newline.
-						line.RemoveLast(1);					
+						line.RemoveLast(1);
 					}
 				} else {
 					// Empty line
@@ -162,11 +162,11 @@ wxString CTextFile::GetNextLine(EReadTextFile flags, const wxMBConv& conv, bool*
 			is_filtered = true;
 		}
 	}
-	
+
 	if (result) {
 		*result = !is_filtered;
 	}
-	
+
 	return line;
 }
 
@@ -178,7 +178,7 @@ bool CTextFile::WriteLine(const wxString& line, const wxMBConv& conv)
 
 	// Ensures that use of newlines/carriage-returns matches the OS
 	wxString result = wxTextBuffer::Translate(line);
-	
+
 	// Only add line-breaks between lines, as otherwise the number of
 	// lines would grow as the result of the addition of an empty line,
 	// at the end of the file.
@@ -186,13 +186,13 @@ bool CTextFile::WriteLine(const wxString& line, const wxMBConv& conv)
 		result = wxTextBuffer::GetEOL() + result;
 	}
 
-	wxCharBuffer strBuffer = conv.cWC2MB(result);
+	wxCharBuffer strBuffer = result.mb_str(conv);
 	if (strBuffer) {
 		const size_t length = strlen(strBuffer);
 
 		return (m_file.Write(strBuffer, length) == length);
 	}
-	
+
 	return false;
 }
 
@@ -203,7 +203,7 @@ wxArrayString CTextFile::ReadLines(EReadTextFile flags, const wxMBConv& conv)
 
 	while (!Eof()) {
 		bool result = true;
-		
+
 		wxString line = GetNextLine(flags, conv, &result);
 
 		if (result) {
diff --git a/src/libs/common/TextFile.h b/src/libs/common/TextFile.h
index 3bb8ae4..f3bf1c5 100644
--- a/src/libs/common/TextFile.h
+++ b/src/libs/common/TextFile.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -36,7 +36,7 @@ class CPath;
 enum EReadTextFile
 {
 	/** Do not filter anything */
-	txtReadAll = 0,	
+	txtReadAll = 0,
 	/** Do not return empty lines. Can be combined with txtStripWhiteSpace */
 	txtIgnoreEmptyLines = 1,
 	/** Do not return lines starting with a '#' */
@@ -55,7 +55,7 @@ enum EReadTextFile
  * This class is a wrapper around wxFFile, letting an text file be read
  * or written line-by-line. The class provides transparent and automatic
  * EOL-style handling.
- * 
+ *
  * Note that it is not possible to seek in a CTextFile, only sequential
  * reading or writing is possible. Also note that the maximum length of a
  * line is fixed (see CTextFile::GetNextLine), however this shouldn't be
@@ -103,7 +103,7 @@ public:
 	 **/
 	wxString	GetNextLine(EReadTextFile flags = txtReadAll, const wxMBConv& conv = wxConvLibc, bool* result = NULL);
 
-	/** 
+	/**
 	 * Writes the line to a writable file, returning true on success.
 	 *
 	 * @param conv The converter used to convert from widechar to multibyte.
diff --git a/src/libs/common/strerror_r.c b/src/libs/common/strerror_r.c
index e3bebd5..f2afb81 100644
--- a/src/libs/common/strerror_r.c
+++ b/src/libs/common/strerror_r.c
@@ -30,10 +30,10 @@
 #	define _XOPEN_SOURCE	600
 #endif
 
-#include <string.h>			// Needed for strerror_r() and size_t
+#include <string.h>			/* Needed for strerror_r() and size_t */
 
 #ifdef HAVE_ERRNO_H
-#	include <errno.h>			// Needed for errno
+#	include <errno.h>		/* Needed for errno */
 #endif
 
 #ifndef HAVE_STRERROR_R
diff --git a/src/libs/common/strerror_r.h b/src/libs/common/strerror_r.h
index 88d06a9..1e729d3 100644
--- a/src/libs/common/strerror_r.h
+++ b/src/libs/common/strerror_r.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/libs/ec/Makefile.am b/src/libs/ec/Makefile.am
index a8eea33..e880a58 100644
--- a/src/libs/ec/Makefile.am
+++ b/src/libs/ec/Makefile.am
@@ -2,7 +2,7 @@ SUBDIRS = cpp
 
 # Sources
 
-MAINTAINERCLEANFILES = Makefile.in 
+MAINTAINERCLEANFILES = Makefile.in
 
 BUILT_SOURCES = ECGeneratedFiles
 
diff --git a/src/libs/ec/Makefile.in b/src/libs/ec/Makefile.in
index d432330..38d2b85 100644
--- a/src/libs/ec/Makefile.in
+++ b/src/libs/ec/Makefile.in
@@ -38,23 +38,23 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = src/libs/ec
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -127,6 +127,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -153,6 +159,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -243,6 +250,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -330,7 +338,7 @@ top_srcdir = @top_srcdir@
 SUBDIRS = cpp
 
 # Sources
-MAINTAINERCLEANFILES = Makefile.in 
+MAINTAINERCLEANFILES = Makefile.in
 BUILT_SOURCES = ECGeneratedFiles
 ECGeneratedFilesSources = \
 	abstracts/ECTagTypes.abstract \
diff --git a/src/libs/ec/abstracts/ECCodes.abstract b/src/libs/ec/abstracts/ECCodes.abstract
index 289f090..e1c86da 100644
--- a/src/libs/ec/abstracts/ECCodes.abstract
+++ b/src/libs/ec/abstracts/ECCodes.abstract
@@ -204,6 +204,7 @@ EC_TAG_STATS_UL_SPEED                     0x0200
 	EC_TAG_STATS_TOTAL_SENT_BYTES             0x0218
 	EC_TAG_STATS_TOTAL_RECEIVED_BYTES         0x0219
 	EC_TAG_STATS_SHARED_FILE_COUNT            0x021A
+	EC_TAG_STATS_KAD_NODES                    0x021B
 
 EC_TAG_PARTFILE                           0x0300
 	EC_TAG_PARTFILE_NAME                      0x0301
diff --git a/src/libs/ec/abstracts/License.abstract b/src/libs/ec/abstracts/License.abstract
index ad9c422..cb0dffd 100644
--- a/src/libs/ec/abstracts/License.abstract
+++ b/src/libs/ec/abstracts/License.abstract
@@ -16,7 +16,7 @@
  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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/libs/ec/cpp/ECCodes.h b/src/libs/ec/cpp/ECCodes.h
index cf8a989..e210d65 100644
--- a/src/libs/ec/cpp/ECCodes.h
+++ b/src/libs/ec/cpp/ECCodes.h
@@ -16,7 +16,7 @@
 //  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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -175,6 +175,7 @@ enum ECTagNames {
 		EC_TAG_STATS_TOTAL_SENT_BYTES             = 0x0218,
 		EC_TAG_STATS_TOTAL_RECEIVED_BYTES         = 0x0219,
 		EC_TAG_STATS_SHARED_FILE_COUNT            = 0x021A,
+		EC_TAG_STATS_KAD_NODES                    = 0x021B,
 	EC_TAG_PARTFILE                           = 0x0300,
 		EC_TAG_PARTFILE_NAME                      = 0x0301,
 		EC_TAG_PARTFILE_PARTMETID                 = 0x0302,
@@ -621,6 +622,7 @@ wxString GetDebugNameECTagNames(uint16 arg)
 		case 0x0218: return wxT("EC_TAG_STATS_TOTAL_SENT_BYTES");
 		case 0x0219: return wxT("EC_TAG_STATS_TOTAL_RECEIVED_BYTES");
 		case 0x021A: return wxT("EC_TAG_STATS_SHARED_FILE_COUNT");
+		case 0x021B: return wxT("EC_TAG_STATS_KAD_NODES");
 		case 0x0300: return wxT("EC_TAG_PARTFILE");
 		case 0x0301: return wxT("EC_TAG_PARTFILE_NAME");
 		case 0x0302: return wxT("EC_TAG_PARTFILE_PARTMETID");
diff --git a/src/libs/ec/cpp/ECFileConfig.h b/src/libs/ec/cpp/ECFileConfig.h
index bdc72c0..7ba02fb 100644
--- a/src/libs/ec/cpp/ECFileConfig.h
+++ b/src/libs/ec/cpp/ECFileConfig.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/libs/ec/cpp/ECID.h b/src/libs/ec/cpp/ECID.h
index 9059a0e..7707c84 100644
--- a/src/libs/ec/cpp/ECID.h
+++ b/src/libs/ec/cpp/ECID.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/libs/ec/cpp/ECMuleSocket.cpp b/src/libs/ec/cpp/ECMuleSocket.cpp
index 63762a6..0e48cc0 100644
--- a/src/libs/ec/cpp/ECMuleSocket.cpp
+++ b/src/libs/ec/cpp/ECMuleSocket.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -25,6 +25,7 @@
 
 #include "ECMuleSocket.h"
 
+#include "../../../amuleIPV4Address.h"
 #include "../../../NetworkFunctions.h"
 
 //-------------------- CECSocketHandler --------------------
@@ -63,7 +64,7 @@ void CECMuleSocketHandler::SocketHandler(wxSocketEvent& event)
         case wxSOCKET_CONNECTION:
             socket->OnConnect();
             break;
-            
+
         default:
             // Nothing should arrive here...
             wxFAIL;
@@ -79,8 +80,7 @@ static CECMuleSocketHandler	g_ECSocketHandler;
 
 CECMuleSocket::CECMuleSocket(bool use_events)
 :
-CECSocket(use_events),
-wxSocketClient()
+CECSocket(use_events)
 {
 	if ( use_events ) {
 		SetEventHandler(g_ECSocketHandler, EC_SOCKET_HANDLER);
@@ -105,12 +105,12 @@ bool CECMuleSocket::ConnectSocket(wxIPV4address& address)
 
 
 bool CECMuleSocket::InternalConnect(uint32_t ip, uint16_t port, bool wait) {
-	wxIPV4address addr;
+	amuleIPV4Address addr;
 	addr.Hostname(Uint32toStringIP(ip));
 	addr.Service(port);
-	return wxSocketClient::Connect(addr, wait);
+	return CLibSocket::Connect(addr, wait);
 }
-	
+
 int CECMuleSocket::InternalGetLastError() {
 	switch(LastError()) {
 		case wxSOCKET_NOERROR:
diff --git a/src/libs/ec/cpp/ECMuleSocket.h b/src/libs/ec/cpp/ECMuleSocket.h
index 98e8e9b..7f16707 100644
--- a/src/libs/ec/cpp/ECMuleSocket.h
+++ b/src/libs/ec/cpp/ECMuleSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -26,7 +26,7 @@
 #ifndef ECMULESOCKET_H
 #define ECMULESOCKET_H
 
-#include <wx/socket.h>		// Needed for wxSocketClient
+#include "../../../LibSocket.h"
 #include "ECSocket.h"
 
 /*! \class CECMuleSocket
@@ -35,31 +35,35 @@
  *
  */
 
-class CECMuleSocket : public CECSocket,  public wxSocketClient {
+class CECMuleSocket : public CECSocket,  public CLibSocket {
 public:
 	CECMuleSocket(bool use_events);
 	virtual ~CECMuleSocket();
 
-	bool ConnectSocket(wxIPV4address& address);
+	bool ConnectSocket(class wxIPV4address& address);
+
+	virtual void OnConnect()	{}					// This is overwritten in RemoteConnect
+	virtual void OnConnect(int)	{ OnConnect(); }	// This is called from LibSocketAsio
+	virtual void OnSend(int)	{ OnOutput(); }
+	virtual void OnReceive(int)	{ OnInput(); }
+
+private:
+	bool InternalConnect(uint32_t ip, uint16_t port, bool wait);
+
+	int InternalGetLastError();
+
+	bool InternalWaitOnConnect(long secs = -1, long msecs = 0) { return CLibSocket::WaitOnConnect(secs,msecs); };
+	bool InternalWaitForWrite(long secs = -1, long msecs = 0) { return CLibSocket::WaitForWrite(secs,msecs); };
+	bool InternalWaitForRead(long secs = -1, long msecs = 0) { return CLibSocket::WaitForRead(secs,msecs); };
+
+	bool InternalError() { return CLibSocket::LastError() != 0; }
+	void InternalClose() { CLibSocket::Close(); }
+
+	uint32 InternalRead(void* ptr, uint32 len)			{ return CLibSocket::Read(ptr, len); };
+	uint32 InternalWrite(const void* ptr, uint32 len)	{ return CLibSocket::Write(ptr, len); };
 
- private:
- 	bool InternalConnect(uint32_t ip, uint16_t port, bool wait);
-	
- 	int InternalGetLastError();
- 
-	size_t InternalLastCount() { return wxSocketClient::LastCount(); };
-	bool InternalWaitOnConnect(long secs = -1, long msecs = 0) { return wxSocketClient::WaitOnConnect(secs,msecs); };
-	bool InternalWaitForWrite(long secs = -1, long msecs = 0) { return wxSocketClient::WaitForWrite(secs,msecs); };
-	bool InternalWaitForRead(long secs = -1, long msecs = 0) { return wxSocketClient::WaitForRead(secs,msecs); };
-	
-	bool InternalError() { return wxSocketClient::Error(); }
-	void InternalClose() { wxSocketClient::Close(); }
-	
-	void InternalRead(void* ptr, size_t len) { wxASSERT(len < 0xFFFFFFFF); wxSocketClient::Read(ptr, (wxUint32)len); };
-	void InternalWrite(const void* ptr, size_t len) { wxASSERT(len < 0xFFFFFFFF); wxSocketClient::Write(ptr, (wxUint32)len); };
-	
-	bool InternalIsConnected() { return wxSocketClient::IsConnected(); }
-	void InternalDestroy() { wxSocketClient::Destroy(); }
+	bool InternalIsConnected() { return CLibSocket::IsConnected(); }
+	void InternalDestroy() { CLibSocket::Destroy(); }
 };
 
 #endif // ECMULESOCKET_H
diff --git a/src/libs/ec/cpp/ECPacket.cpp b/src/libs/ec/cpp/ECPacket.cpp
index 435b0db..5fbb55d 100644
--- a/src/libs/ec/cpp/ECPacket.cpp
+++ b/src/libs/ec/cpp/ECPacket.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -55,10 +55,10 @@ void CECPacket::DebugPrint(bool incoming, uint32 trueSize) const
 		uint32 size = GetPacketLength() + sizeof(ec_opcode_t) + 2;	// full length incl. header
 
 		if (trueSize == 0 || size == trueSize) {
-			DoECLogLine(CFormat(wxT("%s %s %d")) % (incoming ? wxT("<") : wxT(">")) 
+			DoECLogLine(CFormat(wxT("%s %s %d")) % (incoming ? wxT("<") : wxT(">"))
 				% GetDebugNameECOpCodes(m_opCode) % size);
 		} else {
-			DoECLogLine(CFormat(wxT("%s %s %d (compressed: %d)")) % (incoming ? wxT("<") : wxT(">")) 
+			DoECLogLine(CFormat(wxT("%s %s %d (compressed: %d)")) % (incoming ? wxT("<") : wxT(">"))
 				% GetDebugNameECOpCodes(m_opCode) % size % trueSize);
 		}
 		CECTag::DebugPrint(1, false);
diff --git a/src/libs/ec/cpp/ECPacket.h b/src/libs/ec/cpp/ECPacket.h
index f63e9c6..1b1d0d1 100644
--- a/src/libs/ec/cpp/ECPacket.h
+++ b/src/libs/ec/cpp/ECPacket.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -47,7 +47,7 @@ class CECPacket : public CECEmptyTag {
 				AddTag(CECTag(EC_TAG_DETAIL_LEVEL, (uint64)detail_level));
 			}
 		}
-		
+
 		ec_opcode_t	GetOpCode(void) const { return m_opCode; }
 		uint32_t		GetPacketLength(void) const { return CECTag::GetTagLen(); }
 		EC_DETAIL_LEVEL GetDetailLevel() const
@@ -56,7 +56,7 @@ class CECPacket : public CECEmptyTag {
 			return (tag) ? (EC_DETAIL_LEVEL)tag->GetInt() : EC_DETAIL_FULL;
 		}
 		void DebugPrint(bool incoming, uint32 trueSize = 0) const;
-		
+
 	private:
 		CECPacket()	: CECEmptyTag() {}
 
diff --git a/src/libs/ec/cpp/ECSocket.cpp b/src/libs/ec/cpp/ECSocket.cpp
index e60a597..a0283cc 100644
--- a/src/libs/ec/cpp/ECSocket.cpp
+++ b/src/libs/ec/cpp/ECSocket.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -172,23 +172,25 @@ void CQueuedData::Read(void *data, size_t len)
 }
 
 
-void CQueuedData::WriteToSocket(CECSocket *sock)
+uint32 CQueuedData::WriteToSocket(CECSocket *sock)
 {
-	wxCHECK_RET(m_rd_ptr < m_wr_ptr,
+	wxCHECK_MSG(m_rd_ptr < m_wr_ptr, 0,
 		wxT("Reading past written data in WriteToSocket"));
-	
-	sock->SocketWrite(m_rd_ptr, GetUnreadDataLength());
-	m_rd_ptr += sock->GetLastCount();
+
+	uint32 write = sock->SocketWrite(m_rd_ptr, GetUnreadDataLength());
+	m_rd_ptr += write;
+	return write;
 }
 
 
-void CQueuedData::ReadFromSocket(CECSocket *sock, size_t len)
+uint32 CQueuedData::ReadFromSocket(CECSocket *sock, size_t len)
 {
 	const size_t canWrite = std::min(GetRemLength(), len);
 	wxASSERT(len == canWrite);
 
-	sock->SocketRead(m_wr_ptr, canWrite);
-	m_wr_ptr += sock->GetLastCount();
+	uint32 read = sock->SocketRead(m_wr_ptr, canWrite);
+	m_wr_ptr += read;
+	return read;
 }
 
 
@@ -206,9 +208,9 @@ size_t CQueuedData::ReadFromSocketAll(CECSocket *sock, size_t len)
 		}
 
 		wxASSERT(m_wr_ptr + read_rem <= &m_data[0] + m_data.size());
-		sock->SocketRead(m_wr_ptr, read_rem);
-		m_wr_ptr += sock->GetLastCount();
-		read_rem -= sock->GetLastCount();
+		uint32 read = sock->SocketRead(m_wr_ptr, read_rem);
+		m_wr_ptr += read;
+		read_rem -= read;
 
 		if (sock->SocketRealError()) {
 			AddDebugLogLineN(logEC, wxT("ReadFromSocketAll: socket error"));
@@ -257,22 +259,20 @@ size_t CQueuedData::GetUnreadDataLength() const
 //
 
 CECSocket::CECSocket(bool use_events)
-:
-m_use_events(use_events),
-m_in_ptr(EC_SOCKET_BUFFER_SIZE),
-m_out_ptr(EC_SOCKET_BUFFER_SIZE),
-m_curr_rx_data(new CQueuedData(EC_SOCKET_BUFFER_SIZE)),
-m_curr_tx_data(new CQueuedData(EC_SOCKET_BUFFER_SIZE)),
-m_rx_flags(0),
-m_tx_flags(0),
-// setup initial state: 4 flags + 4 length
-m_bytes_needed(EC_HEADER_SIZE),
-m_in_header(true),
-m_my_flags(0x20),
-m_haveNotificationSupport(false)
-{
-	
-}
+	: m_use_events(use_events),
+	  m_in_ptr(EC_SOCKET_BUFFER_SIZE),
+	  m_out_ptr(EC_SOCKET_BUFFER_SIZE),
+	  m_curr_rx_data(new CQueuedData(EC_SOCKET_BUFFER_SIZE)),
+	  m_curr_tx_data(new CQueuedData(EC_SOCKET_BUFFER_SIZE)),
+	  m_rx_flags(0),
+	  m_tx_flags(0),
+	  // setup initial state: 4 flags + 4 length
+	  m_bytes_needed(EC_HEADER_SIZE),
+	  m_in_header(true),
+	  m_curr_packet_len(0),
+	  m_my_flags(0x20),
+	  m_haveNotificationSupport(false)
+{}
 
 CECSocket::~CECSocket()
 {
@@ -299,7 +299,7 @@ void CECSocket::SendPacket(const CECPacket *packet)
 const CECPacket *CECSocket::SendRecvPacket(const CECPacket *packet)
 {
 	SendPacket(packet);
-	
+
 	if (m_curr_rx_data->ReadFromSocketAll(this, EC_HEADER_SIZE) != EC_HEADER_SIZE
 		|| SocketError()		// This is a synchronous read, so WouldBlock is an error too.
 		|| !ReadHeader()) {
@@ -348,8 +348,8 @@ std::string CECSocket::GetLastErrorMsg()
 	return error_string.str();
 }
 
-bool CECSocket::SocketRealError() 
-{ 
+bool CECSocket::SocketRealError()
+{
 	bool ret = false;
 	if (InternalError()) {
 		int lastError = InternalGetLastError();
@@ -380,16 +380,15 @@ void CECSocket::OnInput()
 {
 	size_t bytes_rx = 0;
 	do {
-		m_curr_rx_data->ReadFromSocket(this, m_bytes_needed);
+		bytes_rx = m_curr_rx_data->ReadFromSocket(this, m_bytes_needed);
 		if (SocketRealError()) {
 			AddDebugLogLineN(logEC, wxT("OnInput: socket error"));
 			OnError();
 			// socket already disconnected in this point
 			return;
 		}
-		bytes_rx = GetLastCount();
 		m_bytes_needed -= bytes_rx;
-	
+
 		if (m_bytes_needed == 0) {
 			if (m_in_header) {
 				m_in_header = false;
@@ -440,7 +439,7 @@ void CECSocket::OnOutput()
 			if ( !WaitSocketWrite(10, 0) ) {
 				// Still not through ?
 				if (WouldBlock()) {
-					// WouldBlock() is only EAGAIN or EWOULD_BLOCK, 
+					// WouldBlock() is only EAGAIN or EWOULD_BLOCK,
 					// and those shouldn't create an infinite wait.
 					// So give it another chance.
 					continue;
@@ -474,7 +473,7 @@ size_t CECSocket::ReadBufferFromSocket(void *buffer, size_t required_len)
 
 	if (m_curr_rx_data->GetUnreadDataLength() < required_len) {
 		// need more data that we have. Looks like nothing will help here
-		AddDebugLogLineN(logEC, CFormat(wxT("ReadBufferFromSocket: not enough data (%d < %d)")) 
+		AddDebugLogLineN(logEC, CFormat(wxT("ReadBufferFromSocket: not enough data (%d < %d)"))
 			% m_curr_rx_data->GetUnreadDataLength() % required_len);
 		return 0;
 	}
@@ -736,7 +735,7 @@ uint32 CECSocket::WritePacket(const CECPacket *packet)
 	std::list<CQueuedData*>::iterator outputStart = m_output_queue.begin();
 	uint32 outputQueueSize = m_output_queue.size();
 	for (uint32 i = 1; i < outputQueueSize; i++) {
-		outputStart++;
+		++outputStart;
 	}
 
 	uint32_t flags = 0x20;
@@ -750,7 +749,7 @@ uint32 CECSocket::WritePacket(const CECPacket *packet)
 
 	flags &= m_my_flags;
 	m_tx_flags = flags;
-	
+
 	if (flags & EC_FLAG_ZLIB) {
 		m_z.zalloc = Z_NULL;
 		m_z.zfree = Z_NULL;
@@ -767,24 +766,24 @@ uint32 CECSocket::WritePacket(const CECPacket *packet)
 
 	uint32_t tmp_flags = ENDIAN_HTONL(flags);
 	WriteBufferToSocket(&tmp_flags, sizeof(uint32));
-	
+
 	// preallocate 4 bytes in buffer for packet length
 	uint32_t packet_len = 0;
 	WriteBufferToSocket(&packet_len, sizeof(uint32));
-	
+
 	packet->WritePacket(*this);
 
-	// Finalize zlib compression and move current data to outout queue
+	// Finalize zlib compression and move current data to output queue
 	FlushBuffers();
 
 	// find the beginning of our data in the output queue
 	if (outputQueueSize) {
-		outputStart++;
+		++outputStart;
 	} else {
 		outputStart = m_output_queue.begin();
 	}
 	// now calculate actual size of data
-	for(std::list<CQueuedData*>::iterator it = outputStart; it != m_output_queue.end(); it++) {
+	for(std::list<CQueuedData*>::iterator it = outputStart; it != m_output_queue.end(); ++it) {
 		packet_len += (uint32_t)(*it)->GetDataLength();
 	}
 	// header size is not counted
@@ -792,7 +791,7 @@ uint32 CECSocket::WritePacket(const CECPacket *packet)
 	// now write actual length at offset 4
 	uint32 packet_len_E = ENDIAN_HTONL(packet_len);
 	(*outputStart)->WriteAt(&packet_len_E, 4, 4);
-	
+
 	if (flags & EC_FLAG_ZLIB) {
 		int zerror = deflateEnd(&m_z);
 		if ( zerror != Z_OK ) {
@@ -809,7 +808,7 @@ const CECPacket *CECSocket::ReadPacket()
 	CECPacket *packet = 0;
 
 	uint32_t flags = m_rx_flags;
-	
+
 	if ( ((flags & 0x60) != 0x20) || (flags & EC_FLAG_UNKNOWN_MASK) ) {
 		// Protocol error - other end might use an older protocol
 		AddDebugLogLineN(logEC, wxT("ReadPacket: protocol error"));
@@ -825,7 +824,7 @@ const CECPacket *CECSocket::ReadPacket()
 	    m_z.opaque = Z_NULL;
 	    m_z.avail_in = 0;
 	    m_z.next_in = 0;
-	    
+
 		int zerror = inflateInit(&m_z);
 		if (zerror != Z_OK) {
 			AddDebugLogLineN(logEC, wxT("ReadPacket: zlib error"));
@@ -838,7 +837,7 @@ const CECPacket *CECSocket::ReadPacket()
 
 	m_curr_rx_data->ToZlib(m_z);
 	packet = new CECPacket();
-	
+
 	if (!packet->ReadFromSocket(*this)) {
 		AddDebugLogLineN(logEC, wxT("ReadPacket: error in packet read"));
 		cout << "ReadPacket: error in packet read" << endl;
diff --git a/src/libs/ec/cpp/ECSocket.h b/src/libs/ec/cpp/ECSocket.h
index 0396974..121e833 100644
--- a/src/libs/ec/cpp/ECSocket.h
+++ b/src/libs/ec/cpp/ECSocket.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -70,7 +70,7 @@ private:
 	static const unsigned int EC_SOCKET_BUFFER_SIZE = 2048;
 	static const unsigned int EC_HEADER_SIZE = 8;
 	const bool m_use_events;
-	
+
 	// Output related data
 	std::list<CQueuedData *> m_output_queue;
 
@@ -79,14 +79,14 @@ private:
 	std::vector<unsigned char> m_out_ptr;
 	std::auto_ptr<CQueuedData> m_curr_rx_data;
 	std::auto_ptr<CQueuedData> m_curr_tx_data;
-	
+
 	// This transfer only
 	uint32_t m_rx_flags;
 	uint32_t m_tx_flags;
 	size_t m_bytes_needed;
 	bool m_in_header;
-	
-	
+
+
 	uint32_t m_curr_packet_len;
 	z_stream m_z;
 
@@ -102,7 +102,7 @@ public:
 	void CloseSocket() { InternalClose(); }
 
 	bool HaveNotificationSupport() const { return m_haveNotificationSupport; }
-		
+
 	/**
 	 * Sends an EC packet and returns immediately.
 	 *
@@ -195,23 +195,22 @@ public:
 	void OnInput();
 	void OnOutput();
 
-	bool WouldBlock() { return InternalGetLastError() == EC_ERROR_WOULDBLOCK; } 
-	bool GotError() { return InternalGetLastError() != EC_ERROR_NOERROR; } 
+	bool WouldBlock() { return InternalGetLastError() == EC_ERROR_WOULDBLOCK; }
+	bool GotError() { return InternalGetLastError() != EC_ERROR_NOERROR; }
 
-	void SocketRead(void* ptr, size_t len) { InternalRead(ptr,len); }
-	void SocketWrite(const void* ptr, size_t len) { InternalWrite(ptr,len); }
+	uint32 SocketRead(void* ptr, size_t len) { return InternalRead(ptr,len); }
+	uint32 SocketWrite(const void* ptr, size_t len) { return InternalWrite(ptr,len); }
 	bool SocketError() { return InternalError() && GotError(); }
 	bool SocketRealError();
 
-	size_t GetLastCount() { return InternalLastCount(); }
 	bool WaitSocketConnect(long secs = -1, long msecs = 0) { return InternalWaitOnConnect(secs,msecs); }
 	bool WaitSocketWrite(long secs = -1, long msecs = 0) { return InternalWaitForWrite(secs,msecs); }
-	bool WaitSocketRead(long secs = -1, long msecs = 0) { return InternalWaitForRead(secs,msecs); }	
-	
+	bool WaitSocketRead(long secs = -1, long msecs = 0) { return InternalWaitForRead(secs,msecs); }
+
 	bool IsSocketConnected() { return InternalIsConnected(); }
-	
+
 	void DestroySocket() { return InternalDestroy(); }
-	
+
 	bool DataPending();
  private:
 	const CECPacket *ReadPacket();
@@ -230,13 +229,12 @@ public:
 
 	size_t	ReadBufferFromSocket(void *buffer, size_t len);
 	void	WriteBufferToSocket(const void *buffer, size_t len);
-	
- 	/* virtuals */
+
+	/* virtuals */
 	virtual void WriteDoneAndQueueEmpty() = 0;
-	
+
 	virtual bool InternalConnect(uint32_t ip, uint16_t port, bool wait) = 0;
 
-	virtual size_t InternalLastCount() = 0;
 	virtual bool InternalWaitOnConnect(long secs = -1, long msecs = 0) = 0;
 	virtual bool InternalWaitForWrite(long secs = -1, long msecs = 0) = 0;
 	virtual bool InternalWaitForRead(long secs = -1, long msecs = 0) = 0;
@@ -245,9 +243,9 @@ public:
 
 	virtual void InternalClose() = 0;
 	virtual bool InternalError() = 0;
-	virtual void InternalRead(void* ptr, size_t len) = 0;
-	virtual void InternalWrite(const void* ptr, size_t len) = 0;
-	
+	virtual uint32 InternalRead(void* ptr, uint32 len) = 0;
+	virtual uint32 InternalWrite(const void* ptr, uint32 len) = 0;
+
 	virtual bool InternalIsConnected() = 0;
 	virtual void InternalDestroy() = 0;
 
@@ -267,14 +265,14 @@ public:
 	{
 		m_rd_ptr = m_wr_ptr = &m_data[0];
 	}
-	
+
 	~CQueuedData() {}
-	
+
 	void Rewind()
 	{
 		m_rd_ptr = m_wr_ptr = &m_data[0];
 	}
-	
+
 	void Write(const void *data, size_t len);
 	void WriteAt(const void *data, size_t len, size_t off);
 	void Read(void *data, size_t len);
@@ -287,12 +285,12 @@ public:
 		m_z.avail_in = (uInt)GetUnreadDataLength();
 		m_z.next_in = m_rd_ptr;
 	}
-	
-	void WriteToSocket(CECSocket *sock);
-	void ReadFromSocket(CECSocket *sock, size_t len);
-	
+
+	uint32 WriteToSocket(CECSocket *sock);
+	uint32 ReadFromSocket(CECSocket *sock, size_t len);
+
 	size_t ReadFromSocketAll(CECSocket *sock, size_t len);
-	
+
 	size_t GetLength() const;
 	size_t GetDataLength() const;
 	size_t GetRemLength() const;
diff --git a/src/libs/ec/cpp/ECSpecialTags.cpp b/src/libs/ec/cpp/ECSpecialTags.cpp
index 186043f..4c24ac4 100644
--- a/src/libs/ec/cpp/ECSpecialTags.cpp
+++ b/src/libs/ec/cpp/ECSpecialTags.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -35,7 +35,7 @@
 wxString CEC_PartFile_Tag::GetFileStatusString() const
 {
 	uint8 nFileStatus = FileStatus();
-	
+
         if ((nFileStatus == PS_HASHING) || (nFileStatus == PS_WAITINGFORHASH)) {
                 return _("Hashing");
         } else {
@@ -149,7 +149,7 @@ wxString CEC_StatTree_Node_Tag::GetDisplayString() const
 		}
 	}
 	CFormat label(my_label);
-	for (const_iterator it = begin(); it != end(); it++) {
+	for (const_iterator it = begin(); it != end(); ++it) {
 		if (it->GetTagName() == EC_TAG_STAT_NODE_VALUE) {
 			FormatValue(label, &*it);
 		}
diff --git a/src/libs/ec/cpp/ECSpecialTags.h b/src/libs/ec/cpp/ECSpecialTags.h
index ba9a355..6921b2f 100644
--- a/src/libs/ec/cpp/ECSpecialTags.h
+++ b/src/libs/ec/cpp/ECSpecialTags.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -67,7 +67,7 @@ class CValueMap {
 		std::map<ec_tagname_t, CMD4Hash> m_map_md4;
 		std::map<ec_tagname_t, wxString> m_map_string;
 		std::map<ec_tagname_t, CECTag> m_map_tag;
-		
+
 		template <class T>
 		void CreateTagT(ec_tagname_t tagname, T value, std::map<ec_tagname_t, T> &map, CECTag *parent)
 		{
@@ -80,7 +80,7 @@ class CValueMap {
 		CValueMap()
 		{
 		}
-		
+
 		CValueMap(const CValueMap &valuemap)
 		{
 			m_map_uint8 = valuemap.m_map_uint8;
@@ -91,37 +91,37 @@ class CValueMap {
 			m_map_string = valuemap.m_map_string;
 			m_map_tag = valuemap.m_map_tag;
 		}
-		
+
 		void CreateTag(ec_tagname_t tagname, uint8 value, CECTag *parent)
 		{
 			CreateTagT<uint8>(tagname, value, m_map_uint8, parent);
 		}
-		
+
 		void CreateTag(ec_tagname_t tagname, uint16 value, CECTag *parent)
 		{
 			CreateTagT<uint16>(tagname, value, m_map_uint16, parent);
 		}
-		
+
 		void CreateTag(ec_tagname_t tagname, uint32 value, CECTag *parent)
 		{
 			CreateTagT<uint32>(tagname, value, m_map_uint32, parent);
 		}
-		
+
 		void CreateTag(ec_tagname_t tagname, uint64 value, CECTag *parent)
 		{
 			CreateTagT<uint64>(tagname, value, m_map_uint64, parent);
 		}
-		
+
 		void CreateTag(ec_tagname_t tagname, CMD4Hash value, CECTag *parent)
 		{
 			CreateTagT<CMD4Hash>(tagname, value, m_map_md4, parent);
 		}
-		
+
 		void CreateTag(ec_tagname_t tagname, wxString value, CECTag *parent)
 		{
 			CreateTagT<wxString>(tagname, value, m_map_string, parent);
 		}
-		
+
 		bool AddTag(const CECTag &tag, CECTag *parent)
 		{
 			bool ret = false;
@@ -141,63 +141,63 @@ class CValueMap {
 };
 
 class CEC_Category_Tag : public CECTag {
- 	public:
- 		CEC_Category_Tag(uint32 cat_index, EC_DETAIL_LEVEL detail_level = EC_DETAIL_FULL);
- 		// for create-upate commands
- 		CEC_Category_Tag(uint32 cat_index, wxString name, wxString path,
+	public:
+		CEC_Category_Tag(uint32 cat_index, EC_DETAIL_LEVEL detail_level = EC_DETAIL_FULL);
+		// for create-upate commands
+		CEC_Category_Tag(uint32 cat_index, wxString name, wxString path,
 			wxString comment, uint32 color, uint8 prio);
- 		
- 		bool Apply();
- 		bool Create();
- 		
- 		wxString Name() const { return GetTagByNameSafe(EC_TAG_CATEGORY_TITLE)->GetStringData(); }
- 		wxString Path() const { return GetTagByNameSafe(EC_TAG_CATEGORY_PATH)->GetStringData(); }
- 		wxString Comment() const { return GetTagByNameSafe(EC_TAG_CATEGORY_COMMENT)->GetStringData(); }
- 		uint8 Prio() const { return GetTagByNameSafe(EC_TAG_CATEGORY_PRIO)->GetInt(); }
- 		uint32 Color() const { return GetTagByNameSafe(EC_TAG_CATEGORY_COLOR)->GetInt(); }
- 		
+
+		bool Apply();
+		bool Create();
+
+		wxString Name() const { return GetTagByNameSafe(EC_TAG_CATEGORY_TITLE)->GetStringData(); }
+		wxString Path() const { return GetTagByNameSafe(EC_TAG_CATEGORY_PATH)->GetStringData(); }
+		wxString Comment() const { return GetTagByNameSafe(EC_TAG_CATEGORY_COMMENT)->GetStringData(); }
+		uint8 Prio() const { return GetTagByNameSafe(EC_TAG_CATEGORY_PRIO)->GetInt(); }
+		uint32 Color() const { return GetTagByNameSafe(EC_TAG_CATEGORY_COLOR)->GetInt(); }
+
 };
 
 class CEC_Prefs_Packet : public CECPacket {
- 	public:
- 		CEC_Prefs_Packet(uint32 selection, EC_DETAIL_LEVEL prefs_detail = EC_DETAIL_FULL, EC_DETAIL_LEVEL cat_details = EC_DETAIL_FULL);
+	public:
+		CEC_Prefs_Packet(uint32 selection, EC_DETAIL_LEVEL prefs_detail = EC_DETAIL_FULL, EC_DETAIL_LEVEL cat_details = EC_DETAIL_FULL);
 
- 		void Apply();
+		void Apply() const;
 };
 
 class CEC_Server_Tag : public CECTag {
- 	public:
- 		CEC_Server_Tag(const CServer *, EC_DETAIL_LEVEL);
- 		CEC_Server_Tag(const CServer *, CValueMap *valuemap);
- 		
- 		wxString ServerName(wxString * target = 0)	const { return AssignIfExist(EC_TAG_SERVER_NAME, target); }
- 		wxString ServerDesc(wxString * target = 0)	const { return AssignIfExist(EC_TAG_SERVER_DESC, target); }
- 		wxString ServerVersion(wxString * target = 0)	const { return AssignIfExist(EC_TAG_SERVER_VERSION, target); }
-
- 		uint32 GetPrio(uint32 * target = 0)			const { return AssignIfExist(EC_TAG_SERVER_PRIO, target); }
- 		bool GetStatic(bool * target = 0)			const { return AssignIfExist(EC_TAG_SERVER_STATIC, target); }
-
- 		uint32 GetPing(uint32 * target = 0)			const { return AssignIfExist(EC_TAG_SERVER_PING, target); }
- 		uint32 GetFailed(uint32 * target = 0)		const { return AssignIfExist(EC_TAG_SERVER_FAILED, target); }
-
- 		uint32 GetFiles(uint32 * target = 0)		const { return AssignIfExist(EC_TAG_SERVER_FILES, target); }
- 		uint32 GetUsers(uint32 * target = 0)		const { return AssignIfExist(EC_TAG_SERVER_USERS, target); }
- 		uint32 GetMaxUsers(uint32 * target = 0)		const { return AssignIfExist(EC_TAG_SERVER_USERS_MAX, target); }
- 		
- 		uint32 ID() const { return GetInt(); }
+	public:
+		CEC_Server_Tag(const CServer *, EC_DETAIL_LEVEL);
+		CEC_Server_Tag(const CServer *, CValueMap *valuemap);
+
+		wxString ServerName(wxString * target = 0)	const { return AssignIfExist(EC_TAG_SERVER_NAME, target); }
+		wxString ServerDesc(wxString * target = 0)	const { return AssignIfExist(EC_TAG_SERVER_DESC, target); }
+		wxString ServerVersion(wxString * target = 0)	const { return AssignIfExist(EC_TAG_SERVER_VERSION, target); }
+
+		uint32 GetPrio(uint32 * target = 0)			const { return AssignIfExist(EC_TAG_SERVER_PRIO, target); }
+		bool GetStatic(bool * target = 0)			const { return AssignIfExist(EC_TAG_SERVER_STATIC, target); }
+
+		uint32 GetPing(uint32 * target = 0)			const { return AssignIfExist(EC_TAG_SERVER_PING, target); }
+		uint32 GetFailed(uint32 * target = 0)		const { return AssignIfExist(EC_TAG_SERVER_FAILED, target); }
+
+		uint32 GetFiles(uint32 * target = 0)		const { return AssignIfExist(EC_TAG_SERVER_FILES, target); }
+		uint32 GetUsers(uint32 * target = 0)		const { return AssignIfExist(EC_TAG_SERVER_USERS, target); }
+		uint32 GetMaxUsers(uint32 * target = 0)		const { return AssignIfExist(EC_TAG_SERVER_USERS_MAX, target); }
+
+		uint32 ID() const { return GetInt(); }
 };
 
 
 class CEC_ConnState_Tag : public CECTag {
- 	public:
- 		CEC_ConnState_Tag(EC_DETAIL_LEVEL);
+	public:
+		CEC_ConnState_Tag(EC_DETAIL_LEVEL);
 
 		uint32	GetEd2kId()			const { return GetTagByNameSafe(EC_TAG_ED2K_ID)->GetInt(); }
 		uint32	GetClientId()		const { return GetTagByNameSafe(EC_TAG_CLIENT_ID)->GetInt(); }
- 		bool	HasLowID()			const { return GetEd2kId() < HIGHEST_LOWID_ED2K_KAD; }
- 		bool	IsConnected()		const { return IsConnectedED2K() || IsConnectedKademlia(); }
- 		bool	IsConnectedED2K()	const { return (GetInt() & 0x01) != 0; }
- 		bool	IsConnectingED2K()	const { return (GetInt() & 0x02) != 0; }
+		bool	HasLowID()			const { return GetEd2kId() < HIGHEST_LOWID_ED2K_KAD; }
+		bool	IsConnected()		const { return IsConnectedED2K() || IsConnectedKademlia(); }
+		bool	IsConnectedED2K()	const { return (GetInt() & 0x01) != 0; }
+		bool	IsConnectingED2K()	const { return (GetInt() & 0x02) != 0; }
 		bool	IsConnectedKademlia()	const { return (GetInt() & 0x04) != 0; }
 		bool	IsKadFirewalled()	const { return (GetInt() & 0x08) != 0; }
 		bool	IsKadRunning()	const { return (GetInt() & 0x10) != 0; }
@@ -205,35 +205,35 @@ class CEC_ConnState_Tag : public CECTag {
 
 class CEC_SharedFile_Tag : public CECTag {
 	public:
- 		CEC_SharedFile_Tag(const CKnownFile *file, EC_DETAIL_LEVEL detail_level, 
+		CEC_SharedFile_Tag(const CKnownFile *file, EC_DETAIL_LEVEL detail_level,
 							CValueMap *valuemap = NULL, ec_tagname_t name = EC_TAG_KNOWNFILE);
- 		
+
 		// template needs it
- 		uint32		ID()		const { return GetInt(); }
-		
- 		CMD4Hash	FileHash()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_HASH)->GetMD4Data(); }
+		uint32		ID()		const { return GetInt(); }
+
+		CMD4Hash	FileHash()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_HASH)->GetMD4Data(); }
 		wxString	FileHashString() const { return FileHash().Encode(); }
 
- 		wxString	FileName()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_NAME)->GetStringData(); }
- 		bool		FileName(wxString &target)	const { return AssignIfExist(EC_TAG_PARTFILE_NAME, target); }
- 		wxString	FilePath()	const { return GetTagByNameSafe(EC_TAG_KNOWNFILE_FILENAME)->GetStringData(); }
- 		bool		FilePath(wxString &target)	const { return AssignIfExist(EC_TAG_KNOWNFILE_FILENAME, target); }
- 		uint64		SizeFull()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_SIZE_FULL)->GetInt(); }
- 		wxString	FileEd2kLink()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_ED2K_LINK)->GetStringData(); }
+		wxString	FileName()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_NAME)->GetStringData(); }
+		bool		FileName(wxString &target)	const { return AssignIfExist(EC_TAG_PARTFILE_NAME, target); }
+		wxString	FilePath()	const { return GetTagByNameSafe(EC_TAG_KNOWNFILE_FILENAME)->GetStringData(); }
+		bool		FilePath(wxString &target)	const { return AssignIfExist(EC_TAG_KNOWNFILE_FILENAME, target); }
+		uint64		SizeFull()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_SIZE_FULL)->GetInt(); }
+		wxString	FileEd2kLink()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_ED2K_LINK)->GetStringData(); }
 
-  		uint8		UpPrio(uint8 *target = 0)			const { return AssignIfExist(EC_TAG_KNOWNFILE_PRIO, target); }
- 		uint16		GetRequests(uint16 *target = 0)		const { return AssignIfExist(EC_TAG_KNOWNFILE_REQ_COUNT, target); }
- 		uint32		GetAllRequests(uint32 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_REQ_COUNT_ALL, target); }
+		uint8		UpPrio(uint8 *target = 0)			const { return AssignIfExist(EC_TAG_KNOWNFILE_PRIO, target); }
+		uint16		GetRequests(uint16 *target = 0)		const { return AssignIfExist(EC_TAG_KNOWNFILE_REQ_COUNT, target); }
+		uint32		GetAllRequests(uint32 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_REQ_COUNT_ALL, target); }
 
- 		uint16		GetAccepts(uint16 *target = 0)		const { return AssignIfExist(EC_TAG_KNOWNFILE_ACCEPT_COUNT, target); }
- 		uint32		GetAllAccepts(uint32 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_ACCEPT_COUNT_ALL, target); }
+		uint16		GetAccepts(uint16 *target = 0)		const { return AssignIfExist(EC_TAG_KNOWNFILE_ACCEPT_COUNT, target); }
+		uint32		GetAllAccepts(uint32 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_ACCEPT_COUNT_ALL, target); }
 
- 		uint64		GetXferred(uint64 *target = 0)		const { return AssignIfExist(EC_TAG_KNOWNFILE_XFERRED, target); }
- 		uint64		GetAllXferred(uint64 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_XFERRED_ALL, target); }
+		uint64		GetXferred(uint64 *target = 0)		const { return AssignIfExist(EC_TAG_KNOWNFILE_XFERRED, target); }
+		uint64		GetAllXferred(uint64 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_XFERRED_ALL, target); }
 
- 		uint16		GetCompleteSourcesLow(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_COMPLETE_SOURCES_LOW, target); }
- 		uint16		GetCompleteSourcesHigh(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_COMPLETE_SOURCES_HIGH, target); }
- 		uint16		GetCompleteSources(uint16 *target = 0)		const { return AssignIfExist(EC_TAG_KNOWNFILE_COMPLETE_SOURCES, target); }
+		uint16		GetCompleteSourcesLow(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_COMPLETE_SOURCES_LOW, target); }
+		uint16		GetCompleteSourcesHigh(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_KNOWNFILE_COMPLETE_SOURCES_HIGH, target); }
+		uint16		GetCompleteSources(uint16 *target = 0)		const { return AssignIfExist(EC_TAG_KNOWNFILE_COMPLETE_SOURCES, target); }
 
 		uint16		GetOnQueue(uint16 *target = 0)		const { return AssignIfExist(EC_TAG_KNOWNFILE_ON_QUEUE, target); }
 
@@ -242,32 +242,33 @@ class CEC_SharedFile_Tag : public CECTag {
 
 		bool		GetAICHHash(wxString &target)	const { return AssignIfExist(EC_TAG_KNOWNFILE_AICH_MASTERHASH, target); }
 	private:
-		CMD4Hash	GetMD4Data();	// Block it, because it doesn't work anymore! 
+		CMD4Hash	GetMD4Data();	// Block it, because it doesn't work anymore!
 };
 
 class CEC_PartFile_Tag : public CEC_SharedFile_Tag {
- 	public:
- 		CEC_PartFile_Tag(const CPartFile *file, EC_DETAIL_LEVEL detail_level, CValueMap *valuemap = NULL);
- 		
+	public:
+		CEC_PartFile_Tag(const CPartFile *file, EC_DETAIL_LEVEL detail_level, CValueMap *valuemap = NULL);
+
 		uint16		PartMetID()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_PARTMETID)->GetInt(); }
 
- 		uint64		SizeXfer(uint64 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SIZE_XFER, target); }
-  		uint64		SizeDone(uint64 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SIZE_DONE, target); }
- 		uint8		FileStatus(uint8 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_STATUS, target); }
- 		bool		Stopped(bool *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_STOPPED, target); }
-  		uint16		SourceCount(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT, target); }
-  		uint16		SourceNotCurrCount(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT, target); }
-  		uint16		SourceXferCount(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_XFER, target); }
-  		uint16		SourceCountA4AF(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_A4AF, target); }
-  		uint32		Speed(uint32 *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_SPEED, target); }
-  		uint8		DownPrio(uint8 *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_PRIO, target); }
- 		uint8		FileCat(uint8 *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_CAT, target); }
+		uint64		SizeXfer(uint64 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SIZE_XFER, target); }
+		uint64		SizeDone(uint64 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SIZE_DONE, target); }
+		uint8		FileStatus(uint8 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_STATUS, target); }
+		bool		Stopped(bool *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_STOPPED, target); }
+		uint16		SourceCount(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT, target); }
+		uint16		SourceNotCurrCount(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_NOT_CURRENT, target); }
+		uint16		SourceXferCount(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_XFER, target); }
+		uint16		SourceCountA4AF(uint16 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_A4AF, target); }
+		uint32		Speed(uint32 *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_SPEED, target); }
+		uint8		DownPrio(uint8 *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_PRIO, target); }
+		uint8		FileCat(uint8 *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_CAT, target); }
 		time_t		LastSeenComplete(time_t *target = 0)const { return AssignIfExist(EC_TAG_PARTFILE_LAST_SEEN_COMP, target); }
 		time_t		LastDateChanged(time_t *target = 0) const { return AssignIfExist(EC_TAG_PARTFILE_LAST_RECV, target); }
 		uint32		DownloadActiveTime(uint32 *target = 0) const { return AssignIfExist(EC_TAG_PARTFILE_DOWNLOAD_ACTIVE, target); }
 		uint16		AvailablePartCount(uint16 *target = 0) const { return AssignIfExist(EC_TAG_PARTFILE_AVAILABLE_PARTS, target); }
- 		bool		Shared(bool *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_SHARED, target); }
- 		bool		A4AFAuto(bool &target)			const { return AssignIfExist(EC_TAG_PARTFILE_A4AFAUTO, target); }
+		bool		Shared(bool *target = 0)		const { return AssignIfExist(EC_TAG_PARTFILE_SHARED, target); }
+		bool		A4AFAuto(bool &target)			const { return AssignIfExist(EC_TAG_PARTFILE_A4AFAUTO, target); }
+		bool		HashingProgress(uint16 &target)	const { return AssignIfExist(EC_TAG_PARTFILE_HASHED_PART_COUNT, target); }
 
 		uint64		GetLostDueToCorruption(uint64 *target = 0) const { return AssignIfExist(EC_TAG_PARTFILE_LOST_CORRUPTION, target); }
 		uint64		GetGainDueToCompression(uint64 *target = 0) const { return AssignIfExist(EC_TAG_PARTFILE_GAINED_COMPRESSION, target); }
@@ -287,31 +288,31 @@ class CEC_UpDownClient_Tag : public CECTag {
 		CEC_UpDownClient_Tag(const CUpDownClient* client, EC_DETAIL_LEVEL detail_level, CValueMap* valuemap);
 
 		uint32 ID() const { return GetInt(); }
-		
- 		CMD4Hash UserHash(CMD4Hash * target = 0) const { return AssignIfExist(EC_TAG_CLIENT_HASH, target); }
- 		uint32 UserID(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_USER_ID, target); }
- 		
- 		wxString ClientName(wxString *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_NAME, target); }
- 		uint32 SpeedUp(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_UP_SPEED, target); }
- 		float SpeedDown(float *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_DOWN_SPEED, target); }
- 		
- 		uint64 XferUp(uint64 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_UPLOAD_TOTAL, target); };
- 		uint64 XferDown(uint64 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_DOWNLOAD_TOTAL, target); }
- 		uint64 XferUpSession(uint64 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_UPLOAD_SESSION, target); }
- 		uint64 XferDownSession(uint64 *target = 0) const { return AssignIfExist(EC_TAG_PARTFILE_SIZE_XFER, target); }
- 		
- 		bool FriendSlot(bool &target) const { return AssignIfExist(EC_TAG_CLIENT_FRIEND_SLOT, target); }
- 		
- 		bool ClientSoftware(uint8 &target) const { return AssignIfExist(EC_TAG_CLIENT_SOFTWARE, target); }
+
+		CMD4Hash UserHash(CMD4Hash * target = 0) const { return AssignIfExist(EC_TAG_CLIENT_HASH, target); }
+		uint32 UserID(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_USER_ID, target); }
+
+		wxString ClientName(wxString *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_NAME, target); }
+		uint32 SpeedUp(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_UP_SPEED, target); }
+		float SpeedDown(float *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_DOWN_SPEED, target); }
+
+		uint64 XferUp(uint64 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_UPLOAD_TOTAL, target); };
+		uint64 XferDown(uint64 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_DOWNLOAD_TOTAL, target); }
+		uint64 XferUpSession(uint64 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_UPLOAD_SESSION, target); }
+		uint64 XferDownSession(uint64 *target = 0) const { return AssignIfExist(EC_TAG_PARTFILE_SIZE_XFER, target); }
+
+		bool FriendSlot(bool &target) const { return AssignIfExist(EC_TAG_CLIENT_FRIEND_SLOT, target); }
+
+		bool ClientSoftware(uint8 &target) const { return AssignIfExist(EC_TAG_CLIENT_SOFTWARE, target); }
 		bool SoftVerStr(wxString &target) const { return AssignIfExist(EC_TAG_CLIENT_SOFT_VER_STR, target); }
- 		
- 		bool ClientUploadState(uint8 &target) const { return AssignIfExist(EC_TAG_CLIENT_UPLOAD_STATE, target); }
- 		bool ClientDownloadState(uint8 &target) const { return AssignIfExist(EC_TAG_CLIENT_DOWNLOAD_STATE, target); }
- 		
- 		//uint32 WaitTime(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_WAIT_TIME, target); }
- 		//uint32 XferTime(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_XFER_TIME, target); }
- 		//uint32 LastReqTime(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_LAST_TIME, target); }
- 		//uint32 QueueTime(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_QUEUE_TIME, target); }
+
+		bool ClientUploadState(uint8 &target) const { return AssignIfExist(EC_TAG_CLIENT_UPLOAD_STATE, target); }
+		bool ClientDownloadState(uint8 &target) const { return AssignIfExist(EC_TAG_CLIENT_DOWNLOAD_STATE, target); }
+
+		//uint32 WaitTime(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_WAIT_TIME, target); }
+		//uint32 XferTime(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_XFER_TIME, target); }
+		//uint32 LastReqTime(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_LAST_TIME, target); }
+		//uint32 QueueTime(uint32 *target = 0) const { return AssignIfExist(EC_TAG_CLIENT_QUEUE_TIME, target); }
 		bool GetSourceFrom(uint8 &target) const { return AssignIfExist(EC_TAG_CLIENT_FROM, target); }
 
 		bool   UserIP(uint32 &target) const { return AssignIfExist(EC_TAG_CLIENT_USER_IP, target); }
@@ -335,34 +336,34 @@ class CEC_UpDownClient_Tag : public CECTag {
 		bool UploadFile(uint32 &target) const { return AssignIfExist(EC_TAG_CLIENT_UPLOAD_FILE, target); }
 		bool RequestFile(uint32 &target) const { return AssignIfExist(EC_TAG_CLIENT_REQUEST_FILE, target); }
 		bool RemoteFilename(wxString &target) const { return AssignIfExist(EC_TAG_CLIENT_REMOTE_FILENAME, target); }
- 		bool DisableViewShared(bool &target) const { return AssignIfExist(EC_TAG_CLIENT_DISABLE_VIEW_SHARED, target); }
- 		bool Version(uint32 &target) const { return AssignIfExist(EC_TAG_CLIENT_VERSION, target); }
- 		bool ModVersion(wxString &target) const { return AssignIfExist(EC_TAG_CLIENT_MOD_VERSION, target); }
- 		bool OSInfo(wxString &target) const { return AssignIfExist(EC_TAG_CLIENT_OS_INFO, target); }
- 		bool AvailableParts(uint16 &target) const { return AssignIfExist(EC_TAG_CLIENT_AVAILABLE_PARTS, target); }
+		bool DisableViewShared(bool &target) const { return AssignIfExist(EC_TAG_CLIENT_DISABLE_VIEW_SHARED, target); }
+		bool Version(uint32 &target) const { return AssignIfExist(EC_TAG_CLIENT_VERSION, target); }
+		bool ModVersion(wxString &target) const { return AssignIfExist(EC_TAG_CLIENT_MOD_VERSION, target); }
+		bool OSInfo(wxString &target) const { return AssignIfExist(EC_TAG_CLIENT_OS_INFO, target); }
+		bool AvailableParts(uint16 &target) const { return AssignIfExist(EC_TAG_CLIENT_AVAILABLE_PARTS, target); }
 	private:
-		CMD4Hash	GetMD4Data();	// Block it, because it doesn't work anymore! 
+		CMD4Hash	GetMD4Data();	// Block it, because it doesn't work anymore!
 };
 
 class CEC_SearchFile_Tag : public CECTag {
 	public:
-		CEC_SearchFile_Tag(CSearchFile *file, EC_DETAIL_LEVEL detail_level, CValueMap *valuemap = NULL);
+		CEC_SearchFile_Tag(const CSearchFile *file, EC_DETAIL_LEVEL detail_level, CValueMap *valuemap = NULL);
 
 		// template needs it
- 		uint32		ID()	const { return GetInt(); }
+		uint32		ID()	const { return GetInt(); }
 		uint32		ParentID()	const { return GetTagByNameSafe(EC_TAG_SEARCH_PARENT)->GetInt(); }
 
- 		CMD4Hash	FileHash()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_HASH)->GetMD4Data(); }
+		CMD4Hash	FileHash()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_HASH)->GetMD4Data(); }
 		wxString	FileHashString() const { return FileHash().Encode(); }
 
- 		wxString	FileName()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_NAME)->GetStringData(); }
- 		uint64		SizeFull()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_SIZE_FULL)->GetInt(); }
-  		uint32		SourceCount(uint32 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT, target); }
-  		uint32		CompleteSourceCount(uint32 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_XFER, target); }
+		wxString	FileName()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_NAME)->GetStringData(); }
+		uint64		SizeFull()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_SIZE_FULL)->GetInt(); }
+		uint32		SourceCount(uint32 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT, target); }
+		uint32		CompleteSourceCount(uint32 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_SOURCE_COUNT_XFER, target); }
 		bool		AlreadyHave()	const { return GetTagByNameSafe(EC_TAG_PARTFILE_STATUS)->GetInt() != 0; /* == CSearchFile::NEW */ }
 		uint32		DownloadStatus(uint32 *target = 0)	const { return AssignIfExist(EC_TAG_PARTFILE_STATUS, target); }
 	private:
-		CMD4Hash	GetMD4Data();	// Block it, because it doesn't work anymore! 
+		CMD4Hash	GetMD4Data();	// Block it, because it doesn't work anymore!
 };
 
 class CEC_Search_Tag : public CECTag {
@@ -370,7 +371,7 @@ class CEC_Search_Tag : public CECTag {
 		// search request
 		CEC_Search_Tag(const wxString &name, EC_SEARCH_TYPE search_type, const wxString &file_type,
 			const wxString &extension, uint32 avail, uint64 min_size, uint64 max_size);
-			
+
 		wxString SearchText() const { return GetTagByNameSafe(EC_TAG_SEARCH_NAME)->GetStringData(); }
 		EC_SEARCH_TYPE SearchType() const { return (EC_SEARCH_TYPE)GetInt(); }
 		uint64 MinSize() const { return GetTagByNameSafe(EC_TAG_SEARCH_MIN_SIZE)->GetInt(); }
@@ -390,7 +391,7 @@ class CEC_Friend_Tag : public CECTag {
 	public:
 		CEC_Friend_Tag(const CFriend* Friend, CValueMap* valuemap);
 
- 		uint32		ID() const							{ return GetInt(); }
+		uint32		ID() const							{ return GetInt(); }
 		bool		Name(wxString &target) const		{ return AssignIfExist(EC_TAG_FRIEND_NAME, target); }
 		bool		UserHash(CMD4Hash &target) const	{ return AssignIfExist(EC_TAG_FRIEND_HASH, target); }
 		bool		IP(uint32 &target) const			{ return AssignIfExist(EC_TAG_FRIEND_IP, target); }
diff --git a/src/libs/ec/cpp/ECTag.cpp b/src/libs/ec/cpp/ECTag.cpp
index 225d250..cb1c2d7 100644
--- a/src/libs/ec/cpp/ECTag.cpp
+++ b/src/libs/ec/cpp/ECTag.cpp
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -81,8 +81,8 @@ CECTag::CECTag(ec_tagname_t name, unsigned int length, const void *data) : m_tag
 /**
  * Creates a new CECTag instance for custom data
  *
- * @param name	 	TAG name
- * @param length 	length of data buffer that will be alloc'ed
+ * @param name		TAG name
+ * @param length	length of data buffer that will be alloc'ed
  * @param dataptr	pointer to a void pointer which will be assigned the internal TAG data buffer
  *
  * \note TAG data buffer has to be filled with valid data after the ctor
@@ -110,8 +110,8 @@ CECTag::CECTag(ec_tagname_t name, const EC_IPv4_t& data) : m_tagName(name)
 
 	m_dataLen = sizeof(EC_IPv4_t);
 	NewData();
-	RawPokeUInt32( ((EC_IPv4_t *)m_tagData)->m_ip, RawPeekUInt32( data.m_ip ) );
-	((EC_IPv4_t *)m_tagData)->m_port = ENDIAN_HTONS(data.m_port);
+	RawPokeUInt32( reinterpret_cast<EC_IPv4_t *>(m_tagData)->m_ip, RawPeekUInt32( data.m_ip ) );
+	reinterpret_cast<EC_IPv4_t *>(m_tagData)->m_port = ENDIAN_HTONS(data.m_port);
 	m_dataType = EC_TAGTYPE_IPV4;
 }
 
@@ -218,22 +218,22 @@ void CECTag::InitInt(uint64 data)
 	} else {
 		m_dataType = EC_TAGTYPE_UINT64;
 		m_dataLen = 8;
-	}	
-	
+	}
+
 	NewData();
-	
+
 	switch (m_dataType) {
 		case EC_TAGTYPE_UINT8:
 			PokeUInt8( m_tagData, (uint8) data );
 			break;
 		case EC_TAGTYPE_UINT16:
-			PokeUInt16( m_tagData, wxUINT16_SWAP_ALWAYS((uint16) data ));
+			RawPokeUInt16( m_tagData, ENDIAN_HTONS((uint16) data ));
 			break;
 		case EC_TAGTYPE_UINT32:
-			PokeUInt32( m_tagData, wxUINT32_SWAP_ALWAYS((uint32) data ));
+			RawPokeUInt32( m_tagData, ENDIAN_HTONL((uint32) data ));
 			break;
 		case EC_TAGTYPE_UINT64:
-			PokeUInt64( m_tagData, wxUINT64_SWAP_ALWAYS(data) );
+			RawPokeUInt64( m_tagData, ENDIAN_HTONLL(data) );
 			break;
 	}
 }
@@ -290,7 +290,7 @@ CECTag& CECTag::operator=(const CECTag& tag)
 			m_tagData = NULL;
 		}
 		m_tagList.clear();
-		for (const_iterator it = tag.begin(); it != tag.end(); it++) {
+		for (const_iterator it = tag.begin(); it != tag.end(); ++it) {
 			m_tagList.push_back(*it);
 		}
 	}
@@ -314,7 +314,7 @@ bool CECTag::operator==(const CECTag& tag) const
 /**
  * Add a child tag to this one. The tag argument is reset to an empty tag.
  *
- * Be very careful that this method swallows the content of \e tag, leaving \e tag empty. 
+ * Be very careful that this method swallows the content of \e tag, leaving \e tag empty.
  * Thus, the following code won't work as expected:
  * \code
  * {
@@ -352,7 +352,7 @@ bool CECTag::operator==(const CECTag& tag) const
  * \endcode
  *
  * @param tag a CECTag class instance to add.
- * @return \b true if tag was really added, 
+ * @return \b true if tag was really added,
  * \b false when it was omitted through valuemap.
  */
 bool CECTag::AddTag(const CECTag& tag, CValueMap* valuemap)
@@ -417,11 +417,11 @@ bool CECTag::ReadFromSocket(CECSocket& socket)
 	}
 	m_tagName = tmp_tagName >> 1;
 	bool hasChildren = (tmp_tagName & 0x01) != 0;
-	
+
 	if (!socket.ReadNumber(&m_dataType, sizeof(ec_tagtype_t))) {
 		return false;
 	}
-	
+
 	if (!socket.ReadNumber(&m_dataLen, sizeof(ec_taglen_t))) {
 		return false;
 	}
@@ -429,7 +429,7 @@ bool CECTag::ReadFromSocket(CECSocket& socket)
 	if (hasChildren && !ReadChildren(socket)) {
 		return false;
 	}
-	
+
 	unsigned int tmp_len = m_dataLen;
 	m_dataLen = 0;
 	m_dataLen = tmp_len - GetTagLen();
@@ -452,21 +452,21 @@ bool CECTag::WriteTag(CECSocket& socket) const
 	ec_tagtype_t type = m_dataType;
 	ec_taglen_t tagLen = GetTagLen();
 	wxASSERT(type != EC_TAGTYPE_UNKNOWN);
-	
+
 	if (!socket.WriteNumber(&tmp_tagName, sizeof(ec_tagname_t))) return false;
 	if (!socket.WriteNumber(&type, sizeof(ec_tagtype_t))) return false;
 	if (!socket.WriteNumber(&tagLen, sizeof(ec_taglen_t))) return false;
-	
+
 	if (!m_tagList.empty()) {
 		if (!WriteChildren(socket)) return false;
 	}
-	
+
 	if (m_dataLen > 0) {
 		if (m_tagData != NULL) {	// This is here only to make sure everything, it should not be NULL at this point
 			if (!socket.WriteBuffer(m_tagData, m_dataLen)) return false;
 		}
 	}
-	
+
 	return true;
 }
 
@@ -490,9 +490,9 @@ bool CECTag::ReadChildren(CECSocket& socket)
 bool CECTag::WriteChildren(CECSocket& socket) const
 {
 	wxASSERT(m_tagList.size() < 0xFFFF);
-    uint16 tmp = (uint16)m_tagList.size();
+	uint16 tmp = (uint16)m_tagList.size();
 	if (!socket.WriteNumber(&tmp, sizeof(tmp))) return false;
-	for (const_iterator it = begin(); it != end(); it++) {
+	for (const_iterator it = begin(); it != end(); ++it) {
 		if (!it->WriteTag(socket)) return false;
 	}
 	return true;
@@ -506,7 +506,7 @@ bool CECTag::WriteChildren(CECSocket& socket) const
  */
 const CECTag* CECTag::GetTagByName(ec_tagname_t name) const
 {
-	for (const_iterator it = begin(); it != end(); it++) {
+	for (const_iterator it = begin(); it != end(); ++it) {
 		if (it->m_tagName == name) return & *it;
 	}
 	return NULL;
@@ -520,7 +520,7 @@ const CECTag* CECTag::GetTagByName(ec_tagname_t name) const
  */
 CECTag* CECTag::GetTagByName(ec_tagname_t name)
 {
-	for (TagList::iterator it = m_tagList.begin(); it != m_tagList.end(); it++) {
+	for (TagList::iterator it = m_tagList.begin(); it != m_tagList.end(); ++it) {
 		if (it->m_tagName == name) return & *it;
 	}
 	return NULL;
@@ -543,7 +543,7 @@ const CECTag* CECTag::GetTagByNameSafe(ec_tagname_t name) const
 }
 
 /**
- * Query TAG length that is suitable for the TAGLEN field (i.e.\ 
+ * Query TAG length that is suitable for the TAGLEN field (i.e.\
  * without it's own header size).
  *
  * @return Tag length, containing its childs' length.
@@ -551,7 +551,7 @@ const CECTag* CECTag::GetTagByNameSafe(ec_tagname_t name) const
 uint32 CECTag::GetTagLen(void) const
 {
 	uint32 length = m_dataLen;
-	for (const_iterator it = begin(); it != end(); it++) {
+	for (const_iterator it = begin(); it != end(); ++it) {
 		length += it->GetTagLen();
 		length += sizeof(ec_tagname_t) + sizeof(ec_tagtype_t) + sizeof(ec_taglen_t) + (it->HasChildTags() ? 2 : 0);
 	}
@@ -587,7 +587,7 @@ uint64_t CECTag::GetInt() const
 
 
 std::string CECTag::GetStringDataSTL() const
-{ 
+{
 	if (m_dataType != EC_TAGTYPE_STRING) {
 		EC_ASSERT(m_dataType == EC_TAGTYPE_UNKNOWN);
 		return std::string();
@@ -602,14 +602,14 @@ std::string CECTag::GetStringDataSTL() const
 
 #ifdef USE_WX_EXTENSIONS
 wxString CECTag::GetStringData() const
-{ 
+{
 	return UTF82unicode(GetStringDataSTL().c_str());
 }
 #endif
 
 
 CMD4Hash CECTag::GetMD4Data() const
-{ 
+{
 	if (m_dataType != EC_TAGTYPE_HASH16) {
 		EC_ASSERT(m_dataType == EC_TAGTYPE_UNKNOWN);
 		return CMD4Hash();
@@ -617,9 +617,9 @@ CMD4Hash CECTag::GetMD4Data() const
 
 	EC_ASSERT(m_tagData != NULL);
 
-	// Doesn't matter if m_tagData is NULL in CMD4Hash(), 
+	// Doesn't matter if m_tagData is NULL in CMD4Hash(),
 	// that'll just result in an empty hash.
-	return CMD4Hash((const unsigned char *)m_tagData); 
+	return CMD4Hash((const unsigned char *)m_tagData);
 }
 
 
@@ -635,14 +635,14 @@ CMD4Hash CECTag::GetMD4Data() const
 EC_IPv4_t CECTag::GetIPv4Data() const
 {
 	EC_IPv4_t p(0, 0);
-	
+
 	if (m_dataType != EC_TAGTYPE_IPV4) {
 		EC_ASSERT(m_dataType == EC_TAGTYPE_UNKNOWN);
 	} else if (m_tagData == NULL) {
 		EC_ASSERT(false);
 	} else {
-		RawPokeUInt32( p.m_ip, RawPeekUInt32( ((EC_IPv4_t *)m_tagData)->m_ip ) );
-		p.m_port = ENDIAN_NTOHS(((EC_IPv4_t *)m_tagData)->m_port);
+		RawPokeUInt32( p.m_ip, RawPeekUInt32( reinterpret_cast<EC_IPv4_t *>(m_tagData)->m_ip ) );
+		p.m_port = ENDIAN_NTOHS(reinterpret_cast<EC_IPv4_t *>(m_tagData)->m_port);
 	}
 
 	return p;
@@ -667,9 +667,9 @@ double CECTag::GetDoubleData(void) const
 		EC_ASSERT(false);
 		return 0;
 	}
-	
+
 	std::istringstream double_str(m_tagData);
-	
+
 	double data;
 	double_str >> data;
 	return data;
@@ -970,7 +970,7 @@ bool CECTag::AssignIfExist(ec_tagname_t tagname, wxString &target) const
 		return true;
 	}
 	return false;
-}		
+}
 #endif
 
 
diff --git a/src/libs/ec/cpp/ECTag.h b/src/libs/ec/cpp/ECTag.h
index be09b16..70308f9 100644
--- a/src/libs/ec/cpp/ECTag.h
+++ b/src/libs/ec/cpp/ECTag.h
@@ -16,7 +16,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,7 +28,7 @@
 #include <iostream>
 #include <sstream>
 
-// Must be first! 
+// Must be first!
 #ifdef USE_WX_EXTENSIONS
 #include <wx/string.h> // Do_not_auto_remove
 #include <common/StringFunctions.h>
@@ -63,7 +63,7 @@ class EC_IPv4_t {
 			m_ip[3] = (ip >> 24) & 0xff;
 			m_port = port;
 		}
-		
+
 		uint32 IP()
 		{
 			return m_ip[0] | (m_ip[1] << 8) | (m_ip[2] << 16) | (m_ip[3] << 24);
@@ -77,13 +77,13 @@ class EC_IPv4_t {
 			if (brackets) string_ip << "]";
 			return string_ip.str();
 		}
-		
+
 		#ifdef USE_WX_EXTENSIONS
 		wxString StringIP(bool brackets = true) {
 			return char2unicode(StringIPSTL(brackets).c_str());
 		}
 		#endif
-		
+
 		uint8 m_ip[4];
 		uint16 m_port;
 };
@@ -128,39 +128,39 @@ class CECTag {
 		#endif
 
 		const CECTag*	GetFirstTagSafe() const { return m_tagList.empty() ? &s_theNullTag : & *m_tagList.begin(); }
-		
+
 		const CECTag*	GetTagByName(ec_tagname_t name) const;
 		CECTag*			GetTagByName(ec_tagname_t name);
 		const CECTag*	GetTagByNameSafe(ec_tagname_t name) const;
-		
+
 		size_t			GetTagCount() const { return m_tagList.size(); }
 		bool			HasChildTags() const { return !m_tagList.empty(); }
-		const void *	GetTagData() const { 
+		const void *	GetTagData() const {
 			EC_ASSERT(m_dataType == EC_TAGTYPE_CUSTOM);
-			return m_tagData; 
+			return m_tagData;
 		}
 		uint16_t		GetTagDataLen() const { return m_dataLen; }
 		uint32_t		GetTagLen() const;
 		ec_tagname_t		GetTagName() const { return m_tagName; }
-		
+
 		// Retrieving special data types
 		uint64_t		GetInt() const;
 		bool			IsInt() const { return m_dataType >= EC_TAGTYPE_UINT8 && m_dataType <= EC_TAGTYPE_UINT64; }
 		double			GetDoubleData() const;
 		std::string		GetStringDataSTL() const;
 		bool			IsString() const { return m_dataType == EC_TAGTYPE_STRING; }
-		
+
 		#ifdef USE_WX_EXTENSIONS
 		wxString GetStringData() const;
 		void SetStringData(const wxString& s);
-		#endif 
-		
-		EC_IPv4_t 	GetIPv4Data() const;
+		#endif
+
+		EC_IPv4_t	GetIPv4Data() const;
 		CMD4Hash	GetMD4Data() const;
 
 		void		DebugPrint(int level, bool print_empty) const;
 		void		swap(CECTag & t);
-		
+
 		// If tag exists, return its value and store it in target (if target != NULL)
 		// Else return safe value and don't touch target
 		// Allows for one function for old and new style.
@@ -215,9 +215,9 @@ class CECTag {
 
 		typedef std::list<CECTag> TagList;
 		TagList m_tagList;
-		
+
 		static const CECTag s_theNullTag;
-		
+
 		// To be used by the string constructors.
 		void ConstructStringTag(ec_tagname_t name, const std::string& data);
 
diff --git a/src/libs/ec/cpp/ECTagTypes.h b/src/libs/ec/cpp/ECTagTypes.h
index b4b4a24..3414e65 100644
--- a/src/libs/ec/cpp/ECTagTypes.h
+++ b/src/libs/ec/cpp/ECTagTypes.h
@@ -16,7 +16,7 @@
 //  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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/libs/ec/cpp/Makefile.in b/src/libs/ec/cpp/Makefile.in
index 739095f..914bab8 100644
--- a/src/libs/ec/cpp/Makefile.in
+++ b/src/libs/ec/cpp/Makefile.in
@@ -40,23 +40,23 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -118,6 +118,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -144,6 +150,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -234,6 +241,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/libs/ec/cpp/RemoteConnect.cpp b/src/libs/ec/cpp/RemoteConnect.cpp
index 422e405..01e5288 100644
--- a/src/libs/ec/cpp/RemoteConnect.cpp
+++ b/src/libs/ec/cpp/RemoteConnect.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -27,6 +27,7 @@
 
 #include <common/MD5Sum.h>
 #include <common/Format.h>
+#include "../../../amuleIPV4Address.h"
 
 #include <wx/intl.h>
 
@@ -69,7 +70,7 @@ CECPacket(EC_OP_AUTH_PASSWD)
 
 /*!
  * Connection to remote core
- * 
+ *
  */
 
 CRemoteConnect::CRemoteConnect(wxEvtHandler* evt_handler)
@@ -92,7 +93,7 @@ m_canNotify(false)
 }
 
 void CRemoteConnect::SetCapabilities(bool canZLIB, bool canUTF8numbers, bool canNotify)
-{ 
+{
 	m_canZLIB = canZLIB;
 	if (canZLIB) {
 		m_my_flags |= EC_FLAG_ZLIB;
@@ -105,14 +106,14 @@ void CRemoteConnect::SetCapabilities(bool canZLIB, bool canUTF8numbers, bool can
 }
 
 bool CRemoteConnect::ConnectToCore(const wxString &host, int port,
-	const wxString &WXUNUSED(login), const wxString &pass, 
+	const wxString &WXUNUSED(login), const wxString &pass,
 	const wxString& client, const wxString& version)
 {
 	m_connectionPassword = pass;
-	
+
 	m_client = client;
 	m_version = version;
-	
+
 	// don't even try to connect without a valid password
 	if (m_connectionPassword.IsEmpty() || m_connectionPassword == wxT("d41d8cd98f00b204e9800998ecf8427e")) {
 		m_server_reply = _("You must specify a non-empty password.");
@@ -134,6 +135,8 @@ bool CRemoteConnect::ConnectToCore(const wxString &host, int port,
 	addr.Service(port);
 
 	if (ConnectSocket(addr)) {
+		// We get here only in case of synchronous connect.
+		// Otherwise we continue in OnConnect.
 		CECLoginPacket login_req(m_client, m_version, m_canZLIB, m_canUTF8numbers, m_canNotify);
 
 		std::auto_ptr<const CECPacket> getSalt(SendRecvPacket(&login_req));
@@ -158,8 +161,8 @@ bool CRemoteConnect::ConnectToCore(const wxString &host, int port,
 
 bool CRemoteConnect::IsConnectedToLocalHost()
 {
-	wxIPV4address addr;
-	return GetPeer(addr) ? addr.IsLocalHost() : false;
+	amuleIPV4Address addr;
+	return addr.Hostname(GetPeer()) ? addr.IsLocalHost() : false;
 }
 
 void CRemoteConnect::WriteDoneAndQueueEmpty()
@@ -171,7 +174,7 @@ void CRemoteConnect::OnConnect() {
 		wxASSERT(m_ec_state == EC_CONNECT_SENT);
 		CECLoginPacket login_req(m_client, m_version, m_canZLIB, m_canUTF8numbers, m_canNotify);
 		CECSocket::SendPacket(&login_req);
-		
+
 		m_ec_state = EC_REQ_SENT;
 	} else {
 		// do nothing, calling code will take from here
@@ -202,7 +205,7 @@ const CECPacket *CRemoteConnect::OnPacketReceived(const CECPacket *packet, uint3
 		case EC_PASSWD_SENT:
 			ProcessAuthPacket(packet);
 			break;
-		case EC_OK: 
+		case EC_OK:
 			if ( !m_req_fifo.empty() ) {
 				CECPacketHandlerBase *handler = m_req_fifo.front();
 				m_req_fifo.pop_front();
@@ -216,7 +219,7 @@ const CECPacket *CRemoteConnect::OnPacketReceived(const CECPacket *packet, uint3
 		default:
 			break;
 	}
-	
+
 	// no reply by default
 	return next_packet;
 }
@@ -239,7 +242,7 @@ void CRemoteConnect::SendPacket(const CECPacket *request)
 
 bool CRemoteConnect::ProcessAuthPacket(const CECPacket *reply) {
 	bool result = false;
-	
+
 	if (!reply) {
 		m_server_reply = _("EC connection failed. Empty reply.");
 		CloseSocket();
@@ -274,7 +277,7 @@ bool CRemoteConnect::ProcessAuthPacket(const CECPacket *reply) {
 			} else {
 				m_server_reply = _("External Connection: Handshake failed.");
 			}
-			CloseSocket();	
+			CloseSocket();
 		}
 	}
 	if ( m_notifier ) {
@@ -288,12 +291,12 @@ bool CRemoteConnect::ProcessAuthPacket(const CECPacket *reply) {
 
 void CRemoteConnect::StartKad() {
 	CECPacket req(EC_OP_KAD_START);
-	SendPacket(&req);	
+	SendPacket(&req);
 }
 
 void CRemoteConnect::StopKad() {
 	CECPacket req(EC_OP_KAD_STOP);
-	SendPacket(&req);	
+	SendPacket(&req);
 }
 
 void CRemoteConnect::ConnectED2K(uint32 ip, uint16 port) {
@@ -306,7 +309,7 @@ void CRemoteConnect::ConnectED2K(uint32 ip, uint16 port) {
 
 void CRemoteConnect::DisconnectED2K() {
 	CECPacket req(EC_OP_SERVER_DISCONNECT);
-	SendPacket(&req);	
+	SendPacket(&req);
 }
 
 void CRemoteConnect::RemoveServer(uint32 ip, uint16 port) {
diff --git a/src/libs/ec/cpp/RemoteConnect.h b/src/libs/ec/cpp/RemoteConnect.h
index a8723e9..e6132f4 100644
--- a/src/libs/ec/cpp/RemoteConnect.h
+++ b/src/libs/ec/cpp/RemoteConnect.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -51,7 +51,7 @@ class CECAuthPacket : public CECPacket {
 class CRemoteConnect : public CECMuleSocket {
 private:
 	// State enums for connection SM ( client side ) in case of async processing
-	enum { 
+	enum {
 		EC_INIT,         // initial state
 		EC_CONNECT_SENT, // socket connect request sent
 		EC_REQ_SENT,     // sent auth request to core, waiting for reply
@@ -78,9 +78,9 @@ private:
 	bool m_canUTF8numbers;
 	bool m_canNotify;
 
-	void WriteDoneAndQueueEmpty();	
+	void WriteDoneAndQueueEmpty();
 public:
-	// The event handler is used for notifying connect/close 
+	// The event handler is used for notifying connect/close
 	CRemoteConnect(wxEvtHandler* evt_handler);
 
 	void SetCapabilities(bool canZLIB, bool canUTF8numbers, bool canNotify);
@@ -96,15 +96,15 @@ public:
 	{
 		return m_req_count > m_req_fifo_thr;
 	}
-	
+
 	virtual void OnConnect(); // To override connection events
 	virtual void OnLost(); // To override close events
 
 	void SendRequest(CECPacketHandlerBase *handler, const CECPacket *request);
 	void SendPacket(const CECPacket *request);
-	
+
 	/********************* EC API ********************/
-	
+
 
 	/* Misc */
 
@@ -116,26 +116,26 @@ public:
 
 
 	/* Kad */
-	
+
 	// Connects Kad network
 	void StartKad();
-	
+
 	// Disconnects Kad network
 	void StopKad();
-	
-	
+
+
 	/* ED2K */
-	
-	// Connects to ED2K. If ip and port are not 0, connect 
+
+	// Connects to ED2K. If ip and port are not 0, connect
 	// to the specific port. Otherwise, connect to any.
 	void ConnectED2K(uint32 ip, uint16 port);
-	
+
 	// Disconnects from ED2K
 	void DisconnectED2K();
 
 
 	/* Servers */
-	
+
 	// Adds a server
 	void AddServer(uint32 ip,
 		       uint16 port);
@@ -153,7 +153,7 @@ public:
 
 
 	/* Search */
-	
+
 	// Starts new search
 	void StartSearch();
 
@@ -401,8 +401,6 @@ DECLARE_LOCAL_EVENT_TYPE(wxEVT_EC_CONNECTION, wxEVT_USER_FIRST + 1000)
 
 class wxECSocketEvent : public wxEvent {
 public:
-	wxECSocketEvent(int id, int event_id)	: wxEvent(event_id, id) {}
-	wxECSocketEvent(int id)			: wxEvent(-1, id) {}
 	wxECSocketEvent(int id, bool result, const wxString& reply) : wxEvent(-1, id)
 	{
 		m_value = result;
diff --git a/src/libs/ec/cpp/gen_ECVersion b/src/libs/ec/cpp/gen_ECVersion
index 28d8728..f9f8ad3 100755
--- a/src/libs/ec/cpp/gen_ECVersion
+++ b/src/libs/ec/cpp/gen_ECVersion
@@ -8,12 +8,12 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/libs/ec/file_generator.pl b/src/libs/ec/file_generator.pl
index f1743f2..199eaeb 100755
--- a/src/libs/ec/file_generator.pl
+++ b/src/libs/ec/file_generator.pl
@@ -23,7 +23,7 @@
 # Gimme a break, it's my second perl app... (Kry)
 
 use File::Copy;
-use warnings; 
+use warnings;
 use strict;
 use POSIX;
 
@@ -173,7 +173,7 @@ sub read_content_section {
 	local (*INFO) = $_[0];
 	local (*CPPOUTPUT) = $_[1];
 	local (*JAVAOUTPUT) = $_[2];
-	
+
 	my $line = <INFO>;
 	my $datatype = "";
 	if ($line =~ /^Type\s+(.+)$/) {
@@ -192,7 +192,7 @@ sub read_content_section {
 	} else {
 		die "Unknown type on content section\n";
 	}
-	
+
 }
 
 sub read_define_content {
@@ -266,14 +266,14 @@ sub read_enum_content {
 			if ($line =~ /^(.+)\s+(.+)$/) {
 				my $firstoperand = $1;
 				my $secondoperand = $2;
-	
+
 				if ($first) {
 					write_cpp_enum_start(*CPPOUTPUT, $dataname, $datatype);
 				}
 
 				write_cpp_enum_line(*CPPOUTPUT, $firstoperand, $secondoperand, $first);
 				write_java_define_line(*JAVAOUTPUT, $firstoperand, $secondoperand, $datatype);
-	
+
 				if ($first) {
 					$first = "";
 				}
@@ -336,7 +336,7 @@ sub write_cpp_enum_start {
 	local (*OUTPUT) = $_[0];
 
 	print OUTPUT "enum " . $_[1] . " {\n";
-	
+
 	push @debugOut, "wxString GetDebugName$_[1]($_[2] arg)\n{\n\tswitch (arg) {";
 }
 
@@ -383,18 +383,18 @@ sub write_cpp_typedef_line {
 	my $preamble = "";
 
 	my $datatype = $_[2];
-	
+
 	if ($datatype) {
-		if ($datatype =~ /^u?int(8|16|32|64)$/) { 
+		if ($datatype =~ /^u?int(8|16|32|64)$/) {
 			$translated_type = $datatype . "_t";
 		} elsif ($datatype eq "string") {
 			$translated_type = "std::string"
-		} else { 
+		} else {
 			$preamble = "// ";
 			$translated_type = $datatype;
 		}
 	} else {
-		die "No data type on abstract"; 
+		die "No data type on abstract";
 	}
 
 	print OUTPUT $preamble . "typedef " . $translated_type . " " . $_[1] . ";\n";
diff --git a/src/libs/ec/java/ECCodes.java b/src/libs/ec/java/ECCodes.java
index 9e2aaad..f96dcba 100644
--- a/src/libs/ec/java/ECCodes.java
+++ b/src/libs/ec/java/ECCodes.java
@@ -16,7 +16,7 @@
 //  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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -163,6 +163,7 @@ public final static short 	EC_TAG_STATS_KAD_IN_LAN_MODE              = 0x0217;
 public final static short 	EC_TAG_STATS_TOTAL_SENT_BYTES             = 0x0218;
 public final static short 	EC_TAG_STATS_TOTAL_RECEIVED_BYTES         = 0x0219;
 public final static short 	EC_TAG_STATS_SHARED_FILE_COUNT            = 0x021A;
+public final static short 	EC_TAG_STATS_KAD_NODES                    = 0x021B;
 public final static short EC_TAG_PARTFILE                           = 0x0300;
 public final static short 	EC_TAG_PARTFILE_NAME                      = 0x0301;
 public final static short 	EC_TAG_PARTFILE_PARTMETID                 = 0x0302;
diff --git a/src/libs/ec/java/ECTagTypes.java b/src/libs/ec/java/ECTagTypes.java
index 6ef1a51..a0ccba9 100644
--- a/src/libs/ec/java/ECTagTypes.java
+++ b/src/libs/ec/java/ECTagTypes.java
@@ -16,7 +16,7 @@
 //  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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/muuli.wdr b/src/muuli.wdr
index 2ebe2a6..44864a4 100644
Binary files a/src/muuli.wdr and b/src/muuli.wdr differ
diff --git a/src/muuli_wdr.cpp b/src/muuli_wdr.cpp
index cb2ccba..520d935 100644
--- a/src/muuli_wdr.cpp
+++ b/src/muuli_wdr.cpp
@@ -3166,14 +3166,17 @@ wxSizer *PreferencesDebug( wxWindow *parent, bool call_fit, bool set_sizer )
     wxCheckBox *item1 = new wxCheckBox( parent, ID_VERBOSEDEBUG, _("Enable Verbose Debug-Logging."), wxDefaultPosition, wxDefaultSize, 0 );
     item0->Add( item1, 0, wxALIGN_CENTER_VERTICAL|wxALL, 0 );
 
-    wxStaticBox *item3 = new wxStaticBox( parent, -1, _("Message Categories:") );
-    wxStaticBoxSizer *item2 = new wxStaticBoxSizer( item3, wxVERTICAL );
+    wxCheckBox *item2 = new wxCheckBox( parent, ID_VERBOSEDEBUGLOGFILE, _("Only to Logfile"), wxDefaultPosition, wxDefaultSize, 0 );
+    item0->Add( item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 0 );
 
-    wxWindow *item4 = new wxCheckListBox( parent, ID_DEBUGCATS );
-    wxASSERT( item4 );
-    item2->Add( item4, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+    wxStaticBox *item4 = new wxStaticBox( parent, -1, _("Message Categories:") );
+    wxStaticBoxSizer *item3 = new wxStaticBoxSizer( item4, wxVERTICAL );
+
+    wxWindow *item5 = new wxCheckListBox( parent, ID_DEBUGCATS );
+    wxASSERT( item5 );
+    item3->Add( item5, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
 
-    item0->Add( item2, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 0 );
+    item0->Add( item3, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 0 );
 
     if (set_sizer)
     {
diff --git a/src/muuli_wdr.h b/src/muuli_wdr.h
index c292543..525e79c 100644
--- a/src/muuli_wdr.h
+++ b/src/muuli_wdr.h
@@ -420,67 +420,68 @@ wxSizer *PreferencesProxyTab( wxWindow *parent, bool call_fit = TRUE, bool set_s
 wxSizer *CoreConnect( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
 #define ID_VERBOSEDEBUG 10305
-#define ID_DEBUGCATS 10306
+#define ID_VERBOSEDEBUGLOGFILE 10306
+#define ID_DEBUGCATS 10307
 wxSizer *PreferencesDebug( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
 extern wxSizer *IDC_CURJOB;
-#define IDC_CONV_PB_LABEL 10307
-#define IDC_CONV_PROZENT 10308
-#define IDC_CONV_PB_CURRENT 10309
-#define IDC_JOBLIST 10310
-#define IDC_ADDITEM 10311
-#define IDC_RETRY 10312
-#define IDC_CONVREMOVE 10313
+#define IDC_CONV_PB_LABEL 10308
+#define IDC_CONV_PROZENT 10309
+#define IDC_CONV_PB_CURRENT 10310
+#define IDC_JOBLIST 10311
+#define IDC_ADDITEM 10312
+#define IDC_RETRY 10313
+#define IDC_CONVREMOVE 10314
 wxSizer *convertDlg( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
-#define ID_KADINFO 10314
+#define ID_KADINFO 10315
 wxSizer *Kad_Info( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
 extern wxSizer *m_networknotebooksizer;
-#define ID_NETNOTEBOOK 10315
+#define ID_NETNOTEBOOK 10316
 wxSizer *NetDialog( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
 extern wxSizer *IDC_PREFS_EVENTS_PAGE;
-#define IDC_EVENTLIST 10316
+#define IDC_EVENTLIST 10317
 wxSizer *PreferencesEventsTab( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
 extern wxSizer *s_sharedfilespeerHeader;
-#define ID_SHAREDCLIENTTOGGLE 10317
-#define IDC_SREQUESTED 10318
-#define IDC_SACCEPTED 10319
-#define IDC_STRANSFERRED 10320
-#define ID_LINE 10321
-#define ID_SHAREDCLIENTLIST 10322
+#define ID_SHAREDCLIENTTOGGLE 10318
+#define IDC_SREQUESTED 10319
+#define IDC_SACCEPTED 10320
+#define IDC_STRANSFERRED 10321
+#define ID_LINE 10322
+#define ID_SHAREDCLIENTLIST 10323
 wxSizer *sharedfilesBottomDlg( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
-#define ID_SHOW_CLIENTS_MODE 10323
-#define ID_BTNRELSHARED 10324
-#define ID_SHFILELIST 10325
+#define ID_SHOW_CLIENTS_MODE 10324
+#define ID_BTNRELSHARED 10325
+#define ID_SHFILELIST 10326
 wxSizer *sharedfilesTopDlg( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
-#define ID_FRIENDLIST 10326
+#define ID_FRIENDLIST 10327
 wxSizer *messagePageFriends( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
-#define IDC_CHATSELECTOR 10327
-#define IDC_CMESSAGE 10328
-#define IDC_CSEND 10329
-#define IDC_CCLOSE 10330
+#define IDC_CHATSELECTOR 10328
+#define IDC_CMESSAGE 10329
+#define IDC_CSEND 10330
+#define IDC_CCLOSE 10331
 wxSizer *messagePageMessages( wxWindow *parent, bool call_fit = TRUE, bool set_sizer = TRUE );
 
 // Declare menubar functions
 
 // Declare toolbar functions
 
-#define ID_BUTTONCONNECT 10331
-#define ID_BUTTONNETWORKS 10332
-#define ID_BUTTONSEARCH 10333
-#define ID_BUTTONDOWNLOADS 10334
-#define ID_BUTTONSHARED 10335
-#define ID_BUTTONMESSAGES 10336
-#define ID_BUTTONSTATISTICS 10337
-#define ID_BUTTONNEWPREFERENCES 10338
-#define ID_BUTTONIMPORT 10339
-#define ID_ABOUT 10340
+#define ID_BUTTONCONNECT 10332
+#define ID_BUTTONNETWORKS 10333
+#define ID_BUTTONSEARCH 10334
+#define ID_BUTTONDOWNLOADS 10335
+#define ID_BUTTONSHARED 10336
+#define ID_BUTTONMESSAGES 10337
+#define ID_BUTTONSTATISTICS 10338
+#define ID_BUTTONNEWPREFERENCES 10339
+#define ID_BUTTONIMPORT 10340
+#define ID_ABOUT 10341
 void muleToolbar( wxToolBar *parent );
 
 // Declare bitmap functions
diff --git a/src/pixmaps/Makefile.am b/src/pixmaps/Makefile.am
index e11b8fd..8351006 100644
--- a/src/pixmaps/Makefile.am
+++ b/src/pixmaps/Makefile.am
@@ -11,7 +11,7 @@ EXTRA_DIST = chat.ico.xpm \
 	sort_dnx2.xpm \
 	sort_dn.xpm \
 	sort_upx2.xpm \
-	sort_up.xpm 
+	sort_up.xpm
 
 
 MAINTAINERCLEANFILES = Makefile.in
diff --git a/src/pixmaps/Makefile.in b/src/pixmaps/Makefile.in
index 3b942cc..446e659 100644
--- a/src/pixmaps/Makefile.in
+++ b/src/pixmaps/Makefile.in
@@ -37,23 +37,23 @@ subdir = src/pixmaps
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -126,6 +126,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -152,6 +158,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -242,6 +249,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -337,7 +345,7 @@ EXTRA_DIST = chat.ico.xpm \
 	sort_dnx2.xpm \
 	sort_dn.xpm \
 	sort_upx2.xpm \
-	sort_up.xpm 
+	sort_up.xpm
 
 MAINTAINERCLEANFILES = Makefile.in
 all: all-recursive
diff --git a/src/pixmaps/flags_xpm/Makefile.in b/src/pixmaps/flags_xpm/Makefile.in
index 936bd0d..5b12252 100644
--- a/src/pixmaps/flags_xpm/Makefile.in
+++ b/src/pixmaps/flags_xpm/Makefile.in
@@ -37,23 +37,23 @@ subdir = src/pixmaps/flags_xpm
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -86,6 +86,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -112,6 +118,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -202,6 +209,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/skins/Makefile.in b/src/skins/Makefile.in
index 4320387..7b89129 100644
--- a/src/skins/Makefile.in
+++ b/src/skins/Makefile.in
@@ -39,23 +39,23 @@ DIST_COMMON = $(dist_skin_DATA) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -111,6 +111,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -137,6 +143,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -227,6 +234,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/updownclient.h b/src/updownclient.h
index e103904..2930df4 100644
--- a/src/updownclient.h
+++ b/src/updownclient.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,6 +30,7 @@
 #include "GetTickCount.h"	// Needed for GetTickCount
 #include "MD4Hash.h"
 #include <common/StringFunctions.h>
+#include <common/Macros.h>
 #include "NetworkFunctions.h"
 #include "OtherStructs.h"
 #include "ClientCredits.h"	// Needed for EIdentState
@@ -114,7 +115,7 @@ private:
 
 	/**
 	 * Reference count which is increased whenever client is linked to a clientref.
-	 * Clients are to be stored only by ClientRefs, CUpDownClient * are for temporary 
+	 * Clients are to be stored only by ClientRefs, CUpDownClient * are for temporary
 	 * use only.
 	 * Linking is done only by CClientRef which is friend, so methods are private.
 	 */
@@ -126,7 +127,7 @@ private:
 	void	Unlink(const wxString& from);
 	wxString GetLinkedFrom() {
 		wxString ret;
-		for (std::multiset<wxString>::iterator it = m_linkedFrom.begin(); it != m_linkedFrom.end(); it++) {
+		for (std::multiset<wxString>::iterator it = m_linkedFrom.begin(); it != m_linkedFrom.end(); ++it) {
 			ret += *it + wxT(", ");
 		}
 		return ret;
@@ -148,7 +149,7 @@ public:
 	 *
 	 * The client will really be deleted only after thelast reference to it
 	 * is unlinked;
-	 */	
+	 */
 	void		Safe_Delete();
 
 	/**
@@ -167,8 +168,8 @@ public:
 	const wxString&	GetUserName() const		{ return m_Username; }
 	//Only use this when you know the real IP or when your clearing it.
 	void		SetIP( uint32 val );
-	uint32		GetIP() const 			{ return m_dwUserIP; }
-	bool		HasLowID() const 		{ return IsLowID(m_nUserIDHybrid); }
+	uint32		GetIP() const			{ return m_dwUserIP; }
+	bool		HasLowID() const		{ return IsLowID(m_nUserIDHybrid); }
 	wxString	GetFullIP() const		{ return Uint32toStringIP(m_FullUserIP); }
 	uint32		GetConnectIP() const		{ return m_nConnectIP; }
 	uint32		GetUserIDHybrid() const		{ return m_nUserIDHybrid; }
@@ -179,7 +180,7 @@ public:
 	uint32		GetServerIP() const		{ return m_dwServerIP; }
 	void		SetServerIP(uint32 nIP)		{ m_dwServerIP = nIP; }
 	uint16		GetServerPort()	const		{ return m_nServerPort; }
-	void		SetServerPort(uint16 nPort)	{ m_nServerPort = nPort; }	
+	void		SetServerPort(uint16 nPort)	{ m_nServerPort = nPort; }
 	const CMD4Hash&	GetUserHash() const		{ return m_UserHash; }
 	void		SetUserHash(const CMD4Hash& userhash);
 	void		ValidateHash()			{ m_HasValidHash = !m_UserHash.IsEmpty(); }
@@ -194,7 +195,7 @@ public:
 	void		SetUDPPort(uint16 nPort)	{ m_nUDPPort = nPort; }
 	uint8		GetUDPVersion() const		{ return m_byUDPVer; }
 	uint8		GetExtendedRequestsVersion() const { return m_byExtendedRequestsVer; }
-	bool		IsFriend() const 		{ return m_Friend != NULL; }
+	bool		IsFriend() const		{ return m_Friend != NULL; }
 	bool		IsML() const			{ return m_bIsML; }
 	bool		IsHybrid() const		{ return m_bIsHybrid; }
 	uint32		GetCompatibleClient() const	{ return m_byCompatibleClient; }
@@ -222,25 +223,25 @@ public:
 	void		SetLastSrcReqTime()		{ m_dwLastSourceRequest = ::GetTickCount(); }
 	void		SetLastSrcAnswerTime()		{ m_dwLastSourceAnswer = ::GetTickCount(); }
 	void		SetLastAskedForSources()	{ m_dwLastAskedForSources = ::GetTickCount(); }
-	uint32		GetLastSrcReqTime() const 	{ return m_dwLastSourceRequest; }
+	uint32		GetLastSrcReqTime() const	{ return m_dwLastSourceRequest; }
 	uint32		GetLastSrcAnswerTime() const	{ return m_dwLastSourceAnswer; }
 	uint32		GetLastAskedForSources() const	{ return m_dwLastAskedForSources; }
-	bool		GetFriendSlot() const 		{ return m_bFriendSlot; }
+	bool		GetFriendSlot() const		{ return m_bFriendSlot; }
 	void		SetFriendSlot(bool bNV)		{ m_bFriendSlot = bNV; }
 	void		SetCommentDirty(bool bDirty = true)	{ m_bCommentDirty = bDirty; }
 	uint8		GetSourceExchange1Version() const	{ return m_bySourceExchange1Ver; }
 	bool		SupportsSourceExchange2() const		{ return m_fSupportsSourceEx2; }
-	
+
 	bool		SafeSendPacket(CPacket* packet);
 
 	void		ProcessRequestPartsPacket(const byte* pachPacket, uint32 nSize, bool largeblocks);
-	void		ProcessRequestPartsPacketv2(const CMemFile& data);	
-	
+	void		ProcessRequestPartsPacketv2(const CMemFile& data);
+
 	void		SendPublicKeyPacket();
 	void		SendSignaturePacket();
 	void		ProcessPublicKeyPacket(const byte* pachPacket, uint32 nSize);
 	void		ProcessSignaturePacket(const byte* pachPacket, uint32 nSize);
-	uint8		GetSecureIdentState(); 
+	uint8		GetSecureIdentState();
 
 	void		SendSecIdentStatePacket();
 	void		ProcessSecIdentStatePacket(const byte* pachPacket, uint32 nSize);
@@ -256,11 +257,11 @@ public:
 	void		ResetSessionUp();
 	uint32		GetUploadDatarate() const	{ return m_nUpDatarate; }
 
-	//uint32		GetWaitTime() const 		{ return m_dwUploadTime - GetWaitStartTime(); }
+	//uint32		GetWaitTime() const		{ return m_dwUploadTime - GetWaitStartTime(); }
 	uint32		GetUpStartTimeDelay() const	{ return ::GetTickCount() - m_dwUploadTime; }
 	uint32		GetWaitStartTime() const;
 
-	bool		IsDownloading()	const 		{ return (m_nUploadState == US_UPLOADING); }
+	bool		IsDownloading()	const		{ return (m_nUploadState == US_UPLOADING); }
 
 	uint32		GetScore() const	{ return m_score; }
 	uint32		CalculateScore()	{ m_score = CalculateScoreInternal(); return m_score; }
@@ -272,7 +273,7 @@ public:
 
 	void		AddReqBlock(Requested_Block_Struct* reqblock);
 	void		CreateNextBlockPackage();
-	void		SetUpStartTime() 		{ m_dwUploadTime = ::GetTickCount(); }
+	void		SetUpStartTime()		{ m_dwUploadTime = ::GetTickCount(); }
 	void		SetWaitStartTime();
 	void		ClearWaitStartTime();
 	void		SendHashsetPacket(const CMD4Hash& forfileid);
@@ -299,22 +300,22 @@ public:
 	void		ClearUploadBlockRequests();
 	void		SendRankingInfo();
 	void		SendCommentInfo(CKnownFile *file);
-	bool 		IsDifferentPartBlock() const;
+	bool		IsDifferentPartBlock() const;
 	void		UnBan();
 	void		Ban();
 	bool		m_bAddNextConnect;      // VQB Fix for LowID slots only on connection
-	uint32		GetAskedCount() const 		{ return m_cAsked; }
+	uint32		GetAskedCount() const		{ return m_cAsked; }
 	void		AddAskedCount()			{ m_cAsked++; }
 	void		ClearAskedCount()		{ m_cAsked = 1; }	// 1, because it's cleared *after* the first request...
-	void		FlushSendBlocks();	// call this when you stop upload, 
+	void		FlushSendBlocks();	// call this when you stop upload,
 						// or the socket might be not able to send
 	void		SetLastUpRequest()		{ m_dwLastUpRequest = ::GetTickCount(); }
-	uint32		GetLastUpRequest() const 	{ return m_dwLastUpRequest; }
-	size_t		GetUpPartCount() const 		{ return m_upPartStatus.size(); }
+	uint32		GetLastUpRequest() const	{ return m_dwLastUpRequest; }
+	size_t		GetUpPartCount() const		{ return m_upPartStatus.size(); }
 
 
 	//download
-	void 		SetRequestFile(CPartFile* reqfile); 
+	void		SetRequestFile(CPartFile* reqfile);
 	CPartFile*	GetRequestFile() const		{ return m_reqfile; }
 
 	uint8		GetDownloadState() const	{ return m_nDownloadState; }
@@ -324,7 +325,7 @@ public:
 
 	bool		IsPartAvailable(uint16 iPart) const
 					{ return ( iPart < m_downPartStatus.size() ) ? m_downPartStatus.get(iPart) : 0; }
-	bool		IsUpPartAvailable(uint16 iPart) const 
+	bool		IsUpPartAvailable(uint16 iPart) const
 					{ return ( iPart < m_upPartStatus.size() ) ? m_upPartStatus.get(iPart) : 0;}
 
 	const BitVector& GetPartStatus() const		{ return m_downPartStatus; }
@@ -334,7 +335,7 @@ public:
 	uint16		GetRemoteQueueRank() const	{ return m_nRemoteQueueRank; }
 	uint16		GetOldRemoteQueueRank() const	{ return m_nOldRemoteQueueRank; }
 	void		SetRemoteQueueFull(bool flag)	{ m_bRemoteQueueFull = flag; }
-	bool		IsRemoteQueueFull() const 	{ return m_bRemoteQueueFull; }
+	bool		IsRemoteQueueFull() const	{ return m_bRemoteQueueFull; }
 	void		SetRemoteQueueRank(uint16 nr);
 	bool		AskForDownload();
 	void		SendStartupLoadReq();
@@ -372,13 +373,13 @@ public:
 	bool		IsMessageFiltered(const wxString& message);
 
 	//File Comment
-	const wxString&	GetFileComment() const 		{ return m_strComment; }
+	const wxString&	GetFileComment() const		{ return m_strComment; }
 	uint8		GetFileRating() const		{ return m_iRating; }
 
-	const wxString&	GetSoftStr() const 		{ return m_clientSoftString; }
+	const wxString&	GetSoftStr() const		{ return m_clientSoftString; }
 	const wxString&	GetSoftVerStr() const		{ return m_clientVerString; }
 	const wxString GetServerName() const;
-	
+
 	uint16		GetKadPort() const		{ return m_nKadPort; }
 	void		SetKadPort(uint16 nPort)	{ m_nKadPort = nPort; }
 
@@ -390,15 +391,15 @@ public:
 	bool		IsAICHReqPending() const	{return m_fAICHRequested; }
 	void		ProcessAICHAnswer(const byte* packet, uint32 size);
 	void		ProcessAICHRequest(const byte* packet, uint32 size);
-	void		ProcessAICHFileHash(CMemFile* data, const CPartFile* file);	
+	void		ProcessAICHFileHash(CMemFile* data, const CPartFile* file);
 
 	EUtf8Str	GetUnicodeSupport() const;
 
 	// Barry - Process zip file as it arrives, don't need to wait until end of block
-	int 		unzip(Pending_Block_Struct *block, byte *zipped, uint32 lenZipped, byte **unzipped, uint32 *lenUnzipped, int iRecursion = 0);
-	void 		UpdateDisplayedInfo(bool force = false);
-	int 		GetFileListRequested() const 	{ return m_iFileListRequested; }
-	void 		SetFileListRequested(int iFileListRequested) { m_iFileListRequested = iFileListRequested; }
+	int		unzip(Pending_Block_Struct *block, byte *zipped, uint32 lenZipped, byte **unzipped, uint32 *lenUnzipped, int iRecursion = 0);
+	void		UpdateDisplayedInfo(bool force = false);
+	int		GetFileListRequested() const	{ return m_iFileListRequested; }
+	void		SetFileListRequested(int iFileListRequested) { m_iFileListRequested = iFileListRequested; }
 
 	void		ResetFileStatusInfo();
 
@@ -407,7 +408,7 @@ public:
 	bool		GetSentCancelTransfer() const	{ return m_fSentCancelTransfer; }
 	void		SetSentCancelTransfer(bool bVal)	{ m_fSentCancelTransfer = bVal; }
 
-	wxString	GetClientFullInfo();
+	DEBUG_ONLY( wxString	GetClientFullInfo(); )
 	wxString	GetClientShortInfo();
 
 	const wxString& GetClientOSInfo() const		{ return m_sClientOSInfo; }
@@ -417,20 +418,20 @@ public:
 
 	/**
 	 * Sets the current socket of the client.
-	 * 
+	 *
 	 * @param socket The pointer to the new socket, can be NULL.
 	 *
 	 * Please note that this function DOES NOT delete the old socket.
 	 */
-	void 		SetSocket(CClientTCPSocket* socket);
+	void		SetSocket(CClientTCPSocket* socket);
 
 	/**
 	 * Function for accessing the socket owned by a client.
-	 * 
+	 *
 	 * @return The pointer (can be NULL) to the socket used by this client.
 	 *
 	 * Please note that the socket object is quite volatile and can be removed
-	 * from one function call to the next, therefore, you should normally use 
+	 * from one function call to the next, therefore, you should normally use
 	 * the safer functions below, which all check if the socket is valid before
 	 * deferring it.
 	 */
@@ -485,27 +486,27 @@ public:
 	//KadIPCheck
 	bool		SendBuddyPingPong()		{ return m_dwLastBuddyPingPongTime < ::GetTickCount(); }
 	bool		AllowIncomeingBuddyPingPong()	{ return m_dwLastBuddyPingPongTime < (::GetTickCount()-(3*60*1000)); }
-	void		SetLastBuddyPingPongTime()	{ m_dwLastBuddyPingPongTime = (::GetTickCount()+(10*60*1000)); }	
+	void		SetLastBuddyPingPongTime()	{ m_dwLastBuddyPingPongTime = (::GetTickCount()+(10*60*1000)); }
 	EKadState	GetKadState() const		{ return m_nKadState; }
 	void		SetKadState(EKadState nNewS)	{ m_nKadState = nNewS; }
 	uint8		GetKadVersion()			{ return m_byKadVersion; }
 	void		ProcessFirewallCheckUDPRequest(CMemFile *data);
 	// Kad added by me
 	bool		SendBuddyPing();
-	
+
 	/* Returns the client hash type (SO_EMULE, mldonkey, etc) */
 	int		GetHashType() const;
 
 	/**
 	 * Checks that a client isn't aggressively re-asking for files.
-	 * 
+	 *
 	 * Call this when a file is requested. If the time since the last request is
 	 * less than MIN_REQUESTTIME, 3 is added to the m_Aggressiveness variable.
 	 * If the time since the last request is >= MIN_REQUESTTIME, the variable is
 	 * decremented by 1. The client is banned if the variable reaches 10 or above.
 	 *
 	 * To check if a client is aggressive use the IsClientAggressive() function.
-	 * 
+	 *
 	 * Currently this function is called when the following packets are received:
 	 *  - OP_STARTUPLOADREQ
 	 *  - OP_REASKFILEPING
@@ -522,43 +523,43 @@ public:
 
 	/* Returns a pointer to the credits, only for hash purposes */
 	void*		GetCreditsHash() const { return (void*)credits; }
-	
+
 	uint16		GetLastDownloadingPart() const { return m_lastDownloadingPart; }
-	
+
 	bool		GetOSInfoSupport() const { return m_fOsInfoSupport; }
-	
+
 	bool		GetVBTTags() const { return m_fValueBasedTypeTags; }
-	
+
 	uint16		GetLastPartAsked() const { return m_lastPartAsked; }
-	
+
 	void		SetLastPartAsked(uint16 nPart) { m_lastPartAsked = nPart; }
-	
+
 	CFriend*	GetFriend() const { return m_Friend; }
-	
+
 	void		SetFriend(CFriend* newfriend) { m_Friend = newfriend; }
-	
+
 	bool		IsIdentified() const;
-	
+
 	bool		IsBadGuy() const;
-	
+
 	bool		SUIFailed() const;
-	
+
 	bool		SUINeeded() const;
-	
+
 	bool		SUINotSupported() const;
 
 	uint64		GetDownloadedTotal() const;
-	
+
 	uint64		GetUploadedTotal() const;
-	
-	double 		GetScoreRatio() const;
-	
+
+	double		GetScoreRatio() const;
+
 	uint32		GetCreationTime() const { return m_nCreationTime; }
-	
+
 	bool		SupportsLargeFiles() const { return m_fSupportsLargeFiles; }
 
 	EIdentState	GetCurrentIdentState() const { return credits ? credits->GetCurrentIdentState(GetIP()) : IS_NOTAVAILABLE; }
-	
+
 #ifdef __DEBUG__
 	/* Kry - Debug. See connection_reason definition comment below */
 	void		SetConnectionReason(const wxString& reason) { connection_reason = reason; }
@@ -580,11 +581,11 @@ public:
 	bool		ShouldReceiveCryptUDPPackets() const;
 
 	bool		HasDisabledSharedFiles() const { return m_fNoViewSharedFiles; }
-	
+
 private:
-	
+
 	CClientCredits	*credits;
-	CFriend 	*m_Friend;
+	CFriend		*m_Friend;
 
 	uint64		m_nTransferredUp;
 	sint64		m_nCurQueueSessionPayloadUp;
@@ -607,7 +608,7 @@ private:
 	 * This struct is used to keep track of CPartFiles which this source shares.
 	 */
 	struct A4AFStamp {
-		//! Signifies if this sources has needed parts for this file. 
+		//! Signifies if this sources has needed parts for this file.
 		bool NeededParts;
 		//! This is set when we wish to avoid swapping to this file for a while.
 		uint32 timestamp;
@@ -626,7 +627,7 @@ private:
 	 * @param ignoresuspended Do not check the timestamp when checking the file.
 	 * @return True if the file is a viable target, false otherwise.
 	 *
-	 * This function is used to perform checks to see if we should consider 
+	 * This function is used to perform checks to see if we should consider
 	 * this file a viable target for A4AF swapping. Unless ignoresuspended is
 	 * true, it will examine the timestamp of the file and reset it if needed.
 	 */
@@ -670,16 +671,16 @@ private:
 	bool		m_bCommentDirty;
 	bool		m_bIsHybrid;
 	bool		m_bIsML;
- 	bool		m_bSupportsPreview;
-	bool		m_bUnicodeSupport;	
+	bool		m_bSupportsPreview;
+	bool		m_bUnicodeSupport;
 	uint16		m_nKadPort;
 	bool		m_bMultiPacket;
 	ClientState	m_clientState;
-	CClientTCPSocket*	m_socket;		
+	CClientTCPSocket*	m_socket;
 	bool		m_fNeedOurPublicIP; // we requested our IP from this client
 
 	// Kry - Secure User Ident import
-	ESecureIdentState	m_SecureIdentState; 
+	ESecureIdentState	m_SecureIdentState;
 	uint8		m_byInfopacketsReceived;		// have we received the edonkeyprot and emuleprot packet already (see InfoPacketsReceived() )
 	uint32		m_dwLastSignatureIP;
 	uint8		m_bySupportSecIdent;
@@ -740,7 +741,7 @@ private:
 	uint32		bytesReceivedCycle;
 	// chat
 	wxString	m_strComment;
-	uint8 		m_byChatstate;
+	uint8		m_byChatstate;
 	uint8		m_nChatCaptchaState;
 	uint8		m_cCaptchasSent;
 	int8		m_iRating;
@@ -751,8 +752,8 @@ private:
 
 	unsigned int
 		m_fHashsetRequesting : 1, // we have sent a hashset request to this client
-		m_fNoViewSharedFiles : 1, // client has disabled the 'View Shared Files' feature, 
-					  // if this flag is not set, we just know that we don't know 
+		m_fNoViewSharedFiles : 1, // client has disabled the 'View Shared Files' feature,
+					  // if this flag is not set, we just know that we don't know
 					  // for sure if it is enabled
 		m_fSupportsPreview   : 1,
 		m_fIsSpammer	     : 1,
@@ -778,12 +779,12 @@ private:
 
 	bool		m_bHelloAnswerPending;
 
-	//! This vector contains the avilability of parts for the file we requested 
+	//! This vector contains the avilability of parts for the file we requested
 	//! from this user. When changing it, be sure to call CPartFile::UpdatePartsFrequency
 	//! so that the files know the actual availability of parts.
 	BitVector	m_downPartStatus;
 
-	CAICHHash* 	m_pReqFileAICHHash; 
+	CAICHHash*	m_pReqFileAICHHash;
 
 	ESourceFrom	m_nSourceFrom;
 
@@ -793,19 +794,19 @@ private:
 	uint32		m_nBuddyIP;
 	uint16		m_nBuddyPort;
 
-	EKadState	m_nKadState;	
+	EKadState	m_nKadState;
 
 	uint8		m_byKadVersion;
 	uint32		m_dwLastBuddyPingPongTime;
 	uint32_t	m_dwDirectCallbackTimeout;
 
-	//! This keeps track of aggressive requests for files. 
+	//! This keeps track of aggressive requests for files.
 	uint16		m_Aggressiveness;
 	//! This tracks the time of the last time since a file was requested
 	uint32		m_LastFileRequest;
 
-	bool 		m_OSInfo_sent;
-	
+	bool		m_OSInfo_sent;
+
 	wxString	m_clientSoftString;	/* software name */
 	wxString	m_clientVerString;	/* version + optional mod name */
 	wxString	m_clientVersionString;	/* version string */
@@ -823,19 +824,19 @@ private:
 	uint32		m_lastClientSoft;
 	uint32		m_lastClientVersion;
 	wxString	m_lastOSInfo;
-	
+
 	/* For buddies timeout */
 	uint32		m_nCreationTime;
-	
+
 	/* Calculation of last average speed */
 	uint32		m_lastaverage;
 	uint32		m_last_block_start;
-	
+
 	/* Save the encryption status for display when disconnected */
 	bool		m_hasbeenobfuscatinglately;
-	
+
 	/* Kry - Debug thing. Clients created just to check their data
-	   have this string set to the reason we want to check them. 
+	   have this string set to the reason we want to check them.
 	   Obviously, once checked, we disconnect them. Take that, sucker.
 	   This debug code is just for me I'm afraid. */
 #ifdef __DEBUG__
diff --git a/src/utils/Makefile.in b/src/utils/Makefile.in
index 6d65dc4..2f1ba36 100644
--- a/src/utils/Makefile.in
+++ b/src/utils/Makefile.in
@@ -38,23 +38,23 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = src/utils
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -126,6 +126,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -152,6 +158,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -242,6 +249,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/utils/aLinkCreator/Makefile.in b/src/utils/aLinkCreator/Makefile.in
index b0d8ed4..f4e84ff 100644
--- a/src/utils/aLinkCreator/Makefile.in
+++ b/src/utils/aLinkCreator/Makefile.in
@@ -39,23 +39,23 @@ DIST_COMMON = $(am__dist_icon_DATA_DIST) $(am__dist_util_DATA_DIST) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -153,6 +153,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -179,6 +185,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -269,6 +276,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/utils/aLinkCreator/docs/Makefile.am b/src/utils/aLinkCreator/docs/Makefile.am
index d1095da..624bf1a 100644
--- a/src/utils/aLinkCreator/docs/Makefile.am
+++ b/src/utils/aLinkCreator/docs/Makefile.am
@@ -8,7 +8,8 @@ EXTRA_DIST = \
 	alc.hu.1 alcc.hu.1 \
 	alc.it.1 alcc.it.1 \
 	alc.ru.1 alcc.ru.1 \
-	alc.tr.1 alcc.tr.1
+	alc.tr.1 alcc.tr.1 \
+	alc.zh_TW.1 alcc.zh_TW.1
 
 include $(top_srcdir)/automake/manpages.am
 
diff --git a/src/utils/aLinkCreator/docs/Makefile.in b/src/utils/aLinkCreator/docs/Makefile.in
index 47a694f..441943c 100644
--- a/src/utils/aLinkCreator/docs/Makefile.in
+++ b/src/utils/aLinkCreator/docs/Makefile.in
@@ -38,23 +38,23 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = src/utils/aLinkCreator/docs
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -87,6 +87,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -113,6 +119,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -203,6 +210,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -296,7 +304,8 @@ EXTRA_DIST = \
 	alc.hu.1 alcc.hu.1 \
 	alc.it.1 alcc.it.1 \
 	alc.ru.1 alcc.ru.1 \
-	alc.tr.1 alcc.tr.1
+	alc.tr.1 alcc.tr.1 \
+	alc.zh_TW.1 alcc.zh_TW.1
 
 MAINTAINERCLEANFILES = Makefile.in
 all: all-am
diff --git a/src/utils/aLinkCreator/docs/alc.zh_TW.1 b/src/utils/aLinkCreator/docs/alc.zh_TW.1
new file mode 100644
index 0000000..f4a1982
--- /dev/null
+++ b/src/utils/aLinkCreator/docs/alc.zh_TW.1
@@ -0,0 +1,24 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH ALC 1 "2011 十一月" aLinkCreator "aMule 的工具程式"
+.als B_untranslated B
+.SH 名稱
+aLinkCreator \- aMule 的 eD2k 連結建立程式
+.SH 簡介
+.B_untranslated alc
+.SH 說明
+\fBalc\fP 是可以用來建立你電腦上任何檔案的 eD2k 連結的圖形介面工具程式。
+
+這個應用程式不接受任何引數。
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated alcc\fR(1), \fBamule\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/src/utils/aLinkCreator/docs/alcc.zh_TW.1 b/src/utils/aLinkCreator/docs/alcc.zh_TW.1
new file mode 100644
index 0000000..4ba5cd9
--- /dev/null
+++ b/src/utils/aLinkCreator/docs/alcc.zh_TW.1
@@ -0,0 +1,38 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH ALCC 1 "2011 十一月" "aMule 的 eD2k 連結計算程式" "aMule 的工具程式"
+.als B_untranslated B
+.als RB_untranslated RB
+.SH 名稱
+alcc \- aMule 的文字介面 eD2k 連結計算程式
+.SH 簡介
+.B_untranslated alcc
+.RB_untranslated [ \-p ]
+.RB_untranslated [ \-v ]
+\fI<i輸入檔案清單>\fP
+
+.B_untranslated alcc
+.RB_untranslated [ \-h ]
+.SH 說明
+計算 \fI<輸入檔案清單>\fP 裏所有檔案的 eD2k 連結。(可接受一個或多個檔案)
+.TP 
+.B_untranslated [ \-p\fR, \fB\-\-parthashes ]\fR
+計算並將暫存檔 hash 值新增到已計算好的 eD2k 連結裏。
+.TP 
+.B_untranslated [ \-h\fR, \fB\-\-help ]\fR
+顯示簡短的使用說明。
+.TP 
+.B_untranslated [ \-v\fR, \fB\-\-verbose ]\fR
+詳細模式 \- 也顯示計算的過程。
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated alc\fR(1), \fBamuled\fR(1), \fBamulecmd\fR(1), \fBamuleweb\fR(1), \fBcas\fR(1), \fBed2k\fR(1), \fBwxcas\fR(1), \fBxas\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/src/utils/aLinkCreator/src/Makefile.in b/src/utils/aLinkCreator/src/Makefile.in
index ad6073f..7e77ee9 100644
--- a/src/utils/aLinkCreator/src/Makefile.in
+++ b/src/utils/aLinkCreator/src/Makefile.in
@@ -44,23 +44,23 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -132,6 +132,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -158,6 +164,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -248,6 +255,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/utils/aLinkCreator/src/alc.cpp b/src/utils/aLinkCreator/src/alc.cpp
index 91445d0..fff373b 100644
--- a/src/utils/aLinkCreator/src/alc.cpp
+++ b/src/utils/aLinkCreator/src/alc.cpp
@@ -26,15 +26,6 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
-
 #ifdef HAVE_CONFIG_H
 #include "config.h"             // Needed for PACKAGE
 #else
diff --git a/src/utils/aLinkCreator/src/alc.h b/src/utils/aLinkCreator/src/alc.h
index aeba0c1..70b9bf8 100644
--- a/src/utils/aLinkCreator/src/alc.h
+++ b/src/utils/aLinkCreator/src/alc.h
@@ -29,14 +29,7 @@
 #define _ALC_H
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
+#include <wx/app.h>
 
 #include "alcframe.h"
 
@@ -45,10 +38,10 @@ class alc:public wxApp
   {
   private:
     AlcFrame *m_alcFrame;
-    
+
   protected:
     wxLocale m_locale; // Used to tell wxCas to use aMule catalog
-    
+
   public:
     virtual bool OnInit ();
     AlcFrame *GetMainFrame();
diff --git a/src/utils/aLinkCreator/src/alcc.cpp b/src/utils/aLinkCreator/src/alcc.cpp
index d5a9609..f28e063 100644
--- a/src/utils/aLinkCreator/src/alcc.cpp
+++ b/src/utils/aLinkCreator/src/alcc.cpp
@@ -24,14 +24,6 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"             // Needed for PACKAGE
@@ -39,6 +31,7 @@
 #define PACKAGE "amule"
 #endif
 
+#include <wx/log.h>
 
 #include "alcc.h"
 #include "ed2khash.h"
@@ -57,7 +50,7 @@ int alcc::OnRun ()
   wxLogStderr * stderrLog = new wxLogStderr;
   wxLogStderr * stdoutLog = new wxLogStderr(stdout);
   delete wxLog::SetActiveTarget(stderrLog); // Log on Stderr
-#if wxCHECK_VERSION(2, 9, 0)  
+#if wxCHECK_VERSION(2, 9, 0)
   wxLog::SetTimestamp("");   // Disable timestamp on messages
 #else
   wxLog::SetTimestamp(NULL); // Disable timestamp on messages
diff --git a/src/utils/aLinkCreator/src/alcc.h b/src/utils/aLinkCreator/src/alcc.h
index b5fd3cc..94e61c4 100644
--- a/src/utils/aLinkCreator/src/alcc.h
+++ b/src/utils/aLinkCreator/src/alcc.h
@@ -27,15 +27,7 @@
 #define _ALCC_H
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
-
+#include <wx/app.h>
 #include <wx/cmdline.h>
 
 //-----------------------------------------------------------------------------
@@ -64,14 +56,14 @@ class alcc : public wxAppConsole
 
     /// Command line preocessing
     virtual bool OnCmdLineParsed(wxCmdLineParser& cmdline);
-    
+
   protected:
     wxLocale m_locale; // Used to tell wxCas to use aMule catalog
-    
+
   public:
     /// Application
     virtual int OnRun ();
-    
+
     /// Cleaning on exit
     virtual int OnExit();
 };
diff --git a/src/utils/aLinkCreator/src/alcframe.cpp b/src/utils/aLinkCreator/src/alcframe.cpp
index ef9beaf..4b08532 100644
--- a/src/utils/aLinkCreator/src/alcframe.cpp
+++ b/src/utils/aLinkCreator/src/alcframe.cpp
@@ -10,8 +10,8 @@
 /// Copyright (c) 2004-2011 Marcelo Roberto Jimenez ( phoenix at amule.org )
 ///
 /// Pixmaps from:
-/// 	http://jimmac.musichall.cz/ikony.php3 
-/// 	http://www.everaldo.com 
+///	http://jimmac.musichall.cz/ikony.php3
+///	http://www.everaldo.com
 ///	http://www.icomania.com
 ///
 /// This program is free software; you can redistribute it and/or modify
@@ -31,27 +31,24 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
-
-#include <wx/textfile.h>
-#include <wx/file.h>
-#include <wx/timer.h>
-#include <wx/listbox.h>
-#include <wx/url.h>
-#include <wx/uri.h>
-#include <wx/filename.h>
 #include <wx/clipbrd.h>
 #include <wx/dataobj.h>
+#include <wx/file.h>
 #include <wx/filedlg.h>
+#include <wx/filename.h>
+#include <wx/button.h>
+#include <wx/icon.h>
+#include <wx/log.h>
+#include <wx/msgdlg.h>
+#include <wx/statbox.h>
+#include <wx/stattext.h>
+#include <wx/textfile.h>
+#include <wx/timer.h>
+#include <wx/toolbar.h>
+#include <wx/uri.h>
+#include <wx/url.h>
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	#include <winerror.h>
 	#include <shlobj.h>
 #elif defined(__WXMAC__)
@@ -75,7 +72,7 @@ AlcFrame::AlcFrame (const wxString & title):
     wxFrame ((wxFrame *) NULL, -1, title)
 {
   // Give it an icon
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
   wxIcon icon(wxT("alc"));
 #else
   wxIcon icon;
@@ -328,7 +325,7 @@ AlcFrame::OnBrowseButton (wxCommandEvent & WXUNUSED(event))
 void
 AlcFrame::SetFileToHash()
 {
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	wxString browseroot;
 	LPITEMIDLIST pidl;
 	HRESULT hr = SHGetSpecialFolderLocation(NULL, CSIDL_PERSONAL, &pidl);
@@ -501,14 +498,10 @@ bool AlcFrame::Hook(int percent)
 /// Compute Hashes on Start Button
 void AlcFrame::OnStartButton (wxCommandEvent & WXUNUSED(event))
 {
-  size_t i;
   wxString filename = m_inputFileTextCtrl->GetValue();
 
   if (!filename.empty ())
     {
-      // Initialize computation
-      m_goAhead=true;
-
       // Chrono
       wxStopWatch chrono;
 
@@ -551,7 +544,7 @@ void AlcFrame::OnStartButton (wxCommandEvent & WXUNUSED(event))
           // Get URLs
           wxArrayString arrayOfUrls;
           wxString url;
-          for (i=0;i < m_inputUrlListBox->GetCount();++i)
+          for (size_t i = 0; i < m_inputUrlListBox->GetCount(); ++i)
             {
               url=m_inputUrlListBox->GetString(i);
               if (url.Right(1) == wxT("/"))
@@ -600,9 +593,8 @@ AlcFrame::OnAddUrlButton (wxCommandEvent & WXUNUSED(event))
   if (!url.IsEmpty())
     {
       // Check if the URL already exist in list
-      size_t i;
       bool UrlNotExists = true;
-      for (i=0;i < m_inputUrlListBox->GetCount();++i)
+      for (size_t i = 0; i < m_inputUrlListBox->GetCount(); ++i)
         {
           if (url == m_inputUrlListBox->GetString(i))
             {
diff --git a/src/utils/aLinkCreator/src/alcframe.h b/src/utils/aLinkCreator/src/alcframe.h
index fe7055c..b90cf3c 100644
--- a/src/utils/aLinkCreator/src/alcframe.h
+++ b/src/utils/aLinkCreator/src/alcframe.h
@@ -30,19 +30,16 @@
 #ifndef _ALCFRAME_H
 #define _ALCFRAME_H
 
-// For compilers that support precompilation, includes "wx/wx.h"
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
-
-#include <wx/statline.h>
+#include <wx/bitmap.h>
+#include <wx/checkbox.h>
+#include <wx/frame.h>
+#include <wx/listbox.h>
+#include <wx/panel.h>
 #include <wx/progdlg.h>
+#include <wx/sizer.h>
+#include <wx/statline.h>
+#include <wx/textctrl.h>
 
 
 // Compute and display md4sum or not
@@ -79,7 +76,6 @@ class AlcFrame:public wxFrame
     wxCheckBox *m_parthashesCheck;
 
     wxProgressDialog *m_progressBar;
-    bool m_goAhead;
 
 
 #ifdef WANT_MD4SUM
diff --git a/src/utils/aLinkCreator/src/alcpix.cpp b/src/utils/aLinkCreator/src/alcpix.cpp
index 5450381..25931d7 100644
--- a/src/utils/aLinkCreator/src/alcpix.cpp
+++ b/src/utils/aLinkCreator/src/alcpix.cpp
@@ -26,15 +26,6 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
-
 #include "alcpix.h"
 
 wxBitmap AlcPix::getPixmap(const wxString& name)
@@ -44,7 +35,7 @@ wxBitmap AlcPix::getPixmap(const wxString& name)
       wxBitmap bitmap(m_about_xpm);
       return bitmap;
     }
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
   else if (name == wxT("alc"))
     {
       wxBitmap bitmap(m_alc_xpm);
@@ -370,7 +361,7 @@ AlcPix::m_about_xpm[]=
     "JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX"
   };
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 const char *
 AlcPix::m_alc_xpm[]=
   { /* XPM */
@@ -552,7 +543,7 @@ AlcPix::m_alc_xpm[]=
     "c.c.c.c.c.c.    . . . .     c.c.c.c.c.c.    . .         c.c.c.c.",
     "c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c."
   };
-#endif /* !__WXMSW__ */
+#endif /* !__WINDOWS__  */
 
 const char *
 AlcPix::m_copy_xpm[]=
@@ -1574,7 +1565,7 @@ AlcPix::m_about_xpm[]=
     "                                                                "
   };
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 const char *
 AlcPix::m_alc_xpm[]=
   { /* XPM */
@@ -1756,7 +1747,7 @@ AlcPix::m_alc_xpm[]=
     "c.c.c.c.c.c.    . . . .     c.c.c.c.c.c.    . .         c.c.c.c.",
     "c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c."
   };
-#endif /* !__WXMSW__ */
+#endif /* !__WINDOWS__  */
 
 const char *
 AlcPix::m_copy_xpm[]=
diff --git a/src/utils/aLinkCreator/src/alcpix.h b/src/utils/aLinkCreator/src/alcpix.h
index 97276cd..74d0c72 100644
--- a/src/utils/aLinkCreator/src/alcpix.h
+++ b/src/utils/aLinkCreator/src/alcpix.h
@@ -29,14 +29,7 @@
 #define _ALCPIX_H
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
+#include <wx/bitmap.h>
 
 // Switch between themes (select just one of them)
 //#define WANT_KDE_THEME 1
@@ -45,7 +38,7 @@ class AlcPix
   {
   private:
     static const char *m_about_xpm[];
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
     static const char *m_alc_xpm[];
 #endif
     static const char *m_copy_xpm[];
diff --git a/src/utils/aLinkCreator/src/ed2khash.cpp b/src/utils/aLinkCreator/src/ed2khash.cpp
index 02c7a54..b012fbd 100644
--- a/src/utils/aLinkCreator/src/ed2khash.cpp
+++ b/src/utils/aLinkCreator/src/ed2khash.cpp
@@ -25,39 +25,14 @@
 /// 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 ////////////////////////////////////////////////////////////////////////////////
 
-// For compilers that support precompilation, includes "wx/wx.h"
-
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
 
 #include <wx/ffile.h>
+#include <wx/log.h>
 #include <wx/regex.h>
 
 #include "ed2khash.h"
 
 
-// efe, sorry for that, i have not enough time to do the right thing now, but 
-// please, create a file called like unicodestuff.h and put this. Include in 
-// alcc.c and here. And remove this stupid comment :)
-//-----------------------------------------------------------------------------
-// efe, this can be put in a separete include file, if you want to reuse
-static wxCSConv aMuleConv(wxS("iso8859-1"));
-#ifdef wxUSE_UNICODE
-        #define unicode2char(x) (const char*) aMuleConv.cWX2MB(x)
-        #define char2unicode(x) aMuleConv.cMB2WX(x)
-#else
-        #define unicode2char(x) x.c_str()
-        #define char2unicode(x) x
-#endif
-//-----------------------------------------------------------------------------
-
-
 /// Constructor
 Ed2kHash::Ed2kHash():MD4()
 {
@@ -79,7 +54,8 @@ bool Ed2kHash::SetED2KHashFromFile(const wxFileName& filename, MD4Hook hook)
   wxFFile file(filename.GetFullPath(), wxT("rbS"));
   if (! file.IsOpened())
     {
-      wxLogError (_("Unable to open %s"),unicode2char(filename.GetFullPath()));
+	  // This doesn't make much sense to me, but it is what it was before and actually works.
+	  wxLogError(_("Unable to open %s"), ((const char*)filename.GetFullPath().mb_str(wxConvISO8859_1)));
       return (false);
     }
   else
@@ -136,6 +112,7 @@ bool Ed2kHash::SetED2KHashFromFile(const wxFileName& filename, MD4Hook hook)
                 }
               else
                 {
+		  delete [] buf;
                   return (false);
                 }
 
@@ -160,8 +137,16 @@ bool Ed2kHash::SetED2KHashFromFile(const wxFileName& filename, MD4Hook hook)
 #endif
 #else
 
-          tmpCharHash = (unsigned char*)realloc(tmpCharHash,
+          unsigned char *tmpPtr = (unsigned char*)realloc(tmpCharHash,
                                                 sizeof(unsigned char) * (MD4_HASHLEN_BYTE * partcount));
+	  if (tmpPtr) {
+		  tmpCharHash = tmpPtr;
+	  } else {
+		  delete [] buf;
+		  free(tmpCharHash);
+		  wxLogError(_("Out of memory while calculating ed2k hash!"));
+		  return (false);
+	  }
           memcpy ( tmpCharHash + MD4_HASHLEN_BYTE * (partcount - 1), ret, MD4_HASHLEN_BYTE );
 #endif
 
@@ -230,7 +215,7 @@ wxString Ed2kHash::GetED2KLink(const bool addPartHashes, const wxArrayString* ar
   if ( arrayOfUrls && !arrayOfUrls->IsEmpty())
     {
       size_t i;
-      for ( i = 0; i < arrayOfUrls->GetCount(); i++ ) 
+      for ( i = 0; i < arrayOfUrls->GetCount(); i++ )
         {
           ed2kLink += wxT("s=") + (*arrayOfUrls)[i] + wxT("|");
         }
diff --git a/src/utils/aLinkCreator/src/ed2khash.h b/src/utils/aLinkCreator/src/ed2khash.h
index 33cf491..1303926 100644
--- a/src/utils/aLinkCreator/src/ed2khash.h
+++ b/src/utils/aLinkCreator/src/ed2khash.h
@@ -29,15 +29,6 @@
 #define _ED2KHASH_H
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
-
 #include <wx/filename.h>
 
 #include "md4.h"
diff --git a/src/utils/aLinkCreator/src/md4.cpp b/src/utils/aLinkCreator/src/md4.cpp
index 8c40958..52c7b7f 100644
--- a/src/utils/aLinkCreator/src/md4.cpp
+++ b/src/utils/aLinkCreator/src/md4.cpp
@@ -36,16 +36,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
-
 #include <wx/ffile.h>
+#include <wx/intl.h>
 
 #include "md4.h"
 #include "bithelp.h"
@@ -166,8 +158,9 @@ void MD4::MD4Final(struct MD4Context *ctx, unsigned char* digest)
   byteReverse(ctx->in, 14);
 
   // Append length in bits and transform
-  ((uint32_t *) ctx->in)[14] = ctx->bits[0];
-  ((uint32_t *) ctx->in)[15] = ctx->bits[1];
+  uint32_t * in32 = (uint32_t *) ctx->in;
+  in32[14] = ctx->bits[0];
+  in32[15] = ctx->bits[1];
 
   MD4Transform(ctx->buf, (uint32_t *) ctx->in);
   byteReverse((unsigned char *) ctx->buf, 4);
@@ -176,7 +169,7 @@ void MD4::MD4Final(struct MD4Context *ctx, unsigned char* digest)
     {
       memcpy(digest, ctx->buf, 16);
     }
-  memset(ctx, 0, sizeof(ctx));	// In case it's sensitive
+  memset(ctx, 0, sizeof(*ctx));	// In case it's sensitive
 }
 
 /// The three core functions
@@ -318,7 +311,6 @@ wxString MD4::calcMd4FromString(const wxString &buf)
 /// Get Md4 hash from a file
 wxString MD4::calcMd4FromFile(const wxString &filename, MD4Hook hook)
 {
-  unsigned int bufSize;
   unsigned char ret[MD4_HASHLEN_BYTE];
   MD4Context hdc;
 
@@ -331,7 +323,7 @@ wxString MD4::calcMd4FromFile(const wxString &filename, MD4Hook hook)
     }
   else
     {
-      bufSize = calcBufSize(file.Length());
+      unsigned int bufSize = calcBufSize(file.Length());
       char *buf = new char[bufSize];
 
       bool keep_going = true;
@@ -356,6 +348,7 @@ wxString MD4::calcMd4FromFile(const wxString &filename, MD4Hook hook)
             }
           else
             {
+              delete [] buf;
               return (_("Cancelled !"));
             }
         }
diff --git a/src/utils/aLinkCreator/src/md4.h b/src/utils/aLinkCreator/src/md4.h
index 3b73e89..c54167e 100644
--- a/src/utils/aLinkCreator/src/md4.h
+++ b/src/utils/aLinkCreator/src/md4.h
@@ -39,15 +39,6 @@
 #define _MD4_H
 
 
-#ifdef __BORLANDC__
-    #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
-    #include "wx/wx.h"
-#endif
-
 #include "../../../Types.h" // needed for uint32_t
 
 // Use wxString implementation or not
diff --git a/src/utils/amps/COPYING b/src/utils/amps/COPYING
index bf50f20..7aa2389 100644
--- a/src/utils/amps/COPYING
+++ b/src/utils/amps/COPYING
@@ -2,7 +2,7 @@
 		       Version 2, June 1991
 
  Copyright (C) 1991 Free Software Foundation, Inc.
-    		    59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+		    59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -133,7 +133,7 @@ such a program is covered only if its contents constitute a work based
 on the Library (independent of the use of the Library in a tool for
 writing it).  Whether that is true depends on what the Library does
 and what the program that uses the Library does.
-  
+
   1. You may copy and distribute verbatim copies of the Library's
 complete source code as you receive it, in any medium, provided that
 you conspicuously and appropriately publish on each copy an
@@ -463,8 +463,8 @@ convey the exclusion of warranty; and each file should have at least the
     Library General Public License for more details.
 
     You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the 
-    Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
+    License along with this library; if not, write to the
+    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
     Boston, MA  02111-1307  USA.
 
 Also add information on how to contact you by electronic and paper mail.
diff --git a/src/utils/amps/index.php b/src/utils/amps/index.php
index 1fa2d09..5ead9cd 100644
--- a/src/utils/amps/index.php
+++ b/src/utils/amps/index.php
@@ -227,7 +227,7 @@ function output_sig_image()
 	$serverimg = @imagecreatefrompng(IMAGEPATH."/".SERVERIMG);
 	$queueimg = @imagecreatefrompng(IMAGEPATH."/".QUEUEIMG);
 	$timegenimg = @imagecreatefrompng(IMAGEPATH."/".TIMEGENIMG);
-	
+
 	if($values["kad"] == "2") {
 		if ($values["highlowid"] == "H" && $values["connected"] == "1")
 			$idimg = @imagecreatefrompng(IMAGEPATH."/".HIGHIDIMGKADON);
@@ -241,7 +241,7 @@ function output_sig_image()
                 else if ($values["highlowid"] == "L" && $values["connected"] == "1")
                         $idimg = @imagecreatefrompng(IMAGEPATH."/".LOWIDIMGKADFW);
                 else
-                        $idimg = @imagecreatefrompng(IMAGEPATH."/".NOCONNIMGKADFW);	
+                        $idimg = @imagecreatefrompng(IMAGEPATH."/".NOCONNIMGKADFW);
 	} else {
 		if ($values["highlowid"] == "H" && $values["connected"] == "1")
                         $idimg = @imagecreatefrompng(IMAGEPATH."/".HIGHIDIMGKADOFF);
diff --git a/src/utils/amps/langs/en.inc b/src/utils/amps/langs/en.inc
index ba64dd5..7c09d50 100644
--- a/src/utils/amps/langs/en.inc
+++ b/src/utils/amps/langs/en.inc
@@ -42,9 +42,9 @@ $text["kadonmsg"]       = "( Kad: on )";
 $text["kadfwmsg"]       = "( Kad: firewalled)";
 $text["kadoffmsg"]      = "( Kad: off )";
 $text["kadstatus"]      = "Kad Status";
-$text["kadfw"]     	= "Firewalled";
-$text["kadon"]         	= "Connected";
-$text["kadoff"]        	= "Disconnected";
+$text["kadfw"]          = "Firewalled";
+$text["kadon"]          = "Connected";
+$text["kadoff"]         = "Disconnected";
 // try to keep these next three short, otherwise the signature
 // image will look messy
 $text["na"]		= "N/A";
diff --git a/src/utils/cas/Makefile.am b/src/utils/cas/Makefile.am
index fd574bf..34eed74 100644
--- a/src/utils/cas/Makefile.am
+++ b/src/utils/cas/Makefile.am
@@ -24,7 +24,7 @@ noinst_HEADERS = configfile.h \
 cas_CPPFLAGS = $(MULECPPFLAGS) $(CAS_DEFS)
 cas_CFLAGS = $(MULECFLAGS) $(GDLIB_CFLAGS)
 cas_LDFLAGS = $(MULELDFLAGS) $(GDLIB_LDFLAGS)
-cas_LDADD= $(GDLIB_LIBS) 
+cas_LDADD= $(GDLIB_LIBS)
 
 if NEED_CORESERVICES
 cas_LDFLAGS += -framework CoreServices
diff --git a/src/utils/cas/Makefile.in b/src/utils/cas/Makefile.in
index 23d5ae4..bc07d6b 100644
--- a/src/utils/cas/Makefile.in
+++ b/src/utils/cas/Makefile.in
@@ -43,23 +43,23 @@ DIST_COMMON = README $(dist_cas_DATA) $(noinst_HEADERS) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -183,6 +183,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -209,6 +215,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -299,6 +306,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -404,7 +412,7 @@ noinst_HEADERS = configfile.h \
 cas_CPPFLAGS = $(MULECPPFLAGS) $(CAS_DEFS)
 cas_CFLAGS = $(MULECFLAGS) $(GDLIB_CFLAGS)
 cas_LDFLAGS = $(MULELDFLAGS) $(GDLIB_LDFLAGS) $(am__append_1)
-cas_LDADD = $(GDLIB_LIBS) 
+cas_LDADD = $(GDLIB_LIBS)
 
 # Resources
 @NEED_RC_TRUE at SUFFIXES = .rc
diff --git a/src/utils/cas/cas.c b/src/utils/cas/cas.c
index a1948d4..ea42f3c 100644
--- a/src/utils/cas/cas.c
+++ b/src/utils/cas/cas.c
@@ -1,12 +1,12 @@
 /*
- *  Name:         Main cas file 
+ *  Name:         Main cas file
  *
  *  Purpose:      aMule Statistics
  *
  *  Author:       Pedro de Oliveira <falso at rdk.homeip.net>
  *
  *  Copyright (c) 2004-2011 Pedro de Oliveira ( falso at rdk.homeip-net )
- * 
+ *
  *  This file is part of aMule.
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -50,14 +50,14 @@
 # define no_argument 0
 # define required_argument 1
 # define optional_argument 2
- 
+
 struct option {
 	const char *name;
 	int has_arg;
 	int *flag;
 	int val;
 };
- 
+
 int getopt_long(int argc,
 		char * const argv[],
 		const char *optstring,
@@ -115,13 +115,12 @@ int getopt_long(int argc,
                 const struct option *longopts,
                 int *longindex)
 {
-int i;
-int length;
 if ( (optind > 0) && (optind < argc) &&
      (strncmp(argv[optind],"--",2) == 0) &&
      (argv[optind][2] != '\0') ) {
+        int i;
         for (i = 0; longopts[i].name != NULL; i++) {
-                length = strlen(longopts[i].name);
+                int length = strlen(longopts[i].name);
                 if (strncmp(argv[optind]+2,longopts[i].name,length) == 0) {
                         if ( (longopts[i].has_arg == no_argument) && (argv[optind][2+length] == '\0') ) {
                                 optind++;
@@ -158,7 +157,6 @@ int main(int argc, char *argv[])
 {
 	/* Declaration of variables */
 	FILE *amulesig;
-	int use_out_pic = 0;
 	int use_page = 0;
 	char *config_path=NULL;
 	char *path;
@@ -169,7 +167,10 @@ int main(int argc, char *argv[])
 	int i;
 	int c;
 	int errflag = 0;
+#ifdef __GD__
+	int use_out_pic = 0;
 	char *path_for_picture=NULL;
+#endif /* __GD__ */
 	char *path_for_html=NULL;
 	CONF config;
 	time_t lt;
@@ -193,6 +194,7 @@ int main(int argc, char *argv[])
 				path_for_html = optarg;
 			}
 			break;
+#ifdef __GD__
 		case 'P':
 		case 'o':
 			use_out_pic=1;
@@ -200,13 +202,14 @@ int main(int argc, char *argv[])
 				path_for_picture = optarg;
 			}
 			break;
+#endif /* __GD__ */
 		case '?':
 			errflag++;
 		}
 		if (errflag) {
 			usage(argv[0]);
-               		exit (2);
-          	}
+			exit (2);
+		}
 
 	/* get amulesig path */
 
@@ -221,8 +224,8 @@ int main(int argc, char *argv[])
 	if ((amulesig = fopen(path, "r")) == NULL) {
 		fprintf(stderr, "Unable to open file %s\nCheck if you have amule online signature enabled.\n", path);
 		exit(2);
-	} 
-	/* i believe this shouldnt be here. 
+	}
+	/* i believe this shouldnt be here.
 	The freq of update could be higher than 60 seconds.
 	And it doesn't mean that the amule is not running.
 	*/
@@ -275,22 +278,22 @@ int main(int argc, char *argv[])
 	strftime(arr, 20, "%b %d %Y, %H:%M", ltp);
 
 	// if amule isn't running say that and exit else print out the stuff
-	
+
 	// if amule uptime is 0, then its not running...
 	if (strncmp(stats[16],"0",1) == 0 ) {
 		perror("aMule is not running\n");
 		exit(3);
 	}
-	
-	
+
+
 	if (strncmp(stats[0],"2",1) == 0)
 		CreateLine(lines, 0 ,"aMule %s is connecting\n", stats[13]);
 	else
 		CreateLine(lines, 0, "aMule %s has been running for %s\n",
 				stats[13], timeconv(stats[16]));
 
-	
-	
+
+
 	if (strncmp(stats[0],"0",1) == 0 && strncmp(stats[5],"0",1) == 0)
 		CreateLine(lines, 1, "%s is not connected ", stats[10]);
 	else if (strncmp(stats[0],"0",1) == 0 && strncmp(stats[5],"0",1) != 0)
@@ -298,8 +301,8 @@ int main(int argc, char *argv[])
 	else
 		CreateLine(lines, 1, "%s is connected to %s [%s:%s] with ", stats[10],
 			stats[1], stats[2], stats[3]);
-	
-	
+
+
 	if (strncmp(stats[5],"2",1) == 0) {
 		if (strncmp(stats[4],"H",1) == 0)
 			AppendToLine(lines, 1, "HighID | Kad: ok \n");
@@ -312,7 +315,7 @@ int main(int argc, char *argv[])
 			AppendToLine(lines, 1, "HighID | Kad: firewalled \n");
 		else if (strncmp(stats[4],"L",1) == 0)
                         AppendToLine(lines, 1, "LowID | Kad: firewalled \n");
-        	else
+		else
 			AppendToLine(lines, 1, "Kad: firewalled \n");
 	} else {
 		if (strncmp(stats[4],"H",1) == 0)
@@ -355,7 +358,7 @@ int main(int argc, char *argv[])
 #endif
 
 	if (use_page == 1) {
-		
+
 		if (!readconfig(&config)) {
 			perror("Could not read config file\n");
 			exit(4);
diff --git a/src/utils/cas/configfile.c b/src/utils/cas/configfile.c
index ad90f27..0be3cc0 100644
--- a/src/utils/cas/configfile.c
+++ b/src/utils/cas/configfile.c
@@ -6,7 +6,7 @@
  *  Author:       Pedro de Oliveira <falso at rdk.homeip.net>
  *
  *  Copyright (c) 2004-2011 Pedro de Oliveira ( falso at rdk.homeip-net )
- * 
+ *
  *  This file is part of aMule.
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -32,6 +32,14 @@
 #include "configfile.h"
 #include "functions.h"
 
+#define STRINGIFY(x)	#x
+#define STRINGIFY_EXPAND(x)	STRINGIFY(x)
+
+#define MAX_CONF_ARG_LEN_STR	STRINGIFY_EXPAND(MAX_CONF_ARG_LEN)
+
+#define MAX_CONF_KEY_LEN	12
+#define MAX_CONF_KEY_LEN_STR	STRINGIFY_EXPAND(MAX_CONF_KEY_LEN)
+
 int writeconfig(void)
 {
 	FILE *config;
@@ -42,7 +50,7 @@ int writeconfig(void)
 		"#\n",
 		"# font - full path to a ttf font\n",
 		"# font_size - size the font\n",
-		"# source_image - image where the text will be writen\n",
+		"# source_image - image where the text will be written\n",
 		"# *_line - x,y,[1/0] enabled or disabled\n\n",
 		"font /usr/share/fonts/corefonts/times.ttf\n",
 		"font_size 10.5\n",
@@ -113,29 +121,29 @@ int readconfig(CONF *config)
 		if (fgets (buffer,120,conf)) {
 			if (buffer[0] != '#') {
 				/* Only two fileds per line */
-				sscanf(buffer, "%s %*s", option);
+				sscanf(buffer, "%" MAX_CONF_KEY_LEN_STR "s %*" MAX_CONF_ARG_LEN_STR "s", option);
 				fflush (stdout);
 		// Jacobo221 - [ToDo] So lines can't be swapped...
 				if (strcmp(option, "font") == 0) {
-					sscanf(buffer, "%*s %s", config->font);
+					sscanf(buffer, "%*" MAX_CONF_KEY_LEN_STR "s %" MAX_CONF_ARG_LEN_STR "s", config->font);
 				}
 				if (strcmp(option, "font_size") == 0) {
-					sscanf(buffer, "%*s %f", &config->size);
+					sscanf(buffer, "%*" MAX_CONF_KEY_LEN_STR "s %10f", &config->size);
 				}
 				if (strcmp(option, "source_image") == 0) {
-					sscanf(buffer, "%*s %s", config->source);
+					sscanf(buffer, "%*" MAX_CONF_KEY_LEN_STR "s %" MAX_CONF_ARG_LEN_STR "s", config->source);
 				}
 				if (strcmp(option, "template") == 0) {
-					sscanf(buffer, "%*s %s", config->template);
+					sscanf(buffer, "%*" MAX_CONF_KEY_LEN_STR "s %" MAX_CONF_ARG_LEN_STR "s", config->template);
 				}
 				if (strcmp(option, "img_type") == 0) {
-					sscanf(buffer, "%*s %d", &config->img_type);
+					sscanf(buffer, "%*" MAX_CONF_KEY_LEN_STR "s %1d", &config->img_type);
 				}
-					
+
 				for (i = 0; i < IMG_TEXTLINES; i++) {
 					if (strcmp(option, lines[i]) == 0) {
 						sscanf(buffer,
-							"%*s %d,%d,%d",
+							"%*" MAX_CONF_KEY_LEN_STR "s %4d,%4d,%4d",
 							&config->x[i], &config->y[i],
 							&config->enabled[i]);
 					}
diff --git a/src/utils/cas/configfile.h b/src/utils/cas/configfile.h
index 4dbda44..341875b 100644
--- a/src/utils/cas/configfile.h
+++ b/src/utils/cas/configfile.h
@@ -6,7 +6,7 @@
  *  Author:       Pedro de Oliveira <falso at rdk.homeip.net>
  *
  *  Copyright (c) 2004-2011 Pedro de Oliveira ( falso at rdk.homeip-net )
- * 
+ *
  *  This file is part of aMule.
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -29,12 +29,13 @@
 #ifndef CAS_CONFIGFILE_H
 #define CAS_CONFIGFILE_H
 
-#define IMG_TEXTLINES 7
+#define IMG_TEXTLINES		7
+#define MAX_CONF_ARG_LEN	120
 
 typedef struct {
-	char font[120];
-	char source[120];
-	char template[120];
+	char font[MAX_CONF_ARG_LEN+1];
+	char source[MAX_CONF_ARG_LEN+1];
+	char template[MAX_CONF_ARG_LEN+1];
 	int x[IMG_TEXTLINES];
 	int y[IMG_TEXTLINES];
 	int enabled[IMG_TEXTLINES];
diff --git a/src/utils/cas/docs/Makefile.am b/src/utils/cas/docs/Makefile.am
index db426a2..159eabe 100644
--- a/src/utils/cas/docs/Makefile.am
+++ b/src/utils/cas/docs/Makefile.am
@@ -1,6 +1,6 @@
 SELECTED_MANPAGES = $(CAS_MANPAGES)
 
-EXTRA_DIST = cas.1 cas.de.1 cas.es.1 cas.fr.1 cas.hu.1 cas.it.1 cas.ru.1 cas.tr.1
+EXTRA_DIST = cas.1 cas.de.1 cas.es.1 cas.fr.1 cas.hu.1 cas.it.1 cas.ru.1 cas.tr.1 cas.zh_TW.1
 
 include $(top_srcdir)/automake/manpages.am
 
diff --git a/src/utils/cas/docs/Makefile.in b/src/utils/cas/docs/Makefile.in
index c92d8c1..a634f83 100644
--- a/src/utils/cas/docs/Makefile.in
+++ b/src/utils/cas/docs/Makefile.in
@@ -38,23 +38,23 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = src/utils/cas/docs
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -87,6 +87,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -113,6 +119,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -203,6 +210,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -288,7 +296,7 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SELECTED_MANPAGES = $(CAS_MANPAGES)
-EXTRA_DIST = cas.1 cas.de.1 cas.es.1 cas.fr.1 cas.hu.1 cas.it.1 cas.ru.1 cas.tr.1
+EXTRA_DIST = cas.1 cas.de.1 cas.es.1 cas.fr.1 cas.hu.1 cas.it.1 cas.ru.1 cas.tr.1 cas.zh_TW.1
 MAINTAINERCLEANFILES = Makefile.in
 all: all-am
 
diff --git a/src/utils/cas/docs/cas.zh_TW.1 b/src/utils/cas/docs/cas.zh_TW.1
new file mode 100644
index 0000000..885bc85
--- /dev/null
+++ b/src/utils/cas/docs/cas.zh_TW.1
@@ -0,0 +1,51 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH CAS 1 "2011 十一月" "cas v0.8" "aMule 的工具程式"
+.als B_untranslated B
+.als RB_untranslated RB
+.SH 名稱
+cas \- 以 C 語言撰寫的 aMule 統計資訊程式
+.SH 簡介
+.B_untranslated cas
+.RB_untranslated [ \-o ]
+.RB_untranslated [ \-p ]
+[\fB\-c\fP \fI<路徑>\fP]
+
+.B_untranslated cas
+.RB_untranslated [ \-h ]
+.SH 說明
+\fBcas\fP 是可以在終端機界面以人類可閱讀的形式顯示你的 aMule 線上簽名識別檔的程式。要使用這個功能,你必須在偏好設定裏啟用「線上簽名識別」。
+.TP 
+.B_untranslated [ \-o\fR, \fB\-\-picture\fR, \fB\-P ]\fR
+除存線上簽名識別圖片。你也可以在選項中加入 \fI=<路徑>\fP 來指定要儲存的地方。
+.TP 
+.B_untranslated [ \-p\fR, \fB\-\-html\fR, \fB\-H ]\fR
+有統計資訊與圖片的 HTML 檔案。你也可以在選項中加入 \fI=<路徑>\fP 來指定要儲存的地方。
+.TP 
+\fB[ \-c\fP \fI<路徑>\fP, \fB\-\-config\-dir\fP=\fI<路徑>\fP \fB]\fP
+從 \fI<path>\fP 讀取設定檔,而不是個人目錄
+.TP 
+.B_untranslated [ \-h\fR, \fB\-\-help ]\fR
+顯示簡短的使用說明。
+.P
+如果沒有選項,會在標準輸出顯示線上簽名識別。
+
+\fBcas\fP 的作者:Pedro de Oliveira <falso at rdk.homeip.net>
+.SH 檔案
+~/.aMule/casrc
+.br
+stat.png
+.br
+tmp.html
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated amule\fR(1), \fBwxcas\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/src/utils/cas/functions.c b/src/utils/cas/functions.c
index 82e9f0b..dc53f93 100644
--- a/src/utils/cas/functions.c
+++ b/src/utils/cas/functions.c
@@ -6,7 +6,7 @@
  *  Author:       Pedro de Oliveira <falso at rdk.homeip.net>
  *
  *  Copyright (c) 2004-2011 Pedro de Oliveira ( falso at rdk.homeip-net )
- * 
+ *
  *  This file is part of aMule.
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -201,7 +201,7 @@ char *get_amule_path(const char *file, int force_directory, const char *cmdline_
 		if (path[strlen(path) - 1] == CAS_DIR_SEPARATOR[0]) {
 			strcat(path, file);
 		}
-	}	
+	}
 
 	return path;
 }
diff --git a/src/utils/cas/functions.h b/src/utils/cas/functions.h
index 74baa00..75e16ac 100644
--- a/src/utils/cas/functions.h
+++ b/src/utils/cas/functions.h
@@ -1,7 +1,7 @@
 /*
- *  Name:         Shared functions     
+ *  Name:         Shared functions
  *
- *  Purpose:      Functions that are used various times in cas 
+ *  Purpose:      Functions that are used various times in cas
  *
  *  Author:       Pedro de Oliveira <falso at rdk.homeip.net>
  *
diff --git a/src/utils/cas/graphics.c b/src/utils/cas/graphics.c
index 7e26e33..718dbba 100644
--- a/src/utils/cas/graphics.c
+++ b/src/utils/cas/graphics.c
@@ -72,13 +72,13 @@ int createimage(CONF *config, char *lines[IMG_TEXTLINES], char *path_for_picture
 					0.0, config->x[i], config->y[i], lines[i]);
 		}
 	}
-	
+
 	if (config->img_type==0) {
 		path = get_amule_path("aMule-online-sign.png", 0, path_for_picture);
 	} else {
 		path = get_amule_path("aMule-online-sign.jpg", 0, path_for_picture);
 	}
-		
+
 	if (path == NULL && config->img_type==0) {
 		perror("could not get PNG path\n");
 		return 0;
@@ -88,13 +88,13 @@ int createimage(CONF *config, char *lines[IMG_TEXTLINES], char *path_for_picture
 	}
 	out = fopen(path, "w");
 	free(path);
-	
+
 	if (config->img_type==0) {
 		gdImagePng(im, out);
 	} else {
 		gdImageJpeg(im, out, -1);
 	}
-	
+
 	fclose(out);
 	printf("Online Signature picture created.\n");
 	gdImageDestroy(im);
diff --git a/src/utils/cas/graphics.h b/src/utils/cas/graphics.h
index 640dd57..cb0c6bc 100644
--- a/src/utils/cas/graphics.h
+++ b/src/utils/cas/graphics.h
@@ -1,5 +1,5 @@
 /*
- *  Name:         Graphics functions   
+ *  Name:         Graphics functions
  *
  *  Purpose:      All the functions that are used to create the Online Signature Image
  *
diff --git a/src/utils/cas/html.c b/src/utils/cas/html.c
index d24e632..87cecf6 100644
--- a/src/utils/cas/html.c
+++ b/src/utils/cas/html.c
@@ -1,12 +1,12 @@
 /*
- *  Name:         HTML creation functions 
+ *  Name:         HTML creation functions
  *
  *  Purpose:      Create a nice HTML page with all the statistics
  *
  *  Author:       Pedro de Oliveira <falso at rdk.homeip.net>
  *
  *  Copyright (c) 2004-2011 Pedro de Oliveira ( falso at rdk.homeip-net )
- * 
+ *
  *  This file is part of aMule.
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -64,7 +64,7 @@ int create_html(char *stats[20], char *lines[6], char template[120], char *path_
 		perror("Could not open file");
 		exit (43);
 	}
-	
+
 	struct stat sb;
 	if (fstat(fdTmpl, &sb) < 0)
 	{
@@ -92,7 +92,7 @@ int create_html(char *stats[20], char *lines[6], char template[120], char *path_
 		mem[len++] = ler;
 	}
 	fclose(fTmpl);
-	
+
 	/* printf ("HTML: %s\n", mem); */
 
 	int t;
@@ -112,7 +112,7 @@ int create_html(char *stats[20], char *lines[6], char template[120], char *path_
 		free(mem);
 		return 0;
 	}
-	
+
 	FILE *fHTML = NULL;
 	if ((fHTML = fopen(path, "w")) == NULL)
 	{
@@ -126,7 +126,7 @@ int create_html(char *stats[20], char *lines[6], char template[120], char *path_
 	fprintf(fHTML, "%s", mem);
 	fclose(fHTML);
 	free(mem);
-	
+
 	printf("HTML file created.\n");
 
 	return 1;
diff --git a/src/utils/cas/html.h b/src/utils/cas/html.h
index efdd240..e55c38c 100644
--- a/src/utils/cas/html.h
+++ b/src/utils/cas/html.h
@@ -1,12 +1,12 @@
 /*
- *  Name:         HTML creation functions 
+ *  Name:         HTML creation functions
  *
  *  Purpose:      Create a nice HTML page with all the statistics
  *
  *  Author:       Pedro de Oliveira <falso at rdk.homeip.net>
  *
  *  Copyright (c) 2004-2011 Pedro de Oliveira ( falso at rdk.homeip-net )
- * 
+ *
  *  This file is part of aMule.
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/src/utils/cas/lines.c b/src/utils/cas/lines.c
index c6cdeb6..f4b2b93 100644
--- a/src/utils/cas/lines.c
+++ b/src/utils/cas/lines.c
@@ -16,7 +16,7 @@
  *  Free Software Foundation, Inc.,
  *  51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
  */
-						
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
@@ -29,6 +29,7 @@ void CreateLine(char *lines[], int line, const char *format, ...)
 	/* Guess we need no more than 80 bytes. */
 	int n, size = 100;
 	char *p;
+	char *tmp;
 	va_list ap;
 	if ((p = malloc(size)) == NULL) {
 		lines[line] = NULL;
@@ -41,19 +42,22 @@ void CreateLine(char *lines[], int line, const char *format, ...)
 		va_end(ap);
 		/* If that worked, set the line. */
 		if (n > -1 && n < size) {
-			lines[line] = p;
-			return;
+			break;
 		}
 		/* Else try again with more space. */
 		if (n > -1)	/* glibc 2.1 */
 			size = n+1;	/* precisely what is needed */
 		else		/* glibc 2.0 */
 			size *= 2;	/* twice the old size */
-		if ((p = realloc(p, size)) == NULL) {
-			lines[line] = NULL;
-			return;
+		if ((tmp = realloc(p, size)) == NULL) {
+			free(p);
+			p = NULL;
+			break;
+		} else {
+			p = tmp;
 		}
 	}
+	lines[line] = p;
 }
 
 void AppendToLine(char *lines[], int line, const char *text)
diff --git a/src/utils/cas/lines.h b/src/utils/cas/lines.h
index 0c607ae..db76197 100644
--- a/src/utils/cas/lines.h
+++ b/src/utils/cas/lines.h
@@ -16,7 +16,7 @@
  *  Free Software Foundation, Inc.,
  *  51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
  */
-						
+
 #ifndef CAS_LINES_H
 #define CAS_LINES_H
 
diff --git a/src/utils/cas/tmp.html b/src/utils/cas/tmp.html
index 6464437..e71a20f 100644
--- a/src/utils/cas/tmp.html
+++ b/src/utils/cas/tmp.html
@@ -10,13 +10,13 @@
 		font-size: 12px;
 		COLOR: #000000;
 	}
-	
-	.gbord { 
+
+	.gbord {
 		border-width:1px; border-style:solid;
 		border-color:#000000;
     }
 
-	.gbord2 { 
+	.gbord2 {
 		border-width:1px;
 		border-top-style:none;
 		border-bottom-style:solid;
diff --git a/src/utils/fileview/FileView.cpp b/src/utils/fileview/FileView.cpp
index deaecb7..62ee4df 100644
--- a/src/utils/fileview/FileView.cpp
+++ b/src/utils/fileview/FileView.cpp
@@ -102,7 +102,7 @@ bool CFileView::OnCmdLineParsed(wxCmdLineParser& parser)
 		for (size_t n = 0; n < parser.GetParamCount(); n++) {
 			m_files.push_back(parser.GetParam(n));
 		}
-		if (m_files.size() == 0) {
+		if (m_files.empty()) {
 			parser.Usage();
 			return false;
 		} else {
@@ -170,3 +170,6 @@ int CFileView::OnRun()
 
 	return 0;
 }
+
+// Dummy used in OtherFunctions.cpp
+wxString MuleBoostVersion;
diff --git a/src/utils/fileview/KadFiles.cpp b/src/utils/fileview/KadFiles.cpp
index 83ee639..d02daa3 100644
--- a/src/utils/fileview/KadFiles.cpp
+++ b/src/utils/fileview/KadFiles.cpp
@@ -61,9 +61,9 @@ void KadGetKeywordHash(const wxString& rstrKeyword, Kademlia::CUInt128* pKadID)
 
 	// This should be safe - we assume rstrKeyword is ANSI anyway.
 	Unicode2CharBuf ansi_buffer(unicode2UTF8(rstrKeyword));
-	
+
 	md4_hasher.CalculateDigest(Output, (const byte *) (const char *) ansi_buffer, strlen(ansi_buffer));
-	
+
 	pKadID->SetValueBE(Output);
 }
 
@@ -73,7 +73,7 @@ bool IdentifyKeyword(const Kademlia::CUInt128& keyID, const wxString& str, wxStr
 	wxStringTokenizer tkz(str, Kademlia::CSearchManager::GetInvalidKeywordChars());
 	while (tkz.HasMoreTokens()) {
 		wxString current_word = tkz.GetNextToken();
-		
+
 		if (current_word.Length() > 2) {
 			current_word.MakeLower();
 			Kademlia::CUInt128 currentID;
diff --git a/src/utils/fileview/Makefile.in b/src/utils/fileview/Makefile.in
index 61afc04..b460ff0 100644
--- a/src/utils/fileview/Makefile.in
+++ b/src/utils/fileview/Makefile.in
@@ -39,23 +39,23 @@ subdir = src/utils/fileview
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -130,6 +130,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -156,6 +162,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -246,6 +253,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/utils/fileview/Print.h b/src/utils/fileview/Print.h
index 3d04f9e..8784851 100644
--- a/src/utils/fileview/Print.h
+++ b/src/utils/fileview/Print.h
@@ -77,7 +77,7 @@ inline wxString hex(uint32_t value)	{ return wxString::Format(wxT("0x%08x"), val
 inline void PrintByteArray(const void *buf, unsigned int size)
 {
 // #if wxCHECK_VERSION(2, 8, 4)
-// 	cout << MakePrintableString(wxString::From8BitData(static_cast<const char *>(buf), size));
+//	cout << MakePrintableString(wxString::From8BitData(static_cast<const char *>(buf), size));
 // #else
 	for (unsigned int i = 0; i < size; i++) {
 		cout << wxString::Format(wxT("%02X "), static_cast<const unsigned char *>(buf)[i]);
diff --git a/src/utils/mkFileSum.c b/src/utils/mkFileSum.c
index 9607e7c..1b285b2 100644
--- a/src/utils/mkFileSum.c
+++ b/src/utils/mkFileSum.c
@@ -225,7 +225,7 @@ void MD5Update (MD5_CTX *context, const unsigned char *input, unsigned int input
 }
 
 /* MD5 finalization. Ends an MD5 message-digest operation, writing the
- * the message digest and zeroizing the context. 
+ * the message digest and zeroizing the context.
  */
 void MD5Final (unsigned char digest[16], MD5_CTX *context)
 {
diff --git a/src/utils/patches/cryptopp/mac_build.patch b/src/utils/patches/cryptopp/mac_build.patch
index 5a3fa29..67e22e2 100644
--- a/src/utils/patches/cryptopp/mac_build.patch
+++ b/src/utils/patches/cryptopp/mac_build.patch
@@ -8,7 +8,7 @@ diff -u GNUmakefile-orig GNUmakefile
  # -fPIC is supported. Please report any breakage of -fPIC as a bug.
  # CXXFLAGS += -fPIC
 @@ -35,7 +35,7 @@
- 
+
  ifneq ($(GCC42_OR_LATER),0)
  ifeq ($(UNAME),Darwin)
 -CXXFLAGS += -arch x86_64 -arch i386
diff --git a/src/utils/plasmamule/Makefile.am b/src/utils/plasmamule/Makefile.am
index a08e04a..f6fc69f 100644
--- a/src/utils/plasmamule/Makefile.am
+++ b/src/utils/plasmamule/Makefile.am
@@ -31,7 +31,7 @@ plasma_engine_plasmamule_so_CXXFLAGS = -shared -I${KDE_HEADER_DIR} ${QT_CORE_CXX
 plasma_applet_plasmamule_so_CXXFLAGS = -shared -D__IMG_PATH__=\"${KDE_ICON_PATH}\" -I${KDE_HEADER_DIR} ${QT_GUI_CXXFLAGS} -DPIC -fPIC ${DEBUGFLAG}
 plasmamule_engine_feeder_CXXFLAGS = -I${KDE_HEADER_DIR} ${QT_GUI_CXXFLAGS} ${DEBUGFLAG}
 
-plasmamule_engine_feeder_LDFLAGS = ${QT_GUI_LIBS} -lkdecore -lplasma ${QT_DBUS_LDFLAGS}
+plasmamule_engine_feeder_LDADD = ${QT_GUI_LIBS} -lkdecore -lplasma ${QT_DBUS_LDFLAGS}
 
 noinst_HEADERS = plasma-engine-plasmamule.h plasma-applet-plasmamule.h plasmamule-dbus.h qt-emc.h
 
diff --git a/src/utils/plasmamule/Makefile.in b/src/utils/plasmamule/Makefile.in
index 4786e9e..d6f555f 100644
--- a/src/utils/plasmamule/Makefile.in
+++ b/src/utils/plasmamule/Makefile.in
@@ -46,23 +46,23 @@ DIST_COMMON = $(am__dist_apps_DATA_DIST) $(am__dist_icon_DATA_DIST) \
 	$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -98,10 +98,12 @@ am_plasmamule_engine_feeder_OBJECTS =  \
 	plasmamule_engine_feeder-plasmamule-dbus.$(OBJEXT)
 plasmamule_engine_feeder_OBJECTS =  \
 	$(am_plasmamule_engine_feeder_OBJECTS)
-plasmamule_engine_feeder_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+plasmamule_engine_feeder_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 plasmamule_engine_feeder_LINK = $(CXXLD) \
-	$(plasmamule_engine_feeder_CXXFLAGS) $(CXXFLAGS) \
-	$(plasmamule_engine_feeder_LDFLAGS) $(LDFLAGS) -o $@
+	$(plasmamule_engine_feeder_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -183,6 +185,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -209,6 +217,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -299,6 +308,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -402,7 +412,7 @@ nodist_plasma_applet_plasmamule_so_SOURCES = plasma-applet-plasmamule.moc
 plasma_engine_plasmamule_so_CXXFLAGS = -shared -I${KDE_HEADER_DIR} ${QT_CORE_CXXFLAGS} -DPIC -fPIC ${DEBUGFLAG}
 plasma_applet_plasmamule_so_CXXFLAGS = -shared -D__IMG_PATH__=\"${KDE_ICON_PATH}\" -I${KDE_HEADER_DIR} ${QT_GUI_CXXFLAGS} -DPIC -fPIC ${DEBUGFLAG}
 plasmamule_engine_feeder_CXXFLAGS = -I${KDE_HEADER_DIR} ${QT_GUI_CXXFLAGS} ${DEBUGFLAG}
-plasmamule_engine_feeder_LDFLAGS = ${QT_GUI_LIBS} -lkdecore -lplasma ${QT_DBUS_LDFLAGS}
+plasmamule_engine_feeder_LDADD = ${QT_GUI_LIBS} -lkdecore -lplasma ${QT_DBUS_LDFLAGS}
 noinst_HEADERS = plasma-engine-plasmamule.h plasma-applet-plasmamule.h plasmamule-dbus.h qt-emc.h
 CLEANFILES = *.moc
 MAINTAINERCLEANFILES = Makefile.in
diff --git a/src/utils/plasmamule/plasma-applet-plasmamule.cpp b/src/utils/plasmamule/plasma-applet-plasmamule.cpp
index 9c61258..1a9e17b 100644
--- a/src/utils/plasmamule/plasma-applet-plasmamule.cpp
+++ b/src/utils/plasmamule/plasma-applet-plasmamule.cpp
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -62,10 +62,10 @@ PlasmaMuleApplet::PlasmaMuleApplet(QObject *parent, const QVariantList &args)
 PlasmaMuleApplet::~PlasmaMuleApplet()
 {
 }
- 
+
 void PlasmaMuleApplet::init()
 {
-	m_debugChannel = KDebug::registerArea ("plasmamule-applet", 
+	m_debugChannel = KDebug::registerArea ("plasmamule-applet",
 #ifdef __DEBUG__
 	true
 #else
@@ -98,12 +98,12 @@ void PlasmaMuleApplet::paintInterface(QPainter *painter,
 	font.setBold(true);
 	painter->setFont(font);
 	if (!m_config_found)
-	{	
+	{
 		painter->drawText(contentsRect, Qt::AlignCenter,
 		"aMule not configured or installed");
 	}
 	else if (!m_os_active)
-	{	
+	{
 		painter->drawText(contentsRect, Qt::AlignCenter,
 		"Online Signature disabled");
 	} else if (m_uptime == 0)
@@ -377,7 +377,7 @@ void PlasmaMuleApplet::dropEvent(QGraphicsSceneDragDropEvent * event)
 	{
 		sendLinkToEngine (event->mimeData()->text(), 0, this, m_debugChannel);
 	} else {
-		for (constIterator = m_catNames.constBegin(); constIterator != m_catNames.constEnd(); constIterator++)
+		for (constIterator = m_catNames.constBegin(); constIterator != m_catNames.constEnd(); ++constIterator)
 		{
 			menu->addAction(*constIterator);
 			if (constIterator != m_catNames.constEnd())
@@ -406,7 +406,7 @@ void PlasmaMuleApplet::contextMenuEvent(QGraphicsSceneContextMenuEvent * event)
 		menu.addAction (KIcon("folder"), QString("Default"));
 	} else {
 		QMenu *open_sub_menu = menu.addMenu("Open Incoming");
-		for (constIterator = m_catNames.constBegin(); constIterator != m_catNames.constEnd(); constIterator++)
+		for (constIterator = m_catNames.constBegin(); constIterator != m_catNames.constEnd(); ++constIterator)
 		{
 			open_sub_menu->addAction(KIcon("folder"), "Folder for " + *constIterator);
 			if (constIterator != m_catNames.constEnd())
@@ -437,10 +437,10 @@ void PlasmaMuleApplet::contextMenuEvent(QGraphicsSceneContextMenuEvent * event)
 			{
 				menu.addAction(KIcon("arrow-down-double"), "Download Link from Selection");
 			}
-		} else 	{
+		} else	{
 			QMenu *download_sub_menu = menu.addMenu("Download Link");
 
-			for (constIterator = m_catNames.constBegin(); constIterator != m_catNames.constEnd(); constIterator++)
+			for (constIterator = m_catNames.constBegin(); constIterator != m_catNames.constEnd(); ++constIterator)
 			{
 				if (!clipboard->text(QClipboard::Clipboard).isEmpty())
 				{
@@ -498,7 +498,7 @@ void PlasmaMuleApplet::contextMenuEvent(QGraphicsSceneContextMenuEvent * event)
 		{
 			kDebug(m_debugChannel) << "Opening Folder " << m_catDirs.at(m_catNames.indexOf(selectedItem->text().remove("Folder for ")));
 			KUrl url(m_catDirs.at(m_catNames.indexOf(selectedItem->text().remove("Folder for "))) + "/");
-                	(void) new KRun( url, 0, true );
+			(void) new KRun( url, 0, true );
 		} else if (selectedItem->text().startsWith("Download"))
 		{
 			if (selectedItem->text().remove("Download Link from ") == "Clipboard")
diff --git a/src/utils/plasmamule/plasma-applet-plasmamule.h b/src/utils/plasmamule/plasma-applet-plasmamule.h
index 1e36145..f5eafde 100644
--- a/src/utils/plasmamule/plasma-applet-plasmamule.h
+++ b/src/utils/plasmamule/plasma-applet-plasmamule.h
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -39,7 +39,7 @@ class PlasmaMuleApplet : public Plasma::Applet
 
 		void paintInterface(QPainter *painter, const QStyleOptionGraphicsItem *option, const QRect& contentsRect);
 		void init();
-		
+
 	public Q_SLOTS:
 		void onSourceAdded(const QString&);
 		void onSourceRemoved(const QString&);
@@ -66,5 +66,5 @@ class PlasmaMuleApplet : public Plasma::Applet
 	signals:
 		void engine_add_link(QString, int);
 };
- 
+
 #endif
diff --git a/src/utils/plasmamule/plasma-engine-plasmamule.cpp b/src/utils/plasmamule/plasma-engine-plasmamule.cpp
index a754b9e..f571b38 100644
--- a/src/utils/plasmamule/plasma-engine-plasmamule.cpp
+++ b/src/utils/plasmamule/plasma-engine-plasmamule.cpp
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -88,14 +88,14 @@ void PlasmaMuleEngine::init ()
 		Home += "/";
 	}
 
-	m_debugChannel = KDebug::registerArea ("plasmamule-engine", 
+	m_debugChannel = KDebug::registerArea ("plasmamule-engine",
 #ifdef __DEBUG__
 	true
 #else
 	false
 #endif
 	);
-  
+
 	regDbus();
 	initVals();
 }
@@ -144,7 +144,7 @@ void PlasmaMuleEngine::engine_add_link (const QString &link, const int &category
 
 	QString link_to_write;
 
-	
+
 	if (link.startsWith("ed2k:") || link.startsWith("magnet:"))
 	{
 		link_to_write = link;
@@ -161,7 +161,7 @@ void PlasmaMuleEngine::engine_add_link (const QString &link, const int &category
 		if (collection->isValid())
 		{
 			QStringList links = collection->getLinks();
-			for (QStringList::const_iterator constIterator = links.constBegin(); constIterator != links.constEnd(); constIterator++)
+			for (QStringList::const_iterator constIterator = links.constBegin(); constIterator != links.constEnd(); ++constIterator)
 			{
 				link_to_write.append(*constIterator);
 
@@ -264,7 +264,7 @@ void PlasmaMuleEngine::initVals ()
 		connect (&m_dirwatcher, SIGNAL (created (const QString &)), SLOT (new_file (const QString&)));
 	}
 
-	for (constIterator = tempIncomingDirs.constBegin(); constIterator != tempIncomingDirs.constEnd(); constIterator++)
+	for (constIterator = tempIncomingDirs.constBegin(); constIterator != tempIncomingDirs.constEnd(); ++constIterator)
 	{
 		if (!m_dirwatcher.contains(*constIterator))
 		{
@@ -276,7 +276,7 @@ void PlasmaMuleEngine::initVals ()
 		}
 	}
 
-	for (constIterator = m_incoming_dirs.constBegin(); constIterator != m_incoming_dirs.constEnd(); constIterator++)
+	for (constIterator = m_incoming_dirs.constBegin(); constIterator != m_incoming_dirs.constEnd(); ++constIterator)
 	{
 		if (!cleanedIncomingDirs.contains (*constIterator))
 		{
diff --git a/src/utils/plasmamule/plasma-engine-plasmamule.h b/src/utils/plasmamule/plasma-engine-plasmamule.h
index 6d447c9..7b8a6bc 100644
--- a/src/utils/plasmamule/plasma-engine-plasmamule.h
+++ b/src/utils/plasmamule/plasma-engine-plasmamule.h
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/utils/plasmamule/plasmamule-dbus.cpp b/src/utils/plasmamule/plasmamule-dbus.cpp
index 5a143e5..a9400dc 100644
--- a/src/utils/plasmamule/plasmamule-dbus.cpp
+++ b/src/utils/plasmamule/plasmamule-dbus.cpp
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/utils/plasmamule/plasmamule-dbus.h b/src/utils/plasmamule/plasmamule-dbus.h
index 478b6b8..8524f0d 100644
--- a/src/utils/plasmamule/plasmamule-dbus.h
+++ b/src/utils/plasmamule/plasmamule-dbus.h
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/utils/plasmamule/plasmamule-engine-feeder.cpp b/src/utils/plasmamule/plasmamule-engine-feeder.cpp
index 370d008..6b1131f 100644
--- a/src/utils/plasmamule/plasmamule-engine-feeder.cpp
+++ b/src/utils/plasmamule/plasmamule-engine-feeder.cpp
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,8 +38,8 @@ int main(int argc, char *argv[])
 
 	QStringList cat_names = data["cat_names"].toStringList();
 	QMenu *menu = new QMenu;
- 
-	for (QStringList::const_iterator constIterator = cat_names.constBegin(); constIterator != cat_names.constEnd(); constIterator++)
+
+	for (QStringList::const_iterator constIterator = cat_names.constBegin(); constIterator != cat_names.constEnd(); ++constIterator)
 	{
 		menu->addAction(*constIterator);
 		if (constIterator != cat_names.constEnd())
diff --git a/src/utils/plasmamule/plasmamule-engine-feeder.desktop b/src/utils/plasmamule/plasmamule-engine-feeder.desktop
index 45dca31..4b747fa 100644
--- a/src/utils/plasmamule/plasmamule-engine-feeder.desktop
+++ b/src/utils/plasmamule/plasmamule-engine-feeder.desktop
@@ -13,4 +13,4 @@ Icon=application-x-emulecollection
 MimeType=application/x-emulecollection;
 NoDisplay=true
 StartupNotify=false
-StartupWMClas=false
+StartupWMClass=false
diff --git a/src/utils/plasmamule/qt-emc.cpp b/src/utils/plasmamule/qt-emc.cpp
index 02664b5..6f61d1c 100644
--- a/src/utils/plasmamule/qt-emc.cpp
+++ b/src/utils/plasmamule/qt-emc.cpp
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -28,7 +28,7 @@ qtEmc::qtEmc(const QString &filename)
 
 	QStringList files = filename.split("file://");
 
-	for (QStringList::const_iterator constFilesIterator = files.constBegin(); constFilesIterator != files.constEnd(); constFilesIterator++)
+	for (QStringList::const_iterator constFilesIterator = files.constBegin(); constFilesIterator != files.constEnd(); ++constFilesIterator)
 	{
 		if (!QString(*constFilesIterator).remove("\n").trimmed().isEmpty())
 		{
@@ -41,7 +41,7 @@ qtEmc::qtEmc(const QString &filename)
 				valid = FALSE;
 				errorCode = BadFileFormat;
 			}
-	
+
 			collection.close();
 		}
 	}
@@ -87,6 +87,8 @@ const QString qtEmc::getErrorMessage()
 			return QString("Your collection file was corrupted and ends to Early");
 		}
 	}
+	
+	return QString("Unknown Error-Code");
 }
 
 const QStringList qtEmc::getLinks()
@@ -328,7 +330,7 @@ bool qtEmc::readBinary(QFile &collection)
 								} else if (fileName.length() == length)
 								{
 									int pos=0;
-	
+
 									for (int k=0; k<length; k++)
 									{
 										if (fileName.at(k) != buffer[k+pos])
@@ -339,9 +341,9 @@ bool qtEmc::readBinary(QFile &collection)
 
 									fileName.chop(pos);
 								}
-	
+
 								delete [] buffer;
-	
+
 								if (in.atEnd() && (j != tagCount) && (i =! fileCount))
 								{
 									errorCode = CorruptFile;
diff --git a/src/utils/plasmamule/qt-emc.h b/src/utils/plasmamule/qt-emc.h
index 189f3bc..01a92fe 100644
--- a/src/utils/plasmamule/qt-emc.h
+++ b/src/utils/plasmamule/qt-emc.h
@@ -15,7 +15,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/utils/scripts/MacOSX/application_packager.sh b/src/utils/scripts/MacOSX/application_packager.sh
index 6b62757..ee34d15 100755
--- a/src/utils/scripts/MacOSX/application_packager.sh
+++ b/src/utils/scripts/MacOSX/application_packager.sh
@@ -30,13 +30,13 @@ if [ -z $SRC_FOLDER ]; then
 fi
 
 echo ""
-echo -n "Step 1: Cleaning bundle... "
+echo -n "Step 1: Cleaning bundles... "
 rm aMule.app/Contents/Frameworks/libwx_* aMule.app/Contents/MacOS/* 1> /dev/null 2> /dev/null
-rm -r aMule.app/Contents/Resources/webserver 1> /dev/null 2> /dev/null
+rm aMuleGUI.app/Contents/Frameworks/libwx_* aMuleGUI.app/Contents/MacOS/* 1> /dev/null 2> /dev/null
 rm -r aMule.app/Contents/SharedSupport 1> /dev/null 2> /dev/null
 echo "Done"
 echo ""
-echo -n "Step 2: Copying aMule to app bundle... " 
+echo -n "Step 2.1: Copying aMule to app bundle... "
 cp ${SRC_FOLDER}/src/amule aMule.app/Contents/MacOS/
 cp ${SRC_FOLDER}/src/webserver/src/amuleweb aMule.app/Contents/MacOS/
 cp ${SRC_FOLDER}/src/ed2k aMule.app/Contents/MacOS/
@@ -45,11 +45,16 @@ cp ${SRC_FOLDER}/platforms/MacOSX/aMule-Xcode/amule.icns aMule.app/Contents/Reso
 cp -R ${SRC_FOLDER}/src/webserver aMule.app/Contents/Resources
 find aMule.app/Contents/Resources/webserver \( -name .svn -o -name "Makefile*" -o -name src \) -print0 | xargs -0 rm -rf
 echo "Done"
+echo -n "Step 2.2: Copying aMuleGUI to app bundle... "
+cp ${SRC_FOLDER}/src/amulegui aMuleGUI.app/Contents/MacOS/
+cp ${SRC_FOLDER}/platforms/MacOSX/aMule-Xcode/amule.icns aMuleGUI.app/Contents/Resources/
+echo "Done"
 echo ""
 echo -n "Step 3: Installing translations to app bundle... "
 orig_dir=`pwd`
 pushd ${SRC_FOLDER}/po
 make install datadir=$orig_dir/aMule.app/Contents/SharedSupport 1> /dev/null 2> /dev/null
+make install datadir=$orig_dir/aMuleGUI.app/Contents/SharedSupport 1> /dev/null 2> /dev/null
 popd
 echo "Done"
 echo ""
@@ -60,8 +65,12 @@ for i in $( otool -L	aMule.app/Contents/MacOS/amule \
 						aMule.app/Contents/MacOS/amuleweb \
 						aMule.app/Contents/MacOS/ed2k \
 						aMule.app/Contents/MacOS/amulecmd \
-			| sort -u | grep libwx_ | cut -d " " -f 1 ); do 
-	cp $i aMule.app/Contents/Frameworks; 
+			| sort -u | grep libwx_ | cut -d " " -f 1 ); do
+	cp $i aMule.app/Contents/Frameworks;
+done
+for i in $( otool -L	aMuleGUI.app/Contents/MacOS/amulegui \
+			| sort -u | grep libwx_ | cut -d " " -f 1 ); do
+	cp $i aMuleGUI.app/Contents/Frameworks;
 done
 echo "Libs copy done."
 echo ""
@@ -94,11 +103,33 @@ for i in $( ls Frameworks | grep -v CVS); do
 		`otool -L MacOS/amulecmd | grep $i | cut -d " " -f 1` \
 		@executable_path/../Frameworks/$i MacOS/amulecmd 1> /dev/null 2> /dev/null
 done
-echo "Libs info updated, aMule.app is ready to package."
+pushd aMuleGUI.app/Contents/
+for i in $( ls Frameworks | grep -v CVS); do
+	echo "    Updating $i"
+	#update library id
+	install_name_tool -id @executable_path/../Frameworks/$i Frameworks/$i
+	#update library links
+	for j in $( otool -L Frameworks/$i | grep libwx_ | cut -d " " -f 1 ); do
+	        install_name_tool -change \
+                $j @executable_path/../Frameworks/`echo $j | rev | cut -d "/" -f 1 | rev` \
+		Frameworks/$i 1> /dev/null 2> /dev/null
+
+	done
+	echo "    Updating aMule lib info for $i"
+	#update amule executable
+	install_name_tool -change \
+		`otool -L MacOS/amulegui | grep $i | cut -d " " -f 1` \
+		@executable_path/../Frameworks/$i MacOS/amulegui 1> /dev/null 2> /dev/null
+done
+echo "Libs info updated, aMule.app and aMuleGUI.app are ready to package."
 echo ""
 popd
 echo -n "Creating aMule.zip... "
 zip -9 -r aMule.zip aMule.app/ > /dev/null
 zip -9 -j ${SRC_FOLDER}/docs/README.Mac.txt ${SRC_FOLDER}/docs/COPYING > /dev/null
 echo "Done"
+echo -n "Creating aMuleGUI.zip... "
+zip -9 -r aMuleGUI.zip aMuleGUI.app/ > /dev/null
+zip -9 -j ${SRC_FOLDER}/docs/README.Mac.txt ${SRC_FOLDER}/docs/COPYING > /dev/null
+echo "Done"
 echo ""
diff --git a/src/utils/scripts/MacOSX/defs-functions.sh b/src/utils/scripts/MacOSX/defs-functions.sh
index 6745971..27ba5f4 100755
--- a/src/utils/scripts/MacOSX/defs-functions.sh
+++ b/src/utils/scripts/MacOSX/defs-functions.sh
@@ -1,4 +1,4 @@
-# Some helper functions for scripts. 
+# Some helper functions for scripts.
 # (c) 2011 Angel Vidal ( kry at amule.org ))
 # Public domain. Use at your own risk.
 
diff --git a/src/utils/scripts/MacOSX/defs-global.sh b/src/utils/scripts/MacOSX/defs-global.sh
index 391b0cc..277b209 100755
--- a/src/utils/scripts/MacOSX/defs-global.sh
+++ b/src/utils/scripts/MacOSX/defs-global.sh
@@ -42,8 +42,8 @@ fi
 pc $GREEN "\tBuild root absolute path is $ROOT_FOLDER"
 
 if [ "$SDKNUMBER" == "" ]; then
-	pc $BLUE "\tAutomatically setting SDK to 10.4u (tiger with i386 and ppc, gcc 4.0) - set SDKNUMBER to your preferred SDK if you want to target it (10.5, 10.6, 10.7) or \"default\" for the default SDK."
-	SDKNUMBER=10.4
+	pc $BLUE "\tAutomatically setting SDK to 10.6 (Snow Leopard) - set SDKNUMBER to your preferred SDK if you want to target it (10.4, 10.5, 10.6, 10.7) or \"default\" for the default SDK."
+	SDKNUMBER=10.6
 fi
 
 case "$SDKNUMBER" in
@@ -71,8 +71,8 @@ else
 fi
 
 if [ "$UNIVERSAL" == "" ]; then
-	pc $BLUE "\tAutomatically enabling universal (i386, ppc) build. Set UNIVERSAL=NO to build just for the current architecture."
-	UNIVERSAL="YES"
+	pc $BLUE "\tAutomatically disabling universal (i386 and ppc) build. Default architecture will be used. Set UNIVERSAL=YES to build a binary compatible with the ppc architecture."
+	UNIVERSAL="NO"
 fi
 
 case "$UNIVERSAL" in
@@ -82,7 +82,7 @@ case "$UNIVERSAL" in
 	ARCHCONFIGFLAGS=""
 	;;
 "YES"|"yes")
-	pc $GREEN "\tUsing universal build (i386, pcc)" 
+	pc $GREEN "\tUsing universal build (i386, pcc)"
 	ARCHCPPFLAGS="-arch i386 -arch ppc"
 	ARCHCONFIGFLAGS="--enable-universal_binary"
 	CCVERSION="-4.0"
diff --git a/src/utils/scripts/MacOSX/defs-wx.sh b/src/utils/scripts/MacOSX/defs-wx.sh
index 9d86ee4..a2f63e9 100755
--- a/src/utils/scripts/MacOSX/defs-wx.sh
+++ b/src/utils/scripts/MacOSX/defs-wx.sh
@@ -1,4 +1,4 @@
-# Definitions for MacOSX compilation of wxWidgets. 
+# Definitions for MacOSX compilation of wxWidgets.
 # (c) 2011 Angel Vidal ( kry at amule.org )
 # Public domain. Use at your own risk.
 
@@ -39,7 +39,7 @@ case "$WXPORT" in
 COCOA|cocoa)
 	if [ "$WXVERSION" == "2.8" ]; then
 		pc $RED "The $WXWIDGETS port on wxWidgets $WXVERSION is unusable for this application. Please select a different port, or a different wxWidgets version."
- 		exit
+		exit
 	fi
 	PORTFLAGS="--with-cocoa"
 	;;
@@ -50,7 +50,7 @@ CARBON|carbon)
 	pc $RED "Valid WXPORT values are cocoa and carbon."
 	exit
 	;;
-esac	
+esac
 
 pc $GREEN "\tUsing wxWidgets $WXPORT port."
 
diff --git a/src/utils/scripts/MacOSX/full_build.sh b/src/utils/scripts/MacOSX/full_build.sh
index ef47916..0e81063 100755
--- a/src/utils/scripts/MacOSX/full_build.sh
+++ b/src/utils/scripts/MacOSX/full_build.sh
@@ -99,12 +99,12 @@ else
 	svn checkout http://svn.wxwidgets.org/svn/wx/wxWidgets/${WXSVNROOT} ${WXFOLDER} >> $STDOUT_FILE 2>> $ERROR_FILE
 	pushd ${WXFOLDER} >> $STDOUT_FILE
 	echo -e "\tApplying patches."
-	for i in $AMULE_FOLDER/src/utils/patches/wxWidgets/*.patch; do 
+	for i in $AMULE_FOLDER/src/utils/patches/wxWidgets/*.patch; do
 		echo -e "\t\tAppying \"$i\""
 		patch -p0 < $i >> $STDOUT_FILE 2>> $ERROR_FILE
 	done
 	popd >> $STDOUT_FILE
-fi	
+fi
 echo -e "\tDone"
 
 echo -e "\tConfiguring wxWidgets..."
@@ -112,7 +112,7 @@ echo -e "\tConfiguring wxWidgets..."
 pushd ${WXFOLDER} > $STDOUT_FILE
 
 if [ "$SDKNUMBER" == "" ]; then
-	WX_SDK_FLAGS=""	
+	WX_SDK_FLAGS=""
 else
 	WX_SDK_FLAGS="--with-macosx-sdk=/Developer/SDKs/MacOSX${SDKRELEASE}.sdk \
 	--with-macosx-version-min=$SDKNUMBER"
@@ -151,16 +151,16 @@ CRYPTOPP_URL=`curl -sS http://www.cryptopp.com/ | grep -oE "http://.*/cryptopp/c
 echo -e "\tGetting cryptopp sources..."
 
 if [ -d $CRYPTOPP_FOLDER_INST ]; then
-	echo -e "\t\t$CRYPTOPP_FOLDER_INST already exists, skipping (delete and rerun script to get new sources)"	
+	echo -e "\t\t$CRYPTOPP_FOLDER_INST already exists, skipping (delete and rerun script to get new sources)"
 else
 	mkdir $CRYPTOPP_FOLDER
 	mkdir $CRYPTOPP_FOLDER_INST
 	curl -L -o cryptopp.zip $CRYPTOPP_URL >> $STDOUT_FILE 2>> $ERROR_FILE
 	unzip cryptopp.zip -d $CRYPTOPP_FOLDER >> $STDOUT_FILE 2>> $ERROR_FILE
-	pushd $CRYPTOPP_FOLDER >> $STDOUT_FILE 
-	#./configure 
-	for i in $AMULE_FOLDER/src/utils/patches/cryptopp/*.patch; do 
-		echo -e "\t\tAppying \"$i\"" 
+	pushd $CRYPTOPP_FOLDER >> $STDOUT_FILE
+	#./configure
+	for i in $AMULE_FOLDER/src/utils/patches/cryptopp/*.patch; do
+		echo -e "\t\tAppying \"$i\""
 		patch -p0 < $i >> $STDOUT_FILE 2>> $ERROR_FILE
 	done
 	#cp ../GNUMakefile .
@@ -168,7 +168,7 @@ else
 	CC=gcc$CCVERSION CXX=g++$CCVERSION CPP=cpp$CCVERSION LD=g++$CCVERSION \
 		CXXFLAGS="-pthread $ARCHCPPFLAGS $SDK" CFLAGS="-pthread $ARCHCPPFLAGS $SDK" LDFLAGS="-pthread $SDK" make > $STDOUT_FILE 2> $ERROR_FILE
 	PREFIX=${ROOT_FOLDER}/$CRYPTOPP_FOLDER_INST make install >> $STDOUT_FILE 2>> $ERROR_FILE
-	popd >> $STDOUT_FILE 
+	popd >> $STDOUT_FILE
 	rm cryptopp.zip >> $STDOUT_FILE 2>> $ERROR_FILE
 	rm -rf $CRYPTOPP_FOLDER >> $STDOUT_FILE 2>> $ERROR_FILE
 fi
@@ -213,13 +213,13 @@ LIBUPNP_FOLDER_INST="libupnp-inst"
 LIBUPNP_URL=`curl -sS http://sourceforge.net/projects/pupnp/files/ | grep -m 1 -ioE "http://sourceforge.net/[^\"]+/libupnp-([0-9]+\.)+tar.bz2/download" | head -1`
 
 if [ -d $LIBUPNP_FOLDER_INST ]; then
-	echo -e "\t\t$LIBUPNP_FOLDER_INST already exists, skipping"	
+	echo -e "\t\t$LIBUPNP_FOLDER_INST already exists, skipping"
 else
 	mkdir $LIBUPNP_FOLDER >> $STDOUT_FILE 2>> $ERROR_FILE
 	mkdir $LIBUPNP_FOLDER_INST >> $STDOUT_FILE 2>> $ERROR_FILE
 	curl -L -o libupnp.tar.bz2 $LIBUPNP_URL  >> $STDOUT_FILE 2>> $ERROR_FILE
 	pushd $LIBUPNP_FOLDER >> $STDOUT_FILE 2>> $ERROR_FILE
-	echo -e "\t\tCompiling libupnp..."	
+	echo -e "\t\tCompiling libupnp..."
 	tar --strip-components 1 -jxf ../libupnp.tar.bz2 >> $STDOUT_FILE 2>> $ERROR_FILE
 	./configure CC=gcc$CCVERSION CXX=g++$CCVERSION CPP=cpp$CCVERSION LD=g++$CCVERSION CXXFLAGS="-pthread $ARCHCPPFLAGS $SDK" \
 		CFLAGS="-pthread $ARCHCPPFLAGS $SDK" LDFLAGS="-pthread $SDK" --disable-dependency-tracking \
@@ -242,13 +242,13 @@ LIBGEOIP_FOLDER_INST="libgeoip-inst"
 LIBGEOIP_URL="http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz"
 
 if [ -d $LIBGEOIP_FOLDER_INST ]; then
-	echo -e "\t\t$LIBGEOIP_FOLDER_INST already exists, skipping"	
+	echo -e "\t\t$LIBGEOIP_FOLDER_INST already exists, skipping"
 else
 	mkdir $LIBGEOIP_FOLDER >> $STDOUT_FILE 2>> $ERROR_FILE
 	mkdir $LIBGEOIP_FOLDER_INST >> $STDOUT_FILE 2>> $ERROR_FILE
 	curl -L -o libgeoip.tar.gz $LIBGEOIP_URL >> $STDOUT_FILE 2>> $ERROR_FILE
 	pushd $LIBGEOIP_FOLDER >> $STDOUT_FILE 2>> $ERROR_FILE
-	echo -e "\t\tCompiling GeoIP..." 
+	echo -e "\t\tCompiling GeoIP..."
 	tar --strip-components 2 -zxf ../libgeoip.tar.gz >> $STDOUT_FILE 2>> $ERROR_FILE
 	./configure CC=gcc$CCVERSION CXX=g++$CCVERSION CPP=cpp$CCVERSION LD=g++$CCVERSION CXXFLAGS="-pthread $ARCHCPPFLAGS $SDK" \
 		CFLAGS="-pthread $ARCHCPPFLAGS $SDK" LDFLAGS="-pthread $SDK" --disable-dependency-tracking \
@@ -268,20 +268,20 @@ echo -e "\tGetting pkg-config sources..."
 
 PKGCFG_FOLDER="pkgcfg-source"
 PKGCFG_FOLDER_INST="pkgcfg-inst"
-# pkgconfig introduced a dependency on glib to build on 0.26, and I refuse to build the whole glib for this. 
-# On top of it, glib uses pkgconfig to configure itself... 
+# pkgconfig introduced a dependency on glib to build on 0.26, and I refuse to build the whole glib for this.
+# On top of it, glib uses pkgconfig to configure itself...
 #PKGCFG_FILE=`curl -sS http://pkgconfig.freedesktop.org/releases/ | grep -ioE "pkg-config-([0-9]+\.)+tar.gz" | uniq | sort -r | head -1`
 #PKGCFG_URL="http://pkgconfig.freedesktop.org/releases/${PKGCFG_FILE}"
 PKGCFG_URL="http://pkgconfig.freedesktop.org/releases/pkg-config-0.25.tar.gz"
 
 if [ -f $PKGCFG_FOLDER_INST/bin/pkg-config ]; then
-	echo -e "\t\t$PKGCFG_FOLDER_INST already exists, skipping"	
+	echo -e "\t\t$PKGCFG_FOLDER_INST already exists, skipping"
 else
 	mkdir $PKGCFG_FOLDER >> $STDOUT_FILE 2>> $ERROR_FILE
 	mkdir $PKGCFG_FOLDER_INST >> $STDOUT_FILE 2>> $ERROR_FILE
 	curl -L -o pkgcfg.tar.gz $PKGCFG_URL >> $STDOUT_FILE 2>> $ERROR_FILE
 	pushd $PKGCFG_FOLDER >> $STDOUT_FILE 2>> $ERROR_FILE
-	echo -e "\t\tCompiling pkg-config..."	
+	echo -e "\t\tCompiling pkg-config..."
 	tar --strip-components 1 -zxf ../pkgcfg.tar.gz >> $STDOUT_FILE 2>> $ERROR_FILE
 	./configure CC=gcc$CCVERSION CXX=g++$CCVERSION CPP=cpp$CCVERSION LD=g++$CCVERSION CXXFLAGS="-pthread $ARCHCPPFLAGS $SDK" \
 		CFLAGS="-pthread $ARCHCPPFLAGS $SDK" LDFLAGS="-pthread $SDK" --disable-dependency-tracking \
@@ -302,7 +302,7 @@ echo -e "\tDone."
 
 # aMule
 
-echo -e "\tFINALLY compiling aMule..."
+echo -e "\tFINALLY compiling aMule and aMuleGUI ..."
 
 pushd $AMULE_FOLDER >> $STDOUT_FILE 2>> $ERROR_FILE
 
@@ -341,7 +341,7 @@ if [ "$MULECLEAN" == "YES" ]; then
 	--with-libintl-prefix=${ROOT_FOLDER}/${GETTEXT_FOLDER_INST} \
 	--with-libupnp-prefix=${ROOT_FOLDER}/${LIBUPNP_FOLDER_INST} \
 	--with-geoip-static --with-geoip-headers=${ROOT_FOLDER}/${LIBGEOIP_FOLDER_INST}/include --with-geoip-lib=${ROOT_FOLDER}/${LIBGEOIP_FOLDER_INST}/lib/ \
-	--disable-cas --disable-webserver --disable-amulecmd --disable-amule-gui --disable-wxcas --disable-alc --disable-alcc --disable-amule-daemon \
+	--disable-cas --disable-webserver --disable-amulecmd --enable-amule-gui --disable-wxcas --disable-alc --disable-alcc --disable-amule-daemon \
 	--prefix=${ROOT_FOLDER}/amule-inst/ >> $STDOUT_FILE 2>> $ERROR_FILE
 
 	echo -e "\t\tCleaning compilation"
@@ -365,14 +365,17 @@ popd >> $STDOUT_FILE 2>> $ERROR_FILE
 
 echo -e "Getting application bundle and packaging"
 
-rm -rf aMule.app aMule.zip >> $STDOUT_FILE 2>> $ERROR_FILE
+rm -rf aMule.app aMule.zip aMuleGUI.app aMuleGUI.zip >> $STDOUT_FILE 2>> $ERROR_FILE
 
 cp -R ${AMULE_FOLDER}/aMule.app . >> $STDOUT_FILE 2>> $ERROR_FILE
+cp -R ${AMULE_FOLDER}/aMuleGUI.app . >> $STDOUT_FILE 2>> $ERROR_FILE
 
 find aMule.app \( -name .svn -o -name "Makefile*" -o -name src \) -print0 | xargs -0 rm -rf >> $STDOUT_FILE 2>> $ERROR_FILE
+find aMuleGUI.app \( -name .svn -o -name "Makefile*" -o -name src \) -print0 | xargs -0 rm -rf >> $STDOUT_FILE 2>> $ERROR_FILE
 
 echo -e "Copying i18n files..."
 cp -r amule-inst/share/locale aMule.app/Contents/SharedSupport/
+cp -r amule-inst/share/locale aMuleGUI.app/Contents/SharedSupport/
 echo -e "Done."
 
 . application_packager.sh ${AMULE_FOLDER}/ >> $STDOUT_FILE 2>> $ERROR_FILE
diff --git a/src/utils/scripts/check_defines.pl b/src/utils/scripts/check_defines.pl
index 207e494..b0ba530 100755
--- a/src/utils/scripts/check_defines.pl
+++ b/src/utils/scripts/check_defines.pl
@@ -23,14 +23,14 @@
 #
 # To speed up compilation we compile some files used in amule, amuled, amulegui
 # into libs which we link to the apps.
-# This concept can only work if the files (or their includes) don't use 
+# This concept can only work if the files (or their includes) don't use
 # preprocessor macros used to tell these projects apart.
 #
 # This script checks for usage of these macros.
 # It has to be run from the src dir after running configure to build the deps.
 #
 
-use warnings; 
+use warnings;
 use strict;
 use Cwd;
 
diff --git a/src/utils/scripts/denoiser.rules b/src/utils/scripts/denoiser.rules
index a7a6c39..21b2226 100644
--- a/src/utils/scripts/denoiser.rules
+++ b/src/utils/scripts/denoiser.rules
@@ -7,12 +7,12 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -176,6 +176,13 @@ MAKEFLAGS=-w -s
 		b 0
 	}
 
+	# ship the check target, otherwise test results would be stripped
+	/^check-TESTS$/ {
+		s/.*//
+		x
+		b 0
+	}
+
 	# do some output based on rule target
 	/\.o$/ {
 		i\
diff --git a/src/utils/scripts/id2ip b/src/utils/scripts/id2ip
index 3edbfa5..93e3767 100755
--- a/src/utils/scripts/id2ip
+++ b/src/utils/scripts/id2ip
@@ -10,12 +10,12 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/utils/scripts/kadnodescreate.pl b/src/utils/scripts/kadnodescreate.pl
index 4553041..aaf7e1b 100755
--- a/src/utils/scripts/kadnodescreate.pl
+++ b/src/utils/scripts/kadnodescreate.pl
@@ -21,7 +21,7 @@
 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 
 use File::Copy;
-use warnings; 
+use warnings;
 use strict;
 
 my $exit_with_help;
@@ -93,15 +93,15 @@ foreach $contact (@ARGV) {
 		print "\t\t\tUDPPort : " . $udpport . "\n";
 		print "\t\t\tType    : " . $type . "\n";
 
-		print MET	&hash_string($1) . 
-				&int32_string($ip) .	
-				&int16_string($tcpport) . 
-				&int16_string($udpport) . 
+		print MET	&hash_string($1) .
+				&int32_string($ip) .
+				&int16_string($tcpport) .
+				&int16_string($udpport) .
 				&byte_string($type);
 	} else {
 		die "Malformed contact line, can't continue: " . $contact . "\n";
-	} 
-}	
+	}
+}
 
 print "Closing nodes.dat\n\n";
 close(MET);
diff --git a/src/utils/scripts/linkcvs b/src/utils/scripts/linkcvs
index 0981b02..6ed82f0 100755
--- a/src/utils/scripts/linkcvs
+++ b/src/utils/scripts/linkcvs
@@ -9,12 +9,12 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/utils/scripts/logfilter b/src/utils/scripts/logfilter
index 58364e2..aae59f9 100755
--- a/src/utils/scripts/logfilter
+++ b/src/utils/scripts/logfilter
@@ -8,12 +8,12 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -35,14 +35,14 @@ while line:
 		if foundNick:
 			print ("-" * 72)
 			print line.strip()
-	
+
 		# Check for -q
 		if line.count("|") > 2:
 			lineCount = int(line.split("|")[-1].split()[0])
 			line = sys.stdin.readline()
 
 			if foundNick: print line.rstrip()
-				
+
 			if line.strip() == "Changed paths:":
 				line = sys.stdin.readline()
 				while line.strip():
@@ -50,7 +50,7 @@ while line:
 					line = sys.stdin.readline()
 
 				if foundNick: print
-			
+
 			for i in range(lineCount):
 				line = sys.stdin.readline()
 				if foundNick: print line.rstrip()
diff --git a/src/utils/scripts/mldonkey_importer.pl b/src/utils/scripts/mldonkey_importer.pl
index b138ff8..7692588 100755
--- a/src/utils/scripts/mldonkey_importer.pl
+++ b/src/utils/scripts/mldonkey_importer.pl
@@ -23,7 +23,7 @@
 # Gimme a break, is my first perl app... (Kry)
 
 use File::Copy;
-use warnings; 
+use warnings;
 use strict;
 
 my $exit_with_help;
@@ -59,7 +59,7 @@ while ($line !~ /^\s*files\s*=\s*\[\s*$/) {
 	if (!($line)) {
 		die $input_folder . "/files.ini seems not to be a mldonkey files.ini\n";
 	}
-	chop $line;	
+	chop $line;
 }
 
 #We're at the start of the downloading files section.
@@ -135,8 +135,8 @@ sub read_file_info {
 			if ($result eq "done") {
 				print "MD4 list: @md4_list\n";
 			}
-			
-			
+
+
 		}
 
 		if ($line =~ /^\s*file_present_chunks\s*=\s*\[\s*$/) {
@@ -160,15 +160,15 @@ sub read_file_info {
 			if ($result eq "done") {
 				# Process mldonkey gaps to aMule gaps
 				print "ML Gaps list: @ml_gaps\n";
-				
+
 				@gap_list = &convert_gap_format($file_size, at ml_gaps);
-				
+
 				print "aMule Gaps list: @gap_list\n";
 			}
-			
-			
+
+
 		}
-		
+
 		if ($done ne "true") {
 			$line = <INFO>;
 		}
@@ -181,19 +181,19 @@ sub read_file_info {
 			if (!(@md4_list)) {
 				print "WARNING: File has no md4 hashes list, imported file will have 0 bytes downloaded\n";
 			}
-			
+
 			my $first_free_number = &get_first_free_number;
-			
+
 			my $met_file = $output_folder . sprintf("/%03d.part.met",$first_free_number);
 
 			&create_met_file($met_file,$file_name,$file_size,$md4_hash, at md4_list,"---", at gap_list);
 
 			print "File $met_file imported successfully.\n";
-			
+
 			my $from = $input_folder . "/" . $part_file;
 			my $destination = $output_folder . sprintf("/%03d.part",$first_free_number);
 			copy($from, $destination) or die "CRITICAL: File $from cannot be copied to $destination. Error: $!\n";
-			
+
 		} else {
 			print "Not enough info to import file, sorry.\n";
 		}
@@ -228,28 +228,28 @@ sub create_met_file {
 
 	#Calculate number of MD4 hashes
 	my @md4_hashlist = ();
-	
+
 	my $i = 4;
-	
+
 	while ($_[$i] ne "---") {
 		push (@md4_hashlist,$_[$i]);
 		$i++;
 	}
-	
+
 	$i++;
-	
+
 	my @gaps_list = ();
 	while ($_[$i]) {
 		push(@gaps_list,$_[$i]);
 		$i++;
 	}
-	
+
 	print "Write aMule gap list: @gaps_list\n";
-	
+
 	my $md4_hashsize = @md4_hashlist;
-	
+
 	print "MD4 hashlist size $md4_hashsize\n";
-	
+
 	#Number of MD4 hashes (2 bytes)
 	print MET &int16_string($md4_hashsize);
 
@@ -257,46 +257,46 @@ sub create_met_file {
 	my $md4_parthash = "";
 	foreach $md4_parthash (@md4_hashlist) {
 		print MET &hash_string($md4_parthash);
-	}	
+	}
 
 	#Number of tags (4 bytes)
-	
+
 	my $tags_number = 2; # Fixed tags (Name + Size)
 
 	$tags_number = $tags_number + @gaps_list;
-	
+
 	print MET &int32_string($tags_number);
-	
+
 	#Name tag (x bytes)
-	
+
 	print MET &tag_string(2,0,0x01,$_[1]); # Tagtype string, id FT_FILENAME, value
-	
+
 	#Size tag (x bytes)
-	
+
 	if ($large_file eq "yes") {
-		print MET &tag_string(0x0b,0,0x02,$_[2]); # Tagtype UINT64, id FT_FILESIZE, value	
+		print MET &tag_string(0x0b,0,0x02,$_[2]); # Tagtype UINT64, id FT_FILESIZE, value
 	} else {
 		print MET &tag_string(3,0,0x02,$_[2]); # Tagtype UINT32, id FT_FILESIZE, value
 	}
-	
+
 	my $t = 0;
 
 	my $tag_type;
 	if ($large_file eq "yes") {
 		$tag_type = 0x0b;
 	} else {
-		$tag_type = 0x03;		
+		$tag_type = 0x03;
 	}
 
 	while (@gaps_list[$t*2]) {
 		my $gap_start = @gaps_list[$t*2];
 		my $gap_end = @gaps_list[$t*2+1];
-		
+
 		print "Gap $t start $gap_start end $gap_end\n";
-		
+
 		print MET &tag_string($tag_type,1,sprintf("%c%d",0x09,$t),$gap_start);
 		print MET &tag_string($tag_type,1,sprintf("%c%d",0x0a,$t),$gap_end);
-		
+
 		$t++;
 	}
 
@@ -333,10 +333,10 @@ sub tag_string {
 	# ONLY STRINGS AND UINT32/64 SUPPORTED
 
 	my $final_string = "";
-	
+
 	# Tag type
 	$final_string = $final_string . &byte_string($_[0]);
-	
+
 	if ($_[1] == 0) {
 		# Byte ID tag
 		$final_string = $final_string . &int16_string(1);
@@ -372,8 +372,8 @@ sub convert_gap_format {
 	if ($_[1] != 0) {
 		push(@converted_gaps,0);
 		push(@converted_gaps,$_[1]);
-	} 
-	
+	}
+
 	$n++;
 
 	while ($_[$n+1]) {
@@ -381,24 +381,21 @@ sub convert_gap_format {
 		push(@converted_gaps,$_[$n+1]);
 		$n += 2;
 	}
-	
+
 	if ($_[$n] != $total_size) {
 		push(@converted_gaps,$_[$n]);
 		push(@converted_gaps,$total_size);
 	}
-	
+
 	@converted_gaps;
 }
 
 sub get_first_free_number {
 	my $n = 1;
-	my $result = 0;
-	
-	while (!$result && !($n>999)) {
-		open(TEST, " <" . $output_folder . sprintf("/%03d.part.met",$n)) or $result=$n;
-		close(TEST);
+
+	while (-f sprintf("$output_folder/%03d.part.met",$n)) {
 		$n++;
 	}
-	
-	$result;
+
+	$n;
 }
diff --git a/src/utils/scripts/version_bumper b/src/utils/scripts/version_bumper
index d938779..a30ea1a 100755
--- a/src/utils/scripts/version_bumper
+++ b/src/utils/scripts/version_bumper
@@ -45,10 +45,10 @@ else
 		fi
 		if test x"`echo "$OLD_VERSION" | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+"`" != x"$OLD_VERSION"; then
 			echo "Specified old version ($OLD_VERSION) does not conform to a.b.c form."
-		else 
+		else
 			if test x"`echo "$NEW_VERSION" | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+"`" != x"$NEW_VERSION"; then
-        	                echo "Specified new version ($NEW_VERSION) does not conform to a.b.c form."
-	        	else
+				echo "Specified new version ($NEW_VERSION) does not conform to a.b.c form."
+			else
 				echo "Bumping from $OLD_VERSION to $NEW_VERSION"
 				#Command:
 				sed -i "s/$OLD_VERSION/$NEW_VERSION/g" aMule.app/Contents/Info.plist configure.in src/include/common/ClientVersion.h docs/Doxyfile aMule.spec po/*.po
diff --git a/src/utils/scripts/whitespace_fixer b/src/utils/scripts/whitespace_fixer
new file mode 100755
index 0000000..ceb3e1f
--- /dev/null
+++ b/src/utils/scripts/whitespace_fixer
@@ -0,0 +1,52 @@
+#!/bin/sh -eu
+
+if [ ! -f './configure.in' ]; then
+	echo "Error: You must run this script from the source root directory!"
+	exit 1
+fi
+
+find . \( \
+		-name '.svn' -o \
+		-path './.git' -o \
+		-path './.hg' -o \
+		-path './autom4te.cache' -o \
+		-path './docs/Doxyfile' -o \
+		-name '.deps' -o \
+		-name 'Makefile' -o \
+		-name 'Makefile.in' -o \
+		-name 'ECCodes.h' -o \
+		-name 'ECCodes.java' -o \
+		-name 'ECTagTypes.h' -o \
+		-name 'ECTagTypes.java' -o \
+		-path './src/IPFilterScanner.cpp' -o \
+		-path './src/IPFilterScanner.h' -o \
+		-path './src/Parser.cpp' -o \
+		-path './src/Parser.hpp' -o \
+		-path './src/Scanner.cpp' -o \
+		-path './src/Scanner.h' -o \
+		-path './src/utils/aLinkCreator/src/alcpix.cpp' -o \
+		-path './src/utils/wxCas/src/wxcaspix.cpp' -o \
+		-path './src/utils/scripts/denoiser.rules' -o \
+		-path './src/webserver/src/php_lexer.c' -o \
+		-path './src/webserver/src/php_lexer.h' -o \
+		-path './src/webserver/src/php_parser.c' -o \
+		-path './src/webserver/src/php_parser.h' -o \
+		-path './unittests/tests/TextFileTest_dos.txt' -o \
+		-path './unittests/tests/TextFileTest_unix.txt' -o \
+		-name 'muuli_wdr.*' -o \
+		-name '*~' -o \
+		-name '*.o' -o \
+		-name '*.a' -o \
+		-name '*.wdr' -o \
+		-name '*.png' -o \
+		-name '*.gif' -o \
+		-name '*.ico' -o \
+		-name '*.gmo' -o \
+		-name '*.xpm' -o \
+		-name '*.1' \
+	\) -prune -o \
+	-type f -a \
+	-exec /bin/sh -c "file {} | grep -q text" ';' -a \
+	-print0 | \
+xargs -0t -n 1 \
+	sed -i -e 's/[\t ]\+$//;s/ \+\t/\t/g'
diff --git a/src/utils/scripts/wikify_latest_changelog b/src/utils/scripts/wikify_latest_changelog
index 7621665..d991321 100755
--- a/src/utils/scripts/wikify_latest_changelog
+++ b/src/utils/scripts/wikify_latest_changelog
@@ -23,14 +23,14 @@ if test x"`ls docs/Changelog`" = x""; then
   echo "This script must be run on aMule base directory."
 else
   CHANGELOG="Changelog-`grep -h -E 'Version [0-9]\.[0-9]+\.[0-9]+.*' docs/Changelog | head -n 1 | cut -d ' ' -f 2`"
-  head -n `grep -hn -E '(\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-)+' docs/Changelog | cut -d ':' -f 1 | head -1` docs/Changelog > $CHANGELOG 
+  head -n `grep -hn -E '(\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-)+' docs/Changelog | cut -d ':' -f 1 | head -1` docs/Changelog > $CHANGELOG
   sed -i -r "s/\t([A-Z,a-z].+):$/'''\1:'''/g" $CHANGELOG
   sed -i -r "s/^(Version .+)$/=== \1 ===/g" $CHANGELOG
   sed -i -r "s/^----------$//g" $CHANGELOG
   sed -i -r "s/^([0-9][0-9][0-9][0-9]-[0-9][0-9]?-[0-9][0-9]?)$/''\1''/g" $CHANGELOG
   sed -i -r "s/\t+(\*? .+)$/\1/g" $CHANGELOG
-  while test x"`grep -E '^\s+.+$' $CHANGELOG`" != x""; do 
-    sed -i -r "N 
+  while test x"`grep -E '^\s+.+$' $CHANGELOG`" != x""; do
+    sed -i -r "N
 		s/^(\*?.*)\n\s+([^\*]+)$/\1 \2/g " $CHANGELOG;
   done
   echo "$CHANGELOG created."
diff --git a/src/utils/wxCas/Makefile.in b/src/utils/wxCas/Makefile.in
index e56b444..f66427d 100644
--- a/src/utils/wxCas/Makefile.in
+++ b/src/utils/wxCas/Makefile.in
@@ -39,23 +39,23 @@ DIST_COMMON = $(dist_icon_DATA) $(dist_util_DATA) \
 	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -151,6 +151,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -177,6 +183,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -267,6 +274,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/utils/wxCas/docs/Makefile.am b/src/utils/wxCas/docs/Makefile.am
index 8c62354..2f47d89 100644
--- a/src/utils/wxCas/docs/Makefile.am
+++ b/src/utils/wxCas/docs/Makefile.am
@@ -1,6 +1,6 @@
 SELECTED_MANPAGES = $(WXCAS_MANPAGES)
 
-EXTRA_DIST = wxcas.1 wxcas.de.1 wxcas.es.1 wxcas.fr.1 wxcas.hu.1 wxcas.it.1 wxcas.ru.1 wxcas.tr.1
+EXTRA_DIST = wxcas.1 wxcas.de.1 wxcas.es.1 wxcas.fr.1 wxcas.hu.1 wxcas.it.1 wxcas.ru.1 wxcas.tr.1 wxcas.zh_TW.1
 
 include $(top_srcdir)/automake/manpages.am
 
diff --git a/src/utils/wxCas/docs/Makefile.in b/src/utils/wxCas/docs/Makefile.in
index 673ac59..8020b7d 100644
--- a/src/utils/wxCas/docs/Makefile.in
+++ b/src/utils/wxCas/docs/Makefile.in
@@ -38,23 +38,23 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 subdir = src/utils/wxCas/docs
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -87,6 +87,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -113,6 +119,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -203,6 +210,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -288,7 +296,7 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SELECTED_MANPAGES = $(WXCAS_MANPAGES)
-EXTRA_DIST = wxcas.1 wxcas.de.1 wxcas.es.1 wxcas.fr.1 wxcas.hu.1 wxcas.it.1 wxcas.ru.1 wxcas.tr.1
+EXTRA_DIST = wxcas.1 wxcas.de.1 wxcas.es.1 wxcas.fr.1 wxcas.hu.1 wxcas.it.1 wxcas.ru.1 wxcas.tr.1 wxcas.zh_TW.1
 MAINTAINERCLEANFILES = Makefile.in
 all: all-am
 
diff --git a/src/utils/wxCas/docs/wxcas.zh_TW.1 b/src/utils/wxCas/docs/wxcas.zh_TW.1
new file mode 100644
index 0000000..f3c649b
--- /dev/null
+++ b/src/utils/wxCas/docs/wxcas.zh_TW.1
@@ -0,0 +1,27 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH WXCAS 1 "2011 十一月" wxCas "aMule 的工具程式"
+.als B_untranslated B
+.SH 名稱
+wxcas \- 以 C 語言、wxWidgets 撰寫的 aMule 統計資訊程式
+.SH 簡介
+.B_untranslated wxcas
+.SH 說明
+\fBwxcas\fP 是可以在桌面以更佳的 wx 視窗顯示你的 aMule 線上簽名識別檔的程式。要使用這個功能,你必須在偏好設定裏啟用「線上簽名識別」。
+
+改寫自 Pedro de Oliveira 的 \fBcas\fP(1), \fBwxcas\fP的作者:ThePolish
+<thepolish at vipmail.ru>
+
+這個應用程式不接受任何引數。
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated amule\fR(1), \fBcas\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/src/utils/wxCas/src/Makefile.am b/src/utils/wxCas/src/Makefile.am
index 8d4bcaa..4f70b50 100644
--- a/src/utils/wxCas/src/Makefile.am
+++ b/src/utils/wxCas/src/Makefile.am
@@ -11,7 +11,7 @@ wxcas_SOURCES = onlinesig.cpp \
 		wxcasframe.cpp \
 		wxcasprefs.cpp \
 		wxcascte.cpp \
-		wxcaspix.cpp	
+		wxcaspix.cpp
 
 noinst_HEADERS = onlinesig.h \
 		linuxmon.h \
diff --git a/src/utils/wxCas/src/Makefile.in b/src/utils/wxCas/src/Makefile.in
index 959704f..173a787 100644
--- a/src/utils/wxCas/src/Makefile.in
+++ b/src/utils/wxCas/src/Makefile.in
@@ -42,23 +42,23 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -117,6 +117,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -143,6 +149,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -233,6 +240,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -327,7 +335,7 @@ wxcas_SOURCES = onlinesig.cpp \
 		wxcasframe.cpp \
 		wxcasprefs.cpp \
 		wxcascte.cpp \
-		wxcaspix.cpp	
+		wxcaspix.cpp
 
 noinst_HEADERS = onlinesig.h \
 		linuxmon.h \
diff --git a/src/utils/wxCas/src/linuxmon.cpp b/src/utils/wxCas/src/linuxmon.cpp
index d00050a..e87c429 100644
--- a/src/utils/wxCas/src/linuxmon.cpp
+++ b/src/utils/wxCas/src/linuxmon.cpp
@@ -28,15 +28,6 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
 #include "linuxmon.h"
 
 #include <wx/txtstrm.h>
diff --git a/src/utils/wxCas/src/linuxmon.h b/src/utils/wxCas/src/linuxmon.h
index 6ea76a1..26e8007 100644
--- a/src/utils/wxCas/src/linuxmon.h
+++ b/src/utils/wxCas/src/linuxmon.h
@@ -31,15 +31,6 @@
 #define _LINUXMON_H
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
 #include <wx/filename.h>
 
 /// Linux Monitoring
diff --git a/src/utils/wxCas/src/onlinesig.cpp b/src/utils/wxCas/src/onlinesig.cpp
index 72a6fe8..3543e54 100644
--- a/src/utils/wxCas/src/onlinesig.cpp
+++ b/src/utils/wxCas/src/onlinesig.cpp
@@ -28,15 +28,6 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
 #include "onlinesig.h"
 
 #include <wx/txtstrm.h>
@@ -54,7 +45,7 @@ OnLineSig::OnLineSig ( const wxFileName& file,
 
 	m_absoluteMaxDL = absoluteMaxDL;
 	m_absoluteMaxDlDate = absoluteMaxDlDate;
-	
+
 	m_isSessionMaxDlReseted = false;
 	m_isAbsoluteMaxDlReseted = false;
 
@@ -76,7 +67,7 @@ OnLineSig::SetAmuleSig ( const wxFileName& file )
 void
 OnLineSig::Refresh ()
 {
-	wxFile file; 
+	wxFile file;
 	if ( file.Open(m_amulesig.GetFullPath ()) ) {
 		wxFileInputStream input ( file );
 
@@ -125,7 +116,7 @@ OnLineSig::Refresh ()
 		}
 	}
 	file.Close();
-	
+
 }
 
 int OnLineSig::GetAmuleState() const
@@ -267,7 +258,7 @@ wxString OnLineSig::GetConnexionIDType () const
 		return ( wxString ( _( "HighID" ) ) );
 	} else if ( m_connexionID == wxT( "L" ) ) {
                 return ( wxString ( _( "LowID" ) ) );
-	}	
+	}
 	else {
 		return ( wxString ( _( "Not Connected" ) ) );
 	}
diff --git a/src/utils/wxCas/src/onlinesig.h b/src/utils/wxCas/src/onlinesig.h
index 3849d78..2167c5e 100644
--- a/src/utils/wxCas/src/onlinesig.h
+++ b/src/utils/wxCas/src/onlinesig.h
@@ -31,15 +31,6 @@
 #define _ONLINESIG_H
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
 #include <wx/filename.h>
 #include <wx/datetime.h>
 
diff --git a/src/utils/wxCas/src/wxcas.cpp b/src/utils/wxCas/src/wxcas.cpp
index 883f180..be2e97d 100644
--- a/src/utils/wxCas/src/wxcas.cpp
+++ b/src/utils/wxCas/src/wxcas.cpp
@@ -27,16 +27,6 @@
 /// 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-// For compilers that support precompilation, includes "wx/wx.h"
-
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"             // Needed for PACKAGE
@@ -44,14 +34,15 @@
 #define PACKAGE "amule"
 #endif
 
-#if !wxUSE_PRINTING_ARCHITECTURE
-#error You must set wxUSE_PRINTING_ARCHITECTURE to 1 in setup.h to compile wxCas.
-#endif
-
 #include <wx/config.h>
+#include <wx/image.h>
 
 #include "wxcas.h"
 
+#if !wxUSE_PRINTING_ARCHITECTURE
+#error You must set wxUSE_PRINTING_ARCHITECTURE to 1 in setup.h to compile wxCas.
+#endif
+
 // Application implementation
 IMPLEMENT_APP ( WxCas )
 
@@ -70,7 +61,7 @@ WxCas::OnInit ()
 	wxImage::AddHandler ( new wxJPEGHandler );
 #endif
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	SetPrintMode ( wxPRINT_WINDOWS );
 #else
 	SetPrintMode ( wxPRINT_POSTSCRIPT );
diff --git a/src/utils/wxCas/src/wxcas.h b/src/utils/wxCas/src/wxcas.h
index db64ddb..2232595 100644
--- a/src/utils/wxCas/src/wxcas.h
+++ b/src/utils/wxCas/src/wxcas.h
@@ -31,14 +31,7 @@
 #define _WXCAS_H
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
+#include <wx/app.h>
 
 #include "wxcasframe.h"
 
diff --git a/src/utils/wxCas/src/wxcascte.cpp b/src/utils/wxCas/src/wxcascte.cpp
index a1190f2..96cae5e 100644
--- a/src/utils/wxCas/src/wxcascte.cpp
+++ b/src/utils/wxCas/src/wxcascte.cpp
@@ -27,11 +27,6 @@
 /// 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-// For compilers that support precompilation
-
-#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
 
 #include <wx/filename.h>
 
@@ -43,7 +38,7 @@
 		#include <wx/mac/corefoundation/cfstring.h>  // Do_not_auto_remove
 	#endif
 	#include <wx/intl.h> // Do_not_auto_remove
-#elif defined(__WXMSW__)
+#elif defined(__WINDOWS__ )
 	#include <winerror.h> // Do_not_auto_remove
 	#include <shlobj.h> // Do_not_auto_remove
 	#include <wx/msw/winundef.h>
@@ -147,8 +142,8 @@ wxString GetDefaultAmulesigPath()
 		#endif
 	}
 
-#elif defined(__WXMSW__)
- 
+#elif defined(__WINDOWS__ )
+
 	LPITEMIDLIST pidl;
 
 	HRESULT hr = SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidl);
diff --git a/src/utils/wxCas/src/wxcascte.h b/src/utils/wxCas/src/wxcascte.h
index 5809a81..17ac3ca 100644
--- a/src/utils/wxCas/src/wxcascte.h
+++ b/src/utils/wxCas/src/wxcascte.h
@@ -31,15 +31,6 @@
 #define _WXCASCTE_H
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
 /// Constants used in wxCas
 struct WxCasCte
 {
diff --git a/src/utils/wxCas/src/wxcasframe.cpp b/src/utils/wxCas/src/wxcasframe.cpp
index 9f43749..f874c1c 100644
--- a/src/utils/wxCas/src/wxcasframe.cpp
+++ b/src/utils/wxCas/src/wxcasframe.cpp
@@ -28,19 +28,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
 #include <wx/config.h>
+#include <wx/dcmemory.h>
 #include <wx/datetime.h>
 #include <wx/filedlg.h>
+#include <wx/icon.h>
 #include <wx/image.h>
+#include <wx/log.h>
+#include <wx/msgdlg.h>
 #include <wx/protocol/ftp.h>
 #include <wx/version.h>
 #include <wx/wfstream.h>
@@ -56,7 +51,7 @@ WxCasFrame::WxCasFrame ( const wxString & title ) :
 		wxFrame ( ( wxFrame * ) NULL, -1, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE )
 {
 	// Give it an icon
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	wxIcon icon(wxT("wxcas"));
 #else
 	wxIcon icon;
@@ -107,7 +102,7 @@ WxCasFrame::WxCasFrame ( const wxString & title ) :
 	// Main Panel static line
 	m_staticLine = new wxStaticLine ( m_mainPanel, -1 );
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 
 	m_BottomStaticLine = new wxStaticLine ( m_mainPanel, -1 );
 #endif
@@ -186,7 +181,7 @@ WxCasFrame::WxCasFrame ( const wxString & title ) :
 
 	m_mainPanelVBox->Add ( m_absHitPanelSBoxSizer, 0, wxALL | wxALIGN_CENTER | wxGROW, 10 );
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 
 	m_mainPanelVBox->Add ( m_BottomStaticLine, 0, wxALL | wxALIGN_CENTER | wxGROW );
 #endif
@@ -282,7 +277,7 @@ WxCasFrame::GetStatImage () const
 	wxMemoryDC memdc;
 	memdc.SelectObject ( statBitmap );
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 
 	memdc.
 	SetFont ( wxFont ( 6, wxSWISS, wxNORMAL, wxBOLD ) );
@@ -572,9 +567,9 @@ WxCasFrame::UpdateStatsPanel ()
 	m_statLine_1->SetLabel ( newline );
 
 	newMaxLineCount = GetMaxUInt( newline.Length (), newMaxLineCount );
-	// aMule is stopped 
-	//if ( m_aMuleSig->GetRunTime () == 0 
-	
+	// aMule is stopped
+	//if ( m_aMuleSig->GetRunTime () == 0
+
 	// aMule is not running
 	if ( m_aMuleSig->GetUpStatus () == 0) {
 		status = _( "Oh Oh, aMule is not running..." );
@@ -793,7 +788,7 @@ WxCasFrame::UpdateStatsPanel ()
 		newMaxLineCount = GetMaxUInt( newline.Length (), newMaxLineCount );
 #endif
 		status = _( "aMule is running" );
-	}	
+	}
 	//both disconnected
 	else if ( (m_aMuleSig->GetAmuleState () == 0) && (m_aMuleSig->GetKadState () == 0)) {
 		// Stat line 2
@@ -1040,12 +1035,12 @@ WxCasFrame::MakeStatLine_2() const
 	if ( notTooLongName.Length() > 32 ) {
 		notTooLongName = notTooLongName.Left( 32 ) + wxT( "..." );
 	}
-	
+
 	if ((m_aMuleSig->GetAmuleState () == 0) && (m_aMuleSig->GetKadState() == 0)){
 	wxString newline = m_aMuleSig->GetUser ()
 	                   + _( " is not connected !" );
 	return ( newline );
-	}	
+	}
 	if (m_aMuleSig->GetAmuleState () == 0) {
 	wxString newline = m_aMuleSig->GetUser ()
 	                   + _( " is connected to " )
@@ -1134,7 +1129,7 @@ WxCasFrame::MakeStatLine_7() const
 	wxDateTime now = wxDateTime::Now();
 	wxString newline = _( "Time: " )
 	                   + now.Format( wxDefaultDateTimeFormat , wxDateTime::Local );
-	
+
 	return ( newline );
 }
 
diff --git a/src/utils/wxCas/src/wxcasframe.h b/src/utils/wxCas/src/wxcasframe.h
index e40a707..6cbe8a9 100644
--- a/src/utils/wxCas/src/wxcasframe.h
+++ b/src/utils/wxCas/src/wxcasframe.h
@@ -31,22 +31,20 @@
 #define _WXCASFRAME_H
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
+#include <wx/bitmap.h>
+#include <wx/button.h>
+#include <wx/filename.h>
+#include <wx/frame.h>
+#include <wx/panel.h>
+#include <wx/sizer.h>
+#include <wx/statbox.h>
 #include <wx/statline.h>
-#include <wx/toolbar.h>
+#include <wx/stattext.h>
 #include <wx/timer.h>
-#include <wx/filename.h>
+#include <wx/toolbar.h>
 
-#include "onlinesig.h"
 
+#include "onlinesig.h"
 
 #ifdef __LINUX__		// System monitoring on Linux
 #include "linuxmon.h"
@@ -65,7 +63,7 @@ private:
 	wxPanel *m_mainPanel;
 
 	wxStaticLine *m_staticLine;
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 
 	wxStaticLine *m_BottomStaticLine;
 #endif
diff --git a/src/utils/wxCas/src/wxcaspix.cpp b/src/utils/wxCas/src/wxcaspix.cpp
index a005db2..58db5a7 100644
--- a/src/utils/wxCas/src/wxcaspix.cpp
+++ b/src/utils/wxCas/src/wxcaspix.cpp
@@ -28,15 +28,6 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
 #include "wxcaspix.h"
 
 wxBitmap WxCasPix::getPixmap( const wxString& name )
@@ -62,7 +53,7 @@ wxBitmap WxCasPix::getPixmap( const wxString& name )
 	} else if ( name == wxT( "stop" ) ) {
 		wxBitmap bitmap( m_stop_xpm );
 		return bitmap;
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	} else if ( name == wxT( "wxcas" ) ) {
 		wxBitmap bitmap( m_wxcas_xpm );
 		return bitmap;
@@ -1457,7 +1448,7 @@ WxCasPix::m_stop_xpm[] =
         "!!!!!!!!!!!!!*!!!!!!!!!!!!!!!!!!"
     };
 
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 const char *
 WxCasPix::m_wxcas_xpm[] =
     { /* XPM */
@@ -1687,5 +1678,5 @@ WxCasPix::m_wxcas_xpm[] =
         "+X+X+X4.%.7.7.| '.+.&./ ^ +X+X+X+X_.+X+X+X+X+X+X+X+X+X+X+X+X+X+X",
         "+X+X+X+X3.+./ +.+X+X1.].+X+X+X+X+X_.+X+X+X+X+X+X+X+X+X+X+X+X+X+X"
     };
-#endif /* !__WXMSW__ */
+#endif /* !__WINDOWS__  */
 // File_checked_for_headers
diff --git a/src/utils/wxCas/src/wxcaspix.h b/src/utils/wxCas/src/wxcaspix.h
index ffd0746..90b96a4 100644
--- a/src/utils/wxCas/src/wxcaspix.h
+++ b/src/utils/wxCas/src/wxcaspix.h
@@ -31,14 +31,7 @@
 #define _WXCASPIX_H
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
+#include <wx/bitmap.h>
 
 class WxCasPix
 {
@@ -50,7 +43,7 @@ private:
 	static const char *m_save_xpm[];
 	static const char *m_stat_xpm[];
 	static const char *m_stop_xpm[];
-#ifndef __WXMSW__
+#ifndef __WINDOWS__ 
 	static const char *m_wxcas_xpm[];
 #endif
 
diff --git a/src/utils/wxCas/src/wxcasprefs.cpp b/src/utils/wxCas/src/wxcasprefs.cpp
index 12cd364..d87aad3 100644
--- a/src/utils/wxCas/src/wxcasprefs.cpp
+++ b/src/utils/wxCas/src/wxcasprefs.cpp
@@ -27,18 +27,9 @@
 /// 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-// For compilers that support precompilation, includes "wx/wx.h"
-
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
 
 #include <wx/config.h>
+#include <wx/dirdlg.h>
 
 #include "wxcasprefs.h"
 #include "wxcascte.h"
@@ -390,7 +381,7 @@ WxCasPrefs::OnValidateButton ( wxCommandEvent& WXUNUSED( event ) )
 		// Reload amulesig.dat
 		wxFileName amulesig( m_osPathTextCtrl->GetValue (),
 		                     WxCasCte::AMULESIG_FILENAME );
-		( ( WxCasFrame* ) GetParent() ) ->SetAmuleSigFile( amulesig );
+		dynamic_cast<WxCasFrame*>( GetParent() )->SetAmuleSigFile( amulesig );
 
 		prefs->Write ( WxCasCte::AMULESIG_PATH_KEY,
 		               m_osPathTextCtrl->GetValue () );
@@ -399,7 +390,7 @@ WxCasPrefs::OnValidateButton ( wxCommandEvent& WXUNUSED( event ) )
 	// Restart timer if refresh interval has changed
 	if ( prefs->Read ( WxCasCte::REFRESH_RATE_KEY, WxCasCte::DEFAULT_REFRESH_RATE ) !=
 	        m_refreshSpinButton->GetValue () ) {
-		( ( WxCasFrame* ) GetParent() ) ->ChangeRefreshPeriod( 1000 * m_refreshSpinButton->GetValue () );
+		dynamic_cast<WxCasFrame*>( GetParent() )->ChangeRefreshPeriod( 1000 * m_refreshSpinButton->GetValue () );
 
 		// Write refresh interval
 		prefs->Write ( WxCasCte::REFRESH_RATE_KEY,
@@ -427,7 +418,7 @@ WxCasPrefs::OnValidateButton ( wxCommandEvent& WXUNUSED( event ) )
 			// Restart timer if update interval has changed
 			if ( prefs->Read ( WxCasCte::FTP_UPDATE_RATE_KEY, WxCasCte::DEFAULT_FTP_UPDATE_RATE ) !=
 			        m_ftpUpdateSpinButton->GetValue () ) {
-				( ( WxCasFrame* ) GetParent() ) ->ChangeFtpUpdatePeriod( 60000 * m_refreshSpinButton->GetValue () );
+				dynamic_cast<WxCasFrame*>( GetParent() )->ChangeFtpUpdatePeriod( 60000 * m_refreshSpinButton->GetValue () );
 				prefs->Write ( WxCasCte::FTP_UPDATE_RATE_KEY,
 				               m_ftpUpdateSpinButton->GetValue () );
 			}
diff --git a/src/utils/wxCas/src/wxcasprefs.h b/src/utils/wxCas/src/wxcasprefs.h
index 24eb295..b12a91e 100644
--- a/src/utils/wxCas/src/wxcasprefs.h
+++ b/src/utils/wxCas/src/wxcasprefs.h
@@ -31,18 +31,15 @@
 #define _WXCASPREFS_H
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
+#include <wx/checkbox.h>
+#include <wx/combobox.h>
 #include <wx/dialog.h>
+#include <wx/sizer.h>
 #include <wx/spinctrl.h>
+#include <wx/statbox.h>
 #include <wx/statline.h>
+#include <wx/stattext.h>
+#include <wx/textctrl.h>
 
 /// Preference Dialog
 class WxCasPrefs: public wxDialog
diff --git a/src/utils/wxCas/src/wxcasprint.cpp b/src/utils/wxCas/src/wxcasprint.cpp
index 768bd7c..fd952e1 100644
--- a/src/utils/wxCas/src/wxcasprint.cpp
+++ b/src/utils/wxCas/src/wxcasprint.cpp
@@ -28,15 +28,6 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
 #include <wx/image.h>
 
 #include "wxcas.h"
diff --git a/src/utils/wxCas/src/wxcasprint.h b/src/utils/wxCas/src/wxcasprint.h
index 1cd4f99..deb46b4 100644
--- a/src/utils/wxCas/src/wxcasprint.h
+++ b/src/utils/wxCas/src/wxcasprint.h
@@ -31,15 +31,7 @@
 #define _WXCASPRINT_H
 
 
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-// For all others, include the necessary headers
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
-
+#include <wx/dc.h>
 #include <wx/print.h>
 
 /// Statistic image printing
diff --git a/src/utils/xas/Makefile.in b/src/utils/xas/Makefile.in
index c296135..fc7e788 100644
--- a/src/utils/xas/Makefile.in
+++ b/src/utils/xas/Makefile.in
@@ -40,23 +40,23 @@ DIST_COMMON = $(dist_plugins_DATA) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/autostart-xas.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -153,6 +153,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -179,6 +185,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -269,6 +276,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/utils/xas/autostart-xas.in b/src/utils/xas/autostart-xas.in
index d73ea63..3b4a424 100644
--- a/src/utils/xas/autostart-xas.in
+++ b/src/utils/xas/autostart-xas.in
@@ -9,12 +9,12 @@
 # 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/src/utils/xas/docs/Makefile.am b/src/utils/xas/docs/Makefile.am
index 24c0a0e..ab47339 100644
--- a/src/utils/xas/docs/Makefile.am
+++ b/src/utils/xas/docs/Makefile.am
@@ -1,8 +1,8 @@
 dist_man_MANS = xas.1
 
-man_langs = de es fr hu it ru tr
+man_langs = de es fr hu it ru tr zh_TW
 
-EXTRA_DIST = xas.de.1 xas.es.1 xas.fr.1 xas.hu.1 xas.it.1 xas.ru.1 xas.tr.1
+EXTRA_DIST = xas.de.1 xas.es.1 xas.fr.1 xas.hu.1 xas.it.1 xas.ru.1 xas.tr.1 xas.zh_TW.1
 
 install-data-hook:
 	@for lang in $(man_langs); do \
diff --git a/src/utils/xas/docs/Makefile.in b/src/utils/xas/docs/Makefile.in
index e7cafe3..72f7154 100644
--- a/src/utils/xas/docs/Makefile.in
+++ b/src/utils/xas/docs/Makefile.in
@@ -38,23 +38,23 @@ DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -112,6 +112,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -138,6 +144,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -228,6 +235,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -313,8 +321,8 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 dist_man_MANS = xas.1
-man_langs = de es fr hu it ru tr
-EXTRA_DIST = xas.de.1 xas.es.1 xas.fr.1 xas.hu.1 xas.it.1 xas.ru.1 xas.tr.1
+man_langs = de es fr hu it ru tr zh_TW
+EXTRA_DIST = xas.de.1 xas.es.1 xas.fr.1 xas.hu.1 xas.it.1 xas.ru.1 xas.tr.1 xas.zh_TW.1
 MAINTAINERCLEANFILES = Makefile.in
 all: all-am
 
diff --git a/src/utils/xas/docs/xas.zh_TW.1 b/src/utils/xas/docs/xas.zh_TW.1
new file mode 100644
index 0000000..37bc187
--- /dev/null
+++ b/src/utils/xas/docs/xas.zh_TW.1
@@ -0,0 +1,28 @@
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XAS 1 "2011 十一月" "xas v1.9" "aMule 的工具程式"
+.als B_untranslated B
+.SH 名稱
+xas \- 用於 X\-Chat 的 aMule 統計資訊程式
+.SH 簡介
+\fB無\fP
+.SH 說明
+\fBxas\fP 是 xchat 的插件,請參考你的 xchat 相關文件以瞭解如何載入。載入之後,輸入 /xas
+就會把從你的線上簽名識別檔取得統計資訊傳到你目前所在的頻道。要使用這個功能,你必須在偏好設定裏啟用「線上簽名識別」。
+
+你可以執行 autstart\-xas (如果是用 \-\-prefix=/usr 安裝程式,就在 /usr/bin 下) 在每次啟動 xchat
+時都啟用它。
+
+\fBxas\fP 的原作者:niet
+.SH 回報問題
+請到我們的論壇 (\fIhttp://forum.amule.org/\fP) 或錯誤追蹤網站 (\fIhttp://bugs.amule.org/\fP)
+回報發現的問題。請不要用 e\-mail 或在我們的群組信件中回報,也不要直接通知某個團隊成員。
+.SH 版權
+aMule 與附加的工具程式都遵守 GNU 的 GPL 協定。
+.SH 參考
+.B_untranslated amule\fR(1)
+.SH 作者
+說明文件撰寫者: Vollstrecker <amule at vollstreckernet.de>
diff --git a/src/utils/xas/xas.pl b/src/utils/xas/xas.pl
index 5f657e7..84edb13 100644
--- a/src/utils/xas/xas.pl
+++ b/src/utils/xas/xas.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl 
+#!/usr/bin/perl
 # we register the script
 # if someone knows how to unload it clean....do tell
 IRC::register("xas", "1.9", "","XChat aMule stats");
@@ -16,7 +16,7 @@ IRC::add_command_handler("xas","xas");
 #06.05.2005 - niet      : file handle change
 #12.10.2004 - bisley    : added session/total ratios
 #16.06.2004 - niet      : added support for memory usage and binary name
-#05.05.2004 - Jacobo221 : fixed typos, sig 2 support, new outputs, crash detect 
+#05.05.2004 - Jacobo221 : fixed typos, sig 2 support, new outputs, crash detect
 #29.04.2004 - niet      : renamed astats to xas (X-Chat Amule statistics)
 #22.04.2004 - citroklar : added smp support
 #      2004 - bootstrap : some hints on file opening
@@ -52,7 +52,7 @@ sub xas
 	if ($amulesigdata[4] eq "H")
 		{$amuleid="high"}
 	 else
-	 	{$amuleid="low"};
+		{$amuleid="low"};
 
 	# are we online / offline / connecting
 	#kad on
@@ -61,8 +61,8 @@ sub xas
 			#$amulestatus="Not Connected";
 			$amulextatus="Kad: ok";
 		} elsif ($amulesigdata[0]==2) {	# Since aMule v2-rc4
-			$amulestatus="connecting"; 
-		    $amulextatus="| Kad: ok"; 
+			$amulestatus="connecting";
+		    $amulextatus="| Kad: ok";
 		} else {
 			$amulestatus="online";
 			$amulextatus="with $amuleid ID on server $amulesigdata[1] [ $amulesigdata[2]:$amulesigdata[3] ] | Kad: ok";
@@ -72,8 +72,8 @@ sub xas
 			#$amulestatus="Not Connected";
 			$amulextatus="Kad: firewalled";
 		} elsif ($amulesigdata[0]==2) {	# Since aMule v2-rc4
-			$amulestatus="connecting"; 
-            		$amulextatus="| Kad: firewalled"; 
+			$amulestatus="connecting";
+			$amulextatus="| Kad: firewalled";
 		} else {
 			$amulestatus="online";
 			$amulextatus="with $amuleid ID on server $amulesigdata[1] [ $amulesigdata[2]:$amulesigdata[3] ] | Kad: firewalled";
@@ -83,7 +83,7 @@ sub xas
 			$amulestatus="Not Connected";
 			$amulextatus="| Kad: off";
 		} elsif ($amulesigdata[0]==2) {	# Since aMule v2-rc4
-			$amulestatus="connecting"; 
+			$amulestatus="connecting";
 			$amulextatus="| Kad: off" ;
 		} else {
 			$amulestatus="online";
@@ -107,7 +107,7 @@ sub xas
 	my $totalratio = calc_ratio($tdl,$tul);
 
 	my $sessionratio = calc_ratio($sdl,$sul);
-	
+
 	# do int_to_bytes to make human-readable output
 	$tdl = int_to_bytes($tdl);
 	$tul = int_to_bytes($tul);
@@ -119,9 +119,9 @@ sub xas
 	my $days    = pull_count($seconds, 86400);
         my $hours   = pull_count($seconds, 3600);
         my $minutes = pull_count($seconds, 60);
-	
+
 	my $runtime;
-	
+
 	if ($days > 0) {
 		$runtime = sprintf "%02iD %02ih %02imin %02is", $days, $hours, $minutes, $seconds;
 	}
@@ -134,7 +134,7 @@ sub xas
 	else {
 		$runtime = sprintf "%02is", $seconds;
 	}
-	
+
 	# and display it
 
 	# if current user isn't running aMule
@@ -156,12 +156,12 @@ sub xas
 		}
 		else {
 		IRC::command "/say $amulesigdata[10] is $amulestatus $amulextatus";}
-	
+
 		IRC::command "/say aMule $amulesigdata[13] is using $amulecpu% CPU, $amulemem MB of memory and it has been running for $runtime";
 
 		# we only display "number of cpus" when we have more then one
 		if ($number_cpus > 1) {
-			IRC::command "/say on $number_cpus x $cpu @ $mhz up $uptime" } 
+			IRC::command "/say on $number_cpus x $cpu @ $mhz up $uptime" }
 		else {
 			IRC::command "/say on $cpu @ $mhz MHz up $uptime" };
 
@@ -225,7 +225,7 @@ sub calc_ratio
 sub int_to_bytes
 {
 	my($value) = int($_[0]);
-	
+
 	if ($value >= 1073741824) {
 		$value = (sprintf("%0.2f",$value/1073741824));
 		return "$value GiB";
diff --git a/src/webserver/Makefile.in b/src/webserver/Makefile.in
index 77f1458..a1d3aff 100644
--- a/src/webserver/Makefile.in
+++ b/src/webserver/Makefile.in
@@ -37,23 +37,23 @@ subdir = src/webserver
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -126,6 +126,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -152,6 +158,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -242,6 +249,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/webserver/default/Makefile.in b/src/webserver/default/Makefile.in
index 217e0ca..26ff896 100644
--- a/src/webserver/default/Makefile.in
+++ b/src/webserver/default/Makefile.in
@@ -39,23 +39,23 @@ DIST_COMMON = $(dist_webserver_DATA) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -111,6 +111,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -137,6 +143,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -227,6 +234,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/src/webserver/src/Makefile.am b/src/webserver/src/Makefile.am
index d201b83..df78aa1 100644
--- a/src/webserver/src/Makefile.am
+++ b/src/webserver/src/Makefile.am
@@ -22,7 +22,7 @@ php_parser.c: php_parser.y
 php_lexer.c: php_lexer.l
 	$(LEX) -P php -o$@ $<
 
-amuleweb_DEPENDENCIES = ../../libs/common/libmulecommon.a ../../libs/ec/cpp/libec.a
+amuleweb_DEPENDENCIES = ../../libs/common/libmulecommon.a ../../libs/ec/cpp/libec.a ../../libmulesocket.a
 amuleweb_CPPFLAGS = -I../.. -I$(top_srcdir)/src -I$(top_srcdir)/src/libs -I$(top_srcdir)/src/include \
 	$(MULECPPFLAGS) $(AMULEWEB_DEFS) $(BFD_CPPFLAGS) $(WXBASE_CPPFLAGS) \
 	-DWEBSERVERDIR="\"$(pkgdatadir)/webserver\"" \
@@ -30,9 +30,9 @@ amuleweb_CPPFLAGS = -I../.. -I$(top_srcdir)/src -I$(top_srcdir)/src/libs -I$(top
 amuleweb_CFLAGS = $(MULECFLAGS) $(WX_CFLAGS_ONLY) $(LIBPNG_CFLAGS) $(LIBUPNP_CFLAGS)
 amuleweb_CXXFLAGS = $(MULECXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY) $(LIBPNG_CFLAGS) $(LIBUPNP_CFLAGS)
 
-amuleweb_LDFLAGS = $(MULELDFLAGS) -L../../libs/common -L../../libs/ec/cpp $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS) $(LIBUPNP_LDFLAGS)
-amuleweb_LDADD = -lec -lmulecommon $(WXBASE_LIBS) $(BFD_LIBS) $(ZLIB_LIBS) \
-	$(READLINE_LIBS) $(LIBPNG_LIBS) $(RESOLV_LIB) $(LIBINTL) $(LIBUPNP_LIBS)
+amuleweb_LDFLAGS = $(MULELDFLAGS) -L../../libs/common -L../../libs/ec/cpp -L../.. $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS) $(LIBUPNP_LDFLAGS)
+amuleweb_LDADD = -lec -lmulecommon -lmulesocket $(WXBASE_LIBS) $(BFD_LIBS) $(ZLIB_LIBS) \
+	$(READLINE_LIBS) $(LIBPNG_LIBS) $(RESOLV_LIB) $(LIBINTL) $(LIBUPNP_LIBS) $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS)
 
 noinst_HEADERS = \
 		 WebInterface.h \
diff --git a/src/webserver/src/Makefile.in b/src/webserver/src/Makefile.in
index ef1528d..99dbff7 100644
--- a/src/webserver/src/Makefile.in
+++ b/src/webserver/src/Makefile.in
@@ -41,23 +41,23 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -138,6 +138,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -164,6 +170,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -254,6 +261,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -354,7 +362,7 @@ amuleweb_SOURCES = \
 	php_amule_lib.cpp \
 	php_core_lib.cpp
 
-amuleweb_DEPENDENCIES = ../../libs/common/libmulecommon.a ../../libs/ec/cpp/libec.a
+amuleweb_DEPENDENCIES = ../../libs/common/libmulecommon.a ../../libs/ec/cpp/libec.a ../../libmulesocket.a
 amuleweb_CPPFLAGS = -I../.. -I$(top_srcdir)/src -I$(top_srcdir)/src/libs -I$(top_srcdir)/src/include \
 	$(MULECPPFLAGS) $(AMULEWEB_DEFS) $(BFD_CPPFLAGS) $(WXBASE_CPPFLAGS) \
 	-DWEBSERVERDIR="\"$(pkgdatadir)/webserver\"" \
@@ -362,9 +370,9 @@ amuleweb_CPPFLAGS = -I../.. -I$(top_srcdir)/src -I$(top_srcdir)/src/libs -I$(top
 
 amuleweb_CFLAGS = $(MULECFLAGS) $(WX_CFLAGS_ONLY) $(LIBPNG_CFLAGS) $(LIBUPNP_CFLAGS)
 amuleweb_CXXFLAGS = $(MULECXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY) $(LIBPNG_CFLAGS) $(LIBUPNP_CFLAGS)
-amuleweb_LDFLAGS = $(MULELDFLAGS) -L../../libs/common -L../../libs/ec/cpp $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS) $(LIBUPNP_LDFLAGS)
-amuleweb_LDADD = -lec -lmulecommon $(WXBASE_LIBS) $(BFD_LIBS) $(ZLIB_LIBS) \
-	$(READLINE_LIBS) $(LIBPNG_LIBS) $(RESOLV_LIB) $(LIBINTL) $(LIBUPNP_LIBS)
+amuleweb_LDFLAGS = $(MULELDFLAGS) -L../../libs/common -L../../libs/ec/cpp -L../.. $(LIBPNG_LDFLAGS) $(ZLIB_LDFLAGS) $(LIBUPNP_LDFLAGS)
+amuleweb_LDADD = -lec -lmulecommon -lmulesocket $(WXBASE_LIBS) $(BFD_LIBS) $(ZLIB_LIBS) \
+	$(READLINE_LIBS) $(LIBPNG_LIBS) $(RESOLV_LIB) $(LIBINTL) $(LIBUPNP_LIBS) $(BOOST_SYSTEM_LDFLAGS) $(BOOST_SYSTEM_LIBS)
 
 noinst_HEADERS = \
 		 WebInterface.h \
diff --git a/src/webserver/src/WebInterface.cpp b/src/webserver/src/WebInterface.cpp
index fe21088..ad3c63a 100644
--- a/src/webserver/src/WebInterface.cpp
+++ b/src/webserver/src/WebInterface.cpp
@@ -1,6 +1,6 @@
 //
 // This file is part of the aMule Project.
-//  
+//
 // Copyright (c) 2004-2011 shakraw ( shakraw at users.sourceforge.net )
 // Copyright (c) 2003-2011 Angel Vidal ( kry at amule.org )
 // Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -54,15 +54,16 @@
 #include <wx/apptrait.h>
 #include <wx/socket.h>
 
+#include <GuiEvents.h>
 
 #ifdef ENABLE_NLS
 #	include <libintl.h>
 #endif
 
-#ifdef AMULEWEB28
+#ifdef AMULEWEB28_SOCKETS
 /*
  * Socket handling in wxBase (same as amuled)
- * 
+ *
  */
 class CSocketSet
 {
@@ -355,28 +356,65 @@ void CWebserverAppTraits::DeletePending()
 	}
 }
 
-
-CamulewebApp::CamulewebApp() : m_table(new CWebserverGSocketFuncTable)
+wxAppTraits *CamulewebApp::CreateTraits()
 {
-	wxPendingEventsLocker = new wxCriticalSection;
+	return new CWebserverAppTraits(m_table);
 }
 
+#endif
 
-wxAppTraits *CamulewebApp::CreateTraits()
+#ifdef AMULEWEB28_EVENTLOOP
+CamulewebApp::CamulewebApp() 
+#ifdef AMULEWEB28_SOCKETS
+	: m_table(new CWebserverGSocketFuncTable)
+#endif
 {
-	return new CWebserverAppTraits(m_table);
+	wxPendingEventsLocker = new wxCriticalSection;
 }
-
 #endif
 
+
 //-------------------------------------------------------------------
 IMPLEMENT_APP(CamulewebApp)
 //-------------------------------------------------------------------
 
+DEFINE_LOCAL_EVENT_TYPE(MULE_EVT_NOTIFY)
 
 BEGIN_EVENT_TABLE(CamulewebApp, CaMuleExternalConnector)
+	EVT_MULE_NOTIFY(CamulewebApp::OnNotifyEvent)
 END_EVENT_TABLE()
 
+
+
+void CamulewebApp::OnNotifyEvent(CMuleGUIEvent& evt)
+{
+	evt.Notify();
+}
+
+namespace MuleNotify
+{
+	void HandleNotification(const CMuleNotiferBase& ntf)
+	{
+		if (wxThread::IsMain()) {
+			ntf.Notify();
+		} else {
+			CMuleGUIEvent evt(ntf.Clone());
+			wxPostEvent(wxTheApp, evt);
+		}
+	}
+
+
+	void HandleNotificationAlways(const CMuleNotiferBase& ntf)
+	{
+		CMuleGUIEvent evt(ntf.Clone());
+		wxPostEvent(wxTheApp, evt);
+	}
+
+	void UDPSocketSend(class CMuleUDPSocket *) {}
+	void UDPSocketReceive(class CMuleUDPSocket *) {}
+}
+
+
 void CamulewebApp::Post_Shell()
 {
 	m_webserver->StopServer();
@@ -493,9 +531,9 @@ bool CamulewebApp::GetTemplateDir(const wxString& templateName, wxString& templa
 		return true;
 	}
 #endif
-	
+
 	dir = wxStandardPaths::Get().GetResourcesDir();	// Returns 'aMule' when we use 'amule' elsewhere
-#if !defined(__WXMSW__) && !defined(__WXMAC__)
+#if !defined(__WINDOWS__ ) && !defined(__WXMAC__)
 	dir = dir.BeforeLast(wxFileName::GetPathSeparator());
 	dir = JoinPaths(dir, wxT("amule"));
 #endif
@@ -504,7 +542,7 @@ bool CamulewebApp::GetTemplateDir(const wxString& templateName, wxString& templa
 		templateDir = dir;
 		return true;
 	}
-	
+
 	// template not found. reverting to default
 	const wxChar* const defaultTemplateName = wxT("default");
 
@@ -519,47 +557,47 @@ bool CamulewebApp::GetTemplateDir(const wxString& templateName, wxString& templa
 void CamulewebApp::OnInitCmdLine(wxCmdLineParser& amuleweb_parser)
 {
 	CaMuleExternalConnector::OnInitCmdLine(amuleweb_parser, "amuleweb");
-	amuleweb_parser.AddOption(wxT("t"), wxT("template"), 
-		_("Loads template <str>"), 
+	amuleweb_parser.AddOption(wxT("t"), wxT("template"),
+		_("Loads template <str>"),
 		wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
-		
-	amuleweb_parser.AddOption(wxT("s"), wxT("server-port"), 
+
+	amuleweb_parser.AddOption(wxT("s"), wxT("server-port"),
 		_("Web server HTTP port"),
 		wxCMD_LINE_VAL_NUMBER, wxCMD_LINE_PARAM_OPTIONAL);
 
-	amuleweb_parser.AddSwitch(wxT("u"), wxT("enable-upnp"), 
+	amuleweb_parser.AddSwitch(wxT("u"), wxT("enable-upnp"),
 		_("Use UPnP port forwarding on web server port"),
 		wxCMD_LINE_PARAM_OPTIONAL);
-	
-	amuleweb_parser.AddSwitch(wxT("U"), wxT("upnp-port"), 
+
+	amuleweb_parser.AddSwitch(wxT("U"), wxT("upnp-port"),
 		_("UPnP port"),
 		wxCMD_LINE_PARAM_OPTIONAL);
-	
-	amuleweb_parser.AddSwitch(wxT("z"), wxT("enable-gzip"), 
+
+	amuleweb_parser.AddSwitch(wxT("z"), wxT("enable-gzip"),
 		_("Use gzip compression"),
 		wxCMD_LINE_PARAM_OPTIONAL);
-	
-	amuleweb_parser.AddSwitch(wxT("Z"), wxT("disable-gzip"), 
+
+	amuleweb_parser.AddSwitch(wxT("Z"), wxT("disable-gzip"),
 		wxT("Do not use gzip compression"),
 		wxCMD_LINE_PARAM_OPTIONAL);
-	
-	amuleweb_parser.AddOption(wxT("A"), wxT("admin-pass"), 
-		_("Full access password for web server"), 
+
+	amuleweb_parser.AddOption(wxT("A"), wxT("admin-pass"),
+		_("Full access password for web server"),
 		wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
 
-	amuleweb_parser.AddOption(wxT("G"), wxT("guest-pass"), 
-		_("Guest password for web server"), 
+	amuleweb_parser.AddOption(wxT("G"), wxT("guest-pass"),
+		_("Guest password for web server"),
 		wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
 
-	amuleweb_parser.AddSwitch(wxT("a"), wxT("allow-guest"), 
+	amuleweb_parser.AddSwitch(wxT("a"), wxT("allow-guest"),
 		_("Allow guest access"),
 		wxCMD_LINE_PARAM_OPTIONAL);
 
-	amuleweb_parser.AddSwitch(wxT("d"), wxT("deny-guest"), 
+	amuleweb_parser.AddSwitch(wxT("d"), wxT("deny-guest"),
 		_("Deny guest access"),
 		wxCMD_LINE_PARAM_OPTIONAL);
 
-	amuleweb_parser.AddSwitch(wxT("L"), wxT("load-settings"), 
+	amuleweb_parser.AddSwitch(wxT("L"), wxT("load-settings"),
 		_("Load/save web server settings from/to remote aMule"),
 		wxCMD_LINE_PARAM_OPTIONAL);
 
@@ -571,7 +609,7 @@ void CamulewebApp::OnInitCmdLine(wxCmdLineParser& amuleweb_parser)
 	 * In this mode, internal PHP interpreter is activated, and
 	 * amuleweb will forward there requests for .php pages
 	 */
-	amuleweb_parser.AddSwitch(wxEmptyString, wxT("no-php"), 
+	amuleweb_parser.AddSwitch(wxEmptyString, wxT("no-php"),
 		_("Disable PHP interpreter (deprecated)"),
 		wxCMD_LINE_PARAM_OPTIONAL);
 
@@ -579,7 +617,7 @@ void CamulewebApp::OnInitCmdLine(wxCmdLineParser& amuleweb_parser)
 	 * Reload .php page each time it's requested - don't cache
 	 * compilation results. Used for script development.
 	 */
-	amuleweb_parser.AddSwitch(wxT("N"), wxT("no-script-cache"), 
+	amuleweb_parser.AddSwitch(wxT("N"), wxT("no-script-cache"),
 		_("Recompile PHP pages on each request"),
 		wxCMD_LINE_PARAM_OPTIONAL);
 }
@@ -696,18 +734,21 @@ void CamulewebApp::Pre_Shell()
 
 void CamulewebApp::TextShell(const wxString &)
 {
-#ifdef AMULEWEB28
+#ifdef AMULEWEB28_EVENTLOOP
+
 	while (true) {
+#ifdef AMULEWEB28_SOCKETS
 		m_table->RunSelect();
 		ProcessPendingEvents();
 		((CWebserverAppTraits *)GetTraits())->DeletePending();
-	}
 #else
-
-#ifndef AMULEWEB_DUMMY
-	wxApp::OnRun();
+		wxMilliSleep(10);
+		ProcessPendingEvents();
 #endif
+	}
 
+#else
+	wxApp::OnRun();
 #endif
 }
 
@@ -817,7 +858,7 @@ wxString CamulewebApp::SetLocale(const wxString& language)
 			if (m_localTemplate) {
 				DebugShow(wxT("no\n"));
 			}
-#if defined __WXMAC__  || defined __WXMSW__
+#if defined __WXMAC__  || defined __WINDOWS__ 
 			// on Mac, the bundle may be tried, too
 			dir = wxStandardPaths::Get().GetDataDir();
 #elif defined(__UNIX__)
diff --git a/src/webserver/src/WebInterface.h b/src/webserver/src/WebInterface.h
index a32cd25..c2491da 100644
--- a/src/webserver/src/WebInterface.h
+++ b/src/webserver/src/WebInterface.h
@@ -1,6 +1,6 @@
 //
 // This file is part of the aMule Project.
-//  
+//
 // Copyright (c) 2004-2011 shakraw ( shakraw at users.sourceforge.net )
 // Copyright (c) 2004-2011 Angel Vidal ( kry at amule.org )
 // Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -31,14 +31,31 @@
 
 
 #if !wxCHECK_VERSION(2, 9, 0)
-	#ifdef __WXMSW__
-		// MSW: can't run amuled with 2.8 anyway, just get it compiled
-		#define AMULEWEB_DUMMY
-	#else
-		#define AMULEWEB28
+
+	// wx 2.8 needs a hand-made event loop in any case
+	#define AMULEWEB28_EVENTLOOP
+
+	// wx 2.8 also needs extra socket code, unless we have ASIO sockets
+	// 
+	#ifdef HAVE_CONFIG_H
+	#	include "config.h"		// defines ASIO_SOCKETS
+	#endif
+
+	#ifndef ASIO_SOCKETS
+		// MSW: can't run amuled with 2.8 without ASIO sockets, just get it compiled
+		#ifndef __WINDOWS__ 
+			#define AMULEWEB28_SOCKETS
+		#endif
 	#endif
+
 #endif
 
+namespace MuleNotify {
+	class CMuleGUIEvent;
+}
+
+using MuleNotify::CMuleGUIEvent;
+
 
 class CamulewebApp
 :
@@ -46,10 +63,13 @@ public CaMuleExternalConnector
 {
 	class CWebServerBase *m_webserver;
 
-#ifdef AMULEWEB28
+#ifdef AMULEWEB28_SOCKETS
 	class CWebserverGSocketFuncTable *m_table;
 public:
 	wxAppTraits *CreateTraits();
+#endif
+#ifdef AMULEWEB28_EVENTLOOP
+public:
 	CamulewebApp();
 #endif
 
@@ -88,11 +108,12 @@ public:
 
 	virtual wxString SetLocale(const wxString& language);
 
+	void OnNotifyEvent(CMuleGUIEvent& evt);
 	DECLARE_EVENT_TABLE();
-	
+
 private:
 	virtual bool	OnInit();
-	virtual int 	OnRun();
+	virtual int	OnRun();
 
 	bool	m_localTemplate;
 };
diff --git a/src/webserver/src/WebServer.cpp b/src/webserver/src/WebServer.cpp
index 7f53fd2..4226034 100644
--- a/src/webserver/src/WebServer.cpp
+++ b/src/webserver/src/WebServer.cpp
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -44,6 +44,7 @@
 //-------------------------------------------------------------------
 
 #include "WebSocket.h"		// Needed for StopSockets()
+#include <amuleIPV4Address.h>
 
 #include "php_syntree.h"
 #include "php_core_lib.h"
@@ -184,9 +185,9 @@ CParsedUrl::CParsedUrl(const wxString &url)
 
 	if ( url.Find('?') != -1 ) {
 		m_file.Truncate(m_file.Find('?'));
-		
+
 		wxString params = url.AfterFirst('?');
-		
+
 		wxStringTokenizer tkz(params, wxT("&"));
 		while ( tkz.HasMoreTokens() ) {
 			wxString param_val = tkz.GetNextToken();
@@ -204,7 +205,7 @@ CParsedUrl::CParsedUrl(const wxString &url)
 
 void CParsedUrl::ConvertParams(std::map<std::string, std::string> &dst)
 {
-	for(std::map<wxString, wxString>::iterator i = m_params.begin(); i != m_params.end(); i++) {
+	for(std::map<wxString, wxString>::iterator i = m_params.begin(); i != m_params.end(); ++i) {
 		std::string key(unicode2char(i->first)), value(unicode2char(i->second));
 		dst[key] = value;
 	}
@@ -221,7 +222,7 @@ CWebServerBase::CWebServerBase(CamulewebApp *webApp, const wxString& templateDir
 	m_ImageLib(templateDir)
 {
 	webInterface = webApp;
-	
+
 	//
 	// Init stat graphs
 #ifdef WITH_LIBPNG
@@ -234,12 +235,22 @@ CWebServerBase::CWebServerBase(CamulewebApp *webApp, const wxString& templateDir
 	m_ImageLib.AddImage(new CDynStatisticImage(200, false, m_Stats.KadCount()),
 		wxT("/amule_stats_kad.png"));
 #endif
-	
+
 	m_upnpEnabled = webInterface->m_UPnPWebServerEnabled;
 	m_upnpTCPPort = webInterface->m_UPnPTCPPort;
 
+	m_AsioService = new CAsioService;
+}
+
+
+// Probably always terminated by Ctrl-C or kill, but make a clean shutdown of the service anyway 
+CWebServerBase::~CWebServerBase()
+{
+	m_AsioService->Stop();
+	delete m_AsioService;
 }
 
+
 //sends output to web interface
 void CWebServerBase::Print(const wxString &s)
 {
@@ -262,15 +273,15 @@ void CWebServerBase::StartServer()
 	}
 #endif
 
-	wxIPV4address addr;
+	amuleIPV4Address addr;
 	addr.AnyAddress();
 	addr.Service(webInterface->m_WebserverPort);
-	
-	m_webserver_socket = new wxSocketServer(addr, wxSOCKET_REUSEADDR);
+
+	m_webserver_socket = new CWebLibSocketServer(addr, wxSOCKET_REUSEADDR, this);
 	m_webserver_socket->SetEventHandler(*this, ID_WEBLISTENSOCKET_EVENT);
 	m_webserver_socket->SetNotify(wxSOCKET_CONNECTION_FLAG);
 	m_webserver_socket->Notify(true);
-	if (!m_webserver_socket->Ok()) {
+	if (!m_webserver_socket->IsOk()) {
 		delete m_webserver_socket;
 		m_webserver_socket = 0;
 	}
@@ -292,13 +303,24 @@ void CWebServerBase::StopServer()
 
 void CWebServerBase::OnWebSocketServerEvent(wxSocketEvent& WXUNUSED(event))
 {
-	CWebSocket *client = new CWebSocket(this);
-	
-    if ( m_webserver_socket->AcceptWith(*client, false) ) {
-    	webInterface->Show(_("web client connection accepted\n"));
+	m_webserver_socket->OnAccept();
+}
+
+CWebLibSocketServer::CWebLibSocketServer(const class amuleIPV4Address& adr, int flags, CWebServerBase * webServerBase)
+	:	CLibSocketServer(adr, flags), 
+		m_webServerBase(webServerBase)
+{
+}
+
+void CWebLibSocketServer::OnAccept()
+{
+	CWebSocket *client = new CWebSocket(m_webServerBase);
+
+    if (AcceptWith(*client, false) ) {
+		m_webServerBase->webInterface->Show(_("web client connection accepted\n"));
     } else {
-    	delete client;
-    	webInterface->Show(_("ERROR: cannot accept web client connection\n"));
+		delete client;
+		m_webServerBase->webInterface->Show(_("ERROR: cannot accept web client connection\n"));
     }
 }
 
@@ -311,10 +333,10 @@ void CWebServerBase::OnWebSocketEvent(wxSocketEvent& event)
         socket->OnLost();
         break;
     case wxSOCKET_INPUT:
-        socket->OnInput();
+        socket->OnReceive(0);
         break;
     case wxSOCKET_OUTPUT:
-        socket->OnOutput();
+        socket->OnSend(0);
         break;
     case wxSOCKET_CONNECTION:
         break;
@@ -334,7 +356,7 @@ void CScriptWebServer::ProcessImgFileReq(ThreadData Data)
 	// To prevent access to non-template images, we disallow use of paths in filenames.
 	wxString imgName = wxT("/") + wxFileName(Data.parsedURL.File()).GetFullName();
 	CAnyImage *img = m_ImageLib.GetImage(imgName);
-	
+
 	// Only static images are available to visitors, in order to prevent
 	// information leakage, but still allowing images on the login page.
 	if (img && (session->m_loggedin || dynamic_cast<CFileImage*>(img))) {
@@ -357,7 +379,7 @@ void CWebServerBase::Send_Discard_V2_Request(CECPacket *request)
 	const CECTag *tag = NULL;
 	if (reply) {
 		if ( reply->GetOpCode() == EC_OP_STRINGS ) {
-			for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); it++) {
+			for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); ++it) {
 				tag = & *it;
 				if (tag->GetTagName() == EC_TAG_STRING) {
 					webInterface->Show(tag->GetStringData());
@@ -385,7 +407,7 @@ void CWebServerBase::Send_SharedFile_Cmd(wxString file_hash, wxString cmd, uint3
 	CECPacket *ec_cmd = 0;
 	CMD4Hash fileHash;
 	wxCHECK2(fileHash.Decode(file_hash), /* Do nothing. */ );
-	
+
 	CECTag hashtag(EC_TAG_KNOWNFILE, fileHash);
 	if (cmd == wxT("prio")) {
 		ec_cmd = new CECPacket(EC_OP_SHARED_SET_PRIO);
@@ -405,7 +427,7 @@ void CWebServerBase::Send_SharedFile_Cmd(wxString file_hash, wxString cmd, uint3
 				GetLowerPrioShared(file->nFilePriority, file->bFileAutoPriority)));
 		}
 	}
-	
+
 	if ( ec_cmd ) {
 		ec_cmd->AddTag(hashtag);
 		Send_Discard_V2_Request(ec_cmd);
@@ -424,7 +446,7 @@ void CWebServerBase::Send_DownloadFile_Cmd(wxString file_hash, wxString cmd, uin
 	CECPacket *ec_cmd = 0;
 	CMD4Hash fileHash;
 	wxCHECK2(fileHash.Decode(file_hash), /* Do nothing. */ );
-	
+
 	CECTag hashtag(EC_TAG_PARTFILE, fileHash);
 	if (cmd == wxT("pause")) {
 		ec_cmd = new CECPacket(EC_OP_PARTFILE_PAUSE);
@@ -462,7 +484,7 @@ void CWebServerBase::Send_DownloadSearchFile_Cmd(wxString file_hash, uint8 cat)
 {
 	CMD4Hash fileHash;
 	wxCHECK2(fileHash.Decode(file_hash), /* Do nothing. */ );
-	
+
 	CECPacket ec_cmd(EC_OP_DOWNLOAD_SEARCH_RESULT);
 	CECTag link_tag(EC_TAG_KNOWNFILE, fileHash);
 
@@ -477,7 +499,7 @@ void CWebServerBase::Send_AddServer_Cmd(wxString addr, wxString port, wxString n
 
 	ec_cmd.AddTag(CECTag(EC_TAG_SERVER_ADDRESS, addr.Trim() + wxT(":") + port.Trim()));
 	ec_cmd.AddTag(CECTag(EC_TAG_SERVER_NAME, name));
-	
+
 	Send_Discard_V2_Request(&ec_cmd);
 }
 
@@ -535,7 +557,7 @@ int CWebServerBase::GzipCompress(Bytef *dest, uLongf *destLen, const Bytef *sour
 	if (err != Z_OK) {
 		return err;
 	}
-	
+
 	snprintf((char*)dest, *destLen, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1],
 		Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, 255);
 
@@ -564,13 +586,13 @@ int CWebServerBase::GzipCompress(Bytef *dest, uLongf *destLen, const Bytef *sour
 	*(((Bytef*) dest)+10+stream.total_out+7) = (Bytef)(( sourceLen >>24) &	0xFF);
 	// return  destLength
 	*destLen = 10 + stream.total_out + 8;
-	
+
 	return err;
 }
 
 
 
-/* 
+/*
  * Item container implementation
  */
 
@@ -584,7 +606,7 @@ ServersInfo *ServersInfo::m_This = 0;
 ServersInfo::ServersInfo(CamulewebApp *webApp) : ItemsContainer<ServerEntry>(webApp)
 {
 	m_This = this;
-	
+
 }
 
 bool ServersInfo::ReQuery()
@@ -597,9 +619,9 @@ bool ServersInfo::ReQuery()
 	//
 	// query succeded - flush existing values and refill
 	EraseAll();
-	for (CECPacket::const_iterator it = srv_reply->begin(); it != srv_reply->end(); it++) {
+	for (CECPacket::const_iterator it = srv_reply->begin(); it != srv_reply->end(); ++it) {
 		const CECTag *tag = & *it;
-		
+
 		ServerEntry Entry;
 		Entry.sServerName =
 			_SpecialChars(tag->GetTagByNameSafe(EC_TAG_SERVER_NAME)->GetStringData());
@@ -617,7 +639,7 @@ bool ServersInfo::ReQuery()
 		AddItem(Entry);
 	}
 	delete srv_reply;
-	
+
 	return true;
 }
 
@@ -628,7 +650,7 @@ SharedFile::SharedFile(CEC_SharedFile_Tag *tag) : CECID(tag->ID())
 		lFileSize = tag->SizeFull();
 		sED2kLink = _SpecialChars(tag->FileEd2kLink());
 		nHash = tag->FileHash();
-		
+
 		ProcessUpdate(tag);
 }
 
@@ -684,8 +706,8 @@ DownloadFile::DownloadFile(CEC_PartFile_Tag *tag) : CECID(tag->ID())
 	lFileSpeed = tag->Speed();
 	fCompleted = (100.0*lFileCompleted) / lFileSize;
 	wxtLastSeenComplete = wxDateTime( tag->LastSeenComplete() );
-	
-	ProcessUpdate(tag);							
+
+	ProcessUpdate(tag);
 }
 
 void DownloadFile::ProcessUpdate(CEC_PartFile_Tag *tag)
@@ -693,7 +715,7 @@ void DownloadFile::ProcessUpdate(CEC_PartFile_Tag *tag)
 	if (!tag) {
 		return;
 	}
-	
+
 	lFilePrio = tag->DownPrio();
 	if ( lFilePrio >= 10 ) {
 		lFilePrio -= 10;
@@ -702,7 +724,7 @@ void DownloadFile::ProcessUpdate(CEC_PartFile_Tag *tag)
 		bFileAutoPriority = false;
 	}
 	nCat = tag->FileCat();
-	
+
 	nFileStatus = tag->FileStatus();
 	lSourceCount = tag->SourceCount();
 	lNotCurrentSourceCount = tag->SourceNotCurrCount();
@@ -780,7 +802,7 @@ void DownloadFileInfo::ItemDeleted(DownloadFile *item)
 bool DownloadFileInfo::ReQuery()
 {
 	DoRequery(EC_OP_GET_DLOAD_QUEUE, EC_TAG_PARTFILE);
-	
+
 	return true;
 }
 
@@ -817,14 +839,14 @@ bool UploadsInfo::ReQuery()
 	//
 	// query succeded - flush existing values and refill
 	EraseAll();
-	for (CECPacket::const_iterator it = up_reply->begin(); it != up_reply->end(); it++) {
-		
+	for (CECPacket::const_iterator it = up_reply->begin(); it != up_reply->end(); ++it) {
+
 		UploadFile curr((CEC_UpDownClient_Tag *) & *it);
-		
+
 		AddItem(curr);
 	}
 	delete up_reply;
-	
+
 	return true;
 }
 
@@ -859,18 +881,18 @@ SearchInfo::SearchInfo(CamulewebApp *webApp) :
 bool SearchInfo::ReQuery()
 {
 	DoRequery(EC_OP_SEARCH_RESULTS, EC_TAG_SEARCHFILE);
-	
+
 	return true;
 }
 
 
 /*!
  * Image classes:
- * 
+ *
  * CFileImage: simply represent local file
  * CDynProgressImage: dynamically generated from gap info
  */
- 
+
 CAnyImage::CAnyImage(int size)
 {
 	m_size = 0;
@@ -938,7 +960,7 @@ CFileImage::CFileImage(const wxString& name) : CAnyImage(0)
 {
 	m_size = 0;
 	m_name = name;
-#ifdef __WXMSW__
+#ifdef __WINDOWS__ 
 	wxFFile fis(m_name, wxT("rb"));
 #else
 	wxFFile fis(m_name);
@@ -966,7 +988,7 @@ CFileImage::CFileImage(const wxString& name) : CAnyImage(0)
 /*!
  * "Modifiers" for 3D look of progress bar. Those modifiers must be substracted from
  * image (with saturation), values, and not multiplied, as amule doesn for some reason.
- * 
+ *
  */
 CImage3D_Modifiers::CImage3D_Modifiers(int width)
 {
@@ -1001,13 +1023,13 @@ void CProgressImage::CreateSpan()
 	// Step 1: get gap list
 	const Gap_Struct * gap_list = (const Gap_Struct *) &(m_file->m_Gaps[0]);
 	int gap_list_size = m_file->m_Gaps.size() / 2;
-	
+
 	// allocate for worst case !
 	int color_gaps_alloc = 2 * (2 * gap_list_size + m_file->lFileSize / PARTSIZE + 1);
 	Color_Gap_Struct *colored_gaps = new Color_Gap_Struct[color_gaps_alloc];
-	
+
 	// Step 2: combine gap and part status information
-	
+
 	// Init first item to dummy info, so we will always have "previous" item
 	int colored_gaps_size = 0;
 	colored_gaps[0].start = 0;
@@ -1029,9 +1051,9 @@ void CProgressImage::CreateSpan()
 
 			uint64 fill_gap_begin = ( (i == start)   ? gap_start: PARTSIZE * i );
 			uint64 fill_gap_end   = ( (i == (end - 1)) ? gap_end   : PARTSIZE * ( i + 1 ) );
-			
+
 			wxASSERT(colored_gaps_size < color_gaps_alloc);
-			
+
 			if ( (colored_gaps[colored_gaps_size].end == fill_gap_begin) &&
 				(colored_gaps[colored_gaps_size].color == color) ) {
 				colored_gaps[colored_gaps_size].end = fill_gap_end;
@@ -1042,18 +1064,18 @@ void CProgressImage::CreateSpan()
 				colored_gaps[colored_gaps_size].color = color;
 			}
 		}
-		
+
 	}
 	//
 	// Now line rendering
 	for(int i = 0; i < m_width; ++i) {
 		m_ColorLine[i] = 0x0;
-	}	
+	}
 	if (m_file->lFileSize < (uint32)m_width) {
 		//
 		// if file is that small, draw it in single step
 		//
-		if (m_file->m_ReqParts.size()) {
+		if (!m_file->m_ReqParts.empty()) {
 			for(int i = 0; i < m_width; ++i) {
 				m_ColorLine[i] = RGB(255, 208, 0);
 			}
@@ -1064,18 +1086,24 @@ void CProgressImage::CreateSpan()
 		}
 	} else {
 		uint32 factor = m_file->lFileSize / m_width;
-		for(int i = 1; i <= colored_gaps_size;i++) {
+		for (int i = 1; i <= colored_gaps_size;i++) {
 			uint32 start = colored_gaps[i].start / factor;
 			uint32 end = colored_gaps[i].end / factor;
-			for(uint32 j = start; j < end; j++) {
+			if ((int)end > m_width) {
+				end = m_width;
+			}
+			for (uint32 j = start; j < end; j++) {
 				m_ColorLine[j] = colored_gaps[i].color;
 			}
 		}
 		// overwrite requested parts
-		for(uint32 i = 0; i < m_file->m_ReqParts.size(); i++) {
+		for (uint32 i = 0; i < m_file->m_ReqParts.size(); i++) {
 			uint32 start = m_file->m_ReqParts[i].start / factor;
 			uint32 end = m_file->m_ReqParts[i].end / factor;
-			for(uint32 j = start; j < end; j++) {
+			if ((int)end > m_width) {
+				end = m_width;
+			}
+			for (uint32 j = start; j < end; j++) {
 				m_ColorLine[j] = RGB(255, 208, 0);
 			}
 		}
@@ -1087,7 +1115,7 @@ void CProgressImage::CreateSpan()
 
 CDynPngImage::CDynPngImage(int w, int h) : CAnyImage(w, h)
 {
-	
+
 	//
 	// Allocate array of "row pointers" - libpng need it in this form
 	// Fill it also with the image data
@@ -1098,7 +1126,7 @@ CDynPngImage::CDynPngImage(int w, int h) : CAnyImage(w, h)
 	for (int i = 0; i < m_height;i++) {
 		m_row_ptrs[i] = &m_img_data[3*m_width*i];
 	}
-	
+
 }
 
 CDynPngImage::~CDynPngImage()
@@ -1109,7 +1137,7 @@ CDynPngImage::~CDynPngImage()
 
 void CDynPngImage::png_write_fn(png_structp png_ptr, png_bytep data, png_size_t length)
 {
-	CDynPngImage *This = (CDynPngImage *)png_get_io_ptr(png_ptr);
+	CDynPngImage *This = static_cast<CDynPngImage *>(png_get_io_ptr(png_ptr));
 	wxASSERT((png_size_t)(This->m_size + length) <= (png_size_t)This->m_alloc_size);
 	memcpy(This->m_data + This->m_size, data, length);
 	This->m_size += length;
@@ -1124,13 +1152,13 @@ unsigned char *CDynPngImage::RequestData(int &size)
 	png_set_IHDR(png_ptr, info_ptr, m_width, m_height, 8, PNG_COLOR_TYPE_RGB,
 		PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
 	png_set_write_fn(png_ptr, this, png_write_fn, 0);
-	
+
 	m_size = 0;
 	png_write_info(png_ptr, info_ptr);
 	png_write_image(png_ptr, (png_bytep *)m_row_ptrs);
 	png_write_end(png_ptr, 0);
 	png_destroy_write_struct(&png_ptr, &info_ptr);
-	
+
 	return CAnyImage::RequestData(size);
 }
 
@@ -1152,7 +1180,7 @@ wxString CDynProgressImage::GetHTML()
 	// template contain %s (name) %d (width) %s (alt)
 	return (CFormat(m_template) % m_name % m_width % wxT("Progress bar")).GetString();
 }
-	
+
 void CDynProgressImage::DrawImage()
 {
 	CreateSpan();
@@ -1185,7 +1213,7 @@ CDynProgressImage::CDynProgressImage(int width, int height, wxString &tmpl, Down
 	CProgressImage(width, height, tmpl, file)
 {
 	m_name = wxT("dyn_") + m_file->sFileHash + wxT(".png");
-	
+
 }
 
 
@@ -1195,9 +1223,9 @@ wxString CDynProgressImage::GetHTML()
 		wxT("transparent.gif"), wxT("black.gif"), wxT("yellow.gif"), wxT("red.gif"),
 		wxT("blue1.gif"),       wxT("blue2.gif"), wxT("blue3.gif"),  wxT("blue4.gif"),
 		wxT("blue5.gif"),       wxT("blue6.gif"), wxT("green.gif"),  wxT("greenpercent.gif") };
-		
+
 	CreateSpan();
-	
+
 	wxString str;
 	uint32 lastcolor = m_ColorLine[0];
 	int lastindex = 0;
@@ -1223,7 +1251,7 @@ wxString CDynProgressImage::GetHTML()
 				}
 			}
 			str += (CFormat(m_template) % progresscolor[color_idx]
-				   		% (i - lastindex) % wxString(progresscolor[color_idx]).BeforeLast(wxT('.'))).GetString();
+						% (i - lastindex) % wxString(progresscolor[color_idx]).BeforeLast(wxT('.'))).GetString();
 			lastindex = i;
 			lastcolor = m_ColorLine[i];
 		}
@@ -1270,7 +1298,7 @@ void CStatsData::PushSample(uint32 sample)
 	m_start_index = (m_start_index + 1) % m_size;
 	m_end_index = (m_end_index + 1) % m_size;
 	m_data[m_start_index] = sample;
-	
+
 	if ( m_max_value < sample ) {
 		m_max_value = sample;
 	}
@@ -1282,7 +1310,7 @@ CStatsCollection::CStatsCollection(int size, CamulewebApp *iface)
 	m_up_speed = new CStatsData(size);
 	m_conn_number = new CStatsData(size);
 	m_kad_count = new CStatsData(size);
-	
+
 	m_iface = iface;
 	m_LastTimeStamp = 0.0;
 	m_size = size;
@@ -1293,6 +1321,7 @@ CStatsCollection::~CStatsCollection()
 	delete m_down_speed;
 	delete m_up_speed;
 	delete m_conn_number;
+	delete m_kad_count;
 }
 
 void CStatsCollection::ReQuery()
@@ -1300,13 +1329,13 @@ void CStatsCollection::ReQuery()
 	CECPacket request(EC_OP_GET_STATSGRAPHS);
 
 	request.AddTag(CECTag(EC_TAG_STATSGRAPH_WIDTH, (uint16)m_size));
-	
+
 	uint16 m_nGraphScale = 1;
 	request.AddTag(CECTag(EC_TAG_STATSGRAPH_SCALE, m_nGraphScale));
 	if (m_LastTimeStamp > 0.0) {
 		request.AddTag(CECTag(EC_TAG_STATSGRAPH_LAST, m_LastTimeStamp));
 	}
-	
+
 	const CECPacket *response = m_iface->SendRecvMsg_v2(&request);
 
 	m_LastTimeStamp = response->GetTagByNameSafe(EC_TAG_STATSGRAPH_LAST)->GetDoubleData();
@@ -1332,20 +1361,20 @@ CDynStatisticImage::CDynStatisticImage(int height, bool scale1024, CStatsData *d
 {
 	m_data = data;
 	m_scale1024 = scale1024;
-	
+
 	// actual name doesn't matter, just make it unique
 	m_name = CFormat(wxT("dyn_%p_stat.png")) % data;
-	
+
 	m_num_font_w_size = 8;
 	m_num_font_h_size = 16;
-	
+
 	// leave enough space for 4 digit number
 	int img_delta = m_num_font_w_size / 4;
 	m_left_margin = 4*(m_num_font_w_size + img_delta) + img_delta;
 	// leave enough space for number height
 	m_bottom_margin = m_num_font_h_size;
-	
-	
+
+
 	m_y_axis_size = m_height - m_bottom_margin;
 	// allocate storage for background. Using 1 chunk to speed up
 	// the rendering
@@ -1354,7 +1383,7 @@ CDynStatisticImage::CDynStatisticImage(int height, bool scale1024, CStatsData *d
 	for(int i = 0; i < m_height; i++) {
 		m_row_bg_ptrs[i] = &m_background[i*m_width*3];
 	}
-	
+
 	//
 	// Prepare background
 	//
@@ -1380,7 +1409,7 @@ CDynStatisticImage::CDynStatisticImage(int height, bool scale1024, CStatsData *d
 		set_rgb_color_val(m_row_bg_ptrs[m_y_axis_size - 0]+3*j, axis_color, 0);
 		set_rgb_color_val(m_row_bg_ptrs[m_y_axis_size - 1]+3*j, axis_color, 0);
 	}
-	
+
 	// horisontal grid
 	int v_grid_size = m_y_axis_size / 4;
 	for(int i = m_y_axis_size - v_grid_size; i >= v_grid_size; i -= v_grid_size) {
@@ -1391,7 +1420,7 @@ CDynStatisticImage::CDynStatisticImage(int height, bool scale1024, CStatsData *d
 			}
 		}
 	}
-	
+
 	//
 	// Pre-create masks for digits
 	//
@@ -1413,13 +1442,13 @@ void CDynStatisticImage::DrawImage()
 {
 	// copy background first
 	memcpy(m_img_data, m_background, m_width*m_height*3);
-	
+
 	//
 	// Now graph itself
 	//
 	static const COLORTYPE graph_color = RGB(0xff, 0x00, 0x00);
 	int maxval = m_data->Max();
-	
+
 	if ( m_scale1024 ) {
 		if ( maxval > 1024 ) {
 			maxval /= 1024;
@@ -1445,7 +1474,7 @@ void CDynStatisticImage::DrawImage()
 	int img_delta = m_num_font_w_size / 4;
 	// Number "0" is always there
 	m_digits[0]->Apply(m_row_ptrs, 3*img_delta+2*m_num_font_w_size, m_y_axis_size-m_num_font_h_size-5);
-	
+
 	//
 	// When data is scaled down, axis are scaled UP and viceversa
 	int y_axis_max = m_y_axis_size;
@@ -1466,7 +1495,7 @@ void CDynStatisticImage::DrawImage()
 	}
 	// --X-
 	if ( y_axis_max > 9 ) {
-		m_digits[(y_axis_max % 100) / 10]->Apply(m_row_ptrs, 
+		m_digits[(y_axis_max % 100) / 10]->Apply(m_row_ptrs,
 			3*img_delta+2*m_num_font_w_size, img_delta);
 	}
 	// ---X
@@ -1519,7 +1548,7 @@ void CDynStatisticImage::DrawImage()
 unsigned char *CDynStatisticImage::RequestData(int &size)
 {
 	DrawImage();
-	
+
 	return CDynPngImage::RequestData(size);
 }
 
@@ -1540,13 +1569,13 @@ CNumImageMask::CNumImageMask(int number, int width, int height)
 	m_h_segsize = width;
 	m_height = height;
 	m_width = width;
-	
+
 	m_row_mask_ptrs = new png_bytep[m_height];
 	for(int i = 0; i < m_height; i++) {
 		m_row_mask_ptrs[i] = new png_byte[3*m_width];
 		memset(m_row_mask_ptrs[i], 0x00, 3*m_width);
 	}
-	
+
 	int seg_status = m_num_to_7_decode[number];
 	for(int i = 0; i < 7; i++) {
 		if ( seg_status & (1 << i) ) {
@@ -1594,7 +1623,7 @@ void CNumImageMask::DrawVertLine(int offx, int offy)
 
 /*
  * Segment id decoding defined as following
- * 
+ *
  *   ---- 0 ----
  *   |         |
  *   1         2
@@ -1680,7 +1709,7 @@ CAnyImage *CImageLib::GetImage(const wxString &name)
 	}
 }
 
-/* 
+/*
  * Script-based webserver
  */
 CScriptWebServer::CScriptWebServer(CamulewebApp *webApp, const wxString& templateDir)
@@ -1694,7 +1723,7 @@ CScriptWebServer::CScriptWebServer(CamulewebApp *webApp, const wxString& templat
 	} else if ( ::wxFileExists(wxFileName(m_wwwroot, wxT("index.php")).GetFullPath()) ) {
 		m_index = wxT("index.php");
 	} else {
-		webInterface->Show(_("Index file not found: ") + 
+		webInterface->Show(_("Index file not found: ") +
 			wxFileName(m_wwwroot, wxT("index.{html,php}")).GetFullPath() + wxT("\n"));
 	}
 }
@@ -1710,7 +1739,7 @@ char *CScriptWebServer::GetErrorPage(const char *message, long &size)
 		"<html><title> Error -%s </title></html>", message);
 
 	size = strlen(buf);
-	
+
 	return buf;
 }
 
@@ -1718,9 +1747,9 @@ char *CScriptWebServer::Get_404_Page(long &size)
 {
 		char *buf = new char [1024];
 		strcpy(buf, "<html><title> Error - requested page not found </title></html>");
-		
+
 		size = strlen(buf);
-		
+
 		return buf;
 }
 
@@ -1731,6 +1760,7 @@ char *CScriptWebServer::ProcessHtmlRequest(const char *filename, long &size)
 		return Get_404_Page(size);
 	}
 	if ( fseek(f, 0, SEEK_END) != 0 ) {
+		fclose(f);
 		return GetErrorPage("fseek failed", size);
 	}
 
@@ -1741,7 +1771,7 @@ char *CScriptWebServer::ProcessHtmlRequest(const char *filename, long &size)
 	size = fread(buf, 1, size, f);
 	buf[size] = 0;
 	fclose(f);
-	
+
 	return buf;
 }
 
@@ -1754,13 +1784,13 @@ char *CScriptWebServer::ProcessPhpRequest(const char *filename, CSession *sess,
 
 	CWriteStrBuffer buffer;
 	CPhpFilter(this, sess, filename, &buffer);
-	
+
 	size = buffer.Length();
 	char *buf = new char [size+1];
 	buffer.CopyAll(buf);
-	
+
 	fclose(f);
-	
+
 	return buf;
 }
 
@@ -1804,7 +1834,7 @@ void CScriptWebServer::ProcessURL(ThreadData Data)
 {
 	long httpOutLen;
 	char *httpOut = 0;
-	
+
 	// Strip out any path-component to prevent information leakage.
 	wxString filename = wxFileName(Data.parsedURL.File()).GetFullName();
 
@@ -1819,7 +1849,7 @@ void CScriptWebServer::ProcessURL(ThreadData Data)
 	session->m_vars["login_error"] = "";
 	if ( !session->m_loggedin ) {
 		filename = wxT("login.php");
-		
+
 		wxString PwStr(Data.parsedURL.Param(wxT("pass")));
 		if (webInterface->m_AdminPass.IsEmpty() && webInterface->m_GuestPass.IsEmpty()) {
 			session->m_vars["login_error"] = "No password specified, login will not be allowed.";
@@ -1827,7 +1857,7 @@ void CScriptWebServer::ProcessURL(ThreadData Data)
 		} else if ( PwStr.Length() ) {
 			Print(_("Checking password\n"));
 			session->m_loggedin = false;
-			
+
 			CMD4Hash PwHash;
 			if (!PwHash.Decode(MD5Sum(PwStr).GetHash())) {
 				Print(_("Password hash invalid\n"));
@@ -1842,7 +1872,7 @@ void CScriptWebServer::ProcessURL(ThreadData Data)
 			} else {
 				session->m_vars["login_error"] = "Password incorrect, please try again.";
 			}
-			
+
 			if ( session->m_loggedin ) {
 				filename = m_index;
 				Print(_("Password ok\n"));
@@ -1864,11 +1894,11 @@ void CScriptWebServer::ProcessURL(ThreadData Data)
 	}
 
 	Print(_("Processing request [redirected]: ") + filename + wxT("\n"));
-	
+
 	session->m_vars["auto_refresh"] = (const char *)unicode2char(
 		wxString(CFormat(wxT("%d")) % webInterface->m_PageRefresh));
 	session->m_vars["content_type"] = "text/html";
-	
+
 	wxString req_file(wxFileName(m_wwwroot, filename).GetFullPath());
 	if (req_file.EndsWith(wxT(".html"))) {
 		httpOut = ProcessHtmlRequest(unicode2char(req_file), httpOutLen);
@@ -1888,14 +1918,14 @@ void CScriptWebServer::ProcessURL(ThreadData Data)
 	} else {
 		httpOut = GetErrorPage("aMuleweb doesn't handle the requested file type ", httpOutLen);
 	}
-	
+
 	bool isUseGzip = webInterface->m_UseGzip;
 
 	if (isUseGzip)	{
 		bool bOk = false;
 		uLongf destLen = httpOutLen + 1024;
 		char *gzipOut = new char[destLen];
-		if( GzipCompress((Bytef*)gzipOut, &destLen, 
+		if( GzipCompress((Bytef*)gzipOut, &destLen,
 		   (const Bytef*)httpOut, httpOutLen, Z_DEFAULT_COMPRESSION) == Z_OK) {
 			bOk = true;
 		}
@@ -1908,7 +1938,7 @@ void CScriptWebServer::ProcessURL(ThreadData Data)
 			delete[] gzipOut;
 		}
 	}
-		
+
 	if ( httpOut ) {
 		Data.pSocket->SendHttpHeaders(session->m_vars["content_type"].c_str(), isUseGzip, httpOutLen, Data.SessionID);
 		Data.pSocket->SendData(httpOut, httpOutLen);
diff --git a/src/webserver/src/WebServer.h b/src/webserver/src/WebServer.h
index bd94580..93469eb 100644
--- a/src/webserver/src/WebServer.h
+++ b/src/webserver/src/WebServer.h
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -92,14 +92,14 @@ class DownloadFile : public CECID {
 		wxDateTime	wxtLastSeenComplete;
 
 		CMD4Hash	nHash;
-		
+
 		CProgressImage *m_Image;
 		PartFileEncoderData m_Encoder;
 		ArrayOfUInts16 m_PartInfo;
 		std::vector<Gap_Struct> m_ReqParts;
 		ArrayOfUInts64	m_Gaps;
 
-		// container require this		
+		// container require this
 		static class DownloadFileInfo *GetContainerInstance();
 		DownloadFile(CEC_PartFile_Tag *);
 		void ProcessUpdate(CEC_PartFile_Tag *);
@@ -118,7 +118,7 @@ class SharedFile : public CECID {
 		uint32		nFileAllTimeAccepts;
 		uint8		nFilePriority;
 		bool		bFileAutoPriority;
-		wxString 	sFileHash;
+		wxString	sFileHash;
 		wxString	sED2kLink;
 
 		CMD4Hash	nHash;
@@ -139,7 +139,7 @@ class ServerEntry {
 		int		nServerUsers;
 		int		nServerMaxUsers;
 		int		nServerFiles;
-	
+
 		static class ServersInfo *GetContainerInstance();
 		uint32 ID() { return nServerIP; }
 };
@@ -154,7 +154,7 @@ class UploadFile : public CECID {
 		uint32 nUploadFile;		// ECID of shared file uploading to client
 
 		UploadFile(CEC_UpDownClient_Tag *tag);
-		
+
 		static class UploadsInfo *GetContainerInstance();
 		uint32 ID() { return ECID(); }
 };
@@ -167,9 +167,9 @@ class SearchFile : public CECID {
 		wxString  sHash;
 		long lSourceCount;
 		bool bPresent;
-		
+
 		SearchFile(CEC_SearchFile_Tag *);
-		
+
 		void ProcessUpdate(CEC_SearchFile_Tag *);
 		static class SearchInfo *GetContainerInstance();
 		uint32 ID() { return ECID(); }
@@ -185,7 +185,7 @@ class ItemsContainer {
 		CamulewebApp *m_webApp;
 		std::list<T> m_items;
 
-	
+
 		void EraseAll()
 		{
 			m_items.erase(m_items.begin(), m_items.end());
@@ -196,14 +196,14 @@ class ItemsContainer {
 			m_webApp = webApp;
 		}
 		virtual ~ItemsContainer() { }
-		
+
 
 		int ItemCount()
 		{
 			return m_items.size();
 		}
-		
-		
+
+
 		T *AddItem(T &item)
 		{
 			m_items.push_back(item);
@@ -237,20 +237,20 @@ class UpdatableItemsContainer : public ItemsContainer<T> {
 	protected:
 		// need duplicate list with a map, so check "do we already have"
 		// will take O(log(n)) instead of O(n)
-		// map will contain pointers to items in list 
+		// map will contain pointers to items in list
 		std::map<I, T *> m_items_hash;
 	public:
 		UpdatableItemsContainer(CamulewebApp *webApp) : ItemsContainer<T>(webApp)
 		{
 		}
-		
+
 		T *AddItem(T &item)
 		{
 			T *real_ptr = ItemsContainer<T>::AddItem(item);
 			m_items_hash[item.ID()] = real_ptr;
 			return real_ptr;
 		}
-	
+
 		T *GetByID(I id)
 		{
 			// avoid creating nodes
@@ -260,7 +260,7 @@ class UpdatableItemsContainer : public ItemsContainer<T> {
 		T * GetByHash(const CMD4Hash &fileHash)
 		{
 			T * ret = 0;
-			for (typename std::map<I, T *>::iterator it = m_items_hash.begin(); it != m_items_hash.end(); it++) {
+			for (typename std::map<I, T *>::iterator it = m_items_hash.begin(); it != m_items_hash.end(); ++it) {
 				if (it->second->nHash == fileHash) {
 					ret = it->second;
 					break;
@@ -276,9 +276,9 @@ class UpdatableItemsContainer : public ItemsContainer<T> {
 		void ProcessUpdate(const CECPacket *reply, CECPacket *full_req, int req_type)
 		{
 			std::set<I> core_files;
-			for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); it++) {
+			for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); ++it) {
 				G *tag = (G *) & *it;
-		
+
 				core_files.insert(tag->ID());
 				if ( m_items_hash.count(tag->ID()) ) {
 					T *item = m_items_hash[tag->ID()];
@@ -288,20 +288,20 @@ class UpdatableItemsContainer : public ItemsContainer<T> {
 				}
 			}
 			std::list<I> del_ids;
-			for(typename std::list<T>::iterator j = this->m_items.begin(); j != this->m_items.end(); j++) {
+			for(typename std::list<T>::iterator j = this->m_items.begin(); j != this->m_items.end(); ++j) {
 				if ( core_files.count(j->ID()) == 0 ) {
 					// item may contain data that need to be freed externally, before
 					// dtor is called and memory freed
-					
+
 					T *real_ptr = &*j;
 					this->ItemDeleted(real_ptr);
-					
+
 					del_ids.push_back(j->ID());
 				}
 			}
-			for(typename std::list<I>::iterator j = del_ids.begin(); j != del_ids.end(); j++) {
+			for(typename std::list<I>::iterator j = del_ids.begin(); j != del_ids.end(); ++j) {
 				m_items_hash.erase(*j);
-				for(typename std::list<T>::iterator k = this->m_items.begin(); k != this->m_items.end(); k++) {
+				for(typename std::list<T>::iterator k = this->m_items.begin(); k != this->m_items.end(); ++k) {
 					if ( *j == k->ID() ) {
 						this->m_items.erase(k);
 						break;
@@ -309,10 +309,10 @@ class UpdatableItemsContainer : public ItemsContainer<T> {
 				}
 			}
 		}
-		
+
 		void ProcessFull(const CECPacket *reply)
 		{
-			for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); it++) {
+			for (CECPacket::const_iterator it = reply->begin(); it != reply->end(); ++it) {
 				G *tag = (G *) & *it;
 				// initialize item data from EC tag
 				T item(tag);
@@ -321,38 +321,38 @@ class UpdatableItemsContainer : public ItemsContainer<T> {
 				this->ItemInserted(real_ptr);
 			}
 		}
-		
+
 		bool DoRequery(int cmd, int tag)
 		{
 			CECPacket req_sts(cmd, EC_DETAIL_UPDATE);
-		
+
 			//
 			// Phase 1: request status
 			const CECPacket *reply = this->m_webApp->SendRecvMsg_v2(&req_sts);
 			if ( !reply ) {
 				return false;
 			}
-			
+
 			//
 			// Phase 2: update status, mark new files for subsequent query
 			CECPacket req_full(cmd);
-		
+
 			ProcessUpdate(reply, &req_full, tag);
-		
+
 			delete reply;
-		
+
 			// Phase 3: request full info about files we don't have yet
 			if ( req_full.HasChildTags() ) {
 				reply = this->m_webApp->SendRecvMsg_v2(&req_full);
 				if ( !reply ) {
 					return false;
 				}
-				ProcessFull(reply);	
+				ProcessFull(reply);
 				delete reply;
 			}
 			return true;
 		}
-		
+
 		virtual void ItemDeleted(T *) { }
 		virtual void ItemInserted(T *) { }
 };
@@ -371,7 +371,7 @@ class ServersInfo : public ItemsContainer<ServerEntry> {
 	public:
 		// can be only one instance.
 		static ServersInfo *m_This;
-		
+
 		ServersInfo(CamulewebApp *webApp);
 
 		virtual bool ReQuery();
@@ -393,9 +393,9 @@ class SharedFileInfo : public UpdatableItemsContainer<SharedFile, CEC_SharedFile
 class SearchInfo : public UpdatableItemsContainer<SearchFile, CEC_SearchFile_Tag, uint32> {
 	public:
 		static SearchInfo *m_This;
-		
+
 		SearchInfo(CamulewebApp *webApp);
-		
+
 		virtual bool ReQuery();
 
 };
@@ -404,18 +404,18 @@ class SearchInfo : public UpdatableItemsContainer<SearchFile, CEC_SearchFile_Tag
 class CImageLib;
 class DownloadFileInfo : public UpdatableItemsContainer<DownloadFile, CEC_PartFile_Tag, uint32> {
 		CImageLib *m_ImageLib;
-		
+
 		// parameters of progress images
 		wxString m_Template;
 		int m_width, m_height;
 	public:
 		// can be only one instance.
 		static DownloadFileInfo *m_This;
-		
+
 		DownloadFileInfo(CamulewebApp *webApp, CImageLib *imlib);
-		
+
 		void LoadImageParams(wxString &tpl, int width, int height);
-		
+
 		virtual bool ReQuery();
 
 		// container requirements
@@ -432,9 +432,9 @@ class CAnyImage {
 
 		int m_size, m_alloc_size;
 		wxString m_Http;
-		
+
 		void Realloc(int size);
-		
+
 		void SetHttpType(wxString ext);
 	public:
 		CAnyImage(int size);
@@ -442,14 +442,14 @@ class CAnyImage {
 		virtual ~CAnyImage();
 
 		const wxString& GetHTTP() const { return m_Http; }
-		
+
 		virtual unsigned char *RequestData(int &size);
 };
 
 class CFileImage : public virtual CAnyImage {
 	public:
 		CFileImage(const wxString& name);
-		
+
 		bool OpenOk() { return m_size != 0; }
 };
 
@@ -459,7 +459,7 @@ class CImage3D_Modifiers {
 	public:
 		CImage3D_Modifiers(int width);
 		~CImage3D_Modifiers();
-		
+
 		unsigned char operator[](int i)
 		{
 			return (i < m_width) ? m_modifiers[i] : 0;
@@ -469,9 +469,9 @@ class CImage3D_Modifiers {
 class CProgressImage : public virtual CAnyImage {
 	protected:
 		DownloadFile *m_file;
-		
+
 		wxString m_template;
-		
+
 		//
 		// Turn list of gaps, partstatus into array of color strips
 		typedef struct Color_Gap_Struct : public Gap_Struct {
@@ -485,9 +485,9 @@ class CProgressImage : public virtual CAnyImage {
 		CProgressImage(int w, int h, wxString &tmpl, DownloadFile *file);
 
 		~CProgressImage();
-				
+
 		const wxString &Name() { return m_name; }
-				
+
 		virtual wxString GetHTML() = 0;
 };
 
@@ -497,31 +497,31 @@ class CProgressImage : public virtual CAnyImage {
 // Dynamic png image generation
 //
 class CDynPngImage : public virtual CAnyImage {
-		
+
 	public:
 		CDynPngImage(int w, int h);
 		~CDynPngImage();
-		
+
 		virtual unsigned char *RequestData(int &size);
-	
+
 	protected:
 		png_bytep m_img_data;
 		png_bytep *m_row_ptrs;
-		
+
 		static void png_write_fn(png_structp png_ptr, png_bytep data, png_size_t length);
-		
+
 };
 
 //
 // Dynamic png image generation from gap info
 class CDynProgressImage : public virtual CProgressImage, public virtual CDynPngImage {
 		CImage3D_Modifiers m_modifiers;
-		
+
 		void DrawImage();
 	public:
 		CDynProgressImage(int w, int h,	wxString &tmpl, DownloadFile *file);
 		~CDynProgressImage();
-		
+
 		virtual unsigned char *RequestData(int &size);
 		virtual wxString GetHTML();
 };
@@ -552,12 +552,12 @@ class CStatsData {
 	public:
 		CStatsData(int size);
 		~CStatsData();
-		
+
 		int Size() const { return m_size; }
 		uint32 Max() const { return m_max_value; }
 		uint32 GetFirst();
 		uint32 GetNext();
-		
+
 		void PushSample(uint32 sample);
 };
 
@@ -571,12 +571,12 @@ class CStatsCollection {
 	public:
 		CStatsCollection(int size, CamulewebApp	*iface);
 		~CStatsCollection();
-		
+
 		CStatsData *DownloadSpeed() { return m_down_speed; }
 		CStatsData *UploadSpeed() { return m_up_speed; }
 		CStatsData *ConnCount() { return m_conn_number; }
 		CStatsData *KadCount() { return m_kad_count; }
-		
+
 		void ReQuery();
 };
 
@@ -591,42 +591,42 @@ class CNumImageMask {
 		png_bytep *m_row_mask_ptrs;
 		int m_width, m_height;
 		int m_v_segsize, m_h_segsize;
-		
+
 		// mask generation
 		void DrawHorzLine(int off);
 		void DrawVertLine(int offx, int offy);
 		void DrawSegment(int id);
-		
+
 		static const int m_num_to_7_decode[10];
 	public:
 		CNumImageMask(int number, int width, int height);
 		~CNumImageMask();
-		
+
 		void Apply(png_bytep *image, int offx, int offy);
 };
 
 class CDynStatisticImage : public virtual CDynPngImage {
 		CStatsData *m_data;
-		
+
 		// size of "font" of imprinted numbers
 		int m_num_font_w_size, m_num_font_h_size;
-		
+
 		int m_left_margin, m_bottom_margin;
 		int m_y_axis_size;
-		
+
 		// hope nobody needs "define" for 10 !
 		CNumImageMask *m_digits[10];
-		
+
 		// indicates whether data should be divided on 1024 before
 		// drawing graph.
 		bool m_scale1024;
-		
+
 		//
 		// Prepared background
 		//
 		png_bytep m_background;
 		png_bytep *m_row_bg_ptrs;
-		
+
 		void DrawImage();
 	public:
 		CDynStatisticImage(int height, bool scale1024, CStatsData *data);
@@ -645,7 +645,7 @@ class CImageLib {
 	public:
 		CImageLib(wxString image_dir);
 		~CImageLib();
-		
+
 		CAnyImage *GetImage(const wxString &name);
 		void AddImage(CAnyImage *img, const wxString &name);
 		void RemoveImage(const wxString &name);
@@ -656,7 +656,7 @@ class CParsedUrl {
 		std::map<wxString, wxString> m_params;
 	public:
 		CParsedUrl(const wxString &url);
-		
+
 		const wxString &Path() { return m_path; }
 		const wxString &File() { return m_file; }
 
@@ -664,7 +664,7 @@ class CParsedUrl {
 		{
 			return m_params[key];
 		}
-		
+
 		void ConvertParams(std::map<std::string, std::string> &);
 };
 
@@ -672,7 +672,7 @@ class CParsedUrl {
 struct ThreadData {
 	CParsedUrl	parsedURL;
 	wxString	sURL;
-	int 		SessionID;
+	int		SessionID;
 	CWebSocket	*pSocket;
 };
 
@@ -687,18 +687,30 @@ class CUPnPControlPoint;
 class CUPnPPortMapping;
 #endif
 
+class CWebLibSocketServer : public CLibSocketServer {
+public:
+	CWebLibSocketServer(const class amuleIPV4Address& adr, int flags, CWebServerBase * webServerBase);
+
+	virtual	void OnAccept();
+private:
+	CWebServerBase * m_webServerBase;
+};
+
+
 class CWebServerBase : public wxEvtHandler {
 	protected:
-		wxSocketServer *m_webserver_socket;
-		
+		CWebLibSocketServer *m_webserver_socket;
+
+		class CAsioService *m_AsioService;
+
 		ServersInfo m_ServersInfo;
 		SharedFileInfo m_SharedFileInfo;
 		DownloadFileInfo m_DownloadFileInfo;
 		UploadsInfo m_UploadsInfo;
 		SearchInfo m_SearchInfo;
-		
+
 		CStatsCollection m_Stats;
-		
+
 		CImageLib m_ImageLib;
 
 		virtual void ProcessURL(ThreadData) = 0;
@@ -706,10 +718,10 @@ class CWebServerBase : public wxEvtHandler {
 
 		int GzipCompress(Bytef *dest, uLongf *destLen,
 			const Bytef *source, uLong sourceLen, int level);
-			
+
 		friend class CWebSocket;
 		friend class CPhPLibContext;
-	
+
 		bool m_upnpEnabled;
 		int m_upnpTCPPort;
 #ifdef ENABLE_UPNP
@@ -722,7 +734,7 @@ class CWebServerBase : public wxEvtHandler {
 		DECLARE_EVENT_TABLE();
 	public:
 		CWebServerBase(CamulewebApp *webApp, const wxString& templateDir);
-		virtual ~CWebServerBase() { }
+		virtual ~CWebServerBase();
 
 		void Send_Discard_V2_Request(CECPacket *request);
 
@@ -737,25 +749,25 @@ class CWebServerBase : public wxEvtHandler {
 		// Command interface
 		//
 		void Send_ReloadSharedFile_Cmd();
-		
+
 		void Send_SharedFile_Cmd(wxString file_hash, wxString cmd, uint32 opt_arg = 0);
 		void Send_DownloadFile_Cmd(wxString file_hash, wxString cmd, uint32 opt_arg = 0);
-		
+
 		void Send_DownloadSearchFile_Cmd(wxString file_hash, uint8 cat);
-		
+
 		void Send_Server_Cmd(uint32 ip, uint16 port, wxString cmd);
 		void Send_AddServer_Cmd(wxString addr, wxString port, wxString name);
-		
+
 		void Send_Search_Cmd(wxString search, wxString extention, wxString type,
 			EC_SEARCH_TYPE search_type, uint32 avail, uint32 min_size, uint32 max_size);
 
 		bool Send_DownloadEd2k_Cmd(wxString link, uint8 cat);
-		
+
 		void Reload_Stats()
 		{
 			m_Stats.ReQuery();
 		}
-		
+
 		CamulewebApp	*webInterface;
 
 };
@@ -765,7 +777,7 @@ class CSession {
 		bool m_loggedin;
 		time_t m_last_access;
 		std::map<std::string, std::string> m_vars, m_get_vars;
-		
+
 		void LoadVars(CParsedUrl &url);
 };
 
@@ -775,7 +787,7 @@ class CSession {
 class CScriptWebServer : public CWebServerBase {
 		wxString m_wwwroot;
 		wxString m_index;
-		
+
 		char *ProcessHtmlRequest(const char *filename, long &size);
 		char *ProcessPhpRequest(const char *filename, CSession *sess, long &size);
 
@@ -783,7 +795,7 @@ class CScriptWebServer : public CWebServerBase {
 		char *Get_404_Page(long &size);
 
 		std::map<int, CSession> m_sessions;
-		
+
 		CSession *CheckLoggedin(ThreadData &);
 	protected:
 		virtual void ProcessURL(ThreadData);
diff --git a/src/webserver/src/WebSocket.cpp b/src/webserver/src/WebSocket.cpp
index 50fef49..37db743 100644
--- a/src/webserver/src/WebSocket.cpp
+++ b/src/webserver/src/WebSocket.cpp
@@ -1,6 +1,6 @@
 //
 // This file is part of the aMule Project.
-//  
+//
 // Copyright (c) 2004-2011 shakraw ( shakraw at users.sourceforge.net )
 // Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
 // Copyright (c) 2002-2011 Merkur ( devs at emule-project.net / http://www.emule-project.net )
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -44,28 +44,26 @@ CWebSocket::CWebSocket(CWebServerBase *parent)
 	m_Cookie = 0;
 	m_IsGet = false;
 	m_IsPost = false;
-	
+
 	m_pParent = parent;
-	
+
 	SetEventHandler(*parent, ID_WEBCLIENTSOCKET_EVENT);
 	SetNotify(wxSOCKET_INPUT_FLAG | wxSOCKET_OUTPUT_FLAG | wxSOCKET_LOST_FLAG);
 	Notify(true);
-	
-}
 
-void CWebSocket::OnError()
-{
 }
 
 void CWebSocket::OnLost()
 {
+	Close();
+	Destroy();
 }
 
-void CWebSocket::OnInput()
+void CWebSocket::OnReceive(int)
 {
-	Read(m_pBuf + m_dwRecv, m_dwBufSize - m_dwRecv);
-	m_dwRecv += LastCount();
-	while ((m_dwRecv == m_dwBufSize) && (LastCount()!=0) && (!Error())) {
+	uint32 read = Read(m_pBuf + m_dwRecv, m_dwBufSize - m_dwRecv);
+	m_dwRecv += read;
+	while ((m_dwRecv == m_dwBufSize) && (read != 0) && (!LastError())) {
 		// Buffer is too small. Make it bigger.
 		uint32 newsize = m_dwBufSize + (m_dwBufSize  >> 1);
 		char* newbuffer = new char[newsize];
@@ -75,25 +73,23 @@ void CWebSocket::OnInput()
 		m_pBuf = newbuffer;
 		m_dwBufSize = newsize;
 		// And read again
-		Read(m_pBuf + m_dwRecv, m_dwBufSize - m_dwRecv);
-		m_dwRecv += LastCount();				
+		read = Read(m_pBuf + m_dwRecv, m_dwBufSize - m_dwRecv);
+		m_dwRecv += read;
 	}
-	
-	if (LastCount() == 0) {
-		if (Error()) {
-			if (LastError() != wxSOCKET_WOULDBLOCK) {
-				Close();
-				return ;
-			}
+
+	if (read == 0) {
+		if (LastError()) {
+			Close();
+			return ;
 		}
 	}
-	
+
 	m_pBuf[m_dwRecv] = '\0';
 
-	
+
 	//
 	// Check what kind of request is that
-	if ( !m_IsGet && !m_IsPost ) {
+	if ( !m_IsGet && !m_IsPost && m_dwRecv >= 4) {
 		if ( !strncasecmp(m_pBuf, "GET", 3) ) {
 			m_IsGet = true;
 		} else if ( !strncasecmp(m_pBuf, "POST", 4) ) {
@@ -104,10 +100,10 @@ void CWebSocket::OnInput()
 			return ;
 		}
 	}
-	// 
+	//
 	// RFC1945:
 	//
-	
+
 	//
 	// "GET" must have last line empty
 	if ( m_IsGet ) {
@@ -115,7 +111,6 @@ void CWebSocket::OnInput()
 			//
 			// Process request
 			OnRequestReceived(m_pBuf, 0, 0);
-			OnOutput();
 		}
 	}
 	//
@@ -137,17 +132,15 @@ void CWebSocket::OnInput()
 			cont += 4;
 			if ( cont - m_pBuf + len <= (int)m_dwRecv ) {
 				OnRequestReceived(m_pBuf, cont, len);
-				OnOutput();
 			}
 		}
 	}
 }
 
-void CWebSocket::OnOutput()
+void CWebSocket::OnSend(int)
 {
 	while (m_pHead && m_pHead->m_pToSend) {
-		Write(m_pHead->m_pToSend, m_pHead->m_dwSize);
-		uint32 nRes = LastCount();
+		uint32 nRes = Write(m_pHead->m_pToSend, m_pHead->m_dwSize);
 		if (nRes >= m_pHead->m_dwSize) {
 			// erase this chunk
 			CChunk* pNext = m_pHead->m_pNext;
@@ -156,16 +149,15 @@ void CWebSocket::OnOutput()
 				m_pTail = NULL;
 			}
 		} else {
-			if ((nRes > 0) && (!Error())) {
+			if (LastError()) {
+				Close();
+				break;
+			} else if (nRes > 0) {
 				m_pHead->m_pToSend += nRes;
 				m_pHead->m_dwSize -= nRes;
 			} else {
-				if (Error()) {
-					if (LastError() != wxSOCKET_WOULDBLOCK) {
-						Close();
-						break;
-					}
-				}
+				// blocks
+				break;
 			}
 		}
 	}
@@ -191,13 +183,13 @@ void CWebSocket::OnRequestReceived(char* pHeader, char* pData, uint32 dwDataLen)
 		return;
 	}
 	*pHeader++ = 0;
-	
+
 	wxString sURL(char2unicode(path));
 	if ( is_post ) {
 		wxString sData(char2unicode(pData));
 		sURL += wxT("?") + sData.Left(dwDataLen);
 	}
-	
+
 	//
 	// Find session cookie.
 	//
@@ -209,7 +201,7 @@ void CWebSocket::OnRequestReceived(char* pHeader, char* pData, uint32 dwDataLen)
 			char *value = strchr(current_cookie, '=');
 			if ( value ) {
 				sessid = atoi(++value);
-			}			
+			}
 		}
 	}
 	ThreadData Data = { CParsedUrl(sURL), sURL, sessid, this };
@@ -263,36 +255,31 @@ void CWebSocket::SendHttpHeaders(const char* szType, bool use_gzip, uint32 conte
 	SendData(szBuf, strlen(szBuf));
 }
 
-void CWebSocket::SendData(const void* pData, uint32 dwDataSize) 
+void CWebSocket::SendData(const void* pData, uint32 dwDataSize)
 {
+	if (!dwDataSize) {	// sanity
+		return;
+	}
 	const char * data = (const char*) pData;
-	if (!m_pHead) {
-		// try to send it directly
-		Write(data, dwDataSize);
-		uint32 nRes = LastCount();
-		if ((nRes < dwDataSize) && 
-			Error() && (LastError() != wxSOCKET_WOULDBLOCK)) {
-			Close();
-		} else {
-			data += nRes;
-			dwDataSize -= nRes;
-		}
+	bool outputRequired = !m_pHead;
+
+	// push it to our tails
+	CChunk* pChunk = new CChunk;
+	pChunk->m_pNext = NULL;
+	pChunk->m_dwSize = dwDataSize;
+	pChunk->m_pData = new char[dwDataSize];
+	memcpy(pChunk->m_pData, data, dwDataSize);
+	// push it to the end of our queue
+	pChunk->m_pToSend = pChunk->m_pData;
+	if (m_pTail) {
+		m_pTail->m_pNext = pChunk;
+	} else {
+		m_pHead = pChunk;
 	}
-	if (dwDataSize) {
-		// push it to our tails
-		CChunk* pChunk = new CChunk;
-		pChunk->m_pNext = NULL;
-		pChunk->m_dwSize = dwDataSize;
-		pChunk->m_pData = new char[dwDataSize];
-		memcpy(pChunk->m_pData, data, dwDataSize);
-		// push it to the end of our queue
-		pChunk->m_pToSend = pChunk->m_pData;
-		if (m_pTail) {
-			m_pTail->m_pNext = pChunk;
-		} else {
-			m_pHead = pChunk;
-		}
-		m_pTail = pChunk;
+	m_pTail = pChunk;
+
+	if (outputRequired) {
+		OnSend(0);
 	}
 }
 // File_checked_for_headers
diff --git a/src/webserver/src/WebSocket.h b/src/webserver/src/WebSocket.h
index 24ad66e..234f460 100644
--- a/src/webserver/src/WebSocket.h
+++ b/src/webserver/src/WebSocket.h
@@ -1,6 +1,6 @@
 //
 // This file is part of the aMule Project.
-//  
+//
 // Copyright (c) 2004-2011 shakraw ( shakraw at users.sourceforge.net )
 // Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
 // Copyright (c) 2002-2011 Merkur ( devs at emule-project.net / http://www.emule-project.net )
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -29,6 +29,7 @@
 
 
 #include "WebServer.h"
+#include <LibSocket.h>
 
 
 #ifdef ENABLE_UPNP
@@ -38,37 +39,35 @@ class CUPnPPortMapping;
 class CWebServer;
 
 
-class CWebSocket : public wxSocketClient {
+class CWebSocket : public CLibSocket {
 	public:
 		CWebSocket(CWebServerBase *parent);
-		
-        void OnError();
-        void OnLost();
 
-        void OnInput();
-        void OnOutput();
+		virtual void OnSend(int);
+		virtual void OnReceive(int);
+		virtual void OnLost();
 
         void OnRequestReceived(char* pHeader, char* pData, uint32 dwDataLen);
 
 		void SendContent(const char* szStdResponse, const void* pContent, uint32 dwContentSize);
 		void SendData(const void* pData, uint32 dwDataSize);
 		void SendHttpHeaders(const char * szType, bool use_gzip, uint32 content_len, int session_id);
-		
+
 		CWebServerBase *m_pParent;
-	
+
 		class CChunk {
 			public:
 				char* m_pData;
 				char* m_pToSend;
 				uint32 m_dwSize;
-			
+
 				CChunk* m_pNext;
 				~CChunk() { if (m_pData) delete[] m_pData; }
 		};
 
 		CChunk *m_pHead; // tails of what has to be sent
 		CChunk *m_pTail;
-		
+
 		bool m_IsGet, m_IsPost;
 		char *m_Cookie;
 		char *m_pBuf;
diff --git a/src/webserver/src/php_amule_lib.cpp b/src/webserver/src/php_amule_lib.cpp
index 3263661..d8c5286 100644
--- a/src/webserver/src/php_amule_lib.cpp
+++ b/src/webserver/src/php_amule_lib.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -43,7 +43,7 @@
 /*
  * Built-in php functions. Those are amule-specific funcions, accessing EC and internal
  * datastructre
- * 
+ *
  */
 
 void php_native_shared_file_cmd(PHP_VALUE_NODE *)
@@ -54,7 +54,7 @@ void php_native_shared_file_cmd(PHP_VALUE_NODE *)
 		return;
 	}
 	char *str_hash = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {
 		php_report_error(PHP_ERROR, "Invalid or missing argument 2");
@@ -81,9 +81,9 @@ void php_native_reload_shared_file_cmd(PHP_VALUE_NODE *)
 }
 
 /*
- * 
+ *
  * Usage: php_native_download_file_cmd($file_hash, "command", $optional_arg)
- * 
+ *
  */
 void php_native_download_file_cmd(PHP_VALUE_NODE *)
 {
@@ -93,7 +93,7 @@ void php_native_download_file_cmd(PHP_VALUE_NODE *)
 		return;
 	}
 	char *str_hash = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {
 		php_report_error(PHP_ERROR, "Invalid or missing argument 2");
@@ -107,7 +107,7 @@ void php_native_download_file_cmd(PHP_VALUE_NODE *)
 		php_report_error(PHP_ERROR, "Commands 'prio' and 'setcat' needs 3-rd argument");
 		return;
 	}
-		
+
 	CPhPLibContext::g_curr_context->WebServer()->Send_DownloadFile_Cmd(wxString(char2unicode(str_hash)),
 		wxString(char2unicode(cmd_name)),
 		opt_param ? opt_param->value.int_val : 0);
@@ -157,7 +157,7 @@ void php_native_add_server_cmd(PHP_VALUE_NODE *)
 		return;
 	}
 	char *addr = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si ) {
 		php_report_error(PHP_ERROR, "Missing argument 2: $server_port");
@@ -218,11 +218,11 @@ void php_get_amule_stats(PHP_VALUE_NODE *result)
 	if (!stats) {
 		return ;
 	}
-	CEC_ConnState_Tag *tag = (CEC_ConnState_Tag *)stats->GetTagByName(EC_TAG_CONNSTATE);
+	const CEC_ConnState_Tag *tag = static_cast<const CEC_ConnState_Tag *>(stats->GetTagByName(EC_TAG_CONNSTATE));
 	if (!tag) {
 		return ;
 	}
-	
+
 	cast_value_array(result);
 	PHP_VAR_NODE *id = array_get_by_str_key(result, "id");
 	cast_value_dnum(&id->value);
@@ -241,7 +241,7 @@ void php_get_amule_stats(PHP_VALUE_NODE *result)
 			srv_name->value.type = PHP_VAL_STRING;
 			srv_name->value.str_val = strdup(unicode2UTF8(sname->GetStringData()));
 		}
-		
+
 		const CECTag *susers = server->GetTagByName(EC_TAG_SERVER_USERS);
 		if ( susers ) {
 			PHP_VAR_NODE *srv_users = array_get_by_str_key(result, "serv_users");
@@ -249,7 +249,7 @@ void php_get_amule_stats(PHP_VALUE_NODE *result)
 			srv_users->value.type = PHP_VAL_INT;
 			srv_users->value.int_val = susers->GetInt();
 		}
-			
+
 	}
 	// kademlia
 	PHP_VAR_NODE *kad = array_get_by_str_key(result, "kad_connected");
@@ -269,7 +269,7 @@ void php_get_amule_stats(PHP_VALUE_NODE *result)
 	value_value_free(&speed->value);
 	speed->value.type = PHP_VAL_INT;
 	speed->value.int_val = stats->GetTagByName(EC_TAG_STATS_UL_SPEED)->GetInt();
-	
+
 	speed = array_get_by_str_key(result, "speed_down");
 	value_value_free(&speed->value);
 	speed->value.type = PHP_VAL_INT;
@@ -279,7 +279,7 @@ void php_get_amule_stats(PHP_VALUE_NODE *result)
 	value_value_free(&speed->value);
 	speed->value.type = PHP_VAL_INT;
 	speed->value.int_val = stats->GetTagByName(EC_TAG_STATS_UL_SPEED_LIMIT)->GetInt();
-	
+
 	speed = array_get_by_str_key(result, "speed_limit_down");
 	value_value_free(&speed->value);
 	speed->value.type = PHP_VAL_INT;
@@ -301,7 +301,7 @@ void php_get_amule_categories(PHP_VALUE_NODE *result)
 	const CECTag *cats_tag = reply->GetFirstTagSafe();
 	if (cats_tag->HasChildTags()) {
 		int i = 0;
-		for (CECTag::const_iterator it = cats_tag->begin(); it != cats_tag->end(); it++) {
+		for (CECTag::const_iterator it = cats_tag->begin(); it != cats_tag->end(); ++it) {
 			const CECTag *categoryTitle = it->GetTagByName(EC_TAG_CATEGORY_TITLE);
 			PHP_VAR_NODE *cat = array_get_by_int_key(result, i++);
 			value_value_free(&cat->value);
@@ -327,10 +327,10 @@ PHP_2_EC_OPT_DEF g_connection_opt_defs[] = {
 	{ "max_line_up_cap", EC_TAG_CONN_UL_CAP, 4}, { "max_line_down_cap", EC_TAG_CONN_DL_CAP, 4},
 	{ "max_up_limit", EC_TAG_CONN_MAX_UL, 2}, { "max_down_limit", EC_TAG_CONN_MAX_DL, 2},
 	{ "slot_alloc", EC_TAG_CONN_SLOT_ALLOCATION, 2},
-	{ "tcp_port", EC_TAG_CONN_TCP_PORT, 2}, { "udp_port", EC_TAG_CONN_UDP_PORT, 2}, 
+	{ "tcp_port", EC_TAG_CONN_TCP_PORT, 2}, { "udp_port", EC_TAG_CONN_UDP_PORT, 2},
 	{ "udp_dis", EC_TAG_CONN_UDP_DISABLE, 0},
 	{ "max_file_src", EC_TAG_CONN_MAX_FILE_SOURCES, 2},
-	{ "max_conn_total", EC_TAG_CONN_MAX_CONN, 2}, 
+	{ "max_conn_total", EC_TAG_CONN_MAX_CONN, 2},
 	{ "autoconn_en", EC_TAG_CONN_AUTOCONNECT, 0}, { "reconn_en", EC_TAG_CONN_RECONNECT, 0},
 	{0, (ECTagNames)0, 0}
 };
@@ -417,7 +417,7 @@ void php_get_amule_options(PHP_VALUE_NODE *result)
 	if ((cattag = reply->GetTagByName(EC_TAG_PREFS_CONNECTIONS)) != 0) {
 		PHP_VAR_NODE *cat = array_get_by_str_key(result, "connection");
 		cast_value_array(&cat->value);
-		
+
 		ec_tag_2_php(cattag, g_connection_opt_defs, cat);
 	}
 	if ((cattag = reply->GetTagByName(EC_TAG_PREFS_FILES)) != 0) {
@@ -517,7 +517,7 @@ void php_native_search_download_cmd(PHP_VALUE_NODE *)
 		return;
 	}
 	char *str_hash = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {
 		php_report_error(PHP_ERROR, "Invalid or missing argument 2 (category)");
@@ -563,7 +563,7 @@ void php_native_search_start_cmd(PHP_VALUE_NODE *)
 		case 0: search_type = EC_SEARCH_LOCAL; break;
 		case 1: search_type = EC_SEARCH_GLOBAL; break;
 		case 2: search_type = EC_SEARCH_KAD; break;
-		default: 
+		default:
 			php_report_error(PHP_ERROR, "Invalid search type %"PRIu64, si->var->value.int_val);
 			return;
 	}
@@ -601,7 +601,7 @@ void php_native_search_start_cmd(PHP_VALUE_NODE *)
 void php_get_log(PHP_VALUE_NODE *result)
 {
 	value_value_free(result);
-	
+
 	PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, "__param_0");
 	bool rst;
 	if ( !si ) {
@@ -630,7 +630,7 @@ void php_get_log(PHP_VALUE_NODE *result)
 void php_get_serverinfo(PHP_VALUE_NODE *result)
 {
 	value_value_free(result);
-	
+
 	PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, "__param_0");
 	bool rst;
 	if ( !si ) {
@@ -666,7 +666,7 @@ void php_native_ed2k_download_cmd(PHP_VALUE_NODE *result)
 		return;
 	}
 	char *str_link = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {
 		php_report_error(PHP_ERROR, "Invalid or missing argument 2 (category)");
@@ -707,7 +707,7 @@ void amule_obj_array_create(const char *class_name, PHP_VALUE_NODE *result)
 		var->value.obj_val.class_name = class_name;
 		const T *cur_item = &(*it);
 		var->value.obj_val.inst_ptr = (void *)cur_item;
-		it++;
+		++it;
 	}
 }
 
@@ -743,7 +743,7 @@ void amule_load_stats()
 
 /*
  * Convert CEC_StatTree_Node_Tag into php associative array
- * 
+ *
  * Since data structure is recoursive - we need helper function
  * to perform conversion
  */
@@ -752,7 +752,7 @@ void ecstats2php(CEC_StatTree_Node_Tag *root, PHP_VALUE_NODE *result)
 	cast_value_array(result);
 	std::string key(unicode2UTF8(root->GetDisplayString()));
 	PHP_VAR_NODE *v_key = array_get_by_str_key(result, key);
-	for (CECTag::const_iterator it = root->begin(); it != root->end(); it++) {
+	for (CECTag::const_iterator it = root->begin(); it != root->end(); ++it) {
 		CEC_StatTree_Node_Tag *tag = (CEC_StatTree_Node_Tag*) & *it;
 		if (tag->GetTagName() == EC_TAG_STATTREE_NODE) {
 			ecstats2php(tag, &v_key->value);
@@ -767,7 +767,7 @@ void amule_load_stats_tree(PHP_VALUE_NODE *result)
 		return;
 	}
 	value_value_free(result);
-	
+
 	CECPacket req(EC_OP_GET_STATSTREE, EC_DETAIL_WEB);
 	const CECPacket *response = CPhPLibContext::g_curr_context->WebServer()->webInterface->SendRecvMsg_v2(&req);
 	if ( !response ) {
@@ -779,9 +779,9 @@ void amule_load_stats_tree(PHP_VALUE_NODE *result)
 		delete response;
 		return;
 	}
-	CEC_StatTree_Node_Tag *stats_root = (CEC_StatTree_Node_Tag *)response->GetTagByName(EC_TAG_STATTREE_NODE);
+	const CEC_StatTree_Node_Tag *stats_root = static_cast<const CEC_StatTree_Node_Tag *>(response->GetTagByName(EC_TAG_STATTREE_NODE));
 	//ecstats2php(stats_root, result);
-	for (CECTag::const_iterator it = stats_root->begin(); it != stats_root->end(); it++) {
+	for (CECTag::const_iterator it = stats_root->begin(); it != stats_root->end(); ++it) {
 		CEC_StatTree_Node_Tag *tag = (CEC_StatTree_Node_Tag*) & *it;
 		if (tag->GetTagName() == EC_TAG_STATTREE_NODE) {
 			ecstats2php(tag, result);
@@ -834,7 +834,7 @@ void amule_download_file_prop_get(void *ptr, char *prop_name, PHP_VALUE_NODE *re
 		value_value_free(result);
 		return;
 	}
-	DownloadFile *obj = (DownloadFile *)ptr;
+	DownloadFile *obj = static_cast<DownloadFile *>(ptr);
 	result->type = PHP_VAL_INT;
 	if ( strcmp(prop_name, "name") == 0 ) {
 		result->type = PHP_VAL_STRING;
@@ -889,7 +889,7 @@ void amule_upload_file_prop_get(void *ptr, char *prop_name, PHP_VALUE_NODE *resu
 		value_value_free(result);
 		return;
 	}
-	UploadFile *obj = (UploadFile *)ptr;
+	UploadFile *obj = static_cast<UploadFile *>(ptr);
 	result->type = PHP_VAL_INT;
 	if ( strcmp(prop_name, "name") == 0 ) {
 		result->type = PHP_VAL_STRING;
@@ -934,7 +934,7 @@ void amule_server_prop_get(void *ptr, char *prop_name, PHP_VALUE_NODE *result)
 		value_value_free(result);
 		return;
 	}
-	ServerEntry *obj = (ServerEntry *)ptr;
+	ServerEntry *obj = static_cast<ServerEntry *>(ptr);
 	if ( strcmp(prop_name, "name") == 0 ) {
 		result->type = PHP_VAL_STRING;
 		result->str_val = strdup((const char *)unicode2UTF8(obj->sServerName));
@@ -970,7 +970,7 @@ void amule_shared_file_prop_get(void *ptr, char *prop_name, PHP_VALUE_NODE *resu
 		value_value_free(result);
 		return;
 	}
-	SharedFile *obj = (SharedFile *)ptr;
+	SharedFile *obj = static_cast<SharedFile *>(ptr);
 	if ( strcmp(prop_name, "name") == 0 ) {
 		result->type = PHP_VAL_STRING;
 		result->str_val = strdup((const char *)unicode2UTF8(obj->sFileName));
@@ -1022,7 +1022,7 @@ void amule_search_file_prop_get(void *ptr, char *prop_name, PHP_VALUE_NODE *resu
 		value_value_free(result);
 		return;
 	}
-	SearchFile *obj = (SearchFile *)ptr;
+	SearchFile *obj = static_cast<SearchFile *>(ptr);
 	if ( strcmp(prop_name, "name") == 0 ) {
 		result->type = PHP_VAL_STRING;
 		result->str_val = strdup((const char *)unicode2UTF8(obj->sFileName));
diff --git a/src/webserver/src/php_amule_lib_standalone.cpp b/src/webserver/src/php_amule_lib_standalone.cpp
index d98882f..916188e 100644
--- a/src/webserver/src/php_amule_lib_standalone.cpp
+++ b/src/webserver/src/php_amule_lib_standalone.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -51,7 +51,7 @@ void php_native_shared_file_cmd(PHP_VALUE_NODE *)
 		return;
 	}
 	char *str_hash = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {
 		php_report_error(PHP_ERROR, "Invalid or missing argument 2");
@@ -75,9 +75,9 @@ void php_native_reload_shared_file_cmd(PHP_VALUE_NODE *)
 }
 
 /*
- * 
+ *
  * Usage: php_native_download_file_cmd($file_hash, "command", $optional_arg)
- * 
+ *
  */
 void php_native_download_file_cmd(PHP_VALUE_NODE *)
 {
@@ -87,7 +87,7 @@ void php_native_download_file_cmd(PHP_VALUE_NODE *)
 		return;
 	}
 	char *str_hash = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {
 		php_report_error(PHP_ERROR, "Invalid or missing argument 2");
@@ -101,7 +101,7 @@ void php_native_download_file_cmd(PHP_VALUE_NODE *)
 		php_report_error(PHP_ERROR, "Commands 'prio' and 'setcat' needs 3-rd argument");
 		return;
 	}
-		
+
 	printf("php_native_download_file_cmd: hash=%s cmd=%s\n", str_hash, cmd_name);
 }
 
@@ -145,7 +145,7 @@ void php_native_add_server_cmd(PHP_VALUE_NODE *)
 		return;
 	}
 	char *addr = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si ) {
 		php_report_error(PHP_ERROR, "Missing argument 2: $server_port");
@@ -251,7 +251,7 @@ void php_native_search_download_cmd(PHP_VALUE_NODE *)
 		return;
 	}
 	char *str_hash = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {
 		php_report_error(PHP_ERROR, "Invalid or missing argument 2 (category)");
@@ -321,7 +321,7 @@ void php_native_search_start_cmd(PHP_VALUE_NODE *)
 void php_get_log(PHP_VALUE_NODE *result)
 {
 	value_value_free(result);
-	
+
 	PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, "__param_0");
 	bool rst;
 	if ( !si ) {
@@ -340,7 +340,7 @@ void php_get_log(PHP_VALUE_NODE *result)
 void php_get_serverinfo(PHP_VALUE_NODE *result)
 {
 	value_value_free(result);
-	
+
 	PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, "__param_0");
 	bool rst;
 	if ( !si ) {
@@ -364,7 +364,7 @@ void php_native_ed2k_download_cmd(PHP_VALUE_NODE *result)
 		return;
 	}
 	char *str_link = si->var->value.str_val;
-	
+
 	si = get_scope_item(g_current_scope, "__param_1");
 	if ( !si || (si->var->value.type != PHP_VAL_STRING)) {
 		php_report_error(PHP_ERROR, "Invalid or missing argument 2 (category)");
@@ -605,17 +605,17 @@ int main(int argc, char *argv[])
 	const char *filename = ( argc == 2 ) ? argv[1] : "test.php";
 
 	CWriteStrBuffer buffer;
-	
+
 	//phpdebug = 0;
 
 	CPhpFilter php_filter((CWebServerBase*)0, (CSession *)0,filename, &buffer);
-	
+
 	int size = buffer.Length();
 	char *buf = new char [size+1];
 	buffer.CopyAll(buf);
 	printf("%s", buf);
 	delete [] buf;
-	
+
 	return 0;
 }
 
diff --git a/src/webserver/src/php_core_lib.cpp b/src/webserver/src/php_core_lib.cpp
index b3f5c45..5db0198 100644
--- a/src/webserver/src/php_core_lib.cpp
+++ b/src/webserver/src/php_core_lib.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -55,7 +55,7 @@
 
 /*
  * Built-in php functions. Those are both library and core internals.
- * 
+ *
  * I'm not going event to get near to what Zend provide, but
  * at least base things must be here
  */
@@ -118,7 +118,7 @@ class SortElem {
 
 		PHP_VAR_NODE *obj;
 		static PHP_SYN_FUNC_DECL_NODE *callback;
-		
+
 		friend bool operator<(const SortElem &o1, const SortElem &o2);
 };
 
@@ -130,7 +130,7 @@ bool operator<(const SortElem &o1, const SortElem &o2)
 
 	value_value_assign(&SortElem::callback->params[0].si_var->var->value, &o1.obj->value);
 	value_value_assign(&SortElem::callback->params[1].si_var->var->value, &o2.obj->value);
-	
+
 	switch_push_scope_table((PHP_SCOPE_TABLE_TYPE *)SortElem::callback->scope);
 
 	//
@@ -146,7 +146,7 @@ bool operator<(const SortElem &o1, const SortElem &o2)
 
 	value_value_free(&SortElem::callback->params[0].si_var->var->value);
 	value_value_free(&SortElem::callback->params[1].si_var->var->value);
-	
+
 	return result.int_val != 0;
 }
 
@@ -178,13 +178,13 @@ void php_native_usort(PHP_VALUE_NODE *)
 	//
 	// create vector of values
 	//
-	if ( arr_obj->array.size() == 0 ) {
+	if ( arr_obj->array.empty() ) {
 		php_report_error(PHP_WARNING, "Sorting array of size 0");
 		return;
 	}
 
 	std::list<SortElem> sort_list;
-	for(PHP_ARRAY_ITER_TYPE i = arr_obj->array.begin(); i != arr_obj->array.end(); i++) {
+	for(PHP_ARRAY_ITER_TYPE i = arr_obj->array.begin(); i != arr_obj->array.end(); ++i) {
 		sort_list.push_back(SortElem(i->second));
 	}
 	SortElem::callback = func_decl;
@@ -193,7 +193,7 @@ void php_native_usort(PHP_VALUE_NODE *)
 	arr_obj->array.clear();
 	arr_obj->sorted_keys.clear();
 	unsigned int key = 0;
-	for(std::list<SortElem>::iterator i = sort_list.begin(); i != sort_list.end(); i++) {
+	for(std::list<SortElem>::iterator i = sort_list.begin(); i != sort_list.end(); ++i) {
 		array_add_to_int_key(&array->value, key++, i->obj);
 	}
 
@@ -286,7 +286,7 @@ void php_native_split(PHP_VALUE_NODE *result)
 	if ( result ) {
 		cast_value_array(result);
 	} else {
-		return; 
+		return;
 	}
 	PHP_VALUE_NODE *pattern, *string_to_split, *split_limit;
 	PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, "__param_0");
@@ -311,7 +311,7 @@ void php_native_split(PHP_VALUE_NODE *result)
 		cast_value_dnum(split_limit);
 	} else {
 		php_report_error(PHP_ERROR, "Invalid or missing argument: string");
-		return;		
+		return;
 	}
 #ifdef PHP_STANDALONE_EN
 	regex_t preg;
@@ -334,7 +334,7 @@ void php_native_split(PHP_VALUE_NODE *result)
 #endif
 	char *str_2_match = string_to_split->str_val;
 	char *tmp_buff = new char[strlen(string_to_split->str_val)+1];
-	
+
 	while ( 1 ) {
 //		printf("matching: %s\n", str_2_match);
 #ifdef PHP_STANDALONE_EN
@@ -352,7 +352,7 @@ void php_native_split(PHP_VALUE_NODE *result)
 		if (!preg.GetMatch(&start, &len)) {
 			break;	// shouldn't happen
 		}
-#endif	
+#endif
 		/*
 		 * I will use only first match, since I don't see any sense to have more
 		 * then 1 match in split() call
@@ -370,7 +370,7 @@ void php_native_split(PHP_VALUE_NODE *result)
 		tmp_buff[start] = 0;
 #endif
 //		printf("Match added [%s]\n", tmp_buff);
-		
+
 		PHP_VAR_NODE *match_val = array_push_back(result);
 		match_val->value.type = PHP_VAL_STRING;
 		match_val->value.str_val = strdup(tmp_buff);
@@ -385,7 +385,7 @@ void php_native_split(PHP_VALUE_NODE *result)
 	PHP_VAR_NODE *match_val = array_push_back(result);
 	match_val->value.type = PHP_VAL_STRING;
 	match_val->value.str_val = strdup(str_2_match);
-	
+
 	delete [] tmp_buff;
 #ifdef PHP_STANDALONE_EN
 	delete [] pmatch;
@@ -465,7 +465,7 @@ void php_native_ngettext(PHP_VALUE_NODE *result)
 
 PHP_BLTIN_FUNC_DEF core_lib_funcs[] = {
 	{
-		"var_dump", 
+		"var_dump",
 		1,
 		php_native_var_dump,
 	},
@@ -541,7 +541,7 @@ CPhPLibContext::CPhPLibContext(CWebServerBase *server, const char *file)
 	}
 
 	phpparse();
-	
+
 	m_syn_tree_top = g_syn_tree_top;
 	m_global_scope = g_global_scope;
 }
@@ -558,7 +558,7 @@ CPhPLibContext::CPhPLibContext(CWebServerBase *server, char *php_buf, int len)
 
 	php_set_input_buffer(php_buf, len);
 	phpparse();
-	
+
 	m_syn_tree_top = g_syn_tree_top;
 }
 
@@ -577,7 +577,7 @@ void CPhPLibContext::SetContext()
 void CPhPLibContext::Execute(CWriteStrBuffer *buf)
 {
 	m_curr_str_buffer = buf;
-	
+
 	PHP_VALUE_NODE val;
 	php_execute(g_syn_tree_top, &val);
 }
@@ -588,13 +588,13 @@ CPhPLibContext *CPhPLibContext::g_curr_context = 0;
  * For simplicity and performance sake, this function can
  * only handle limited-length printf's. In should be NOT be used
  * for string concatenation like printf("xyz %s %s", s1, s2).
- * 
+ *
  * Engine will call Print for "print" and "echo"
  */
 void CPhPLibContext::Printf(const char *str, ...)
 {
 	va_list args;
-        
+
 	va_start(args, str);
 	if ( !g_curr_context || !g_curr_context->m_curr_str_buffer ) {
 		vprintf(str, args);
@@ -625,7 +625,8 @@ CPhpFilter::CPhpFilter(CWebServerBase *server, CSession *sess,
 		return;
 	}
 	if ( fseek(f, 0, SEEK_END) != 0 ) {
-		printf("ERROR: fseek failed on php source file [%s]\n", file); 
+		printf("ERROR: fseek failed on php source file [%s]\n", file);
+		fclose(f);
 		return;
 	}
 	int size = ftell(f);
@@ -668,7 +669,7 @@ CPhpFilter::CPhpFilter(CWebServerBase *server, CSession *sess,
 #endif
 
 		delete context;
-		
+
 		scan_ptr = curr_code_end;
 	}
 
@@ -689,13 +690,13 @@ CWriteStrBuffer::CWriteStrBuffer()
 {
 	m_alloc_size = 1024;
 	m_total_length = 0;
-	
+
 	AllocBuf();
 }
 
 CWriteStrBuffer::~CWriteStrBuffer()
 {
-	for(std::list<char *>::iterator i = m_buf_list.begin(); i != m_buf_list.end(); i++) {
+	for(std::list<char *>::iterator i = m_buf_list.begin(); i != m_buf_list.end(); ++i) {
 		delete [] *i;
 	}
 	delete [] m_curr_buf;
@@ -714,7 +715,7 @@ void CWriteStrBuffer::Write(const char *s, int len)
 		len = strlen(s);
 	}
 	m_total_length += len;
-	
+
 	while ( len ) {
 		if ( (len + 1) <= m_curr_buf_left ) {
 			strncpy(m_buf_ptr, s, len);
@@ -725,7 +726,7 @@ void CWriteStrBuffer::Write(const char *s, int len)
 			memcpy(m_buf_ptr, s, m_curr_buf_left);
 			int rem_len = len - m_curr_buf_left;
 			s += m_curr_buf_left;
-						
+
 			len = rem_len;
 			m_buf_list.push_back(m_curr_buf);
 			AllocBuf();
@@ -737,7 +738,7 @@ void CWriteStrBuffer::CopyAll(char *dst_buffer)
 {
 	char *curr_ptr = dst_buffer;
 	int rem_size = m_total_length;
-	for(std::list<char *>::iterator i = m_buf_list.begin(); i != m_buf_list.end(); i++) {
+	for(std::list<char *>::iterator i = m_buf_list.begin(); i != m_buf_list.end(); ++i) {
 		memcpy(curr_ptr, *i, m_alloc_size);
 		rem_size -= m_alloc_size;
 		curr_ptr += m_alloc_size;
@@ -755,7 +756,7 @@ void load_session_vars(const char *target, std::map<std::string, std::string> &v
 	// i'm not building exp tree, node not needed
 	delete sess_vars_exp_node;
 	cast_value_array(&sess_vars->value);
-	for(std::map<std::string, std::string>::iterator i = varmap.begin(); i != varmap.end(); i++) {
+	for(std::map<std::string, std::string>::iterator i = varmap.begin(); i != varmap.end(); ++i) {
 		PHP_VAR_NODE *curr_var = array_get_by_str_key(&sess_vars->value, i->first);
 		PHP_VALUE_NODE val;
 		val.type = PHP_VAL_STRING;
diff --git a/src/webserver/src/php_core_lib.h b/src/webserver/src/php_core_lib.h
index fe05536..8adc167 100644
--- a/src/webserver/src/php_core_lib.h
+++ b/src/webserver/src/php_core_lib.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -38,12 +38,12 @@ class CWriteStrBuffer {
 		char *m_curr_buf;
 		char *m_buf_ptr;
 		int m_curr_buf_left;
-		
+
 		void AllocBuf();
 	public:
 		CWriteStrBuffer();
 		~CWriteStrBuffer();
-		
+
 		void Write(const char *s, int len = -1);
 		void CopyAll(char *dst_buffer);
 		int Length() { return m_total_length; }
@@ -55,7 +55,7 @@ class CSession;
 class CPhPLibContext {
 		PHP_SYN_NODE *m_syn_tree_top;
 		PHP_SCOPE_TABLE m_global_scope;
-		
+
 		CWriteStrBuffer *m_curr_str_buffer;
 
 		CWebServerBase *m_server;
@@ -64,11 +64,11 @@ class CPhPLibContext {
 		CPhPLibContext(CWebServerBase *server, const char *file);
 		CPhPLibContext(CWebServerBase *server, char *php_buf, int len);
 		~CPhPLibContext();
-		
+
 		// init global vars, so parser/execution can start
 		void SetContext();
 		void Execute(CWriteStrBuffer *);
-		
+
 #ifdef __GNUC__
 		static void Printf(const char *str, ...)  __attribute__ ((__format__ (__printf__, 1, 2)));
 #else
diff --git a/src/webserver/src/php_lexer.c b/src/webserver/src/php_lexer.c
index 001aff9..3ad6bfa 100644
--- a/src/webserver/src/php_lexer.c
+++ b/src/webserver/src/php_lexer.c
@@ -6,10 +6,29 @@
 
 /* A lexical scanner generated by flex */
 
+#define yy_create_buffer php_create_buffer
+#define yy_delete_buffer php_delete_buffer
+#define yy_flex_debug php_flex_debug
+#define yy_init_buffer php_init_buffer
+#define yy_flush_buffer php_flush_buffer
+#define yy_load_buffer_state php_load_buffer_state
+#define yy_switch_to_buffer php_switch_to_buffer
+#define yyin phpin
+#define yyleng phpleng
+#define yylex phplex
+#define yylineno phplineno
+#define yyout phpout
+#define yyrestart phprestart
+#define yytext phptext
+#define yywrap phpwrap
+#define yyalloc phpalloc
+#define yyrealloc phprealloc
+#define yyfree phpfree
+
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 33
+#define YY_FLEX_SUBMINOR_VERSION 35
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -31,7 +50,7 @@
 
 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
 
-#if __STDC_VERSION__ >= 199901L
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  * if you want the limit (max/min) macros for int types. 
@@ -94,11 +113,12 @@ typedef unsigned int flex_uint32_t;
 
 #else	/* ! __cplusplus */
 
-#if __STDC__
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
 
 #define YY_USE_CONST
 
-#endif	/* __STDC__ */
+#endif	/* defined (__STDC__) */
 #endif	/* ! __cplusplus */
 
 #ifdef YY_USE_CONST
@@ -191,14 +211,9 @@ extern FILE *phpin, *phpout;
 
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-
 #ifndef YY_TYPEDEF_YY_SIZE_T
 #define YY_TYPEDEF_YY_SIZE_T
-typedef unsigned int yy_size_t;
+typedef size_t yy_size_t;
 #endif
 
 #ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -675,7 +690,7 @@ char *phptext;
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -713,7 +728,7 @@ int phpwrap()
 
 
 
-#line 717 "php_lexer.c"
+#line 732 "php_lexer.c"
 
 #define INITIAL 0
 #define BLOCK_COMMENT 1
@@ -734,6 +749,35 @@ int phpwrap()
 
 static int yy_init_globals (void );
 
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int phplex_destroy (void );
+
+int phpget_debug (void );
+
+void phpset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE phpget_extra (void );
+
+void phpset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *phpget_in (void );
+
+void phpset_in  (FILE * in_str  );
+
+FILE *phpget_out (void );
+
+void phpset_out  (FILE * out_str  );
+
+int phpget_leng (void );
+
+char *phpget_text (void );
+
+int phpget_lineno (void );
+
+void phpset_lineno (int line_number  );
+
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
  */
@@ -786,7 +830,7 @@ static int input (void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( phptext, phpleng, 1, phpout )
+#define ECHO fwrite( phptext, phpleng, 1, phpout )
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -797,7 +841,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		size_t n; \
+		int n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( phpin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -882,7 +926,7 @@ YY_DECL
 #line 73 "php_lexer.l"
 
 
-#line 886 "php_lexer.c"
+#line 930 "php_lexer.c"
 
 	if ( !(yy_init) )
 		{
@@ -1382,7 +1426,7 @@ YY_RULE_SETUP
 #line 217 "php_lexer.l"
 {
 	int val;
-	sscanf(phptext, "0x%x", &val);
+	sscanf(phptext, "0x%16x", &val);
 	phplval.exp_node = make_const_exp_dnum(val);
 	return DNUMBER;
 	}
@@ -1441,7 +1485,7 @@ YY_RULE_SETUP
 #line 251 "php_lexer.l"
 ECHO;
 	YY_BREAK
-#line 1445 "php_lexer.c"
+#line 1489 "php_lexer.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(BLOCK_COMMENT):
 case YY_STATE_EOF(LINE_COMMENT):
@@ -1675,7 +1719,7 @@ static int yy_get_next_buffer (void)
 
 		/* Read in more data. */
 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
+			(yy_n_chars), (size_t) num_to_read );
 
 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
@@ -1699,6 +1743,14 @@ static int yy_get_next_buffer (void)
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) phprealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
 	(yy_n_chars) += number_to_move;
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -1854,7 +1906,7 @@ static int yy_get_next_buffer (void)
 				case EOB_ACT_END_OF_FILE:
 					{
 					if ( phpwrap( ) )
-						return 0;
+						return EOF;
 
 					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
@@ -2123,7 +2175,9 @@ static void phpensure_buffer_stack (void)
 		(yy_buffer_stack) = (struct yy_buffer_state**)phpalloc
 								(num_to_alloc * sizeof(struct yy_buffer_state*)
 								);
-		
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in phpensure_buffer_stack()" );
+								  
 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 				
 		(yy_buffer_stack_max) = num_to_alloc;
@@ -2141,6 +2195,8 @@ static void phpensure_buffer_stack (void)
 								((yy_buffer_stack),
 								num_to_alloc * sizeof(struct yy_buffer_state*)
 								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in phpensure_buffer_stack()" );
 
 		/* zero only the new slots.*/
 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -2185,7 +2241,7 @@ YY_BUFFER_STATE php_scan_buffer  (char * base, yy_size_t  size )
 
 /** Setup the input buffer state to scan a string. The next call to phplex() will
  * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
+ * @param yystr a NUL-terminated string to scan
  * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
@@ -2250,8 +2306,7 @@ YY_BUFFER_STATE php_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 			(yy_start_stack) = (int *) phprealloc((void *) (yy_start_stack),new_size  );
 
 		if ( ! (yy_start_stack) )
-			YY_FATAL_ERROR(
-			"out of memory expanding start-condition stack" );
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
 		}
 
 	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
diff --git a/src/webserver/src/php_lexer.l b/src/webserver/src/php_lexer.l
index 1b7cf15..ae70869 100644
--- a/src/webserver/src/php_lexer.l
+++ b/src/webserver/src/php_lexer.l
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -216,7 +216,7 @@ EOL ("\r"|"\n"|"\r\n")
 
 {HEX_NUM} {
 	int val;
-	sscanf(yytext, "0x%x", &val);
+	sscanf(yytext, "0x%16x", &val);
 	phplval.exp_node = make_const_exp_dnum(val);
 	return DNUMBER;
 	}
diff --git a/src/webserver/src/php_parser.c b/src/webserver/src/php_parser.c
index a7b7a0e..ca0117e 100644
--- a/src/webserver/src/php_parser.c
+++ b/src/webserver/src/php_parser.c
@@ -1,23 +1,22 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
+/* A Bison parser, made by GNU Bison 2.4.2.  */
 
 /* Skeleton implementation for Bison's Yacc-like parsers in C
-
-   Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
+   
+      Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
+   Foundation, Inc.
+   
+   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.
-
+   the Free Software Foundation, either version 3 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., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -28,7 +27,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -46,7 +45,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.4.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -54,17 +53,115 @@
 /* Pure parsers.  */
 #define YYPURE 0
 
+/* Push parsers.  */
+#define YYPUSH 0
+
+/* Pull parsers.  */
+#define YYPULL 1
+
 /* Using locations.  */
 #define YYLSP_NEEDED 0
 
 /* Substitute the variable and function names.  */
-#define yyparse phpparse
-#define yylex   phplex
-#define yyerror phperror
-#define yylval  phplval
-#define yychar  phpchar
-#define yydebug phpdebug
-#define yynerrs phpnerrs
+#define yyparse         phpparse
+#define yylex           phplex
+#define yyerror         phperror
+#define yylval          phplval
+#define yychar          phpchar
+#define yydebug         phpdebug
+#define yynerrs         phpnerrs
+
+
+/* Copy the first part of user declarations.  */
+
+/* Line 189 of yacc.c  */
+#line 1 "php_parser.y"
+
+//
+// This file is part of the aMule Project.
+//
+// Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
+// Copyright (c) 2005-2011 Froenchenko Leonid ( lfroen at gmail.com / http://www.amule.org )
+//
+// Any parts of this program derived from the xMule, lMule or eMule project,
+// or contributed by third-party developers are copyrighted by their
+// respective authors.
+//
+// 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+//
+
+#include <stdio.h>
+#include <string.h>
+
+#include "php_syntree.h"
+
+int phplex();
+
+// add item to syntree list
+PHP_SYN_NODE *add_statement_2_list(PHP_SYN_NODE *list, PHP_SYN_NODE *st)
+{
+	if ( st && list) {
+		PHP_SYN_NODE *last = list;
+		while ( last->next_node ) {
+			last = last->next_node;
+		}
+		last->next_node = st;
+		return list;
+	} else if ( st ) {
+		return st;
+	} else {
+		return list;
+	}
+}
+
+PHP_SYN_NODE *add_branch_2_elseif(PHP_SYN_NODE *list, PHP_SYN_NODE *branch)
+{
+	if ( list ) {
+		PHP_SYN_NODE *curr_if = list;
+		while ( curr_if->node_if.code_else ) {
+			curr_if = curr_if->node_if.code_else;
+		}
+		curr_if->node_if.code_else = branch;
+		return list;
+	} else {
+		return branch;
+	}
+}
+
+
+
+/* Line 189 of yacc.c  */
+#line 147 "php_parser.c"
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
 
 
 /* Tokens.  */
@@ -163,209 +260,37 @@
      END_SCRIPT = 345
    };
 #endif
-/* Tokens.  */
-#define FNUMBER 258
-#define DNUMBER 259
-#define STRING 260
-#define IDENT 261
-#define VARIABLE 262
-#define T_ECHO 263
-#define EXIT 264
-#define IF 265
-#define DO 266
-#define WHILE 267
-#define ENDWHILE 268
-#define FOR 269
-#define ENDFOR 270
-#define FOREACH 271
-#define ENDFOREACH 272
-#define DECLARE 273
-#define ENDDECLARE 274
-#define AS 275
-#define CONST 276
-#define GLOBAL 277
-#define UNSET 278
-#define ISSET 279
-#define EMPTY 280
-#define SWITCH 281
-#define ENDSWITCH 282
-#define CASE 283
-#define DEFAULT 284
-#define BREAK 285
-#define CONTINUE 286
-#define FUNCTION 287
-#define RETURN 288
-#define CLASS 289
-#define INTERFACE 290
-#define EXTENDS 291
-#define IMPLEMENTS 292
-#define OBJECT_OPERATOR 293
-#define HASH_ASSIGN 294
-#define LIST 295
-#define ARRAY 296
-#define CLASS_SCOPE 297
-#define PRINT 298
-#define SR_EQ 299
-#define SL_EQ 300
-#define XOR_EQ 301
-#define OR_EQ 302
-#define AND_EQ 303
-#define MOD_EQ 304
-#define CONCAT_EQ 305
-#define DIV_EQ 306
-#define MUL_EQ 307
-#define MINUS_EQ 308
-#define PLUS_EQ 309
-#define LOG_OR 310
-#define LOG_XOR 311
-#define LOG_AND 312
-#define BOOLEAN_OR 313
-#define BOOLEAN_AND 314
-#define IS_NOIDENTICAL 315
-#define IS_IDENTICAL 316
-#define IS_NOEQUAL 317
-#define IS_EQ 318
-#define IS_GREATER_OR_EQ 319
-#define IS_SMALLER_OR_EQ 320
-#define SR 321
-#define SL 322
-#define INSTANCEOF 323
-#define UNSET_CAST 324
-#define BOOL_CAST 325
-#define OBJECT_CAST 326
-#define ARRAY_CAST 327
-#define STRING_CAST 328
-#define DOUBLE_CAST 329
-#define INT_CAST 330
-#define DEC 331
-#define INC 332
-#define CLONE 333
-#define NEW 334
-#define ELSEIF 335
-#define ELSE 336
-#define ENDIF 337
-#define PUBLIC 338
-#define PROTECTED 339
-#define PRIVATE 340
-#define FINAL 341
-#define ABSTRACT 342
-#define STATIC 343
-#define START_SCRIPT 344
-#define END_SCRIPT 345
 
 
 
-
-/* Copy the first part of user declarations.  */
-#line 1 "php_parser.y"
-
-//
-// This file is part of the aMule Project.
-//
-// Copyright (c) 2003-2011 aMule Team ( admin at amule.org / http://www.amule.org )
-// Copyright (c) 2005-2011 Froenchenko Leonid ( lfroen at gmail.com / http://www.amule.org )
-//
-// Any parts of this program derived from the xMule, lMule or eMule project,
-// or contributed by third-party developers are copyrighted by their
-// respective authors.
-//
-// 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
-//
-
-#include <stdio.h>
-#include <string.h>
-
-#include "php_syntree.h"
-
-int phplex();
-
-// add item to syntree list
-PHP_SYN_NODE *add_statement_2_list(PHP_SYN_NODE *list, PHP_SYN_NODE *st)
-{
-	if ( st && list) {
-		PHP_SYN_NODE *last = list;
-		while ( last->next_node ) {
-			last = last->next_node;
-		}
-		last->next_node = st;
-		return list;
-	} else if ( st ) {
-		return st;
-	} else {
-		return list;
-	}
-}
-
-PHP_SYN_NODE *add_branch_2_elseif(PHP_SYN_NODE *list, PHP_SYN_NODE *branch)
-{
-	if ( list ) {
-		PHP_SYN_NODE *curr_if = list;
-		while ( curr_if->node_if.code_else ) {
-			curr_if = curr_if->node_if.code_else;
-		}
-		curr_if->node_if.code_else = branch;
-		return list;
-	} else {
-		return branch;
-	}
-}
-
-
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table.  */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 67 "php_parser.y"
 {
+
+/* Line 214 of yacc.c  */
+#line 67 "php_parser.y"
+
 	PHP_SYN_NODE *syn_node;
 	PHP_EXP_NODE *exp_node;
 
 	char str_val[256];
-}
-/* Line 193 of yacc.c.  */
-#line 357 "php_parser.c"
-	YYSTYPE;
+
+
+
+/* Line 214 of yacc.c  */
+#line 282 "php_parser.c"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 
-
 /* Copy the second part of user declarations.  */
 
 
-/* Line 216 of yacc.c.  */
-#line 370 "php_parser.c"
+/* Line 264 of yacc.c  */
+#line 294 "php_parser.c"
 
 #ifdef short
 # undef short
@@ -440,14 +365,14 @@ typedef short int yytype_int16;
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static int
-YYID (int i)
+YYID (int yyi)
 #else
 static int
-YYID (i)
-    int i;
+YYID (yyi)
+    int yyi;
 #endif
 {
-  return i;
+  return yyi;
 }
 #endif
 
@@ -528,9 +453,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  yytype_int16 yyss;
-  YYSTYPE yyvs;
-  };
+  yytype_int16 yyss_alloc;
+  YYSTYPE yyvs_alloc;
+};
 
 /* The size of the maximum gap between one aligned stack and the next.  */
 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -564,12 +489,12 @@ union yyalloc
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack)					\
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
     do									\
       {									\
 	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack, Stack, yysize);				\
-	Stack = &yyptr->Stack;						\
+	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
+	Stack = &yyptr->Stack_alloc;					\
 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 	yyptr += yynewbytes / sizeof (*yyptr);				\
       }									\
@@ -780,7 +705,7 @@ static const char *const yytname[] =
   "program_tree", "top_statement_list", "top_statement", "statement",
   "decl_list", "expr_list", "variable_list", "global_var_list",
   "global_var", "static_var_list", "static_var", "function_decl_statement",
-  "@1", "parameter_list", "optional_class_type", "for_statement",
+  "$@1", "parameter_list", "optional_class_type", "for_statement",
   "foreach_statement", "for_expr", "elseif_list", "else_statement",
   "while_statement", "switch_case_list", "case_list", "case_list_item",
   "case_separator", "const_value", "variable", "deref_variable",
@@ -1650,9 +1575,18 @@ static const yytype_uint8 yystos[] =
 
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
+   Once GCC version 2 has supplanted version 1, this can go.  However,
+   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
+   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+   discussed.  */
 
 #define YYFAIL		goto yyerrlab
+#if defined YYFAIL
+  /* This is here to suppress warnings from the GCC cpp's
+     -Wunused-macros.  Normally we don't worry about that warning, but
+     some users do, and we want to make it easy for users to remove
+     YYFAIL uses, which will produce warnings from Bison 2.5.  */
+#endif
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
@@ -1820,17 +1754,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
 #else
 static void
-yy_stack_print (bottom, top)
-    yytype_int16 *bottom;
-    yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
   YYFPRINTF (stderr, "\n");
 }
 
@@ -1864,11 +1801,11 @@ yy_reduce_print (yyvsp, yyrule)
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
-      fprintf (stderr, "   $%d = ", yyi + 1);
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
 		       &(yyvsp[(yyi + 1) - (yynrhs)])
 		       		       );
-      fprintf (stderr, "\n");
+      YYFPRINTF (stderr, "\n");
     }
 }
 
@@ -2148,10 +2085,8 @@ yydestruct (yymsg, yytype, yyvaluep)
 	break;
     }
 }
-

 
 /* Prevent warnings from -Wmissing-prototypes.  */
-
 #ifdef YYPARSE_PARAM
 #if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
@@ -2167,11 +2102,10 @@ int yyparse ();
 #endif /* ! YYPARSE_PARAM */
 
 
-
-/* The look-ahead symbol.  */
+/* The lookahead symbol.  */
 int yychar;
 
-/* The semantic value of the look-ahead symbol.  */
+/* The semantic value of the lookahead symbol.  */
 YYSTYPE yylval;
 
 /* Number of syntax errors so far.  */
@@ -2179,9 +2113,9 @@ int yynerrs;
 
 
 
-/*----------.
-| yyparse.  |
-`----------*/
+/*-------------------------.
+| yyparse or yypush_parse.  |
+`-------------------------*/
 
 #ifdef YYPARSE_PARAM
 #if (defined __STDC__ || defined __C99__FUNC__ \
@@ -2205,66 +2139,68 @@ yyparse ()
 #endif
 #endif
 {
-  
-  int yystate;
-  int yyn;
-  int yyresult;
-  /* Number of tokens to shift before error messages enabled.  */
-  int yyerrstatus;
-  /* Look-ahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
 
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
 
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
+    int yystate;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus;
 
-  /* The state stack.  */
-  yytype_int16 yyssa[YYINITDEPTH];
-  yytype_int16 *yyss = yyssa;
-  yytype_int16 *yyssp;
+    /* The stacks and their tools:
+       `yyss': related to states.
+       `yyvs': related to semantic values.
 
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
-  YYSTYPE *yyvsp;
+       Refer to the stacks thru separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
 
+    /* The state stack.  */
+    yytype_int16 yyssa[YYINITDEPTH];
+    yytype_int16 *yyss;
+    yytype_int16 *yyssp;
 
+    /* The semantic value stack.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs;
+    YYSTYPE *yyvsp;
 
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  YYSIZE_T yystacksize = YYINITDEPTH;
+    YYSIZE_T yystacksize;
 
+  int yyn;
+  int yyresult;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
   /* The number of symbols on the RHS of the reduced rule.
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
+  yytoken = 0;
+  yyss = yyssa;
+  yyvs = yyvsa;
+  yystacksize = YYINITDEPTH;
+
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
   yynerrs = 0;
-  yychar = YYEMPTY;		/* Cause a token to be read.  */
+  yychar = YYEMPTY; /* Cause a token to be read.  */
 
   /* Initialize stack pointers.
      Waste one element of value and location stack
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
-
   yyssp = yyss;
   yyvsp = yyvs;
 
@@ -2294,7 +2230,6 @@ yyparse ()
 	YYSTYPE *yyvs1 = yyvs;
 	yytype_int16 *yyss1 = yyss;
 
-
 	/* Each stack pointer address is followed by the size of the
 	   data in use in that stack, in bytes.  This used to be a
 	   conditional around just the two extra args, but that might
@@ -2302,7 +2237,6 @@ yyparse ()
 	yyoverflow (YY_("memory exhausted"),
 		    &yyss1, yysize * sizeof (*yyssp),
 		    &yyvs1, yysize * sizeof (*yyvsp),
-
 		    &yystacksize);
 
 	yyss = yyss1;
@@ -2325,9 +2259,8 @@ yyparse ()
 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
 	if (! yyptr)
 	  goto yyexhaustedlab;
-	YYSTACK_RELOCATE (yyss);
-	YYSTACK_RELOCATE (yyvs);
-
+	YYSTACK_RELOCATE (yyss_alloc, yyss);
+	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
 	if (yyss1 != yyssa)
 	  YYSTACK_FREE (yyss1);
@@ -2338,7 +2271,6 @@ yyparse ()
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
-
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
 		  (unsigned long int) yystacksize));
 
@@ -2348,6 +2280,9 @@ yyparse ()
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
+  if (yystate == YYFINAL)
+    YYACCEPT;
+
   goto yybackup;
 
 /*-----------.
@@ -2356,16 +2291,16 @@ yyparse ()
 yybackup:
 
   /* Do appropriate processing given the current state.  Read a
-     look-ahead token if we need one and don't already have one.  */
+     lookahead token if we need one and don't already have one.  */
 
-  /* First try to decide what to do without reference to look-ahead token.  */
+  /* First try to decide what to do without reference to lookahead token.  */
   yyn = yypact[yystate];
   if (yyn == YYPACT_NINF)
     goto yydefault;
 
-  /* Not known => get a look-ahead token if don't already have one.  */
+  /* Not known => get a lookahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
@@ -2397,20 +2332,16 @@ yybackup:
       goto yyreduce;
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
-  /* Shift the look-ahead token.  */
+  /* Shift the lookahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
-  /* Discard the shifted token unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
 
   yystate = yyn;
   *++yyvsp = yylval;
@@ -2450,111 +2381,155 @@ yyreduce:
   switch (yyn)
     {
         case 2:
+
+/* Line 1464 of yacc.c  */
 #line 142 "php_parser.y"
     { g_syn_tree_top = (yyvsp[(2) - (3)].syn_node); ;}
     break;
 
   case 3:
+
+/* Line 1464 of yacc.c  */
 #line 146 "php_parser.y"
     { (yyval.syn_node) = add_statement_2_list((yyvsp[(1) - (2)].syn_node), (yyvsp[(2) - (2)].syn_node)); ;}
     break;
 
   case 4:
+
+/* Line 1464 of yacc.c  */
 #line 147 "php_parser.y"
     { (yyval.syn_node) = 0; ;}
     break;
 
   case 6:
+
+/* Line 1464 of yacc.c  */
 #line 153 "php_parser.y"
     { (yyval.syn_node) = (yyvsp[(2) - (3)].syn_node); ;}
     break;
 
   case 8:
+
+/* Line 1464 of yacc.c  */
 #line 159 "php_parser.y"
     { (yyval.syn_node) = (yyvsp[(2) - (3)].syn_node); ;}
     break;
 
   case 9:
+
+/* Line 1464 of yacc.c  */
 #line 160 "php_parser.y"
     { (yyval.syn_node) = make_expr_syn_node(PHP_ST_EXPR, (yyvsp[(1) - (2)].exp_node)); ;}
     break;
 
   case 10:
+
+/* Line 1464 of yacc.c  */
 #line 161 "php_parser.y"
     { (yyval.syn_node) = 0; ;}
     break;
 
   case 11:
+
+/* Line 1464 of yacc.c  */
 #line 162 "php_parser.y"
     { (yyval.syn_node) = (yyvsp[(2) - (3)].syn_node); ;}
     break;
 
   case 12:
+
+/* Line 1464 of yacc.c  */
 #line 163 "php_parser.y"
     { (yyval.syn_node) = make_ifelse_syn_node((yyvsp[(3) - (7)].exp_node), (yyvsp[(5) - (7)].syn_node), (yyvsp[(6) - (7)].syn_node), (yyvsp[(7) - (7)].syn_node)); ;}
     break;
 
   case 13:
+
+/* Line 1464 of yacc.c  */
 #line 164 "php_parser.y"
     { (yyval.syn_node) = make_while_loop_syn_node((yyvsp[(3) - (5)].exp_node), (yyvsp[(5) - (5)].syn_node), 1); ;}
     break;
 
   case 14:
+
+/* Line 1464 of yacc.c  */
 #line 165 "php_parser.y"
     { (yyval.syn_node) = make_while_loop_syn_node((yyvsp[(5) - (7)].exp_node), (yyvsp[(2) - (7)].syn_node), 0); ;}
     break;
 
   case 15:
+
+/* Line 1464 of yacc.c  */
 #line 166 "php_parser.y"
     { (yyval.syn_node) = make_for_syn_node((yyvsp[(3) - (9)].exp_node), (yyvsp[(5) - (9)].exp_node), (yyvsp[(7) - (9)].exp_node), (yyvsp[(9) - (9)].syn_node)); ;}
     break;
 
   case 16:
+
+/* Line 1464 of yacc.c  */
 #line 167 "php_parser.y"
     { (yyval.syn_node) = make_switch_syn_node((yyvsp[(3) - (5)].exp_node), (yyvsp[(5) - (5)].exp_node)); ;}
     break;
 
   case 17:
+
+/* Line 1464 of yacc.c  */
 #line 168 "php_parser.y"
     { (yyval.syn_node) = make_expr_syn_node(PHP_ST_CONTINUE, 0); ;}
     break;
 
   case 18:
+
+/* Line 1464 of yacc.c  */
 #line 169 "php_parser.y"
     { (yyval.syn_node) = make_expr_syn_node(PHP_ST_CONTINUE, (yyvsp[(2) - (3)].exp_node)); ;}
     break;
 
   case 19:
+
+/* Line 1464 of yacc.c  */
 #line 170 "php_parser.y"
     { (yyval.syn_node) = make_expr_syn_node(PHP_ST_BREAK, 0); ;}
     break;
 
   case 20:
+
+/* Line 1464 of yacc.c  */
 #line 171 "php_parser.y"
     { (yyval.syn_node) = make_expr_syn_node(PHP_ST_BREAK, (yyvsp[(2) - (3)].exp_node)); ;}
     break;
 
   case 21:
+
+/* Line 1464 of yacc.c  */
 #line 172 "php_parser.y"
     { (yyval.syn_node) = make_expr_syn_node(PHP_ST_RET, 0); ;}
     break;
 
   case 22:
+
+/* Line 1464 of yacc.c  */
 #line 173 "php_parser.y"
     { (yyval.syn_node) = make_expr_syn_node(PHP_ST_RET, (yyvsp[(2) - (3)].exp_node)); ;}
     break;
 
   case 23:
+
+/* Line 1464 of yacc.c  */
 #line 174 "php_parser.y"
     { (yyval.syn_node) = make_expr_syn_node(PHP_ST_ECHO, (yyvsp[(2) - (3)].exp_node)); ;}
     break;
 
   case 24:
+
+/* Line 1464 of yacc.c  */
 #line 175 "php_parser.y"
     {  ;}
     break;
 
   case 25:
+
+/* Line 1464 of yacc.c  */
 #line 176 "php_parser.y"
     {
 				(yyval.syn_node) = make_foreach_loop_syn_node((yyvsp[(3) - (7)].exp_node), 0, (yyvsp[(5) - (7)].exp_node), (yyvsp[(7) - (7)].syn_node), 0);
@@ -2562,6 +2537,8 @@ yyreduce:
     break;
 
   case 26:
+
+/* Line 1464 of yacc.c  */
 #line 179 "php_parser.y"
     {
 				(yyval.syn_node) = make_foreach_loop_syn_node((yyvsp[(3) - (9)].exp_node), (yyvsp[(5) - (9)].exp_node), (yyvsp[(7) - (9)].exp_node), (yyvsp[(9) - (9)].syn_node), 0);
@@ -2569,6 +2546,8 @@ yyreduce:
     break;
 
   case 27:
+
+/* Line 1464 of yacc.c  */
 #line 182 "php_parser.y"
     {
 				(yyval.syn_node) = make_foreach_loop_syn_node((yyvsp[(3) - (10)].exp_node), (yyvsp[(5) - (10)].exp_node), (yyvsp[(8) - (10)].exp_node), (yyvsp[(10) - (10)].syn_node), 1);
@@ -2576,36 +2555,50 @@ yyreduce:
     break;
 
   case 28:
+
+/* Line 1464 of yacc.c  */
 #line 185 "php_parser.y"
     { ;}
     break;
 
   case 29:
+
+/* Line 1464 of yacc.c  */
 #line 186 "php_parser.y"
     { ;}
     break;
 
   case 30:
+
+/* Line 1464 of yacc.c  */
 #line 187 "php_parser.y"
     { (yyval.syn_node) = 0; ;}
     break;
 
   case 31:
+
+/* Line 1464 of yacc.c  */
 #line 190 "php_parser.y"
     {  ;}
     break;
 
   case 32:
+
+/* Line 1464 of yacc.c  */
 #line 191 "php_parser.y"
     {  ;}
     break;
 
   case 33:
+
+/* Line 1464 of yacc.c  */
 #line 194 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_LIST, 0); (yyval.exp_node)->exp_node = (yyvsp[(1) - (1)].exp_node); ;}
     break;
 
   case 34:
+
+/* Line 1464 of yacc.c  */
 #line 195 "php_parser.y"
     {
 				PHP_EXP_NODE *last = (yyvsp[(1) - (3)].exp_node);
@@ -2617,16 +2610,22 @@ yyreduce:
     break;
 
   case 37:
+
+/* Line 1464 of yacc.c  */
 #line 211 "php_parser.y"
     { (yyval.syn_node) = 0; ;}
     break;
 
   case 38:
+
+/* Line 1464 of yacc.c  */
 #line 212 "php_parser.y"
     {  ;}
     break;
 
   case 39:
+
+/* Line 1464 of yacc.c  */
 #line 216 "php_parser.y"
     {
 		const char *varname = get_scope_var_name(g_current_scope, (yyvsp[(1) - (1)].exp_node)->var_si_node->var);
@@ -2644,21 +2643,29 @@ yyreduce:
     break;
 
   case 40:
+
+/* Line 1464 of yacc.c  */
 #line 231 "php_parser.y"
     { (yyval.syn_node) = 0; ;}
     break;
 
   case 41:
+
+/* Line 1464 of yacc.c  */
 #line 232 "php_parser.y"
     {  ;}
     break;
 
   case 42:
+
+/* Line 1464 of yacc.c  */
 #line 235 "php_parser.y"
     { (yyvsp[(1) - (1)].exp_node)->var_node->flags |= PHP_VARFLAG_STATIC; (yyval.exp_node) = (yyvsp[(1) - (1)].exp_node); ;}
     break;
 
   case 43:
+
+/* Line 1464 of yacc.c  */
 #line 236 "php_parser.y"
     {
 			(yyvsp[(1) - (3)].exp_node)->var_node->flags |= PHP_VARFLAG_STATIC; (yyval.exp_node) = (yyvsp[(1) - (3)].exp_node);
@@ -2667,6 +2674,8 @@ yyreduce:
     break;
 
   case 44:
+
+/* Line 1464 of yacc.c  */
 #line 244 "php_parser.y"
     {
 				switch_push_scope_table(make_scope_table())
@@ -2674,6 +2683,8 @@ yyreduce:
     break;
 
   case 45:
+
+/* Line 1464 of yacc.c  */
 #line 246 "php_parser.y"
     {
 				(yyval.syn_node) = make_func_decl_syn_node((yyvsp[(2) - (9)].str_val), (yyvsp[(5) - (9)].exp_node));
@@ -2687,106 +2698,148 @@ yyreduce:
     break;
 
   case 46:
+
+/* Line 1464 of yacc.c  */
 #line 255 "php_parser.y"
     {  ;}
     break;
 
   case 47:
+
+/* Line 1464 of yacc.c  */
 #line 259 "php_parser.y"
     { (yyval.exp_node) = make_func_param(0, (yyvsp[(2) - (2)].exp_node), (yyvsp[(1) - (2)].str_val), 0); ;}
     break;
 
   case 48:
+
+/* Line 1464 of yacc.c  */
 #line 260 "php_parser.y"
     { (yyval.exp_node) = make_func_param(0, (yyvsp[(3) - (3)].exp_node), (yyvsp[(1) - (3)].str_val), 1); ;}
     break;
 
   case 49:
+
+/* Line 1464 of yacc.c  */
 #line 261 "php_parser.y"
     { (yyval.exp_node) = make_func_param((yyvsp[(1) - (4)].exp_node), (yyvsp[(4) - (4)].exp_node), (yyvsp[(3) - (4)].str_val), 0); ;}
     break;
 
   case 50:
+
+/* Line 1464 of yacc.c  */
 #line 262 "php_parser.y"
     { (yyval.exp_node) = make_func_param((yyvsp[(1) - (5)].exp_node), (yyvsp[(5) - (5)].exp_node), (yyvsp[(3) - (5)].str_val), 1); ;}
     break;
 
   case 51:
+
+/* Line 1464 of yacc.c  */
 #line 263 "php_parser.y"
     { (yyval.exp_node) = 0; ;}
     break;
 
   case 52:
+
+/* Line 1464 of yacc.c  */
 #line 267 "php_parser.y"
     { (yyval.str_val)[0] = 0; ;}
     break;
 
   case 55:
+
+/* Line 1464 of yacc.c  */
 #line 273 "php_parser.y"
     { (yyval.syn_node) = (yyvsp[(2) - (4)].syn_node); ;}
     break;
 
   case 57:
+
+/* Line 1464 of yacc.c  */
 #line 278 "php_parser.y"
     { (yyval.syn_node) = (yyvsp[(2) - (4)].syn_node); ;}
     break;
 
   case 59:
+
+/* Line 1464 of yacc.c  */
 #line 282 "php_parser.y"
     { (yyval.exp_node) = 0; ;}
     break;
 
   case 60:
+
+/* Line 1464 of yacc.c  */
 #line 286 "php_parser.y"
     { (yyval.syn_node) = add_branch_2_elseif((yyvsp[(1) - (6)].syn_node), make_ifelse_syn_node((yyvsp[(4) - (6)].exp_node), (yyvsp[(6) - (6)].syn_node), 0, 0)); ;}
     break;
 
   case 61:
+
+/* Line 1464 of yacc.c  */
 #line 287 "php_parser.y"
     { (yyval.syn_node) = 0; ;}
     break;
 
   case 62:
+
+/* Line 1464 of yacc.c  */
 #line 291 "php_parser.y"
     { (yyval.syn_node) = 0; ;}
     break;
 
   case 63:
+
+/* Line 1464 of yacc.c  */
 #line 292 "php_parser.y"
     { (yyval.syn_node) = (yyvsp[(2) - (2)].syn_node); ;}
     break;
 
   case 65:
+
+/* Line 1464 of yacc.c  */
 #line 296 "php_parser.y"
     { (yyval.syn_node) = (yyvsp[(2) - (4)].syn_node); ;}
     break;
 
   case 66:
+
+/* Line 1464 of yacc.c  */
 #line 300 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(2) - (3)].exp_node); ;}
     break;
 
   case 67:
+
+/* Line 1464 of yacc.c  */
 #line 301 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(3) - (4)].exp_node); ;}
     break;
 
   case 68:
+
+/* Line 1464 of yacc.c  */
 #line 302 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(2) - (4)].exp_node); ;}
     break;
 
   case 69:
+
+/* Line 1464 of yacc.c  */
 #line 303 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(3) - (5)].exp_node); ;}
     break;
 
   case 70:
+
+/* Line 1464 of yacc.c  */
 #line 307 "php_parser.y"
     {  (yyval.exp_node) = 0; ;}
     break;
 
   case 71:
+
+/* Line 1464 of yacc.c  */
 #line 308 "php_parser.y"
     {
 			(yyvsp[(2) - (4)].exp_node)->tree_node.syn_right = (yyvsp[(4) - (4)].syn_node);
@@ -2804,421 +2857,589 @@ yyreduce:
     break;
 
   case 72:
+
+/* Line 1464 of yacc.c  */
 #line 323 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_LIST, (yyvsp[(2) - (2)].exp_node), 0); ;}
     break;
 
   case 73:
+
+/* Line 1464 of yacc.c  */
 #line 324 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_LIST, 0, 0); ;}
     break;
 
   case 79:
+
+/* Line 1464 of yacc.c  */
 #line 335 "php_parser.y"
     { (yyval.exp_node) = make_known_const((yyvsp[(1) - (1)].str_val)); ;}
     break;
 
   case 81:
+
+/* Line 1464 of yacc.c  */
 #line 339 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_CLASS_DEREF, make_const_exp_str((yyvsp[(1) - (3)].str_val), 0), make_const_exp_str((yyvsp[(3) - (3)].str_val), 0)); ;}
     break;
 
   case 82:
+
+/* Line 1464 of yacc.c  */
 #line 340 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_OBJECT_DEREF, (yyvsp[(1) - (3)].exp_node), make_const_exp_str((yyvsp[(3) - (3)].str_val), 0)); ;}
     break;
 
   case 84:
+
+/* Line 1464 of yacc.c  */
 #line 345 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_BY_KEY, (yyvsp[(1) - (3)].exp_node), 0); ;}
     break;
 
   case 85:
+
+/* Line 1464 of yacc.c  */
 #line 346 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_BY_KEY, (yyvsp[(1) - (4)].exp_node), (yyvsp[(3) - (4)].exp_node));;}
     break;
 
   case 86:
+
+/* Line 1464 of yacc.c  */
 #line 347 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_BY_KEY, (yyvsp[(1) - (4)].exp_node), (yyvsp[(3) - (4)].exp_node));;}
     break;
 
   case 87:
+
+/* Line 1464 of yacc.c  */
 #line 348 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_VAR_BY_EXP, (yyvsp[(3) - (4)].exp_node)); ;}
     break;
 
   case 88:
+
+/* Line 1464 of yacc.c  */
 #line 352 "php_parser.y"
     { (yyval.exp_node) = make_func_call_exp((yyvsp[(1) - (4)].str_val), (yyvsp[(3) - (4)].exp_node)); ;}
     break;
 
   case 89:
+
+/* Line 1464 of yacc.c  */
 #line 353 "php_parser.y"
     { ;}
     break;
 
   case 90:
+
+/* Line 1464 of yacc.c  */
 #line 354 "php_parser.y"
     { ;}
     break;
 
   case 91:
+
+/* Line 1464 of yacc.c  */
 #line 357 "php_parser.y"
     { (yyval.exp_node) = make_func_call_param_list(); func_call_add_expr((yyval.exp_node)->var_node, (yyvsp[(1) - (1)].exp_node), 0); ;}
     break;
 
   case 92:
+
+/* Line 1464 of yacc.c  */
 #line 358 "php_parser.y"
     { (yyval.exp_node) = make_func_call_param_list(); func_call_add_expr((yyval.exp_node)->var_node, (yyvsp[(2) - (2)].exp_node), 1); ;}
     break;
 
   case 93:
+
+/* Line 1464 of yacc.c  */
 #line 359 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(1) - (3)].exp_node); func_call_add_expr((yyval.exp_node)->var_node, (yyvsp[(3) - (3)].exp_node), 0); ;}
     break;
 
   case 94:
+
+/* Line 1464 of yacc.c  */
 #line 360 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(1) - (4)].exp_node); func_call_add_expr((yyval.exp_node)->var_node, (yyvsp[(4) - (4)].exp_node), 1); ;}
     break;
 
   case 95:
+
+/* Line 1464 of yacc.c  */
 #line 361 "php_parser.y"
     { (yyval.exp_node) = make_func_call_param_list(); ;}
     break;
 
   case 96:
+
+/* Line 1464 of yacc.c  */
 #line 366 "php_parser.y"
     { ;}
     break;
 
   case 98:
+
+/* Line 1464 of yacc.c  */
 #line 368 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 99:
+
+/* Line 1464 of yacc.c  */
 #line 369 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(1) - (1)].exp_node); ;}
     break;
 
   case 100:
+
+/* Line 1464 of yacc.c  */
 #line 370 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_MAKE_REF, (yyvsp[(1) - (4)].exp_node), (yyvsp[(4) - (4)].exp_node)); ;}
     break;
 
   case 101:
+
+/* Line 1464 of yacc.c  */
 #line 375 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_ADD, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 102:
+
+/* Line 1464 of yacc.c  */
 #line 376 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_SUB, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 103:
+
+/* Line 1464 of yacc.c  */
 #line 377 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_MUL, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 104:
+
+/* Line 1464 of yacc.c  */
 #line 378 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_DIV, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 105:
+
+/* Line 1464 of yacc.c  */
 #line 379 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_CAT, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 106:
+
+/* Line 1464 of yacc.c  */
 #line 380 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_REM, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 107:
+
+/* Line 1464 of yacc.c  */
 #line 381 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_AND, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 108:
+
+/* Line 1464 of yacc.c  */
 #line 382 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_OR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 109:
+
+/* Line 1464 of yacc.c  */
 #line 383 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_XOR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 110:
+
+/* Line 1464 of yacc.c  */
 #line 384 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_SHL, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 111:
+
+/* Line 1464 of yacc.c  */
 #line 385 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (3)].exp_node), make_exp_2(PHP_OP_SHR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node))); ;}
     break;
 
   case 112:
+
+/* Line 1464 of yacc.c  */
 #line 387 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (2)].exp_node), make_exp_2(PHP_OP_ADD, (yyvsp[(1) - (2)].exp_node), make_const_exp_dnum(1))); ;}
     break;
 
   case 113:
+
+/* Line 1464 of yacc.c  */
 #line 388 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(2) - (2)].exp_node), make_exp_2(PHP_OP_ADD, (yyvsp[(2) - (2)].exp_node), make_const_exp_dnum(1))); ;}
     break;
 
   case 114:
+
+/* Line 1464 of yacc.c  */
 #line 389 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(1) - (2)].exp_node), make_exp_2(PHP_OP_SUB, (yyvsp[(1) - (2)].exp_node), make_const_exp_dnum(1))); ;}
     break;
 
   case 115:
+
+/* Line 1464 of yacc.c  */
 #line 390 "php_parser.y"
     { (yyval.exp_node) = make_exp_2_self(PHP_OP_ASS, (yyvsp[(2) - (2)].exp_node), make_exp_2(PHP_OP_SUB, (yyvsp[(2) - (2)].exp_node), make_const_exp_dnum(1))); ;}
     break;
 
   case 116:
+
+/* Line 1464 of yacc.c  */
 #line 392 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_OR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 117:
+
+/* Line 1464 of yacc.c  */
 #line 393 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_AND, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 118:
+
+/* Line 1464 of yacc.c  */
 #line 394 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_OR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 119:
+
+/* Line 1464 of yacc.c  */
 #line 395 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_AND, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 120:
+
+/* Line 1464 of yacc.c  */
 #line 396 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_LOG_XOR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 121:
+
+/* Line 1464 of yacc.c  */
 #line 397 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_OR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 122:
+
+/* Line 1464 of yacc.c  */
 #line 398 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_AND, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 123:
+
+/* Line 1464 of yacc.c  */
 #line 399 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_XOR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 124:
+
+/* Line 1464 of yacc.c  */
 #line 400 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_CAT, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 125:
+
+/* Line 1464 of yacc.c  */
 #line 401 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_ADD, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 126:
+
+/* Line 1464 of yacc.c  */
 #line 402 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_SUB, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 127:
+
+/* Line 1464 of yacc.c  */
 #line 403 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_MUL, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 128:
+
+/* Line 1464 of yacc.c  */
 #line 404 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_DIV, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 129:
+
+/* Line 1464 of yacc.c  */
 #line 405 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_REM, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 130:
+
+/* Line 1464 of yacc.c  */
 #line 406 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_SHL, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 131:
+
+/* Line 1464 of yacc.c  */
 #line 407 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_SHR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 132:
+
+/* Line 1464 of yacc.c  */
 #line 408 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(2) - (2)].exp_node); ;}
     break;
 
   case 133:
+
+/* Line 1464 of yacc.c  */
 #line 409 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_SUB, make_const_exp_dnum(0), (yyvsp[(2) - (2)].exp_node)); ;}
     break;
 
   case 134:
+
+/* Line 1464 of yacc.c  */
 #line 410 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_LOG_NOT, (yyvsp[(2) - (2)].exp_node)); ;}
     break;
 
   case 135:
+
+/* Line 1464 of yacc.c  */
 #line 411 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_NOT, (yyvsp[(2) - (2)].exp_node)); ;}
     break;
 
   case 136:
+
+/* Line 1464 of yacc.c  */
 #line 412 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_SAME, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 137:
+
+/* Line 1464 of yacc.c  */
 #line 413 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_NOT_SAME, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 138:
+
+/* Line 1464 of yacc.c  */
 #line 414 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_EQ, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 139:
+
+/* Line 1464 of yacc.c  */
 #line 415 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_NEQ, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 140:
+
+/* Line 1464 of yacc.c  */
 #line 416 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_LWR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 141:
+
+/* Line 1464 of yacc.c  */
 #line 417 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_LWR_EQ, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 142:
+
+/* Line 1464 of yacc.c  */
 #line 418 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_GRT, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 143:
+
+/* Line 1464 of yacc.c  */
 #line 419 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_GRT_EQ, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 144:
+
+/* Line 1464 of yacc.c  */
 #line 420 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(2) - (3)].exp_node); ;}
     break;
 
   case 145:
+
+/* Line 1464 of yacc.c  */
 #line 421 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_MUX, (yyvsp[(3) - (5)].exp_node), (yyvsp[(5) - (5)].exp_node)); (yyval.exp_node)->exp_node = (yyvsp[(1) - (5)].exp_node); ;}
     break;
 
   case 146:
+
+/* Line 1464 of yacc.c  */
 #line 422 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_CAST_INT, (yyvsp[(2) - (2)].exp_node)); ;}
     break;
 
   case 147:
+
+/* Line 1464 of yacc.c  */
 #line 423 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_CAST_FLOAT, (yyvsp[(2) - (2)].exp_node)); ;}
     break;
 
   case 148:
+
+/* Line 1464 of yacc.c  */
 #line 424 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_CAST_STR, (yyvsp[(2) - (2)].exp_node)); ;}
     break;
 
   case 149:
+
+/* Line 1464 of yacc.c  */
 #line 425 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_CAST_BOOL, (yyvsp[(2) - (2)].exp_node)); ;}
     break;
 
   case 150:
+
+/* Line 1464 of yacc.c  */
 #line 428 "php_parser.y"
     {  ;}
     break;
 
   case 151:
+
+/* Line 1464 of yacc.c  */
 #line 429 "php_parser.y"
     {  ;}
     break;
 
   case 152:
+
+/* Line 1464 of yacc.c  */
 #line 430 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(2) - (2)].exp_node); ;}
     break;
 
   case 153:
+
+/* Line 1464 of yacc.c  */
 #line 432 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(1) - (1)].exp_node); ;}
     break;
 
   case 154:
+
+/* Line 1464 of yacc.c  */
 #line 433 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_ARRAY, (yyvsp[(3) - (4)].exp_node)); ;}
     break;
 
   case 155:
+
+/* Line 1464 of yacc.c  */
 #line 434 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_PRINT, (yyvsp[(2) - (2)].exp_node)); ;}
     break;
 
   case 156:
+
+/* Line 1464 of yacc.c  */
 #line 437 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(2) - (3)].exp_node); ;}
     break;
 
   case 157:
+
+/* Line 1464 of yacc.c  */
 #line 438 "php_parser.y"
     { (yyval.exp_node) = 0; ;}
     break;
 
   case 158:
+
+/* Line 1464 of yacc.c  */
 #line 439 "php_parser.y"
     { (yyval.exp_node) = 0; ;}
     break;
 
   case 161:
+
+/* Line 1464 of yacc.c  */
 #line 447 "php_parser.y"
     { /*$$ = make_assign_node($1);*/ ;}
     break;
 
   case 162:
+
+/* Line 1464 of yacc.c  */
 #line 448 "php_parser.y"
     { (yyval.exp_node) = (yyvsp[(3) - (4)].exp_node); ;}
     break;
 
   case 163:
+
+/* Line 1464 of yacc.c  */
 #line 449 "php_parser.y"
     { /*$$ = make_assign_node(0);*/ ;}
     break;
 
   case 164:
+
+/* Line 1464 of yacc.c  */
 #line 452 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_LIST, 0); (yyval.exp_node)->exp_node = (yyvsp[(1) - (1)].exp_node); ;}
     break;
 
   case 165:
+
+/* Line 1464 of yacc.c  */
 #line 453 "php_parser.y"
     {
 				PHP_EXP_NODE *last = (yyvsp[(1) - (3)].exp_node);
@@ -3230,28 +3451,37 @@ yyreduce:
     break;
 
   case 166:
+
+/* Line 1464 of yacc.c  */
 #line 462 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_ARRAY_PAIR, (yyvsp[(1) - (1)].exp_node)); ;}
     break;
 
   case 167:
+
+/* Line 1464 of yacc.c  */
 #line 463 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_PAIR, (yyvsp[(1) - (3)].exp_node), (yyvsp[(3) - (3)].exp_node)); ;}
     break;
 
   case 168:
+
+/* Line 1464 of yacc.c  */
 #line 464 "php_parser.y"
     { (yyval.exp_node) = make_exp_2(PHP_OP_ARRAY_REF_PAIR, (yyvsp[(1) - (4)].exp_node), (yyvsp[(4) - (4)].exp_node)); ;}
     break;
 
   case 169:
+
+/* Line 1464 of yacc.c  */
 #line 465 "php_parser.y"
     { (yyval.exp_node) = make_exp_1(PHP_OP_ARRAY_REF_PAIR, (yyvsp[(2) - (2)].exp_node)); ;}
     break;
 
 
-/* Line 1267 of yacc.c.  */
-#line 3256 "php_parser.c"
+
+/* Line 1464 of yacc.c  */
+#line 3485 "php_parser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3262,7 +3492,6 @@ yyreduce:
 
   *++yyvsp = yyval;
 
-
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
@@ -3327,7 +3556,7 @@ yyerrlab:
 
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse look-ahead token after an
+      /* If just tried and failed to reuse lookahead token after an
 	 error, discard it.  */
 
       if (yychar <= YYEOF)
@@ -3344,7 +3573,7 @@ yyerrlab:
 	}
     }
 
-  /* Else will try to reuse look-ahead token after shifting the error
+  /* Else will try to reuse lookahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
@@ -3401,9 +3630,6 @@ yyerrlab1:
       YY_STACK_PRINT (yyss, yyssp);
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   *++yyvsp = yylval;
 
 
@@ -3428,7 +3654,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -3439,7 +3665,7 @@ yyexhaustedlab:
 #endif
 
 yyreturn:
-  if (yychar != YYEOF && yychar != YYEMPTY)
+  if (yychar != YYEMPTY)
      yydestruct ("Cleanup: discarding lookahead",
 		 yytoken, &yylval);
   /* Do not reclaim the symbols of the rule which action triggered
diff --git a/src/webserver/src/php_parser.h b/src/webserver/src/php_parser.h
index fad2f1a..94b7523 100644
--- a/src/webserver/src/php_parser.h
+++ b/src/webserver/src/php_parser.h
@@ -1,23 +1,22 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
+/* A Bison parser, made by GNU Bison 2.4.2.  */
 
 /* Skeleton interface for Bison's Yacc-like parsers in C
-
-   Copyright (c) 1984-2008 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
+   
+      Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
+   Foundation, Inc.
+   
+   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.
-
+   the Free Software Foundation, either version 3 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., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -28,10 +27,11 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
+
 /* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
@@ -128,115 +128,31 @@
      END_SCRIPT = 345
    };
 #endif
-/* Tokens.  */
-#define FNUMBER 258
-#define DNUMBER 259
-#define STRING 260
-#define IDENT 261
-#define VARIABLE 262
-#define T_ECHO 263
-#define EXIT 264
-#define IF 265
-#define DO 266
-#define WHILE 267
-#define ENDWHILE 268
-#define FOR 269
-#define ENDFOR 270
-#define FOREACH 271
-#define ENDFOREACH 272
-#define DECLARE 273
-#define ENDDECLARE 274
-#define AS 275
-#define CONST 276
-#define GLOBAL 277
-#define UNSET 278
-#define ISSET 279
-#define EMPTY 280
-#define SWITCH 281
-#define ENDSWITCH 282
-#define CASE 283
-#define DEFAULT 284
-#define BREAK 285
-#define CONTINUE 286
-#define FUNCTION 287
-#define RETURN 288
-#define CLASS 289
-#define INTERFACE 290
-#define EXTENDS 291
-#define IMPLEMENTS 292
-#define OBJECT_OPERATOR 293
-#define HASH_ASSIGN 294
-#define LIST 295
-#define ARRAY 296
-#define CLASS_SCOPE 297
-#define PRINT 298
-#define SR_EQ 299
-#define SL_EQ 300
-#define XOR_EQ 301
-#define OR_EQ 302
-#define AND_EQ 303
-#define MOD_EQ 304
-#define CONCAT_EQ 305
-#define DIV_EQ 306
-#define MUL_EQ 307
-#define MINUS_EQ 308
-#define PLUS_EQ 309
-#define LOG_OR 310
-#define LOG_XOR 311
-#define LOG_AND 312
-#define BOOLEAN_OR 313
-#define BOOLEAN_AND 314
-#define IS_NOIDENTICAL 315
-#define IS_IDENTICAL 316
-#define IS_NOEQUAL 317
-#define IS_EQ 318
-#define IS_GREATER_OR_EQ 319
-#define IS_SMALLER_OR_EQ 320
-#define SR 321
-#define SL 322
-#define INSTANCEOF 323
-#define UNSET_CAST 324
-#define BOOL_CAST 325
-#define OBJECT_CAST 326
-#define ARRAY_CAST 327
-#define STRING_CAST 328
-#define DOUBLE_CAST 329
-#define INT_CAST 330
-#define DEC 331
-#define INC 332
-#define CLONE 333
-#define NEW 334
-#define ELSEIF 335
-#define ELSE 336
-#define ENDIF 337
-#define PUBLIC 338
-#define PROTECTED 339
-#define PRIVATE 340
-#define FINAL 341
-#define ABSTRACT 342
-#define STATIC 343
-#define START_SCRIPT 344
-#define END_SCRIPT 345
-
 
 
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 67 "php_parser.y"
 {
+
+/* Line 1685 of yacc.c  */
+#line 67 "php_parser.y"
+
 	PHP_SYN_NODE *syn_node;
 	PHP_EXP_NODE *exp_node;
 
 	char str_val[256];
-}
-/* Line 1529 of yacc.c.  */
-#line 236 "php_parser.h"
-	YYSTYPE;
+
+
+
+/* Line 1685 of yacc.c  */
+#line 150 "php_parser.h"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 extern YYSTYPE phplval;
 
+
diff --git a/src/webserver/src/php_parser.y b/src/webserver/src/php_parser.y
index d3baa5e..afffdd5 100644
--- a/src/webserver/src/php_parser.y
+++ b/src/webserver/src/php_parser.y
@@ -18,7 +18,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -73,7 +73,7 @@ PHP_SYN_NODE *add_branch_2_elseif(PHP_SYN_NODE *list, PHP_SYN_NODE *branch)
 
 %type <syn_node> program_tree statement top_statement function_decl_statement top_statement_list
 %type <syn_node> global_var_list static_var_list
-%type <syn_node> while_statement foreach_statement for_statement elseif_list else_statement 
+%type <syn_node> while_statement foreach_statement for_statement elseif_list else_statement
 
 %type <exp_node> VARIABLE variable deref_variable global_var static_var
 %type <exp_node> parameter_list array_pair_list array_elem
@@ -158,7 +158,7 @@ top_statement:
 statement:
 		'{' top_statement_list '}'							{ $$ = $2; }
 	|	expr ';'											{ $$ = make_expr_syn_node(PHP_ST_EXPR, $1); }
-	|	GLOBAL global_var_list ';' 							{ $$ = 0; }
+	|	GLOBAL global_var_list ';'							{ $$ = 0; }
 	|	STATIC static_var_list ';'							{ $$ = $2; }
 	|	IF '(' expr ')' statement elseif_list else_statement	{ $$ = make_ifelse_syn_node($3, $5, $6, $7); }
 	|	WHILE '(' expr  ')' while_statement					{ $$ = make_while_loop_syn_node($3, $5, 1); }
@@ -173,7 +173,7 @@ statement:
 	|	RETURN expr ';'										{ $$ = make_expr_syn_node(PHP_ST_RET, $2); }
 	|	T_ECHO expr_list ';'								{ $$ = make_expr_syn_node(PHP_ST_ECHO, $2); }
 	|	UNSET '(' variable_list ')' ';'						{  }
-	|	FOREACH '(' expr AS variable ')' foreach_statement 	{
+	|	FOREACH '(' expr AS variable ')' foreach_statement	{
 				$$ = make_foreach_loop_syn_node($3, 0, $5, $7, 0);
 			}
 	|	FOREACH '(' expr AS variable HASH_ASSIGN variable ')' foreach_statement {
@@ -242,7 +242,7 @@ static_var : VARIABLE				{ $1->var_node->flags |= PHP_VARFLAG_STATIC; $$ = $1; }
 
 function_decl_statement:
 		FUNCTION IDENT {
-				switch_push_scope_table(make_scope_table())
+				switch_push_scope_table(make_scope_table());
 			} '(' parameter_list ')' '{' top_statement_list '}' {
 				$$ = make_func_decl_syn_node($2, $5);
 				$$->func_decl->scope = g_current_scope;
@@ -255,10 +255,10 @@ function_decl_statement:
 	|	FUNCTION '&' IDENT '(' parameter_list ')' '{' top_statement_list '}' {  }
 ;
 
-parameter_list: 
+parameter_list:
 		optional_class_type VARIABLE						{ $$ = make_func_param(0, $2, $1, 0); }
 	|	optional_class_type '&' VARIABLE					{ $$ = make_func_param(0, $3, $1, 1); }
-	|	parameter_list ',' optional_class_type VARIABLE 	{ $$ = make_func_param($1, $4, $3, 0); }
+	|	parameter_list ',' optional_class_type VARIABLE		{ $$ = make_func_param($1, $4, $3, 0); }
 	|	parameter_list ',' optional_class_type '&' VARIABLE	{ $$ = make_func_param($1, $5, $3, 1); }
 	|	/* empty */											{ $$ = 0; }
 ;
@@ -269,12 +269,12 @@ optional_class_type:
 ;
 
 
-for_statement: 	statement
+for_statement:		statement
 	|	':' top_statement_list ENDFOR ';' { $$ = $2; }
 ;
 
 
-foreach_statement: 	statement
+foreach_statement:	statement
 	|	':' top_statement_list ENDFOREACH ';' { $$ = $2; }
 ;
 
@@ -323,7 +323,7 @@ case_list:
 case_list_item: CASE expr	{ $$ = make_exp_2(PHP_OP_LIST, $2, 0); }
 	| DEFAULT				{ $$ = make_exp_2(PHP_OP_LIST, 0, 0); }
 ;
-	
+
 case_separator:	':'
 	|	';'
 ;
@@ -336,107 +336,107 @@ const_value:
 ;
 
 variable:	deref_variable
-	|	IDENT CLASS_SCOPE IDENT 				{ $$ = make_exp_2(PHP_OP_CLASS_DEREF, make_const_exp_str($1, 0), make_const_exp_str($3, 0)); }
+	|	IDENT CLASS_SCOPE IDENT					{ $$ = make_exp_2(PHP_OP_CLASS_DEREF, make_const_exp_str($1, 0), make_const_exp_str($3, 0)); }
 	|	deref_variable OBJECT_OPERATOR IDENT	{ $$ = make_exp_2(PHP_OP_OBJECT_DEREF, $1, make_const_exp_str($3, 0)); }
 ;
 
 
 deref_variable: VARIABLE
-	|	deref_variable '[' ']' 			{ $$ = make_exp_2(PHP_OP_ARRAY_BY_KEY, $1, 0); }
+	|	deref_variable '[' ']'			{ $$ = make_exp_2(PHP_OP_ARRAY_BY_KEY, $1, 0); }
 	|	deref_variable '[' expr ']'		{ $$ = make_exp_2(PHP_OP_ARRAY_BY_KEY, $1, $3);}
 	|	deref_variable '{' expr '}'		{ $$ = make_exp_2(PHP_OP_ARRAY_BY_KEY, $1, $3);}
 	|	'$' '{' expr '}'				{ $$ = make_exp_1(PHP_OP_VAR_BY_EXP, $3); }
 ;
 
 function_call:
-		IDENT	'(' func_param_list ')' 								{ $$ = make_func_call_exp($1, $3); }
-	|	deref_variable CLASS_SCOPE IDENT '(' func_param_list ')' 		{ }
+		IDENT	'(' func_param_list ')'									{ $$ = make_func_call_exp($1, $3); }
+	|	deref_variable CLASS_SCOPE IDENT '(' func_param_list ')'		{ }
 	|	deref_variable OBJECT_OPERATOR IDENT '(' func_param_list ')'	{ }
 ;
 
 func_param_list: expr						{ $$ = make_func_call_param_list(); func_call_add_expr($$->var_node, $1, 0); }
-	|	'&' variable 						{ $$ = make_func_call_param_list(); func_call_add_expr($$->var_node, $2, 1); }
+	|	'&' variable						{ $$ = make_func_call_param_list(); func_call_add_expr($$->var_node, $2, 1); }
 	|	func_param_list ',' expr			{ $$ = $1; func_call_add_expr($$->var_node, $3, 0); }
 	|	func_param_list ',' '&' variable	{ $$ = $1; func_call_add_expr($$->var_node, $4, 1); }
 	|	/* empty */							{ $$ = make_func_call_param_list(); }
 ;
 
 
-expr:	
+expr:
 		LIST '(' assignment_list ')' '=' expr { }
 	|	variable
 	|	variable '=' expr			{ $$ = make_exp_2(PHP_OP_ASS, $1, $3); }
-	|	function_call 				{ $$ = $1; }
+	|	function_call				{ $$ = $1; }
 	|	variable '=' '&' variable	{ $$ = make_exp_2(PHP_MAKE_REF, $1, $4); }
 /*
 	|	NEW class_name_reference ctor_arguments { }
 	|	CLONE expr {  }
 */
-	|	variable PLUS_EQ expr 		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_ADD, $1, $3)); }
+	|	variable PLUS_EQ expr		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_ADD, $1, $3)); }
 	|	variable MINUS_EQ expr		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_SUB, $1, $3)); }
 	|	variable MUL_EQ expr		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_MUL, $1, $3)); }
 	|	variable DIV_EQ expr		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_DIV, $1, $3)); }
 	|	variable CONCAT_EQ expr		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_CAT, $1, $3)); }
 	|	variable MOD_EQ expr		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_REM, $1, $3)); }
 	|	variable AND_EQ expr		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_AND, $1, $3)); }
-	|	variable OR_EQ expr 		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_OR, $1, $3)); }
-	|	variable XOR_EQ expr 		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_XOR, $1, $3)); }
-	|	variable SL_EQ expr			{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_SHL, $1, $3)); } 
-	|	variable SR_EQ expr			{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_SHR, $1, $3)); } 
+	|	variable OR_EQ expr		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_OR, $1, $3)); }
+	|	variable XOR_EQ expr		{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_XOR, $1, $3)); }
+	|	variable SL_EQ expr			{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_SHL, $1, $3)); }
+	|	variable SR_EQ expr			{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_SHR, $1, $3)); }
 	/* ++var and var++ looks same to me */
-	|	variable INC 				{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_ADD, $1, make_const_exp_dnum(1))); }
-	|	INC variable 				{ $$ = make_exp_2_self(PHP_OP_ASS, $2, make_exp_2(PHP_OP_ADD, $2, make_const_exp_dnum(1))); }
-	|	variable DEC 				{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_SUB, $1, make_const_exp_dnum(1))); }
-	|	DEC variable 				{ $$ = make_exp_2_self(PHP_OP_ASS, $2, make_exp_2(PHP_OP_SUB, $2, make_const_exp_dnum(1))); }
-	
-	|	expr BOOLEAN_OR expr 		{ $$ = make_exp_2(PHP_OP_LOG_OR, $1, $3); }
-	|	expr BOOLEAN_AND expr 		{ $$ = make_exp_2(PHP_OP_LOG_AND, $1, $3); }  
-	|	expr LOG_OR expr 			{ $$ = make_exp_2(PHP_OP_LOG_OR, $1, $3); }
-	|	expr LOG_AND expr 			{ $$ = make_exp_2(PHP_OP_LOG_AND, $1, $3); }
-	|	expr LOG_XOR expr 			{ $$ = make_exp_2(PHP_OP_LOG_XOR, $1, $3); }
+	|	variable INC				{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_ADD, $1, make_const_exp_dnum(1))); }
+	|	INC variable				{ $$ = make_exp_2_self(PHP_OP_ASS, $2, make_exp_2(PHP_OP_ADD, $2, make_const_exp_dnum(1))); }
+	|	variable DEC				{ $$ = make_exp_2_self(PHP_OP_ASS, $1, make_exp_2(PHP_OP_SUB, $1, make_const_exp_dnum(1))); }
+	|	DEC variable				{ $$ = make_exp_2_self(PHP_OP_ASS, $2, make_exp_2(PHP_OP_SUB, $2, make_const_exp_dnum(1))); }
+
+	|	expr BOOLEAN_OR expr		{ $$ = make_exp_2(PHP_OP_LOG_OR, $1, $3); }
+	|	expr BOOLEAN_AND expr		{ $$ = make_exp_2(PHP_OP_LOG_AND, $1, $3); }
+	|	expr LOG_OR expr			{ $$ = make_exp_2(PHP_OP_LOG_OR, $1, $3); }
+	|	expr LOG_AND expr			{ $$ = make_exp_2(PHP_OP_LOG_AND, $1, $3); }
+	|	expr LOG_XOR expr			{ $$ = make_exp_2(PHP_OP_LOG_XOR, $1, $3); }
 	|	expr '|' expr				{ $$ = make_exp_2(PHP_OP_OR, $1, $3); }
 	|	expr '&' expr				{ $$ = make_exp_2(PHP_OP_AND, $1, $3); }
 	|	expr '^' expr				{ $$ = make_exp_2(PHP_OP_XOR, $1, $3); }
-	|	expr '.' expr 				{ $$ = make_exp_2(PHP_OP_CAT, $1, $3); }
-	|	expr '+' expr 				{ $$ = make_exp_2(PHP_OP_ADD, $1, $3); }
-	|	expr '-' expr 				{ $$ = make_exp_2(PHP_OP_SUB, $1, $3); }
+	|	expr '.' expr				{ $$ = make_exp_2(PHP_OP_CAT, $1, $3); }
+	|	expr '+' expr				{ $$ = make_exp_2(PHP_OP_ADD, $1, $3); }
+	|	expr '-' expr				{ $$ = make_exp_2(PHP_OP_SUB, $1, $3); }
 	|	expr '*' expr				{ $$ = make_exp_2(PHP_OP_MUL, $1, $3); }
 	|	expr '/' expr				{ $$ = make_exp_2(PHP_OP_DIV, $1, $3); }
-	|	expr '%' expr 				{ $$ = make_exp_2(PHP_OP_REM, $1, $3); }
-	| 	expr SL expr				{ $$ = make_exp_2(PHP_OP_SHL, $1, $3); }
+	|	expr '%' expr				{ $$ = make_exp_2(PHP_OP_REM, $1, $3); }
+	|	expr SL expr				{ $$ = make_exp_2(PHP_OP_SHL, $1, $3); }
 	|	expr SR expr				{ $$ = make_exp_2(PHP_OP_SHR, $1, $3); }
-	|	'+' expr 					{ $$ = $2; }
-	|	'-' expr 					{ $$ = make_exp_2(PHP_OP_SUB, make_const_exp_dnum(0), $2); }
+	|	'+' expr					{ $$ = $2; }
+	|	'-' expr					{ $$ = make_exp_2(PHP_OP_SUB, make_const_exp_dnum(0), $2); }
 	|	'!' expr					{ $$ = make_exp_1(PHP_OP_LOG_NOT, $2); }
 	|	'~' expr					{ $$ = make_exp_1(PHP_OP_NOT, $2); }
 	|	expr IS_IDENTICAL expr		{ $$ = make_exp_2(PHP_OP_SAME, $1, $3); }
 	|	expr IS_NOIDENTICAL expr	{ $$ = make_exp_2(PHP_OP_NOT_SAME, $1, $3); }
 	|	expr IS_EQ expr				{ $$ = make_exp_2(PHP_OP_EQ, $1, $3); }
-	|	expr IS_NOEQUAL expr 		{ $$ = make_exp_2(PHP_OP_NEQ, $1, $3); }
-	|	expr '<' expr 				{ $$ = make_exp_2(PHP_OP_LWR, $1, $3); }
-	|	expr IS_SMALLER_OR_EQ expr 	{ $$ = make_exp_2(PHP_OP_LWR_EQ, $1, $3); }
-	|	expr '>' expr 				{ $$ = make_exp_2(PHP_OP_GRT, $1, $3); }
-	|	expr IS_GREATER_OR_EQ expr 	{ $$ = make_exp_2(PHP_OP_GRT_EQ, $1, $3); }
-	|	'(' expr ')' 				{ $$ = $2; }
+	|	expr IS_NOEQUAL expr		{ $$ = make_exp_2(PHP_OP_NEQ, $1, $3); }
+	|	expr '<' expr				{ $$ = make_exp_2(PHP_OP_LWR, $1, $3); }
+	|	expr IS_SMALLER_OR_EQ expr	{ $$ = make_exp_2(PHP_OP_LWR_EQ, $1, $3); }
+	|	expr '>' expr				{ $$ = make_exp_2(PHP_OP_GRT, $1, $3); }
+	|	expr IS_GREATER_OR_EQ expr	{ $$ = make_exp_2(PHP_OP_GRT_EQ, $1, $3); }
+	|	'(' expr ')'				{ $$ = $2; }
 	|	expr '?' expr ':' expr		{ $$ = make_exp_2(PHP_OP_MUX, $3, $5); $$->exp_node = $1; }
-	|	INT_CAST expr 				{ $$ = make_exp_1(PHP_OP_CAST_INT, $2); }
-	|	DOUBLE_CAST expr 			{ $$ = make_exp_1(PHP_OP_CAST_FLOAT, $2); }
-	|	STRING_CAST expr			{ $$ = make_exp_1(PHP_OP_CAST_STR, $2); } 
+	|	INT_CAST expr				{ $$ = make_exp_1(PHP_OP_CAST_INT, $2); }
+	|	DOUBLE_CAST expr			{ $$ = make_exp_1(PHP_OP_CAST_FLOAT, $2); }
+	|	STRING_CAST expr			{ $$ = make_exp_1(PHP_OP_CAST_STR, $2); }
 	|	BOOL_CAST expr				{ $$ = make_exp_1(PHP_OP_CAST_BOOL, $2); }
-/*	|	ARRAY_CAST expr 	{  } */
-/*	|	OBJECT_CAST expr 	{  } */
+/*	|	ARRAY_CAST expr		{  } */
+/*	|	OBJECT_CAST expr	{  } */
 	|	UNSET_CAST expr	{  }
 	|	EXIT exit_expr	{  }
-	|	'@' expr 					{ $$ = $2; }
+	|	'@' expr					{ $$ = $2; }
 
 	|	const_value					{ $$ = $1; }
 	|	ARRAY '(' array_pair_list ')' { $$ = make_exp_1(PHP_OP_ARRAY, $3); }
-	|	PRINT expr  				{ $$ = make_exp_1(PHP_OP_PRINT, $2); }
+	|	PRINT expr				{ $$ = make_exp_1(PHP_OP_PRINT, $2); }
 ;
 
 exit_expr: '(' expr ')'	{ $$ = $2; }
-	|	'(' ')'			{ $$ = 0; }	
-	|	/* empty */		{ $$ = 0; }	
+	|	'(' ')'			{ $$ = 0; }
+	|	/* empty */		{ $$ = 0; }
 ;
 
 assignment_list: assignment_list_element
@@ -465,4 +465,4 @@ array_elem : expr						{ $$ = make_exp_1(PHP_OP_ARRAY_PAIR, $1); }
 	| '&' variable						{ $$ = make_exp_1(PHP_OP_ARRAY_REF_PAIR, $2); }
 ;
 
-	
+
diff --git a/src/webserver/src/php_standalone_makefile b/src/webserver/src/php_standalone_makefile
index ebbbe31..a94b05d 100644
--- a/src/webserver/src/php_standalone_makefile
+++ b/src/webserver/src/php_standalone_makefile
@@ -3,7 +3,7 @@ CXXFLAGS = -DPHP_STANDALONE_EN
 OBJ = amulephp-php_amule_lib.o amulephp-php_lexer.o amulephp-php_parser.o amulephp-php_syntree.o amulephp-php_core_lib.o
 amulephp :$(OBJ)
 	$(CXX) -o $@ -g -O0 -Wall $(OBJ)
-	
+
 amulephp-php_amule_lib.o : php_amule_lib_standalone.cpp
 	$(CXX) $(CXXFLAGS) -c -o $@ -g -Wall $<
 
diff --git a/src/webserver/src/php_syntree.cpp b/src/webserver/src/php_syntree.cpp
index 92f4ef3..2ccc6f5 100644
--- a/src/webserver/src/php_syntree.cpp
+++ b/src/webserver/src/php_syntree.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -64,7 +64,7 @@ PHP_EXP_NODE *make_const_exp_dnum(int number)
 	node->op = PHP_OP_VAL;
 	node->val_node.type = PHP_VAL_INT;
 	node->val_node.int_val = number;
-	
+
 	return node;
 }
 
@@ -74,7 +74,7 @@ PHP_EXP_NODE *make_const_exp_fnum(float number)
 	node->op = PHP_OP_VAL;
 	node->val_node.type = PHP_VAL_FLOAT;
 	node->val_node.float_val = number;
-	
+
 	return node;
 }
 
@@ -103,7 +103,7 @@ PHP_EXP_NODE *make_const_exp_str(char *s, int unescape)
 	} else {
 		node->val_node.str_val = strdup(s);
 	}
-	
+
 	return node;
 }
 
@@ -113,7 +113,7 @@ PHP_EXP_NODE *make_const_exp_int_obj(void *obj)
 	node->op = PHP_OP_VAL;
 	node->val_node.type = PHP_VAL_INT_DATA;
 	node->val_node.ptr_val = obj;
-	
+
 	return node;
 }
 
@@ -161,15 +161,15 @@ PHP_EXP_NODE *make_func_param(PHP_EXP_NODE *list, PHP_EXP_NODE *var_exp_node, ch
 	param->si_var = var_exp_node->var_si_node;
 	param->si_var->type = PHP_SCOPE_PARAM;
 	//printf("mark %p->%p as param\n", param->si_var, param->si_var->var);
-	
+
 	param->var = param->si_var->var;
-	
+
 	delete var_exp_node;
 	param->class_name = class_name ? strdup(class_name) : 0;
 	param->byref = byref;
-	
+
 	PHP_EXP_NODE *curr_node = make_const_exp_int_obj(param);
-	
+
 	if ( list ) {
 		PHP_EXP_NODE *p = list;
 		while ( p->next) {
@@ -189,10 +189,10 @@ PHP_SYN_NODE *make_expr_syn_node(PHP_STATMENT_TYPE type, PHP_EXP_NODE *expr)
 {
 	PHP_SYN_NODE *syn_node = new PHP_SYN_NODE;
 	memset(syn_node, 0, sizeof(PHP_SYN_NODE));
-	
+
 	syn_node->type = type;
 	syn_node->node_expr = expr;
-	
+
 	return syn_node;
 }
 
@@ -201,14 +201,14 @@ PHP_SYN_NODE *make_ifelse_syn_node(PHP_EXP_NODE *expr,
 {
 	PHP_SYN_NODE *syn_node = new PHP_SYN_NODE;
 	memset(syn_node, 0, sizeof(PHP_SYN_NODE));
-	
+
 	syn_node->type = PHP_ST_IF;
 	syn_node->node_if.cond = expr;
 	syn_node->node_if.code_if = then_node;
-	
+
 	if ( elseif_list ) {
 		syn_node->node_if.code_else = elseif_list;
-	
+
 		PHP_SYN_NODE *curr_if = elseif_list;
 		while ( curr_if->node_if.code_else ) {
 			curr_if = curr_if->node_if.code_else;
@@ -224,11 +224,11 @@ PHP_SYN_NODE *make_while_loop_syn_node(PHP_EXP_NODE *cond, PHP_SYN_NODE *code, i
 {
 	PHP_SYN_NODE *syn_node = new PHP_SYN_NODE;
 	memset(syn_node, 0, sizeof(PHP_SYN_NODE));
-	
+
 	syn_node->type = do_while ? PHP_ST_WHILE : PHP_ST_DO_WHILE;
 	syn_node->node_while.cond = cond;
 	syn_node->node_while.code = code;
-	
+
 	return syn_node;
 }
 
@@ -243,7 +243,7 @@ PHP_SYN_NODE *make_for_syn_node(PHP_EXP_NODE *start, PHP_EXP_NODE *cond,
 	syn_node->node_for.cond = cond;
 	syn_node->node_for.do_next = next;
 	syn_node->node_for.code = code;
-	
+
 	return syn_node;
 }
 
@@ -252,19 +252,19 @@ PHP_SYN_NODE *make_foreach_loop_syn_node(PHP_EXP_NODE *elems,
 {
 	PHP_SYN_NODE *syn_node = new PHP_SYN_NODE;
 	memset(syn_node, 0, sizeof(PHP_SYN_NODE));
-	
+
 	syn_node->type = PHP_ST_FOREACH;
 	syn_node->node_foreach.elems = elems;
 	syn_node->node_foreach.code = code;
 	syn_node->node_foreach.i_key = i_key ? i_key->var_si_node : 0;
 	syn_node->node_foreach.i_val = i_val->var_si_node;
 	syn_node->node_foreach.byref = byref;
-	
+
 	if ( i_key ) {
 		delete i_key;
 	}
 	delete i_val;
-	
+
 	return syn_node;
 }
 
@@ -272,13 +272,13 @@ PHP_SYN_NODE *make_func_decl_syn_node(const char *name, PHP_EXP_NODE *param_list
 {
 	PHP_SYN_NODE *syn_node = new PHP_SYN_NODE;
 	memset(syn_node, 0, sizeof(PHP_SYN_NODE));
-	
+
 	syn_node->type = PHP_ST_FUNC_DECL;
-	
+
 	syn_node->func_decl = new PHP_SYN_FUNC_DECL_NODE;
 	memset(syn_node->func_decl, 0, sizeof(PHP_SYN_FUNC_DECL_NODE));
 	syn_node->func_decl->name = strdup(name);
-	
+
 	if ( param_list ) {
 		PHP_EXP_NODE *curr_param = param_list;
 		// count parameters first
@@ -300,7 +300,7 @@ PHP_SYN_NODE *make_func_decl_syn_node(const char *name, PHP_EXP_NODE *param_list
 			curr_param = p;
 		}
 	}
-	
+
 	return syn_node;
 }
 
@@ -308,12 +308,12 @@ PHP_SYN_NODE *make_class_decl_syn_node()
 {
 	PHP_SYN_NODE *syn_node = new PHP_SYN_NODE;
 	memset(syn_node, 0, sizeof(PHP_SYN_NODE));
-	
+
 	syn_node->type = PHP_ST_CLASS_DECL;
-	
+
 	syn_node->class_decl = new PHP_SYN_CLASS_DECL_NODE;
 	memset(syn_node->class_decl, 0, sizeof(PHP_SYN_CLASS_DECL_NODE));
-	
+
 	return syn_node;
 }
 
@@ -321,9 +321,9 @@ PHP_SYN_NODE *make_switch_syn_node(PHP_EXP_NODE *cond, PHP_EXP_NODE *case_list)
 {
 	PHP_SYN_NODE *syn_node = new PHP_SYN_NODE;
 	memset(syn_node, 0, sizeof(PHP_SYN_NODE));
-	
+
 	syn_node->type = PHP_ST_SWITCH;
-	
+
 	//
 	// Bind all statement lists into single one for
 	// simplier execution
@@ -338,10 +338,10 @@ PHP_SYN_NODE *make_switch_syn_node(PHP_EXP_NODE *cond, PHP_EXP_NODE *case_list)
 			stat_list_tail = cur_stat_list;
 		}
 	}
-		
+
 	syn_node->node_switch.cond = cond;
 	syn_node->node_switch.case_list = case_list;
-	
+
 	return syn_node;
 }
 
@@ -350,7 +350,7 @@ PHP_VAR_NODE *make_var_node()
 	PHP_VAR_NODE *node = new PHP_VAR_NODE;
 	memset(node, 0, sizeof(PHP_VAR_NODE));
 	node->value.type = PHP_VAL_NONE;
-	
+
 	return node;
 }
 
@@ -358,7 +358,7 @@ PHP_VAR_NODE *make_array_var()
 {
 	PHP_VAR_NODE *node = make_var_node();
 	cast_value_array(&node->value);
-	
+
 	return node;
 }
 
@@ -369,7 +369,7 @@ PHP_EXP_NODE *get_var_node(const char *name)
 {
 	PHP_EXP_NODE *node = make_zero_exp_node();
 	node->op = PHP_OP_VAR;
-	
+
 	PHP_SCOPE_ITEM *si = get_scope_item(g_current_scope, name);
 	if ( si ) {
 		if ( (si->type == PHP_SCOPE_VAR) || (si->type == PHP_SCOPE_PARAM) ) {
@@ -385,7 +385,7 @@ PHP_EXP_NODE *get_var_node(const char *name)
 		add_var_2_scope(g_current_scope, make_var_node(), name);
 		node->var_si_node = get_scope_item(g_current_scope, name);
 	}
-	
+
 	return node;
 }
 
@@ -406,7 +406,7 @@ void func_scope_init(PHP_FUNC_PARAM_DEF *params, int param_count,
 	//
 	// Step 1: save origival vars
 	PHP_SCOPE_TABLE_TYPE *curr_scope_map = (PHP_SCOPE_TABLE_TYPE *)g_current_scope;
-	for(PHP_SCOPE_TABLE_TYPE::iterator i = curr_scope_map->begin(); i != curr_scope_map->end();i++) {
+	for(PHP_SCOPE_TABLE_TYPE::iterator i = curr_scope_map->begin(); i != curr_scope_map->end();++i) {
 		if ( (i->second->type == PHP_SCOPE_VAR) || (i->second->type == PHP_SCOPE_PARAM) ) {
 			if ( !(i->second->var->flags & PHP_VARFLAG_STATIC) ) {
 				//printf("Saving %s = %p->%p\n", i->first.c_str(), i->second, i->second->var);
@@ -448,7 +448,7 @@ void func_scope_init(PHP_FUNC_PARAM_DEF *params, int param_count,
 
 	//
 	// Step 4: allocate new stack local vars
-	for(PHP_SCOPE_TABLE_TYPE::iterator i = curr_scope_map->begin(); i != curr_scope_map->end();i++) {
+	for(PHP_SCOPE_TABLE_TYPE::iterator i = curr_scope_map->begin(); i != curr_scope_map->end();++i) {
 		if ( !((i->second->type == PHP_SCOPE_PARAM) || (i->second->type == PHP_SCOPE_VAR)) ) {
 			continue;
 		}
@@ -487,9 +487,9 @@ void func_scope_copy_back(PHP_FUNC_PARAM_DEF *params, int param_count,
 		}
 		params[i].si_var->var = params[i].var;
 	}
-	
+
 	PHP_SCOPE_TABLE_TYPE *curr_scope_map = (PHP_SCOPE_TABLE_TYPE *)g_current_scope;
-	for(PHP_SCOPE_TABLE_TYPE::iterator i = curr_scope_map->begin(); i != curr_scope_map->end();i++) {
+	for(PHP_SCOPE_TABLE_TYPE::iterator i = curr_scope_map->begin(); i != curr_scope_map->end();++i) {
 		if ( (i->second->type == PHP_SCOPE_VAR) || (i->second->type == PHP_SCOPE_PARAM) ) {
 			if ( !(i->second->var->flags & PHP_VARFLAG_STATIC) ) {
 				//printf("Restoring %s = %p->%p\n", i->first.c_str(), i->second, i->second->var);
@@ -511,7 +511,7 @@ void func_scope_copy_back(PHP_FUNC_PARAM_DEF *params, int param_count,
 PHP_SCOPE_TABLE make_scope_table()
 {
 	PHP_SCOPE_TABLE_TYPE *scope_map = new PHP_SCOPE_TABLE_TYPE;
-	
+
 	return scope_map;
 }
 
@@ -538,8 +538,8 @@ void switch_pop_scope_table(int old_free)
 void delete_scope_table(PHP_SCOPE_TABLE scope)
 {
 	PHP_SCOPE_TABLE_TYPE *scope_map = (PHP_SCOPE_TABLE_TYPE *)scope;
-	
-	for(PHP_SCOPE_TABLE_TYPE::iterator i = scope_map->begin(); i != scope_map->end();i++) {
+
+	for(PHP_SCOPE_TABLE_TYPE::iterator i = scope_map->begin(); i != scope_map->end();++i) {
 		switch ( i->second->type ) {
 			case PHP_SCOPE_PARAM:
 				//break;
@@ -567,7 +567,7 @@ void delete_scope_table(PHP_SCOPE_TABLE scope)
 	}
 	delete scope_map;
 }
-	
+
 void add_func_2_scope(PHP_SCOPE_TABLE scope, PHP_SYN_NODE *func)
 {
 	PHP_SCOPE_TABLE_TYPE *scope_map = (PHP_SCOPE_TABLE_TYPE *)scope;
@@ -603,7 +603,7 @@ PHP_SCOPE_ITEM *make_named_scope_item(PHP_SCOPE_TABLE scope, const char *name)
 	PHP_SCOPE_TABLE_TYPE *scope_map = (PHP_SCOPE_TABLE_TYPE *)scope;
 	PHP_SCOPE_ITEM *it = new PHP_SCOPE_ITEM;
 	memset(it, 0, sizeof(PHP_SCOPE_ITEM));
-	
+
 	std::string key(name);
 	(*scope_map)[key] = it;
 	return it;
@@ -645,7 +645,7 @@ const char *get_scope_var_name(PHP_SCOPE_TABLE scope, PHP_VAR_NODE *var)
 {
 	PHP_SCOPE_TABLE_TYPE *scope_map = (PHP_SCOPE_TABLE_TYPE *)scope;
 
-	for(PHP_SCOPE_TABLE_TYPE::iterator i = scope_map->begin(); i != scope_map->end();i++) {
+	for(PHP_SCOPE_TABLE_TYPE::iterator i = scope_map->begin(); i != scope_map->end();++i) {
 		if ( i->second->type == PHP_SCOPE_VAR ) {
 			PHP_VAR_NODE *curr_var = i->second->var;
 			if ( curr_var == var ) {
@@ -662,7 +662,7 @@ const std::string &array_get_ith_key(PHP_VALUE_NODE *array, int i)
 {
 	PHP_ARRAY_TYPE *arr_ptr = (PHP_ARRAY_TYPE *)array->ptr_val;
 	PHP_ARRAY_ITER_TYPE it = arr_ptr->array.begin();
-	while(i--) it++;
+	while(i--) ++it;
 	return it->first;
 }
 
@@ -682,7 +682,7 @@ PHP_VAR_NODE *array_get_by_str_key(PHP_VALUE_NODE *array, std::string key)
 		(arr_ptr->array)[key] = add_node;
 		arr_ptr->sorted_keys.push_back(key);
 		return add_node;
-	}	
+	}
 }
 
 PHP_VAR_NODE *array_get_by_int_key(PHP_VALUE_NODE *array, int key)
@@ -691,7 +691,7 @@ PHP_VAR_NODE *array_get_by_int_key(PHP_VALUE_NODE *array, int key)
 		return 0;
 	}
 	char s_key[32];
-	snprintf(s_key, sizeof(s_key), "%d", key);	
+	snprintf(s_key, sizeof(s_key), "%d", key);
 	return array_get_by_str_key(array, s_key);
 }
 
@@ -740,7 +740,7 @@ void array_remove_at_str_key(PHP_VALUE_NODE *array, std::string key)
 		PHP_VAR_NODE *node = (arr_ptr->array)[key];
 		var_node_free(node);
 		arr_ptr->array.erase(key);
-		for(PHP_ARRAY_KEY_ITER_TYPE i = arr_ptr->sorted_keys.begin(); i != arr_ptr->sorted_keys.end(); i++) {
+		for(PHP_ARRAY_KEY_ITER_TYPE i = arr_ptr->sorted_keys.begin(); i != arr_ptr->sorted_keys.end(); ++i) {
 			if ( *i == key ) {
 				arr_ptr->sorted_keys.erase(i);
 				break;
@@ -752,7 +752,7 @@ void array_remove_at_str_key(PHP_VALUE_NODE *array, std::string key)
 void array_add_to_int_key(PHP_VALUE_NODE *array, int key, PHP_VAR_NODE *node)
 {
 	char s_key[32];
-	snprintf(s_key, sizeof(s_key), "%d", key);	
+	snprintf(s_key, sizeof(s_key), "%d", key);
 	array_add_to_str_key(array, s_key, node);
 }
 
@@ -766,7 +766,7 @@ int array_is_key_here(PHP_VALUE_NODE *array, PHP_VALUE_NODE *key)
 	PHP_VALUE_NODE s_key = *key;
 	cast_value_str(&s_key);
 	std::string arr_key(s_key.str_val);
-	
+
 	return arr_ptr->array.count(arr_key);
 }
 
@@ -776,7 +776,7 @@ int array_get_size(PHP_VALUE_NODE *array)
 		return 0;
 	}
 	PHP_ARRAY_TYPE *arr_ptr = (PHP_ARRAY_TYPE *)array->ptr_val;
-	
+
 	return arr_ptr->array.size();
 }
 
@@ -802,7 +802,7 @@ void value_value_assign(PHP_VALUE_NODE *dst, PHP_VALUE_NODE *src)
 	switch(src->type) {
 		// scalars are copied. Objects are copied too, since
 		// interpreter doesn't allocate them.
-		case PHP_VAL_NONE: 
+		case PHP_VAL_NONE:
 		case PHP_VAL_BOOL:
 		case PHP_VAL_INT:
 		case PHP_VAL_FLOAT:
@@ -819,7 +819,7 @@ void value_value_assign(PHP_VALUE_NODE *dst, PHP_VALUE_NODE *src)
 		case PHP_VAL_ARRAY: {
 			dst->ptr_val = new PHP_ARRAY_TYPE;
 			PHP_ARRAY_TYPE *src_array = (PHP_ARRAY_TYPE *)src->ptr_val;
-			for(PHP_ARRAY_KEY_ITER_TYPE i = src_array->sorted_keys.begin(); i != src_array->sorted_keys.end(); i++) {
+			for(PHP_ARRAY_KEY_ITER_TYPE i = src_array->sorted_keys.begin(); i != src_array->sorted_keys.end(); ++i) {
 				PHP_VAR_NODE *added = array_get_by_str_key(dst, *i);
 				value_value_assign(&added->value, &src_array->array[*i]->value);
 			}
@@ -856,7 +856,7 @@ void value_value_free(PHP_VALUE_NODE *val)
 		}
 		case PHP_VAL_ARRAY: {
 			for(PHP_ARRAY_ITER_TYPE i = ((PHP_ARRAY_TYPE *)val->ptr_val)->array.begin();
-				i != ((PHP_ARRAY_TYPE *)val->ptr_val)->array.end(); i++) {
+				i != ((PHP_ARRAY_TYPE *)val->ptr_val)->array.end(); ++i) {
 					PHP_VAR_NODE *var_i = i->second;
 					var_node_free(var_i);
 				}
@@ -885,7 +885,7 @@ void cast_value_dnum(PHP_VALUE_NODE *val)
 			free(str);
 			break;
 		}
-		case PHP_VAL_ARRAY: 
+		case PHP_VAL_ARRAY:
 		case PHP_VAL_OBJECT: val->int_val = 0; break;
 		case PHP_VAL_VAR_NODE:
 		case PHP_VAL_INT_DATA: assert(0); break;
@@ -912,7 +912,7 @@ void cast_value_fnum(PHP_VALUE_NODE *val)
 			free(str);
 			break;
 		}
-		case PHP_VAL_ARRAY: 
+		case PHP_VAL_ARRAY:
 		case PHP_VAL_OBJECT: val->float_val = 0; break;
 		case PHP_VAL_VAR_NODE:
 		case PHP_VAL_INT_DATA: assert(0); break;
@@ -973,7 +973,7 @@ PHP_EXP_NODE *make_func_call_exp(char *func_name, PHP_EXP_NODE *args)
 	call_node->tree_node.left->val_node.str_val = strdup(func_name);
 	// set params
 	call_node->tree_node.right = args;
-	
+
 	return call_node;
 }
 
@@ -985,7 +985,7 @@ PHP_EXP_NODE *make_func_call_param_list()
 
 	exp_node->op = PHP_OP_VAR;
 	exp_node->var_node = params;
-	
+
 	return exp_node;
 }
 
@@ -1009,11 +1009,11 @@ void php_add_native_func(PHP_BLTIN_FUNC_DEF *def)
 		return;
 	}
 	PHP_SCOPE_TABLE func_scope = make_scope_table();
-	
+
 	PHP_SYN_NODE *decl_node = make_func_decl_syn_node(def->name, 0);
 	decl_node->func_decl->param_count = def->param_count;
 	decl_node->func_decl->params = new PHP_FUNC_PARAM_DEF[def->param_count];
-	
+
 	//
 	// Built-in functions don't have class specifier, and can handle
 	// default arguments internally
@@ -1032,7 +1032,7 @@ void php_add_native_func(PHP_BLTIN_FUNC_DEF *def)
 	decl_node->func_decl->scope = func_scope;
 	decl_node->func_decl->is_native = 1;
 	decl_node->func_decl->native_ptr = def->func;
-	
+
 	add_func_2_scope(g_global_scope, decl_node);
 }
 
@@ -1055,11 +1055,11 @@ void php_add_native_class(const char *name, PHP_NATIVE_PROP_GET_FUNC_PTR prop_ge
 void php_engine_init()
 {
 	g_global_scope = make_scope_table();
-	
+
 	g_current_scope = g_global_scope;
-	
+
 	g_scope_stack = new PHP_SCOPE_STACK_TYPE;
-	
+
 	// here built-in functions/objects/vars are loaded
 	php_init_core_lib();
 	php_init_amule_lib();
@@ -1082,7 +1082,7 @@ void php_exp_tree_free(PHP_EXP_NODE *tree)
 				PHP_VAR_NODE *args = tree->tree_node.right->var_node;
 				PHP_VALUE_NODE *args_array = &args->value;
 				for(PHP_ARRAY_ITER_TYPE i = ((PHP_ARRAY_TYPE *)args_array->ptr_val)->array.begin();
-					i != ((PHP_ARRAY_TYPE *)args_array->ptr_val)->array.end(); i++) {
+					i != ((PHP_ARRAY_TYPE *)args_array->ptr_val)->array.end(); ++i) {
 					PHP_VAR_NODE *var_i = i->second;
 					php_exp_tree_free((PHP_EXP_NODE *)var_i->value.ptr_val);
 				}
@@ -1094,7 +1094,7 @@ void php_exp_tree_free(PHP_EXP_NODE *tree)
 		case PHP_OP_ARRAY: {
 				PHP_EXP_NODE *curr = tree->tree_node.left;
                 while (curr) {
-                	PHP_EXP_NODE *next = curr->next;
+                       PHP_EXP_NODE *next = curr->next;
                     php_exp_tree_free(curr->exp_node);
                     delete curr;
                     curr = next;
@@ -1108,7 +1108,7 @@ void php_exp_tree_free(PHP_EXP_NODE *tree)
 			php_exp_tree_free(tree->tree_node.left);
 			php_exp_tree_free(tree->tree_node.right);
 	}
-	
+
 	delete tree;
 }
 
@@ -1123,7 +1123,7 @@ void php_syn_tree_free(PHP_SYN_NODE *tree)
 			case PHP_ST_ECHO: {
 					PHP_EXP_NODE *curr = tree->node_expr;
                     while (curr) {
-                    	PHP_EXP_NODE *next = curr->next;
+                       PHP_EXP_NODE *next = curr->next;
                         php_exp_tree_free(curr->exp_node);
                         delete curr;
                         curr = next;
@@ -1172,11 +1172,11 @@ void php_syn_tree_free(PHP_SYN_NODE *tree)
 					php_syn_tree_free(tree->node_switch.case_list->exp_node->tree_node.syn_right);
 					PHP_EXP_NODE *curr = tree->node_switch.case_list;
                     while (curr) {
-                    	PHP_EXP_NODE *next = curr->next;
-                    	if ( curr->exp_node ) {
+                       PHP_EXP_NODE *next = curr->next;
+                       if ( curr->exp_node ) {
 	                        php_exp_tree_free(curr->exp_node->tree_node.left);
-    	                    delete curr->exp_node;
-                    	}
+	                    delete curr->exp_node;
+                       }
                         delete curr;
                         curr = next;
                     }
@@ -1191,7 +1191,7 @@ void php_syn_tree_free(PHP_SYN_NODE *tree)
 		delete tree;
 		tree = next_node;
 	}
-}	
+}
 
 void php_engine_free()
 {
@@ -1409,11 +1409,11 @@ void php_expr_eval(PHP_EXP_NODE *expr, PHP_VALUE_NODE *result)
 				php_eval_simple_math(expr->op, &result_val_left, &result_val_right, result);
 			}
 			break;
-    	case PHP_OP_SHL:
-    	case PHP_OP_SHR:
-    	case PHP_OP_OR:
-    	case PHP_OP_AND:
-    	case PHP_OP_XOR:
+	case PHP_OP_SHL:
+	case PHP_OP_SHR:
+	case PHP_OP_OR:
+	case PHP_OP_AND:
+	case PHP_OP_XOR:
 		case PHP_OP_LOG_OR:
 		case PHP_OP_LOG_AND:
 		case PHP_OP_LOG_XOR:
@@ -1478,7 +1478,7 @@ void php_expr_eval(PHP_EXP_NODE *expr, PHP_VALUE_NODE *result)
 			php_report_error(PHP_ERROR, "Value of static class members not supported");
 			break;
 		default: ;
-			
+
 	}
 	value_value_free(&result_val_left);
 	value_value_free(&result_val_right);
@@ -1490,7 +1490,7 @@ PHP_VAR_NODE *php_expr_eval_lvalue(PHP_EXP_NODE *expr)
 
 	PHP_VALUE_NODE index;
 	index.type = PHP_VAL_NONE;
-	
+
 	switch(expr->op) {
 		case PHP_OP_VAR:
 			lval_node = expr->var_si_node->var;
@@ -1579,7 +1579,7 @@ void php_eval_compare(PHP_EXP_OP op, PHP_VALUE_NODE *op1, PHP_VALUE_NODE *op2, P
 				break;
 			default:
 				php_report_error(PHP_INTERNAL_ERROR, "This op is not compare op");
-		}	
+		}
 	} else {
 		PHP_VALUE_TYPE restype = cast_type_resolve(op1, op2);
 		switch(op) {
@@ -1674,30 +1674,30 @@ void php_eval_int_math(PHP_EXP_OP op, PHP_VALUE_NODE *op1, PHP_VALUE_NODE *op2,
 	cast_value_dnum(op2);
 	result->type = PHP_VAL_INT;
 	switch(op) {
-    	case PHP_OP_SHL:
-    		result->int_val = op1->int_val << op2->int_val;
-    		break;
-    	case PHP_OP_SHR:
-    		result->int_val = op1->int_val >> op2->int_val;
-    		break;
-    	case PHP_OP_OR:
-    		result->int_val = op1->int_val | op2->int_val;
-    		break;
+	case PHP_OP_SHL:
+		result->int_val = op1->int_val << op2->int_val;
+		break;
+	case PHP_OP_SHR:
+		result->int_val = op1->int_val >> op2->int_val;
+		break;
+	case PHP_OP_OR:
+		result->int_val = op1->int_val | op2->int_val;
+		break;
 		case PHP_OP_LOG_OR:
-    		result->int_val = op1->int_val || op2->int_val;
-    		break;
-    	case PHP_OP_AND:
-    		result->int_val = op1->int_val & op2->int_val;
-    		break;
+		result->int_val = op1->int_val || op2->int_val;
+		break;
+	case PHP_OP_AND:
+		result->int_val = op1->int_val & op2->int_val;
+		break;
 		case PHP_OP_LOG_AND:
-    		result->int_val = op1->int_val && op2->int_val;
-    		break;
+		result->int_val = op1->int_val && op2->int_val;
+		break;
 		case PHP_OP_LOG_XOR:
 			op1->int_val = op1->int_val ? 1 : 0;
 			op2->int_val = op2->int_val ? 1 : 0;
-    	case PHP_OP_XOR:
-    		result->int_val = op1->int_val ^ op2->int_val;
-    		break;
+	case PHP_OP_XOR:
+		result->int_val = op1->int_val ^ op2->int_val;
+		break;
 		default:
 			php_report_error(PHP_INTERNAL_ERROR, "This op is not int math");
 	}
@@ -1741,11 +1741,11 @@ void php_run_func_call(PHP_EXP_NODE *node, PHP_VALUE_NODE *result)
 		php_report_error(PHP_INTERNAL_ERROR, "Wrong type in function decl node");
 		return;
 	}
-	
+
 	//
 	// Switch stack and call function
 	//
-	
+
 	PHP_SYN_FUNC_DECL_NODE *func_decl = func->func_decl;
 
 	std::map<std::string, PHP_VAR_NODE *> saved_vars;
@@ -1767,9 +1767,9 @@ void php_run_func_call(PHP_EXP_NODE *node, PHP_VALUE_NODE *result)
 	switch_pop_scope_table(0);
 	func_scope_copy_back(func_decl->params, func_decl->param_count,
 		(PHP_SCOPE_TABLE_TYPE *)func_decl->scope, &r_node->var_node->value, saved_vars);
-	
+
 	//scope_reset_nonstatics(func_decl->scope);
-	
+
 }
 
 /*
@@ -1845,7 +1845,7 @@ int php_execute(PHP_SYN_NODE *node, PHP_VALUE_NODE *result)
 					curr_exec_result = cond_result.int_val;
 				}
 				break;
-				
+
 			case PHP_ST_WHILE:
 			case PHP_ST_DO_WHILE:
 				if ( node->type == PHP_ST_WHILE ) {
@@ -1886,7 +1886,7 @@ int php_execute(PHP_SYN_NODE *node, PHP_VALUE_NODE *result)
 				cast_value_bool(&cond_result);
 				while ( cond_result.int_val ) {
 					curr_exec_result = php_execute(node->node_for.code, 0);
-					// handle 'break' and 'continue' 
+					// handle 'break' and 'continue'
 					if ( curr_exec_result < 0 ) {
 						curr_exec_result++;
 						break;
@@ -1936,7 +1936,7 @@ int php_execute(PHP_SYN_NODE *node, PHP_VALUE_NODE *result)
 							value_value_assign(curr_value, &i_val->var->value);
 						}
 						value_value_free(&i_val->var->value);
-						// handle 'break' and 'continue' 
+						// handle 'break' and 'continue'
 						if ( curr_exec_result < 0 ) {
 							curr_exec_result++;
 							break;
@@ -1969,7 +1969,7 @@ int php_execute(PHP_SYN_NODE *node, PHP_VALUE_NODE *result)
 						php_eval_compare(PHP_OP_EQ, &cur_value, &cond_result, &cmp_result);
 						if ( cmp_result.int_val ) {
 							// execute code and rest of case statements
-							cur_exec = (PHP_SYN_NODE *)curr->exp_node->tree_node.syn_right;
+							cur_exec = static_cast<PHP_SYN_NODE *>(curr->exp_node->tree_node.syn_right);
 							break;
 						}
 						curr = curr->next;
@@ -2024,7 +2024,7 @@ void php_report_error(PHP_MSG_TYPE err_type, const char *msg, ...)
 			type_msg = "PHP Internal Error:";
 			break;
 	}
-	
+
 	va_list args;
 	va_start(args, msg);
 	vsnprintf(msgbuf, sizeof(msgbuf), msg, args);
diff --git a/src/webserver/src/php_syntree.h b/src/webserver/src/php_syntree.h
index 58cba64..95fc763 100644
--- a/src/webserver/src/php_syntree.h
+++ b/src/webserver/src/php_syntree.h
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -73,8 +73,8 @@ typedef struct PHP_VALUE_NODE {
          */
         void *ptr_val;
         struct {
-        	void *inst_ptr;
-        	const char *class_name;
+            void *inst_ptr;
+            const char *class_name;
         } obj_val;
     };
 } PHP_VALUE_NODE;
@@ -103,19 +103,19 @@ typedef struct PHP_VAR_NODE {
 */
 typedef enum PHP_EXP_OP {
     PHP_OP_VAR, PHP_OP_VAL, PHP_OP_ASS,
-    
+
     /* dereference */
     PHP_OP_ARRAY_BY_KEY, PHP_OP_VAR_BY_EXP,
-    
+
 	/* array construct */
 	PHP_OP_ARRAY, PHP_OP_ARRAY_PAIR, PHP_OP_ARRAY_REF_PAIR,
-	
+
 	/* object access "->" and "::" */
 	PHP_OP_OBJECT_DEREF, PHP_OP_CLASS_DEREF,
- 
- 	/* casting */
- 	PHP_OP_CAST_INT, PHP_OP_CAST_FLOAT, PHP_OP_CAST_BOOL, PHP_OP_CAST_STR,
- 	
+
+	/* casting */
+	PHP_OP_CAST_INT, PHP_OP_CAST_FLOAT, PHP_OP_CAST_BOOL, PHP_OP_CAST_STR,
+
     /* arithmetics */
     PHP_OP_MUL, PHP_OP_DIV, PHP_OP_ADD, PHP_OP_SUB, PHP_OP_REM,
     /* str concat */
@@ -130,7 +130,7 @@ typedef enum PHP_EXP_OP {
 
 	/* conditional assign (mux) */
 	PHP_OP_MUX,
-	
+
 	/* specials */
 	PHP_OP_FUNC_CALL, PHP_OP_PRINT, PHP_OP_ECHO, PHP_MAKE_REF,
 	/* list of expressions */
@@ -147,8 +147,8 @@ struct PHP_EXP_NODE {
             /* In the 'switch' statement expression points
              * to beginning of code*/
             union {
-            	struct PHP_EXP_NODE *right;
-            	struct PHP_SYN_NODE *syn_right;
+                struct PHP_EXP_NODE *right;
+                struct PHP_SYN_NODE *syn_right;
             };
         } tree_node;
         struct PHP_EXP_NODE *next;
@@ -194,7 +194,7 @@ typedef struct PHP_SYN_NODE PHP_SYN_NODE;
  *  2. As global scope - holder of global vars, classes and global functions
  *  3. At class scope - holder of class members
  *  4. Copied to class instanse
- * 
+ *
  */
 typedef enum PHP_SCOPE_ITEM_TYPE {
 	PHP_SCOPE_NONE,
@@ -231,7 +231,7 @@ typedef enum PHP_STATMENT_TYPE {
 	PHP_ST_ECHO
 } PHP_STATMENT_TYPE;
 
-/* 
+/*
  * Syntax tree constructs: regular statements and declarations
  */
 typedef struct PHP_SYN_IF_NODE {
@@ -251,8 +251,8 @@ typedef struct PHP_SYN_FOR_NODE {
 
 typedef struct PHP_SYN_FOREACH_NODE {
     PHP_EXP_NODE *elems;
-  	PHP_SCOPE_ITEM *i_key;
-  	PHP_SCOPE_ITEM *i_val;
+	PHP_SCOPE_ITEM *i_key;
+	PHP_SCOPE_ITEM *i_val;
     PHP_SYN_NODE *code;
     int byref;
 } PHP_SYN_FOREACH_NODE;
@@ -309,7 +309,7 @@ typedef struct PHP_SYN_CLASS_DECL_NODE {
 struct PHP_SYN_NODE {
     PHP_STATMENT_TYPE type;
     union {
-        PHP_EXP_NODE 			*node_expr;
+        PHP_EXP_NODE			*node_expr;
         PHP_SYN_IF_NODE			node_if;
         PHP_SYN_WHILE_NODE		node_while;
         PHP_SYN_FOREACH_NODE	node_foreach;
@@ -325,9 +325,9 @@ struct PHP_SYN_NODE {
  * Interface to lib of built-in functions, classes, variables
  */
 /*
- * Using fixed size array will allow "in-place" definition 
+ * Using fixed size array will allow "in-place" definition
  * of built-in functions without pointer mess.
- * 
+ *
  */
 #define PHP_MAX_FUNC_PARAM	 16
 
@@ -338,7 +338,7 @@ typedef struct PHP_BLTIN_FUNC_DEF {
 } PHP_BLTIN_FUNC_DEF;
 
 typedef enum PHP_MSG_TYPE {
-	PHP_MESAGE, PHP_WARNING, PHP_ERROR, PHP_INTERNAL_ERROR 
+	PHP_MESAGE, PHP_WARNING, PHP_ERROR, PHP_INTERNAL_ERROR
 } PHP_MSG_TYPE;
 
 #ifdef __cplusplus
@@ -350,22 +350,22 @@ extern "C" {
  */
 	int phperror(char *err);
 	int phpparse();
-	
+
 	extern int pphdebug;
 	extern FILE *phpin;
 	extern char *phptext;
 	extern int phplineno;
 
-/* 
+/*
  * Syntax tree interface to parser
  */
- 
-/* 
+
+/*
  * Const expressions
  */
- 	PHP_EXP_NODE *make_const_exp_dnum(int number);
- 	PHP_EXP_NODE *make_const_exp_fnum(float number);
- 	PHP_EXP_NODE *make_const_exp_str(char *s, int unescape);
+	PHP_EXP_NODE *make_const_exp_dnum(int number);
+	PHP_EXP_NODE *make_const_exp_fnum(float number);
+	PHP_EXP_NODE *make_const_exp_str(char *s, int unescape);
 
 	// exp node for internally handled data
 	PHP_EXP_NODE *make_const_exp_int_obj(void *obj);
@@ -376,65 +376,65 @@ extern "C" {
 	void cast_value_str(PHP_VALUE_NODE *e);
 	void cast_value_array(PHP_VALUE_NODE *e);
 	void cast_value_bool(PHP_VALUE_NODE *e);
-	
+
 	void value_value_free(PHP_VALUE_NODE *val);
 	void value_value_assign(PHP_VALUE_NODE *src, PHP_VALUE_NODE *dst);
 	void var_node_free(PHP_VAR_NODE *var);
-	
+
 	/* array operations */
 	PHP_VAR_NODE *array_get_by_key(PHP_VALUE_NODE *array, PHP_VALUE_NODE *key);
 	PHP_VAR_NODE *array_get_by_int_key(PHP_VALUE_NODE *array, int key);
-	
+
 	int array_is_key_here(PHP_VALUE_NODE *array, PHP_VALUE_NODE *key);
 	int array_get_size(PHP_VALUE_NODE *array);
 	PHP_VAR_NODE *array_push_back(PHP_VALUE_NODE *array);
-	
+
 	void array_add_to_int_key(PHP_VALUE_NODE *array, int key, PHP_VAR_NODE *node);
 	void array_set_by_key(PHP_VALUE_NODE *array, PHP_VALUE_NODE *key, PHP_VAR_NODE *node);
-	
+
 	PHP_VAR_NODE *make_array_var();
-	
+
 	// signle operand expression:
 	// FIXME: prefix and postfix form not recognized
- 	PHP_EXP_NODE *make_exp_1(PHP_EXP_OP op, PHP_EXP_NODE *operand);
+	PHP_EXP_NODE *make_exp_1(PHP_EXP_OP op, PHP_EXP_NODE *operand);
 
- 	PHP_EXP_NODE *make_exp_2(PHP_EXP_OP op, PHP_EXP_NODE *left, PHP_EXP_NODE *right);
+	PHP_EXP_NODE *make_exp_2(PHP_EXP_OP op, PHP_EXP_NODE *left, PHP_EXP_NODE *right);
 
 	// this is for "OP=" forms
- 	PHP_EXP_NODE *make_exp_2_self(PHP_EXP_OP op, PHP_EXP_NODE *self, PHP_EXP_NODE *right);
+	PHP_EXP_NODE *make_exp_2_self(PHP_EXP_OP op, PHP_EXP_NODE *self, PHP_EXP_NODE *right);
 
 	PHP_EXP_NODE *make_known_const(char *name);
-		
+
 	PHP_EXP_NODE *make_func_call_exp(char *func_name, PHP_EXP_NODE *args);
-	
+
 	// create func call param list
 	PHP_EXP_NODE *make_func_call_param_list();
-	
+
 	// add next argument to function call param list
 	void func_call_add_expr(PHP_VAR_NODE *paramlist, PHP_EXP_NODE *arg, int byref);
-	
-	
+
+
 	extern PHP_SYN_NODE *g_syn_tree_top;
-	
+
 	/* make syntax node for expression */
 	PHP_SYN_NODE *make_expr_syn_node(PHP_STATMENT_TYPE type, PHP_EXP_NODE *node);
-	
+
 	PHP_SYN_NODE *make_ifelse_syn_node(PHP_EXP_NODE *expr,
 		PHP_SYN_NODE *then_node, PHP_SYN_NODE *elseif_list, PHP_SYN_NODE *else_node);
-		
+
 	PHP_SYN_NODE *make_while_loop_syn_node(PHP_EXP_NODE *cond,
 		PHP_SYN_NODE *code, int do_while);
-		
+
 	PHP_SYN_NODE *make_foreach_loop_syn_node(PHP_EXP_NODE *elems,
 		PHP_EXP_NODE *i_key, PHP_EXP_NODE *i_val, PHP_SYN_NODE *code, int byref);
 
 	PHP_SYN_NODE *make_for_syn_node(PHP_EXP_NODE *start, PHP_EXP_NODE *cond,
 		PHP_EXP_NODE *next, PHP_SYN_NODE *code);
-		
+
 	PHP_SYN_NODE *make_class_decl_syn_node();
-	
+
 	PHP_SYN_NODE *make_func_decl_syn_node(const char *name, PHP_EXP_NODE *param_list);
-	
+
 	PHP_SYN_NODE *make_switch_syn_node(PHP_EXP_NODE *cond, PHP_EXP_NODE *case_list);
 
 	//
@@ -442,45 +442,45 @@ extern "C" {
 	//
 	PHP_EXP_NODE *make_func_param(PHP_EXP_NODE *list, PHP_EXP_NODE *var_exp_node,
 		char *class_name, int byref);
-	
+
 	PHP_VAR_NODE *make_var_node();
 	PHP_EXP_NODE *get_var_node(const char *name);
 	// C can't call "delete"
 	void free_var_node(PHP_VAR_NODE *v);
-	
+
 	/* scope table manipulation */
 	extern PHP_SCOPE_TABLE g_global_scope, g_current_scope;
 	extern PHP_SCOPE_STACK g_scope_stack;
-	
+
 	PHP_SCOPE_TABLE make_scope_table();
-	
+
 	void delete_scope_table(PHP_SCOPE_TABLE scope);
-	
+
 	void switch_push_scope_table(PHP_SCOPE_TABLE new_table);
-	
+
 	void switch_pop_scope_table(int old_free);
-	
+
 	void scope_reset_nonstatics(PHP_SCOPE_TABLE scope);
-	
+
 	void add_func_2_scope(PHP_SCOPE_TABLE scope, PHP_SYN_NODE *func);
-	
+
 	void add_class_2_scope(PHP_SCOPE_TABLE scope, PHP_SYN_NODE *class_node);
-	
+
 	PHP_SCOPE_ITEM *add_var_2_scope(PHP_SCOPE_TABLE scope, PHP_VAR_NODE *var, const char *name);
 
 	const char *get_scope_var_name(PHP_SCOPE_TABLE scope, PHP_VAR_NODE *var);
-	
+
 	PHP_SCOPE_ITEM_TYPE get_scope_item_type(PHP_SCOPE_TABLE scope, const char *name);
-	
+
 	PHP_SCOPE_ITEM *get_scope_item(PHP_SCOPE_TABLE scope, const char *name);
-	
-	/* engine */	
+
+	/* engine */
 	void php_engine_init();
 	void php_engine_free();
-	
+
 	void php_syn_tree_free(PHP_SYN_NODE *tree);
 	void php_exp_tree_free(PHP_EXP_NODE *tree);
-	
+
 	/*
 	 * Return code meaning:
 	 *  0  : continue execution to the next statement
@@ -489,17 +489,17 @@ extern "C" {
 	 *  In non-loop situation any != 0 code means "return"
 	 */
 	int php_execute(PHP_SYN_NODE *node, PHP_VALUE_NODE *result);
-	
+
 	void php_expr_eval(PHP_EXP_NODE *expr, PHP_VALUE_NODE *result);
-	
+
 	PHP_VAR_NODE *php_expr_eval_lvalue(PHP_EXP_NODE *expr);
-	
+
 	void php_eval_simple_math(PHP_EXP_OP op,
 		PHP_VALUE_NODE *op1, PHP_VALUE_NODE *op2, PHP_VALUE_NODE *result);
-		
+
 	void php_eval_int_math(PHP_EXP_OP op,
 		PHP_VALUE_NODE *op1, PHP_VALUE_NODE *op2, PHP_VALUE_NODE *result);
-		
+
 	void php_eval_compare(PHP_EXP_OP op,
 		PHP_VALUE_NODE *op1, PHP_VALUE_NODE *op2, PHP_VALUE_NODE *result);
 
@@ -545,7 +545,7 @@ typedef struct {
 } PHP_ARRAY_TYPE;
 
 //
-// using std::string instead of "char *" so keys will be compared 
+// using std::string instead of "char *" so keys will be compared
 // by string value
 typedef std::map<std::string, PHP_SCOPE_ITEM *> PHP_SCOPE_TABLE_TYPE;
 typedef std::list<PHP_SCOPE_TABLE_TYPE *> PHP_SCOPE_STACK_TYPE;
diff --git a/unittests/Makefile.am b/unittests/Makefile.am
index b151236..77cf61a 100644
--- a/unittests/Makefile.am
+++ b/unittests/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = 
+SUBDIRS =
 MAINTAINERCLEANFILES = Makefile.in
 DIST_SUBDIRS = muleunit tests
 
diff --git a/unittests/Makefile.in b/unittests/Makefile.in
index 0c35d17..35a17e7 100644
--- a/unittests/Makefile.in
+++ b/unittests/Makefile.in
@@ -37,23 +37,23 @@ subdir = unittests
 DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -125,6 +125,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -151,6 +157,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -241,6 +248,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
diff --git a/unittests/README b/unittests/README
index 80ef330..07fffdf 100644
--- a/unittests/README
+++ b/unittests/README
@@ -1,12 +1,12 @@
 UnitTests provide an easy way to perform automated testing (including)
-regression-testing and are desbribed in depth at 
+regression-testing and are desbribed in depth at
 http://c2.com/cgi/wiki?UnitTest
 
 The UnitTest framework MuleUnit is a minimalistic UnitTesting-framework
 based on the EasyUnit framework, with the goal of making testing of the
 aMule codebase easier.
- 
- 
+
+
 How to use:
  This section describes the step-by-step of creating a new testcase.
 
@@ -22,23 +22,23 @@ How to use:
     A fixture is a way to ease the preparation before and after
     each test and consists of (optionally) a setUp function which
     is run before each unittest, a tearDown function wich is run
-    after each unittest and any number of member-variables and 
+    after each unittest and any number of member-variables and
     helper-functions.
 
-    
+
     A simple testcase (in this case for the Stack class) is declared
     like this, though the name "StackTest" may be anything.
-      
+
       #include <muleunit/test.h>
 
       DECLARE_SIMPLE(StackTest);
-    
-    
+
+
     If we wanted to have a default stack-object created before each test
     and deleted afterwards, we could use a fixture, which is done like so:
 
       #include <muleunit/test.h>
-      
+
       DECLARE(StackTest);
         Stack<int>* m_stack;
 
@@ -61,15 +61,15 @@ How to use:
 
  2) Writing Tests
     To add an actual test to the test-case, the following is done:
-      
+
       TEST(StackTest, AStackTest)
       {
         <test here>
       }
- 
- 
+
+
     This will create and register a unittest to the StackTest
-    test-case which has the name "AStackTest". An simple example 
+    test-case which has the name "AStackTest". An simple example
     of this can be seen here:
 
       TEST(StackTest, PushAndPop)
@@ -78,7 +78,7 @@ How to use:
 
         ASSERT_EQUALS(10, m_stack->pop());
       }
-    
+
 
     A test-case can have any number of unittests assosiated with it,
     but each test in a test-case must be uniquely named.
@@ -88,46 +88,46 @@ How to use:
     Assuming that the testcase described above has been placed in
     tests/StackTest.cpp, the follow entry needs to be added to the
     Makefile.am file in tests/:
-      
+
       StackTest_SOURCES = StackTest.cpp
       StackTest_CXXFLAGS = $(CXXFLAGS)
       StackTest_LDADD = $(LDADD)
 
     And the TESTS variable must be updated to contain an entry for
     the stack testcase: "StackTest"
-    
-    At the moment, in order for the makefile to be updated with the 
-    next test-case you need to execute the following from the 
+
+    At the moment, in order for the makefile to be updated with the
+    next test-case you need to execute the following from the
     amule-dev/ dir:
-      
+
       $ automake unittests/tests/Makefile
       $ ./configure <your options>
-    
+
     This only need to be done when the Makefile.am file has been
     changed, not when test test-cases themselves are changed.
 
-  
+
   4) Running the test
     Simply executing the make target check will execute all unittests
     registered in the Makefile ("-s" is used for silent operation):
-      
+
       $ make -s check
-  
+
       Making check in tests
       Test case "StackTest" SUCCEEDED with 0 failure(s) and 1 success(es):
         Test "AStackTest" SUCCEEDED!
-      
+
       PASS: StackTest
-  
+
       ==================
       All 1 tests passed
       ==================
 
-    
+
 	Should a test fail, the output will be like the following:
-	
+
       $ make -s check
-  
+
       Making check in tests
       Test case "StackTest" FAILED with 1 failure(s) and 0 success(es):
         Test "Foo" FAILED :
@@ -142,5 +142,5 @@ How to use:
 
   5) More
     More information about available test-macros can be found in the
-    muleunit/test.h header-file. 
+    muleunit/test.h header-file.
 
diff --git a/unittests/muleunit/Makefile.am b/unittests/muleunit/Makefile.am
index dcef3c0..d132898 100644
--- a/unittests/muleunit/Makefile.am
+++ b/unittests/muleunit/Makefile.am
@@ -10,7 +10,7 @@ libmuleunit_a_SOURCES = \
 	$(top_srcdir)/src/libs/common/MuleDebug.cpp \
 	$(top_srcdir)/src/libs/common/StringFunctions.cpp
 
-libmuleunit_a_CPPFLAGS = $(MULECPPFLAGS) $(WXBASE_CPPFLAGS) -I$(top_srcdir)/src/libs -DMULEUNIT 
+libmuleunit_a_CPPFLAGS = $(MULECPPFLAGS) $(WXBASE_CPPFLAGS) -I$(top_srcdir)/src/libs -DMULEUNIT
 libmuleunit_a_CXXFLAGS = $(MULECXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY)
 
 EXTRA_DIST = license.txt
diff --git a/unittests/muleunit/Makefile.in b/unittests/muleunit/Makefile.in
index 4ab2304..f1d2cfd 100644
--- a/unittests/muleunit/Makefile.in
+++ b/unittests/muleunit/Makefile.in
@@ -38,23 +38,23 @@ subdir = unittests/muleunit
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -130,6 +130,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -156,6 +162,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -246,6 +253,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -342,7 +350,7 @@ libmuleunit_a_SOURCES = \
 	$(top_srcdir)/src/libs/common/MuleDebug.cpp \
 	$(top_srcdir)/src/libs/common/StringFunctions.cpp
 
-libmuleunit_a_CPPFLAGS = $(MULECPPFLAGS) $(WXBASE_CPPFLAGS) -I$(top_srcdir)/src/libs -DMULEUNIT 
+libmuleunit_a_CPPFLAGS = $(MULECPPFLAGS) $(WXBASE_CPPFLAGS) -I$(top_srcdir)/src/libs -DMULEUNIT
 libmuleunit_a_CXXFLAGS = $(MULECXXFLAGS) $(WX_CFLAGS_ONLY) $(WX_CXXFLAGS_ONLY)
 EXTRA_DIST = license.txt
 MAINTAINERCLEANFILES = Makefile.in
diff --git a/unittests/muleunit/license.txt b/unittests/muleunit/license.txt
index ba48ddc..4ec78c0 100644
--- a/unittests/muleunit/license.txt
+++ b/unittests/muleunit/license.txt
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
 on the Library (independent of the use of the Library in a tool for
 writing it).  Whether that is true depends on what the Library does
 and what the program that uses the Library does.
-  
+
   1. You may copy and distribute verbatim copies of the Library's
 complete source code as you receive it, in any medium, provided that
 you conspicuously and appropriately publish on each copy an
diff --git a/unittests/muleunit/main.cpp b/unittests/muleunit/main.cpp
index 4093985..b0ffcf1 100644
--- a/unittests/muleunit/main.cpp
+++ b/unittests/muleunit/main.cpp
@@ -8,12 +8,12 @@
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // version 2.1 of the License, or (at your option) any later version.
-//  
+//
 // This library 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
 // Lesser General Public License for more details.
-//  
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/unittests/muleunit/test.cpp b/unittests/muleunit/test.cpp
index d93a557..bd9ce94 100644
--- a/unittests/muleunit/test.cpp
+++ b/unittests/muleunit/test.cpp
@@ -8,16 +8,16 @@
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // version 2.1 of the License, or (at your option) any later version.
-//  
+//
 // This library 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
 // Lesser General Public License for more details.
-//  
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
-//  
+//
 
 #include "test.h"
 #include "testregistry.h"
@@ -32,7 +32,7 @@ struct BTEntry
 		: file(f)
 		, line(l)
 		, msg(m)
-	{ 
+	{
 	}
 
 	wxString file;
@@ -52,7 +52,7 @@ namespace muleunit {
 		{
 		}
 
-		std::list<BTEntry> snapshot;	
+		std::list<BTEntry> snapshot;
 	};
 }
 
diff --git a/unittests/muleunit/test.h b/unittests/muleunit/test.h
index c8266e7..8b09af7 100644
--- a/unittests/muleunit/test.h
+++ b/unittests/muleunit/test.h
@@ -8,16 +8,16 @@
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // version 2.1 of the License, or (at your option) any later version.
-//  
+//
 // This library 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
 // Lesser General Public License for more details.
-//  
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
-//  
+//
 
 #ifndef TEST_H
 #define TEST_H
@@ -87,13 +87,13 @@ public:
 };
 
 
-/** 
+/**
  * This class is used to produce informative backtraces
  *
  * This is done by specifying a "context" for a given scope, using
  * the CONTEXT macro, at which point a description is added to the
  * current list of contexts. At destruction, when the scope is exited,
- * the context is removed from the queue. 
+ * the context is removed from the queue.
  *
  * The resulting "backtrace" can then be printed by calling the
  * PrintBT() function of an CTestFailureException.
@@ -117,7 +117,7 @@ public:
 #define CONTEXT(x) CContext wxCONCAT(context,__LINE__)(wxT(__FILE__), __LINE__, x)
 
 
-/** 
+/**
  * This class disables assertions while it is in scope.
  */
 class CAssertOff
@@ -129,7 +129,7 @@ public:
 
 
 /**
- * Test class containing all macros to do unit testing. 
+ * Test class containing all macros to do unit testing.
  * A test object represents a test that will be executed. Once it has been
  * executed, it reports all failures in the testPartResult linked list.
  *
@@ -194,7 +194,7 @@ public:
 	static void DoAssertEquals(const wxString& file, unsigned line, const A& a, const B& b)
 	{
 		if (!(a == b)) {
-			wxString message = wxT("Expected '") + StringFrom(a) + 
+			wxString message = wxT("Expected '") + StringFrom(a) +
 								wxT("' but got '") + StringFrom(b) + wxT("'");
 
 			throw CTestFailureException(message, file, line);
@@ -306,7 +306,7 @@ inline wxString StringFrom(signed long long value)
 	} catch (const std::exception& e) { \
 		THROW_TEST_FAILURE(wxString::FromAscii(e.what())); \
 	}
-	
+
 
 
 /**
@@ -372,7 +372,7 @@ inline wxString StringFrom(signed long long value)
 		testCaseName##Declare##Test(const wxString& testCaseName, const wxString& testName) \
 			: Test (testCaseName, testName) {} \
 		virtual void run() = 0; \
-		
+
 /**
  * Ending macro used after DECLARE.
  *
diff --git a/unittests/muleunit/testcase.cpp b/unittests/muleunit/testcase.cpp
index ab18a81..0d6f47a 100644
--- a/unittests/muleunit/testcase.cpp
+++ b/unittests/muleunit/testcase.cpp
@@ -8,12 +8,12 @@
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // version 2.1 of the License, or (at your option) any later version.
-//  
+//
 // This library 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
 // Lesser General Public License for more details.
-//  
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -63,11 +63,11 @@ bool TestCase::run()
 	Print(wxT("\nRunning test-collection \"") + m_name + wxString::Format(wxT("\" with %u test-cases:"), m_tests.size()));
 
 	bool failures = false;
-	
+
 	TestList::iterator it = m_tests.begin();
 	for (; it != m_tests.end(); ++it) {
 		Test* test = *it;
-		
+
 		Print(wxT("\tTest \"") + test->getTestName() + wxT("\" "));
 
 		bool wasSetup = false;
@@ -91,7 +91,7 @@ bool TestCase::run()
 				e.PrintBT();
 			}
 		}
-		
+
 		try {
 			test->tearDown();
 		} catch (const CTestFailureException& e) {
diff --git a/unittests/muleunit/testcase.h b/unittests/muleunit/testcase.h
index 1bd2339..e18e0fc 100644
--- a/unittests/muleunit/testcase.h
+++ b/unittests/muleunit/testcase.h
@@ -8,12 +8,12 @@
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // version 2.1 of the License, or (at your option) any later version.
-//  
+//
 // This library 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
 // Lesser General Public License for more details.
-//  
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
diff --git a/unittests/muleunit/testregistry.cpp b/unittests/muleunit/testregistry.cpp
index 894d63d..1c4888f 100644
--- a/unittests/muleunit/testregistry.cpp
+++ b/unittests/muleunit/testregistry.cpp
@@ -8,12 +8,12 @@
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // version 2.1 of the License, or (at your option) any later version.
-//  
+//
 // This library 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
 // Lesser General Public License for more details.
-//  
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -65,7 +65,7 @@ void TestRegistry::add(Test *test)
 	const wxString tcName = test->getTestCaseName();
 	const wxString tName = test->getTestName();
 
-	
+
 	if (m_testCases.empty() || m_testCases.back()->getName() != tcName) {
 		m_testCases.push_back(new TestCase(tcName));
 	}
@@ -77,12 +77,12 @@ void TestRegistry::add(Test *test)
 bool TestRegistry::runTests()
 {
 	bool success = true;
-	
+
 	TestCaseList::iterator it = m_testCases.begin();
 	for (; it != m_testCases.end(); ++it) {
 		success &= (*it)->run();
 	}
-	
+
 	return success;
 }
 
diff --git a/unittests/muleunit/testregistry.h b/unittests/muleunit/testregistry.h
index 9ef0366..d06b510 100644
--- a/unittests/muleunit/testregistry.h
+++ b/unittests/muleunit/testregistry.h
@@ -8,12 +8,12 @@
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // version 2.1 of the License, or (at your option) any later version.
-//  
+//
 // This library 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
 // Lesser General Public License for more details.
-//  
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -30,7 +30,7 @@ namespace muleunit
 	class Test;
 	class TestCase;
 
-	
+
 typedef std::list<TestCase*> TestCaseList;
 
 
@@ -64,7 +64,7 @@ public:
 private:
 	static TestRegistry& instance();
 	void add(Test *test);
-	
+
 	bool runTests();
 	TestCaseList m_testCases;
 };
diff --git a/unittests/tests/CTagTest.cpp b/unittests/tests/CTagTest.cpp
index 3f1222b..b8e50bc 100644
--- a/unittests/tests/CTagTest.cpp
+++ b/unittests/tests/CTagTest.cpp
@@ -570,7 +570,7 @@ TEST_M(CTag, KadTagNames, wxT("Kad: Test Kad tags (name=string) - write/read eve
 	buf.WriteUInt8(tagNames.size());
 	int counter = 0;
 	// For each tagNames entry write an 8bit int tag (type:0x9)
-	for (TagNamesByString::iterator it_name = tagNames.begin(); it_name != tagNames.end(); it_name++) {
+	for (TagNamesByString::iterator it_name = tagNames.begin(); it_name != tagNames.end(); ++it_name) {
 		buf.WriteUInt8(0x09); // 8 bit int tag type
 
 		buf.WriteUInt8(0x01); // single char string
@@ -591,7 +591,7 @@ TEST_M(CTag, KadTagNames, wxT("Kad: Test Kad tags (name=string) - write/read eve
 	TagPtrList::iterator it = taglist.begin();
 
 	counter = 0;
-	for (TagNamesByString::iterator it_name = tagNames.begin(); it_name != tagNames.end(); it_name++) {
+	for (TagNamesByString::iterator it_name = tagNames.begin(); it_name != tagNames.end(); ++it_name) {
 		CONTEXT(wxT("Testing tag name: ") + it_name->second);
 		CheckTagData(*it++, it_name->first, valid_tag_value(counter++));
 	}
@@ -651,7 +651,7 @@ TEST_M(CTag, ED2kTagNames, wxT("Ed2k: Test ed2k tags (name=id) - write/read ever
 	CMemFile buf;
 
 	uint64 counter = 0;
-	for (TagNamesByInt::iterator it_name = tagNames.begin(); it_name != tagNames.end(); it_name++) {
+	for (TagNamesByInt::iterator it_name = tagNames.begin(); it_name != tagNames.end(); ++it_name) {
 		// m_uType
 		buf.WriteUInt8(0x09 + 0x80);
 		// m_uName
@@ -663,7 +663,7 @@ TEST_M(CTag, ED2kTagNames, wxT("Ed2k: Test ed2k tags (name=id) - write/read ever
 	buf.Seek(0, wxFromStart);
 
 	counter = 0;
-	for (TagNamesByInt::iterator it_name = tagNames.begin(); it_name != tagNames.end(); it_name++) {
+	for (TagNamesByInt::iterator it_name = tagNames.begin(); it_name != tagNames.end(); ++it_name) {
 		CONTEXT(wxString::Format(wxT("Reading tag#%d"), counter));
 		CTag* newtag = new CTag(buf, true);
 		CheckTagName(it_name->first, newtag);
diff --git a/unittests/tests/CUInt128Test.cpp b/unittests/tests/CUInt128Test.cpp
index 8e26b00..ef08a9a 100644
--- a/unittests/tests/CUInt128Test.cpp
+++ b/unittests/tests/CUInt128Test.cpp
@@ -17,7 +17,7 @@
 // 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
@@ -175,6 +175,62 @@ TEST_M(CUInt128, ConstructFromUint32, wxT("CUInt128(uint32_t)"))
 	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::uintValue), CUInt128(0x12345678u));
 }
 
+TEST_M(CUInt128, ConstructWithBits, wxT("CUInt128(const CUInt128&, unsigned)"))
+{
+	CUInt128 a((uint8_t *)&TestData::sequence);
+	CUInt128 b((uint8_t *)&TestData::minusOne);
+
+	{
+		CUInt128 testa(a, 1);
+		ASSERT_EQUALS(0u, testa.Get32BitChunk(0) & 0x80000000);
+
+		CUInt128 testb(b, 1);
+		ASSERT_EQUALS(0x80000000u, testb.Get32BitChunk(0) & 0x80000000);
+	}
+	{
+		CUInt128 testa(a, 2);
+		ASSERT_EQUALS(0u, testa.Get32BitChunk(0) & 0xc0000000);
+
+		CUInt128 testb(b, 2);
+		ASSERT_EQUALS(0xc0000000u, testb.Get32BitChunk(0) & 0xc0000000);
+	}
+	{
+		CUInt128 testa(a, 8);
+		ASSERT_EQUALS(0u, testa.Get32BitChunk(0) & 0xff000000);
+
+		CUInt128 testb(b, 8);
+		ASSERT_EQUALS(0xff000000u, testb.Get32BitChunk(0) & 0xff000000);
+	}
+	{
+		CUInt128 testa(a, 31);
+		ASSERT_EQUALS(0x00010202u, testa.Get32BitChunk(0) & 0xfffffffe);
+
+		CUInt128 testb(b, 31);
+		ASSERT_EQUALS(0xfffffffeu, testb.Get32BitChunk(0) & 0xfffffffe);
+	}
+	{
+		CUInt128 testa(a, 32);
+		ASSERT_EQUALS(0x00010203u, testa.Get32BitChunk(0));
+
+		CUInt128 testb(b, 32);
+		ASSERT_EQUALS(0xffffffffu, testb.Get32BitChunk(0));
+	}
+	{
+		CUInt128 testa(a, 33);
+		ASSERT_EQUALS(0u, testa.Get32BitChunk(1) & 0x80000000);
+
+		CUInt128 testb(b, 33);
+		ASSERT_EQUALS(0x80000000u, testb.Get32BitChunk(1) & 0x80000000);
+	}
+	{
+		CUInt128 testa(a, 128);
+		ASSERT_EQUALS(a, testa);
+
+		CUInt128 testb(b, 128);
+		ASSERT_EQUALS(b, testb);
+	}
+}
+
 TEST_M(CUInt128, AssignCUInt128, wxT("operator=(const CUInt128&)"))
 {
 	CUInt128 a((uint8_t *)&TestData::sequence);
@@ -217,24 +273,6 @@ TEST(CUInt128, Set32BitChunk)
 	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::sequence), test);
 }
 
-TEST_M(CUInt128, SetValueCUInt128, wxT("SetValue(const CUInt128&)"))
-{
-	CUInt128 a((uint8_t *)&TestData::sequence);
-	CUInt128 b;
-
-	b.SetValue(a);
-	ASSERT_EQUALS(a, b);
-}
-
-TEST_M(CUInt128, SetValueUint32, wxT("SetValue(uint32_t)"))
-{
-	CUInt128 a((uint8_t *)&TestData::uintValue);
-	CUInt128 b;
-
-	b.SetValue(0x12345678u);
-	ASSERT_EQUALS(a, b);
-}
-
 TEST(CUInt128, SetValueBE)
 {
 	CUInt128 a((uint8_t *)&TestData::sequence);
@@ -256,131 +294,6 @@ TEST(CUInt128, StoreCryptValue)
 	ASSERT_EQUALS(CUInt128((uint8_t *)&ref), CUInt128((uint8_t *)&tmp));
 }
 
-TEST(CUInt128, ShiftLeft)
-{
-	CUInt128 test((uint8_t *)&TestData::one);
-	uint8_t r1[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 };
-	uint8_t r2[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 };
-	uint8_t r3[16] = { 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-	uint8_t r4[16] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-
-	test.ShiftLeft(0);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::one), test);
-	test.ShiftLeft(1);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r1), test);
-	test.ShiftLeft(32);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r2), test);
-	test.ShiftLeft(58);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r3), test);
-	test.SetValueBE((uint8_t *)&TestData::one);
-	test.ShiftLeft(127);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r4), test);
-	test.SetValueBE((uint8_t *)&TestData::one);
-	test.ShiftLeft(128);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::zero), test);
-}
-
-TEST_M(CUInt128, AddCUInt128, wxT("Add(const CUInt128&)"))
-{
-	uint8_t d0[16] = { 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
-	uint8_t r1[16] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xd, 0x30, 0x53, 0x76 };
-	uint8_t r2[16] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xc, 0xc, 0x30, 0x53, 0x76 };
-	uint8_t r3[16] = { 0xfc, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xc, 0xc, 0x30, 0x53, 0x76 };
-	uint8_t r4[16] = { 0xf8, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xc, 0xc, 0x30, 0x53, 0x76 };
-	CUInt128 a((uint8_t *)&TestData::sequence);
-	CUInt128 d((uint8_t *)&d0);
-
-	a.Add(CUInt128(0x01234567u));
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r1), a);
-	a.Add(CUInt128(0xff000000u));
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r2), a);
-	a.Add(d);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r3), a);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&d0), d);
-	a.Add(d);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r4), a);
-	a.SetValueBE((uint8_t *)&TestData::minusOne);
-	a.Add(CUInt128((uint8_t *)&TestData::one));
-	ASSERT_EQUALS(CUInt128(), a);
-}
-
-TEST_M(CUInt128, AddUint32, wxT("Add(uint32_t)"))
-{
-	uint8_t r1[16] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xd, 0x30, 0x53, 0x76 };
-	uint8_t r2[16] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xc, 0xc, 0x30, 0x53, 0x76 };
-	CUInt128 a((uint8_t *)&TestData::sequence);
-
-	a.Add(0x01234567u);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r1), a);
-	a.Add(0xff000000u);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r2), a);
-	a.SetValueBE((uint8_t *)&TestData::minusOne);
-	a.Add(1u);
-	ASSERT_EQUALS(0, a);
-}
-
-TEST_M(CUInt128, SubtractCUInt128, wxT("Subtract(const CUInt128&)"))
-{
-	uint8_t d0[16] = { 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
-	uint8_t r1[16] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xd, 0x30, 0x53, 0x76 };
-	uint8_t r2[16] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xc, 0xc, 0x30, 0x53, 0x76 };
-	uint8_t r3[16] = { 0xfc, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xc, 0xc, 0x30, 0x53, 0x76 };
-	uint8_t r4[16] = { 0xf8, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xc, 0xc, 0x30, 0x53, 0x76 };
-	CUInt128 a((uint8_t *)&r4);
-	CUInt128 d((uint8_t *)&d0);
-
-	a.Subtract(d);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r3), a);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&d0), d);
-	a.Subtract(d);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r2), a);
-	a.Subtract(CUInt128(0xff000000u));
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r1), a);
-	a.Subtract(CUInt128(0x01234567u));
-	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::sequence), a);
-	a.SetValue(0u);
-	a.Subtract(CUInt128((uint8_t *)&TestData::one));
-	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::minusOne), a);
-}
-
-TEST_M(CUInt128, SubtractUint32, wxT("Subtract(uint32_t)"))
-{
-	uint8_t r1[16] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xd, 0x30, 0x53, 0x76 };
-	uint8_t r2[16] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xc, 0xc, 0x30, 0x53, 0x76 };
-	CUInt128 a((uint8_t *)&r2);
-
-	a.Subtract(0xff000000u);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&r1), a);
-	a.Subtract(0x01234567u);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::sequence), a);
-	a.SetValue(0u);
-	a.Subtract(1u);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::minusOne), a);
-}
-
-TEST_M(CUInt128, XorCUInt128, wxT("XOR(const CUInt128&)"))
-{
-	uint8_t xd[16] = { 0xff, 0x00, 0xee, 0x11, 0xdd, 0x22, 0xcc, 0x33, 0xbb, 0x44, 0xaa, 0x55, 0x99, 0x66, 0x88, 0x77 };
-	uint8_t xr[16] = { 0xff, 0x01, 0xec, 0x12, 0xd9, 0x27, 0xca, 0x34, 0xb3, 0x4d, 0xa0, 0x5e, 0x95, 0x6b, 0x86, 0x78 };
-	CUInt128 a((uint8_t *)&TestData::sequence);
-	CUInt128 x((uint8_t *)&xd);
-
-	a.XOR(x);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&xr), a);
-	ASSERT_EQUALS(CUInt128((uint8_t *)&xd), x);
-}
-
-// Not yet implemented
-#if 0
-TEST_M(CUInt128, XorUint32, wxT("XOR(uint32_t)"))
-{
-	CUInt128 a(0x12345678u);
-
-	a.XOR(0x76543210u);
-	ASSERT_EQUALS(0x64606468, a);
-}
-#endif
-
 TEST_M(CUInt128, OperatorShiftLeftAssign, wxT("operator<<=(unsigned)"))
 {
 	CUInt128 test((uint8_t *)&TestData::one);
@@ -463,7 +376,7 @@ TEST_M(CUInt128, OperatorSubtractAssignCUInt128, wxT("operator-=(const CUInt128&
 	ASSERT_EQUALS(CUInt128((uint8_t *)&r1), a);
 	a -= CUInt128(0x01234567u);
 	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::sequence), a);
-	a.SetValue(0u);
+	a = 0;
 	a -= CUInt128((uint8_t *)&TestData::one);
 	ASSERT_EQUALS(CUInt128((uint8_t *)&TestData::minusOne), a);
 }
@@ -719,7 +632,7 @@ TEST_M(CUInt128, OperatorAddCUInt128, wxT("operator+(const CUInt128&)"))
 	CUInt128 check(a);
 
 	CUInt128 result(a + a);
-	check.Add(ref);
+	check += ref;
 	ASSERT_EQUALS(check, result);
 	ASSERT_EQUALS(ref, a);
 
@@ -743,7 +656,7 @@ TEST_M(CUInt128, OperatorSubtractCUInt128, wxT("operator-(const CUInt128&)"))
 	CUInt128 result(a - b);
 	ASSERT_EQUALS(refa, a);
 	ASSERT_EQUALS(refb, b);
-	check.Subtract(b);
+	check -= b;
 	ASSERT_EQUALS(check, result);
 
 	result = b - a;
@@ -778,7 +691,7 @@ TEST_M(CUInt128, OperatorAddUint32, wxT("operator+(uint32_t)"))
 	CUInt128 check(a);
 
 	CUInt128 result(a + b);
-	check.Add(b);
+	check += b;
 	ASSERT_EQUALS(check, result);
 	ASSERT_EQUALS(ref, a);
 
@@ -801,7 +714,7 @@ TEST_M(CUInt128, OperatorSubtractUint32, wxT("operator-(uint32_t)"))
 
 	CUInt128 result(a - b);
 	ASSERT_EQUALS(ref, a);
-	check.Subtract(b);
+	check -= b;
 	ASSERT_EQUALS(check, result);
 
 	result = a - ~b;
@@ -834,7 +747,7 @@ TEST_M(CUInt128, OperatorAddUint32CUInt128, wxT("operator+(uint32_t, const CUInt
 	CUInt128 check(b);
 
 	CUInt128 result(b + a);
-	check.Add(a);
+	check += a;
 	ASSERT_EQUALS(check, result);
 	ASSERT_EQUALS(ref, a);
 
@@ -857,7 +770,7 @@ TEST_M(CUInt128, OperatorSubtractUint32CUInt128, wxT("operator-(uint32_t, const
 
 	CUInt128 result(b - a);
 	ASSERT_EQUALS(ref, a);
-	check.Subtract(a);
+	check -= a;
 	ASSERT_EQUALS(check, result);
 }
 
diff --git a/unittests/tests/FileDataIOTest.cpp b/unittests/tests/FileDataIOTest.cpp
index 3281a3e..6d69b73 100644
--- a/unittests/tests/FileDataIOTest.cpp
+++ b/unittests/tests/FileDataIOTest.cpp
@@ -55,13 +55,13 @@ void writePredefData(CFileDataIO* file)
 // of the CFileDataIO interface you wish to test.
 //
 // This struct must be a subclass of Test.
-// 
+//
 // Two pointers are to be defined:
 //  m_emptyFile, which must be an empty, zero-length file
 //  m_predefFile, which must be TEST_LENGTH in size and
 //                and contain the sequence 0..255 repeated
 //                as needed.
-// 
+//
 // The following functions should be overridden:
 //  - setUp()
 //  - tearDown()
@@ -77,10 +77,10 @@ public:
 	FileDataIOFixture(const wxString& testName)
 		: Test(wxT("FileDataIO"), wxT("CFile - ") + testName) {}
 
-	
+
 	CFile* m_emptyFile;
 	CFile* m_predefFile;
-	
+
 	void setUp() {
 		m_emptyFile = m_predefFile = NULL;
 		const CPath emptyPath = CPath(wxT("FileDataIOTest.empty"));
@@ -92,7 +92,7 @@ public:
 		m_emptyFile->Close();
 		m_emptyFile->Open(emptyPath, CFile::read_write);
 		ASSERT_TRUE(m_emptyFile->IsOpened());
-		
+
 		m_predefFile = new CFile();
 		m_predefFile->Create(datPath, true);
 		ASSERT_TRUE(m_predefFile->IsOpened());
@@ -102,13 +102,13 @@ public:
 
 		writePredefData(m_predefFile);
 		ASSERT_EQUALS(0u, m_predefFile->GetPosition());
-		ASSERT_EQUALS(TEST_LENGTH, m_predefFile->GetLength());		
+		ASSERT_EQUALS(TEST_LENGTH, m_predefFile->GetLength());
 	}
-	
+
 	void tearDown() {
 		delete m_emptyFile;
 		delete m_predefFile;
-		
+
 		wxRemoveFile(wxT("FileDataIOTest.dat"));
 		wxRemoveFile(wxT("FileDataIOTest.empty"));
 	}
@@ -122,21 +122,21 @@ public:
 	FileDataIOFixture(const wxString& testName)
 		: Test(wxT("FileDataIO"), wxT("CMemFile - ") + testName) {}
 
-	
+
 	CMemFile* m_emptyFile;
 	CMemFile* m_predefFile;
-	
+
 	void setUp() {
 		m_emptyFile = m_predefFile = NULL;
 
 		m_emptyFile = new CMemFile();
 		m_predefFile = new CMemFile();
-		
-		writePredefData(m_predefFile);		
+
+		writePredefData(m_predefFile);
 		ASSERT_EQUALS(0u, m_predefFile->GetPosition());
 		ASSERT_EQUALS(TEST_LENGTH, m_predefFile->GetLength());
 	}
-	
+
 	void tearDown() {
 		delete m_emptyFile;
 		delete m_predefFile;
@@ -145,12 +145,12 @@ public:
 
 
 /////////////////////////////////////////////////////////////////////
-// A writeWrite interface should be implemented for each set of 
+// A writeWrite interface should be implemented for each set of
 // read/write functions that is to be tested. The following 3
 // static functions must be implemented in each specialization of the
 // template:
 //
-//  - TYPE genValue(size_t j), which returns the expected value at 
+//  - TYPE genValue(size_t j), which returns the expected value at
 //    position j in the files with predefined data.
 //  - TYPE readValue(CFileDataIO*), which returns and returns the
 //    value at the current position in the file.
@@ -171,7 +171,7 @@ struct RWInterface<uint8>
 	static uint8 readValue(CFileDataIO* file) {
 		return file->ReadUInt8();
 	}
-	
+
 	static void writeValue(CFileDataIO* file, uint8 value) {
 		file->WriteUInt8(value);
 	}
@@ -190,11 +190,11 @@ struct RWInterface<uint16>
 	static uint16 readValue(CFileDataIO* file) {
 		return file->ReadUInt16();
 	}
-	
+
 	static void writeValue(CFileDataIO* file, uint16 value) {
 		file->WriteUInt16(value);
 	}
-	
+
 	static wxString name() { return wxT("UInt16"); }
 };
 
@@ -209,7 +209,7 @@ struct RWInterface<uint32>
 	static uint32 readValue(CFileDataIO* file) {
 		return file->ReadUInt32();
 	}
-	
+
 	static void writeValue(CFileDataIO* file, uint32 value) {
 		file->WriteUInt32(value);
 	}
@@ -226,14 +226,14 @@ struct RWInterface<CMD4Hash>
 		for (size_t y = j; y < j + 16; y++) {
 			value[y - j] = y & 0xff;
 		}
-		
+
 		return value;
 	}
 
 	static CMD4Hash readValue(CFileDataIO* file) {
 		return file->ReadHash();
 	}
-	
+
 	static void writeValue(CFileDataIO* file, CMD4Hash value) {
 		file->WriteHash(value);
 	}
@@ -261,7 +261,7 @@ struct RWInterface<CUInt128>
 	static CUInt128 readValue(CFileDataIO* file) {
 		return file->ReadUInt128();
 	}
-	
+
 	static void writeValue(CFileDataIO* file, CUInt128 value) {
 		file->WriteUInt128(value);
 	}
@@ -278,14 +278,14 @@ template <typename IMPL, typename TYPE, size_t SIZE>
 class ReadTest : public FileDataIOFixture<IMPL>
 {
 	typedef RWInterface<TYPE> RW;
-	
+
 public:
 	ReadTest()
 		: FileDataIOFixture<IMPL>(wxT("Read ") + RW::name()) {}
-	
+
 	void run() {
 		CFileDataIO* file = this->m_predefFile;
-		
+
 		for (size_t j = 0; j < TEST_LENGTH + 1 - SIZE; ++j) {
 			ASSERT_EQUALS(j, file->Seek(j, wxFromStart));
 			ASSERT_EQUALS(j, file->GetPosition());
@@ -305,7 +305,7 @@ public:
 		char testBuffer[32];
 		memset(testBuffer, 127, 32);
 		char* buf = testBuffer + 8;
-		
+
 		for (int i = 0; i < 16; ++i) {
 			ASSERT_EQUALS(0u, file->Seek(0, wxFromStart));
 			ASSERT_EQUALS(0u, file->GetPosition());
@@ -319,7 +319,7 @@ public:
 					ASSERT_EQUALS(j - 8, (int)testBuffer[j]);
 				}
 			}
-		}		
+		}
 	}
 };
 
@@ -338,7 +338,7 @@ public:
 		const char canaryBlock[] = { CanaryData };
 
 		CFileDataIO* file = this->m_predefFile;
-		
+
 		for (size_t j = 0; j < TEST_LENGTH + 1 - SIZE; ++j) {
 			// Clear before, after and at the target byte(s)
 			for (int t = -SIZE; t < (int)(2*SIZE); ++t) {
@@ -351,16 +351,16 @@ public:
 					// Check that canary was written
 					file->Seek(j + t, wxFromStart);
 					ASSERT_EQUALS(CanaryData, file->ReadUInt8());
-					ASSERT_EQUALS(j + t + 1, file->GetPosition());					
+					ASSERT_EQUALS(j + t + 1, file->GetPosition());
 				}
 			}
-				
+
 			file->Seek(j, wxFromStart);
 
 			ASSERT_EQUALS(j, file->GetPosition());
 			RW::writeValue(file, RW::genValue(j));
 			ASSERT_EQUALS(j + SIZE, file->GetPosition());
-				
+
 			// Check before, after and at the target byte
 			for (int t = -SIZE; t < (int)(2*SIZE); ++t) {
 				if ((j + t) < TEST_LENGTH && ((int)j + t) >= 0) {
@@ -390,27 +390,27 @@ class SeekTest : public FileDataIOFixture<IMPL>
 public:
 	SeekTest()
 		: FileDataIOFixture<IMPL>(wxT("Seek")) {}
-	
+
 	void run() {
 		CFileDataIO* file = this->m_predefFile;
-		
+
 		ASSERT_EQUALS(0u, file->GetPosition());
 		for (size_t pos = 0; pos < TEST_LENGTH * 2; pos += pos + 1) {
 			ASSERT_EQUALS(pos, file->Seek(pos, wxFromStart));
 			ASSERT_EQUALS(pos, file->GetPosition());
 		}
-		
+
 		ASSERT_EQUALS(0u, file->Seek(0, wxFromStart));
 		ASSERT_EQUALS(0u, file->GetPosition());
-		
+
 		for (size_t pos = 0, cur = 0; pos < TEST_LENGTH * 2; pos += ++cur) {
 			ASSERT_EQUALS(pos, file->Seek(cur, wxFromCurrent));
 			ASSERT_EQUALS(pos, file->GetPosition());
 		}
-	
+
 		ASSERT_EQUALS(0u, file->Seek(0, wxFromStart));
 		ASSERT_EQUALS(0u, file->GetPosition());
-		
+
 		for (size_t pos = 0; pos < TEST_LENGTH; pos += pos + 1) {
 			ASSERT_EQUALS(TEST_LENGTH - pos, file->Seek(-(signed)pos, wxFromEnd));
 			ASSERT_EQUALS(TEST_LENGTH - pos, file->GetPosition());
@@ -438,7 +438,7 @@ class WritePastEndTest : public FileDataIOFixture<IMPL>
 public:
 	WritePastEndTest()
 		: FileDataIOFixture<IMPL>(wxT("Write Past End")) {}
-	
+
 	void run() {
 		CFileDataIO* file = this->m_emptyFile;
 
@@ -449,12 +449,12 @@ public:
 
 		ASSERT_EQUALS(1u, file->GetLength());
 		ASSERT_EQUALS(1u, file->GetPosition());
-		
+
 		file->WriteUInt16(0);
 
 		ASSERT_EQUALS(3u, file->GetLength());
 		ASSERT_EQUALS(3u, file->GetPosition());
-		
+
 		file->WriteUInt32(0);
 
 		ASSERT_EQUALS(7u, file->GetLength());
@@ -464,9 +464,9 @@ public:
 
 		ASSERT_EQUALS(23u, file->GetLength());
 		ASSERT_EQUALS(23u, file->GetPosition());
-		
+
 		// TODO: ReadUInt128
-		
+
 
 		char tmp[42];
 		memset(tmp, 0, 42);
@@ -494,7 +494,7 @@ class StringTest : public FileDataIOFixture<IMPL>
 public:
 	StringTest()
 		: FileDataIOFixture<IMPL>(wxT("String")) {}
-	
+
 	struct Encoding
 	{
 		const EUtf8Str		id;
@@ -508,19 +508,19 @@ public:
 		// Raw and UTF8 expected lengths ...
 		const size_t		lengths[2];
 	};
-	
+
 	void run() {
 		CFileDataIO* file = this->m_emptyFile;
-	
+
 		// TODO: Need to test non-ascii values when using unicode/etc, zero-length lengthfields
-		Encoding encodings[] = 
+		Encoding encodings[] =
 		{
 			{utf8strNone,	NULL,			0},
 			{utf8strOptBOM,	"\xEF\xBB\xBF",		3},
 			{utf8strRaw,	NULL,			0}
 		};
-		
-		TestString testData[] = 
+
+		TestString testData[] =
 		{
 			{ wxT("0123456789abcdef"),	{ 16, 16 } },
 			{ wxT(""),			{  0,  0 } },
@@ -528,8 +528,8 @@ public:
 			{ wxT("aáeéuúó"),		{  7, 11 } },
 			{ wxT("uüoöÿeëaäyÿ"),		{ 11, 17 } },
 		};
-		
-	
+
+
 		for (size_t str = 0; str < ArraySize(testData); ++str) {
 			CONTEXT(wxString(wxT("Testing string: '")) << testData[str].str << wxT("'"));
 
@@ -539,7 +539,7 @@ public:
 				const wxChar* curStr = testData[str].str;
 				size_t strLen = testData[str].lengths[(encodings[enc].id == utf8strNone) ? 0 : 1];
 				size_t headLen = encodings[enc].headLen;
-				
+
 				file->WriteString(curStr, encodings[enc].id, 2);
 				ASSERT_EQUALS(strLen + 2 + headLen, file->GetPosition());
 				ASSERT_EQUALS(0u, file->Seek(0, wxFromStart));
@@ -551,12 +551,12 @@ public:
 					file->Read(head.data(), headLen);
 					ASSERT_EQUALS(0, memcmp(head, encodings[enc].header, headLen));
 				}
-				
+
 				ASSERT_EQUALS(0u, file->Seek(0, wxFromStart));
 				ASSERT_EQUALS(curStr, file->ReadString(encodings[enc].id, 2));
 				ASSERT_EQUALS(0u, file->Seek(0, wxFromStart));
-				
-				
+
+
 				file->WriteString(curStr, encodings[enc].id, 4);
 				ASSERT_EQUALS(strLen + 4 + headLen, file->GetPosition());
 				ASSERT_EQUALS(0u, file->Seek(0, wxFromStart));
@@ -568,7 +568,7 @@ public:
 					file->Read(head.data(), headLen);
 					ASSERT_EQUALS(0, memcmp(head, encodings[enc].header, headLen));
 				}
-				
+
 				ASSERT_EQUALS(0u, file->Seek(0, wxFromStart));
 				ASSERT_EQUALS(curStr, file->ReadString(encodings[enc].id, 4));
 				ASSERT_EQUALS(0u, file->Seek(0, wxFromStart));
@@ -606,16 +606,16 @@ class LargeFileTest : public FileDataIOFixture<IMPL>
 public:
 	LargeFileTest()
 		: FileDataIOFixture<IMPL>(wxT("LargeFile")) {}
-	
+
 	void run() {
 		CFile* file = dynamic_cast<CFile*>(this->m_emptyFile);
-		
+
 		ASSERT_TRUE(file != NULL);
 		ASSERT_EQUALS(2147483647UL, file->Seek(2147483647L, wxFromStart));
 		ASSERT_EQUALS(2147483648UL, file->Seek(1, wxFromCurrent));
 		ASSERT_EQUALS(2147483648UL, file->GetPosition());
 		ASSERT_EQUALS(4294967296ULL, file->Seek(4294967296ULL, wxFromStart));
-		ASSERT_EQUALS(4294967296ULL, file->GetPosition());		
+		ASSERT_EQUALS(4294967296ULL, file->GetPosition());
 	}
 };
 
@@ -669,7 +669,7 @@ TEST(CMemFile, AttachedBuffer)
 {
 	const size_t BufferLength = 1024;
 	byte buffer[BufferLength];
-	
+
 	for (size_t i = 0; i < BufferLength; ++i) {
 		buffer[i] = i & 0xFF;
 	}
@@ -688,7 +688,7 @@ TEST(CMemFile, AttachedBuffer)
 	ASSERT_EQUALS(BufferLength / 2, file.GetLength());
 	file.SetLength(BufferLength);
 	ASSERT_EQUALS(BufferLength, file.GetLength());
-	
+
 	// Write past end should fail
 	ASSERT_EQUALS(BufferLength, file.Seek(0, wxFromEnd));
 	ASSERT_RAISES(CRunTimeException, file.WriteUInt8(0));
@@ -703,7 +703,7 @@ TEST(CMemFile, ConstBuffer)
 {
 	byte arr[10];
 	CMemFile file(const_cast<const byte*>(arr), sizeof(arr));
-	
+
 	ASSERT_RAISES(CRunTimeException, file.WriteUInt8(0));
 	ASSERT_RAISES(CRunTimeException, file.WriteUInt16(0));
 	ASSERT_RAISES(CRunTimeException, file.WriteUInt32(0));
@@ -713,16 +713,16 @@ TEST(CMemFile, ConstBuffer)
 	ASSERT_RAISES(CRunTimeException, file.Write(buffer, sizeof(arr)));
 }
 
-	
+
 TEST(CMemFile, SetLength)
 {
 	CMemFile file;
 
 	ASSERT_EQUALS(0u, file.GetLength());
-	file.SetLength(1024);	
+	file.SetLength(1024);
 	ASSERT_EQUALS(1024u, file.GetLength());
 	ASSERT_EQUALS(1024u, file.Seek(0, wxFromEnd));
-	file.SetLength(512u);	
+	file.SetLength(512u);
 	ASSERT_EQUALS(512u, file.GetLength());
 	ASSERT_EQUALS(512u, file.Seek(0, wxFromEnd));
 }
@@ -747,7 +747,7 @@ DECLARE(CFile);
 	void tearDown() {
 		if (testFile.FileExists()) {
 			CPath::RemoveFile(testFile);
-		}	
+		}
 	}
 END_DECLARE;
 
@@ -770,8 +770,8 @@ TEST(CFile, Constructor)
 		ASSERT_RAISES(CRunTimeException, file.Close());
 		ASSERT_TRUE(!file.IsOpened());
 		ASSERT_TRUE(file.fd() == CFile::fd_invalid);
-	}	
-	
+	}
+
 	// Create test file
 	{
 		CFile file;
@@ -779,10 +779,10 @@ TEST(CFile, Constructor)
 		ASSERT_EQUALS(testFile, file.GetFilePath());
 		file.WriteUInt32(1);
 	}
-	
+
 	{
 		CFile file(testFile, CFile::read);
-		
+
 		ASSERT_TRUE(file.IsOpened());
 		ASSERT_TRUE(file.fd() != CFile::fd_invalid);
 		ASSERT_EQUALS(testFile, file.GetFilePath());
@@ -794,7 +794,7 @@ TEST(CFile, Constructor)
 
 	{
 		CFile file(testFile, CFile::write);
-		
+
 		ASSERT_TRUE(file.IsOpened());
 		ASSERT_TRUE(file.fd() != CFile::fd_invalid);
 		ASSERT_EQUALS(testFile, file.GetFilePath());
@@ -808,7 +808,7 @@ TEST(CFile, Constructor)
 
 	{
 		CFile file(testFile, CFile::read_write);
-		
+
 		ASSERT_TRUE(file.IsOpened());
 		ASSERT_TRUE(file.fd() != CFile::fd_invalid);
 		ASSERT_EQUALS(testFile, file.GetFilePath());
@@ -823,7 +823,7 @@ TEST(CFile, Constructor)
 
 	{
 		CFile file(testFile, CFile::write_append);
-		
+
 		ASSERT_TRUE(file.IsOpened());
 		ASSERT_TRUE(file.fd() != CFile::fd_invalid);
 		ASSERT_EQUALS(4u, file.GetLength());
@@ -834,7 +834,7 @@ TEST(CFile, Constructor)
 
 		ASSERT_TRUE(file.Close());
 		ASSERT_TRUE(file.Open(testFile, CFile::read));
-		
+
 		ASSERT_EQUALS(2u, file.ReadUInt32());
 		ASSERT_EQUALS(1u, file.ReadUInt32());
 	}
@@ -845,10 +845,10 @@ TEST(CFile, Create)
 {
 	ASSERT_FALSE(testFile.FileExists());
 
-	// Check creation of new file, when none exists, with/without overwrite	
+	// Check creation of new file, when none exists, with/without overwrite
 	for (size_t i = 0; i < 2; ++i) {
 		bool overwrite = (i == 1);
-		
+
 		CFile file;
 		ASSERT_TRUE(!file.IsOpened());
 		ASSERT_TRUE(file.fd() == CFile::fd_invalid);
@@ -859,10 +859,10 @@ TEST(CFile, Create)
 		ASSERT_TRUE(file.Close());
 		ASSERT_TRUE(file.fd() == CFile::fd_invalid);
 		ASSERT_TRUE(!file.IsOpened());
-		
+
 		ASSERT_TRUE(wxFile::Access(testFile.GetRaw(), wxFile::read));
 		ASSERT_TRUE(wxFile::Access(testFile.GetRaw(), wxFile::write));
-	
+
 		ASSERT_TRUE(wxRemoveFile(testFile.GetRaw()));
 	}
 
@@ -873,14 +873,14 @@ TEST(CFile, Create)
 		ASSERT_EQUALS(testFile, file.GetFilePath());
 		file.WriteUInt32(1);
 	}
-	
+
 	// Check that owerwrite = false works as expected
 	{
 		CFile file;
 		ASSERT_FALSE(file.Create(testFile, false, testMode));
 		ASSERT_TRUE(file.fd() == CFile::fd_invalid);
 		ASSERT_TRUE(!file.IsOpened());
-		
+
 		// Open and check contents
 		ASSERT_TRUE(file.Open(testFile, CFile::read));
 		ASSERT_TRUE(file.IsOpened());
@@ -905,7 +905,7 @@ TEST(CFile, Create)
 		ASSERT_TRUE(file.fd() == CFile::fd_invalid);
 		ASSERT_TRUE(!file.IsOpened());
 	}
-	
+
 	ASSERT_TRUE(wxFile::Access(testFile.GetRaw(), wxFile::read));
 	ASSERT_TRUE(wxFile::Access(testFile.GetRaw(), wxFile::write));
 }
@@ -916,10 +916,10 @@ TEST(CFile, SetLength)
 	CFile file(testFile, CFile::write);
 
 	ASSERT_EQUALS(0u, file.GetLength());
-	file.SetLength(1024);	
+	file.SetLength(1024);
 	ASSERT_EQUALS(1024u, file.GetLength());
 	ASSERT_EQUALS(1024u, file.Seek(0, wxFromEnd));
-	file.SetLength(512u);	
+	file.SetLength(512u);
 	ASSERT_EQUALS(512u, file.GetLength());
 	ASSERT_EQUALS(512u, file.Seek(0, wxFromEnd));
 }
@@ -941,7 +941,7 @@ TEST(CFile, GetAvailable)
 		file.ReadUInt32();
 		ASSERT_EQUALS(length - file.GetPosition(), file.GetAvailable());
 	}
-	
+
 	ASSERT_EQUALS(0u, file.GetAvailable());
 
 	file.Seek(1024, wxFromCurrent);
diff --git a/unittests/tests/FormatTest.cpp b/unittests/tests/FormatTest.cpp
index 304f46a..c64c4e7 100644
--- a/unittests/tests/FormatTest.cpp
+++ b/unittests/tests/FormatTest.cpp
@@ -6,7 +6,7 @@
 
 using namespace muleunit;
 
-// Note: These tests have been written in accordance with the 
+// Note: These tests have been written in accordance with the
 //       capabilities of printf found in printf(3).
 // Note to the above: Except where otherwise stated.
 
@@ -94,7 +94,7 @@ TEST(Format, SetStringAndGetString)
 	{ \
 		wxString reference	= wxString::Format(wxString(wxT("%")) + wxformat, value); \
 		wxString actual		= CFormat(wxString(wxT("%")) + cformat) % value; \
- 		ASSERT_EQUALS_M(reference, actual, wxString(wxT("%")) << wxformat \
+		ASSERT_EQUALS_M(reference, actual, wxString(wxT("%")) << wxformat \
 				<< wxT(" vs. %") << cformat << wxT(": '") + reference + wxT("' != '") + actual + wxT("'")); \
 	}
 
@@ -226,6 +226,7 @@ TEST(Format, InjectNULLString)
 
 		format += wxT("s");
 
+		// cppcheck-suppress zerodiv
 		wxString actual = CFormat(format) % (const wxChar*)NULL;
 
 		ASSERT_TRUE_M(actual.IsEmpty(), wxT("Expected empty string, got '") + actual + wxT("'"));
@@ -241,7 +242,7 @@ TEST(Format, MultipleFields)
 		ASSERT_EQUALS(wxT("-1 _ 2 _ -4"), fmt1.GetString());
 	}
 
-	{	
+	{
 		CFormat fmt2(wxT("%d _ %u _ %i"));
 		fmt2 % -1;
 		fmt2 %  2u;
@@ -258,7 +259,7 @@ TEST(Format, MultipleFields)
 }
 
 
-TEST(Format, EscapedPercentageSign) 
+TEST(Format, EscapedPercentageSign)
 {
 	{
 		CFormat fmt1(wxT("%%"));
@@ -278,7 +279,7 @@ TEST(Format, EscapedPercentageSign)
 
 	{
 		CFormat fmt4(wxT("%% _ %% _ %%"));
-		ASSERT_EQUALS(wxT("% _ % _ %"), fmt4.GetString());	
+		ASSERT_EQUALS(wxT("% _ % _ %"), fmt4.GetString());
 	}
 }
 
@@ -320,7 +321,7 @@ TEST(Format, MalformedFields)
 		ASSERT_EQUALS(wxT("1%q"), CFormat(wxT("%i%q")) % 1);
 		ASSERT_EQUALS(wxT("%q1"), CFormat(wxT("%q%i")) % 1);
 
-		// Wrong and right arguments 
+		// Wrong and right arguments
 		ASSERT_EQUALS(wxT("%i -- 17"), CFormat(wxT("%i -- %i")) % 1.0 % 17);
 	}
 }
@@ -369,7 +370,7 @@ TEST(Format, NotSupported)
 	}
 #endif
 
-	{		
+	{
 		CAssertOff null;
 
 		ASSERT_EQUALS(wxT("%*d"), CFormat(wxT("%*d")) % 1);
@@ -397,18 +398,18 @@ TEST(Format, Overfeeding)
 
 
 TEST(Format, 64bValues)
-{	
+{
 	{
 		CFormat fmt(wxT("%lli - %lli"));
-	   	fmt % MIN(sint64) % MAX(sint64);
+		fmt % MIN(sint64) % MAX(sint64);
 		ASSERT_EQUALS(wxT("-9223372036854775808 - 9223372036854775807"), fmt.GetString());
 	}
 
 	{
 		CFormat fmt(wxT("%llu - %llu"));
-	   	fmt % MIN(uint64) % MAX(uint64);
+		fmt % MIN(uint64) % MAX(uint64);
 		ASSERT_EQUALS(wxT("0 - 18446744073709551615"), fmt.GetString());
-	}	
+	}
 }
 
 
diff --git a/unittests/tests/Makefile.am b/unittests/tests/Makefile.am
index df3626e..a781ab1 100644
--- a/unittests/tests/Makefile.am
+++ b/unittests/tests/Makefile.am
@@ -1,6 +1,6 @@
-# If any tests uses more than a cpp/h fileset, then 
+# If any tests uses more than a cpp/h fileset, then
 # make a seperate subfolder for it to reduce clutter.
-#SUBDIRS = 
+#SUBDIRS =
 EXTRA_DIST =
 
 # Use this to be able to catch assertions as exceptions
@@ -31,7 +31,7 @@ StringFunctionsTest_SOURCES = StringFunctionsTest.cpp $(top_srcdir)/src/libs/com
 #FileFunctionsTest_SOURCES = FileFunctionsTest.cpp $(top_srcdir)/src/FileFunctions.cpp $(top_srcdir)/src/SafeFile.cpp $(top_srcdir)/src/CFile.cpp $(top_srcdir)/src/kademlia/utils/UInt128.cpp $(top_srcdir)/src/CryptoPP.cpp
 
 # Tests for the various network functions.
-NetworkFunctionsTest_SOURCES = NetworkFunctionsTest.cpp $(top_srcdir)/src/NetworkFunctions.cpp
+NetworkFunctionsTest_SOURCES = NetworkFunctionsTest.cpp $(top_srcdir)/src/NetworkFunctions.cpp $(top_srcdir)/src/LibSocket.cpp $(top_srcdir)/src/libs/common/Format.cpp $(top_srcdir)/src/libs/common/strerror_r.c
 NetworkFunctionsTest_CPPFLAGS = $(AM_CPPFLAGS) -DEC_REMOTE # Needed to avoid compiling the http-thread
 
 # Tests for the classes that implement the CFileDataIO interface
@@ -42,7 +42,7 @@ PathTest_SOURCES = PathTest.cpp $(top_srcdir)/src/libs/common/Path.cpp $(top_src
 
 # Tests for the CTextFile class
 TextFileTest_SOURCES = TextFileTest.cpp $(top_srcdir)/src/libs/common/Path.cpp $(top_srcdir)/src/libs/common/StringFunctions.cpp $(top_srcdir)/src/libs/common/TextFile.cpp
-TextFileTest_CPPFLAGS = $(AM_CPPFLAGS) -DSRCDIR="$(srcdir)" 
+TextFileTest_CPPFLAGS = $(AM_CPPFLAGS) -DSRCDIR="$(srcdir)"
 EXTRA_DIST += TextFileTest_dos.txt TextFileTest_unix.txt
 
 # Tests for the CTag class
diff --git a/unittests/tests/Makefile.in b/unittests/tests/Makefile.in
index 6d2524b..8b29a44 100644
--- a/unittests/tests/Makefile.in
+++ b/unittests/tests/Makefile.in
@@ -42,23 +42,23 @@ subdir = unittests/tests
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/GeoIP.m4 \
-	$(top_srcdir)/m4/build-tools.m4 $(top_srcdir)/m4/codeset.m4 \
-	$(top_srcdir)/m4/cryptopp.m4 $(top_srcdir)/m4/fallocate.m4 \
-	$(top_srcdir)/m4/gdlib.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-	$(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/kde.m4 \
-	$(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libpng.m4 $(top_srcdir)/m4/libupnp.m4 \
-	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \
-	$(top_srcdir)/m4/plasmamule.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/readline.m4 \
-	$(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \
-	$(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/wxwin.m4 \
-	$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/acinclude.m4 \
-	$(top_srcdir)/configure.in
+	$(top_srcdir)/m4/boost.m4 $(top_srcdir)/m4/build-tools.m4 \
+	$(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/cryptopp.m4 \
+	$(top_srcdir)/m4/fallocate.m4 $(top_srcdir)/m4/gdlib.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc21.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intdiv0.m4 \
+	$(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/inttypes.m4 \
+	$(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \
+	$(top_srcdir)/m4/kde.m4 $(top_srcdir)/m4/lcmessage.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libpng.m4 \
+	$(top_srcdir)/m4/libupnp.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/plasmamule.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/qt.m4 \
+	$(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/stdint_h.m4 \
+	$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \
+	$(top_srcdir)/m4/wxwin.m4 $(top_srcdir)/m4/zlib.m4 \
+	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -99,7 +99,10 @@ FormatTest_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	../muleunit/libmuleunit.a
 am_NetworkFunctionsTest_OBJECTS =  \
 	NetworkFunctionsTest-NetworkFunctionsTest.$(OBJEXT) \
-	NetworkFunctionsTest-NetworkFunctions.$(OBJEXT)
+	NetworkFunctionsTest-NetworkFunctions.$(OBJEXT) \
+	NetworkFunctionsTest-LibSocket.$(OBJEXT) \
+	NetworkFunctionsTest-Format.$(OBJEXT) \
+	NetworkFunctionsTest-strerror_r.$(OBJEXT)
 NetworkFunctionsTest_OBJECTS = $(am_NetworkFunctionsTest_OBJECTS)
 NetworkFunctionsTest_LDADD = $(LDADD)
 NetworkFunctionsTest_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -195,6 +198,12 @@ AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 BFD_CPPFLAGS = @BFD_CPPFLAGS@
 BFD_LIBS = @BFD_LIBS@
+BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
+BOOST_LDPATH = @BOOST_LDPATH@
+BOOST_ROOT = @BOOST_ROOT@
+BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
+BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
+BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
 BUILD_CC = @BUILD_CC@
 BUILD_CFLAGS = @BUILD_CFLAGS@
 BUILD_CPPFLAGS = @BUILD_CPPFLAGS@
@@ -221,6 +230,7 @@ DATADIRNAME = @DATADIRNAME@
 DEBUGFLAG = @DEBUGFLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -311,6 +321,7 @@ RC = @RC@
 RCFLAGS = @RCFLAGS@
 READLINE_LIBS = @READLINE_LIBS@
 RESOLV_LIB = @RESOLV_LIB@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -396,9 +407,9 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 
-# If any tests uses more than a cpp/h fileset, then 
+# If any tests uses more than a cpp/h fileset, then
 # make a seperate subfolder for it to reduce clutter.
-#SUBDIRS = 
+#SUBDIRS =
 EXTRA_DIST = TextFileTest_dos.txt TextFileTest_unix.txt
 
 # Use this to be able to catch assertions as exceptions
@@ -425,7 +436,7 @@ StringFunctionsTest_SOURCES = StringFunctionsTest.cpp $(top_srcdir)/src/libs/com
 #FileFunctionsTest_SOURCES = FileFunctionsTest.cpp $(top_srcdir)/src/FileFunctions.cpp $(top_srcdir)/src/SafeFile.cpp $(top_srcdir)/src/CFile.cpp $(top_srcdir)/src/kademlia/utils/UInt128.cpp $(top_srcdir)/src/CryptoPP.cpp
 
 # Tests for the various network functions.
-NetworkFunctionsTest_SOURCES = NetworkFunctionsTest.cpp $(top_srcdir)/src/NetworkFunctions.cpp
+NetworkFunctionsTest_SOURCES = NetworkFunctionsTest.cpp $(top_srcdir)/src/NetworkFunctions.cpp $(top_srcdir)/src/LibSocket.cpp $(top_srcdir)/src/libs/common/Format.cpp $(top_srcdir)/src/libs/common/strerror_r.c
 NetworkFunctionsTest_CPPFLAGS = $(AM_CPPFLAGS) -DEC_REMOTE # Needed to avoid compiling the http-thread
 
 # Tests for the classes that implement the CFileDataIO interface
@@ -436,7 +447,7 @@ PathTest_SOURCES = PathTest.cpp $(top_srcdir)/src/libs/common/Path.cpp $(top_src
 
 # Tests for the CTextFile class
 TextFileTest_SOURCES = TextFileTest.cpp $(top_srcdir)/src/libs/common/Path.cpp $(top_srcdir)/src/libs/common/StringFunctions.cpp $(top_srcdir)/src/libs/common/TextFile.cpp
-TextFileTest_CPPFLAGS = $(AM_CPPFLAGS) -DSRCDIR="$(srcdir)" 
+TextFileTest_CPPFLAGS = $(AM_CPPFLAGS) -DSRCDIR="$(srcdir)"
 
 # Tests for the CTag class
 CTagTest_SOURCES = CTagTest.cpp  $(top_srcdir)/src/SafeFile.cpp  $(top_srcdir)/src/MemFile.cpp $(top_srcdir)/src/Tag.cpp $(top_srcdir)/src/libs/common/Format.cpp $(top_srcdir)/src/libs/common/strerror_r.c
@@ -518,8 +529,11 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Format.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/FormatTest.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MemFile.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/NetworkFunctionsTest-Format.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/NetworkFunctionsTest-LibSocket.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/NetworkFunctionsTest-NetworkFunctions.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/NetworkFunctionsTest-NetworkFunctionsTest.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/NetworkFunctionsTest-strerror_r.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Path.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PathTest.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/RangeMapTest.Po at am__quote@
@@ -566,6 +580,22 @@ strerror_r.obj: $(top_srcdir)/src/libs/common/strerror_r.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strerror_r.obj `if test -f '$(top_srcdir)/src/libs/common/strerror_r.c'; then $(CYGPATH_W) '$(top_srcdir)/src/libs/common/strerror_r.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/libs/common/strerror_r.c'; fi`
 
+NetworkFunctionsTest-strerror_r.o: $(top_srcdir)/src/libs/common/strerror_r.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT NetworkFunctionsTest-strerror_r.o -MD -MP -MF $(DEPDIR)/NetworkFunctionsTest-strerror_r.Tpo -c -o NetworkFunctionsTest-strerror_r.o `test -f '$(top_srcdir)/src/libs/common/strerror_r.c' || echo '$(srcdir)/'`$(top_srcdir)/src/libs/common/strerror_r.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/NetworkFunctionsTest-strerror_r.Tpo $(DEPDIR)/NetworkFunctionsTest-strerror_r.Po
+ at am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/src/libs/common/strerror_r.c' object='NetworkFunctionsTest-strerror_r.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o NetworkFunctionsTest-strerror_r.o `test -f '$(top_srcdir)/src/libs/common/strerror_r.c' || echo '$(srcdir)/'`$(top_srcdir)/src/libs/common/strerror_r.c
+
+NetworkFunctionsTest-strerror_r.obj: $(top_srcdir)/src/libs/common/strerror_r.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT NetworkFunctionsTest-strerror_r.obj -MD -MP -MF $(DEPDIR)/NetworkFunctionsTest-strerror_r.Tpo -c -o NetworkFunctionsTest-strerror_r.obj `if test -f '$(top_srcdir)/src/libs/common/strerror_r.c'; then $(CYGPATH_W) '$(top_srcdir)/src/libs/common/strerror_r.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/libs/common/strerror_r.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/NetworkFunctionsTest-strerror_r.Tpo $(DEPDIR)/NetworkFunctionsTest-strerror_r.Po
+ at am__fastdepCC_FALSE@	$(AM_V_CC) @AM_BACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/src/libs/common/strerror_r.c' object='NetworkFunctionsTest-strerror_r.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o NetworkFunctionsTest-strerror_r.obj `if test -f '$(top_srcdir)/src/libs/common/strerror_r.c'; then $(CYGPATH_W) '$(top_srcdir)/src/libs/common/strerror_r.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/libs/common/strerror_r.c'; fi`
+
 .cpp.o:
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@@ -742,6 +772,38 @@ NetworkFunctionsTest-NetworkFunctions.obj: $(top_srcdir)/src/NetworkFunctions.cp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NetworkFunctionsTest-NetworkFunctions.obj `if test -f '$(top_srcdir)/src/NetworkFunctions.cpp'; then $(CYGPATH_W) '$(top_srcdir)/src/NetworkFunctions.cpp'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/NetworkFunctions.cpp'; fi`
 
+NetworkFunctionsTest-LibSocket.o: $(top_srcdir)/src/LibSocket.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NetworkFunctionsTest-LibSocket.o -MD -MP -MF $(DEPDIR)/NetworkFunctionsTest-LibSocket.Tpo -c -o NetworkFunctionsTest-LibSocket.o `test -f '$(top_srcdir)/src/LibSocket.cpp' || echo '$(srcdir)/'`$(top_srcdir)/src/LibSocket.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/NetworkFunctionsTest-LibSocket.Tpo $(DEPDIR)/NetworkFunctionsTest-LibSocket.Po
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(top_srcdir)/src/LibSocket.cpp' object='NetworkFunctionsTest-LibSocket.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NetworkFunctionsTest-LibSocket.o `test -f '$(top_srcdir)/src/LibSocket.cpp' || echo '$(srcdir)/'`$(top_srcdir)/src/LibSocket.cpp
+
+NetworkFunctionsTest-LibSocket.obj: $(top_srcdir)/src/LibSocket.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NetworkFunctionsTest-LibSocket.obj -MD -MP -MF $(DEPDIR)/NetworkFunctionsTest-LibSocket.Tpo -c -o NetworkFunctionsTest-LibSocket.obj `if test -f '$(top_srcdir)/src/LibSocket.cpp'; then $(CYGPATH_W) '$(top_srcdir)/src/LibSocket.cpp'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/LibSocket.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/NetworkFunctionsTest-LibSocket.Tpo $(DEPDIR)/NetworkFunctionsTest-LibSocket.Po
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(top_srcdir)/src/LibSocket.cpp' object='NetworkFunctionsTest-LibSocket.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NetworkFunctionsTest-LibSocket.obj `if test -f '$(top_srcdir)/src/LibSocket.cpp'; then $(CYGPATH_W) '$(top_srcdir)/src/LibSocket.cpp'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/LibSocket.cpp'; fi`
+
+NetworkFunctionsTest-Format.o: $(top_srcdir)/src/libs/common/Format.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NetworkFunctionsTest-Format.o -MD -MP -MF $(DEPDIR)/NetworkFunctionsTest-Format.Tpo -c -o NetworkFunctionsTest-Format.o `test -f '$(top_srcdir)/src/libs/common/Format.cpp' || echo '$(srcdir)/'`$(top_srcdir)/src/libs/common/Format.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/NetworkFunctionsTest-Format.Tpo $(DEPDIR)/NetworkFunctionsTest-Format.Po
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(top_srcdir)/src/libs/common/Format.cpp' object='NetworkFunctionsTest-Format.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NetworkFunctionsTest-Format.o `test -f '$(top_srcdir)/src/libs/common/Format.cpp' || echo '$(srcdir)/'`$(top_srcdir)/src/libs/common/Format.cpp
+
+NetworkFunctionsTest-Format.obj: $(top_srcdir)/src/libs/common/Format.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NetworkFunctionsTest-Format.obj -MD -MP -MF $(DEPDIR)/NetworkFunctionsTest-Format.Tpo -c -o NetworkFunctionsTest-Format.obj `if test -f '$(top_srcdir)/src/libs/common/Format.cpp'; then $(CYGPATH_W) '$(top_srcdir)/src/libs/common/Format.cpp'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/libs/common/Format.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/NetworkFunctionsTest-Format.Tpo $(DEPDIR)/NetworkFunctionsTest-Format.Po
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX) @AM_BACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$(top_srcdir)/src/libs/common/Format.cpp' object='NetworkFunctionsTest-Format.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(NetworkFunctionsTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NetworkFunctionsTest-Format.obj `if test -f '$(top_srcdir)/src/libs/common/Format.cpp'; then $(CYGPATH_W) '$(top_srcdir)/src/libs/common/Format.cpp'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/libs/common/Format.cpp'; fi`
+
 TextFileTest-TextFileTest.o: TextFileTest.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(TextFileTest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TextFileTest-TextFileTest.o -MD -MP -MF $(DEPDIR)/TextFileTest-TextFileTest.Tpo -c -o TextFileTest-TextFileTest.o `test -f 'TextFileTest.cpp' || echo '$(srcdir)/'`TextFileTest.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/TextFileTest-TextFileTest.Tpo $(DEPDIR)/TextFileTest-TextFileTest.Po
diff --git a/unittests/tests/NetworkFunctionsTest.cpp b/unittests/tests/NetworkFunctionsTest.cpp
index 7bf6425..59a8880 100644
--- a/unittests/tests/NetworkFunctionsTest.cpp
+++ b/unittests/tests/NetworkFunctionsTest.cpp
@@ -14,7 +14,7 @@ TEST(NetworkFunctions, StringIPtoUint32)
 	int items = itemsof(values);
 	int whites = 2;
 	int zeros = 2;
-	
+
 	// Test a few standard IP combinations
 	for (int wl = 0; wl < whites; ++wl) {
 		for (int wr = 0; wr < whites; ++wr) {
@@ -43,11 +43,11 @@ TEST(NetworkFunctions, StringIPtoUint32)
 											   << wxString(wxT(' '), wr);
 
 											uint32 resultIP = 17;
-											
+
 											ASSERT_TRUE(StringIPtoUint32(IP, resultIP));
 
 											uint32 expected = (values[d] << 24) | (values[c] << 16) | (values[b] << 8) | values[a];
-										
+
 											ASSERT_EQUALS(expected, resultIP);
 										}
 									}
@@ -60,10 +60,10 @@ TEST(NetworkFunctions, StringIPtoUint32)
 		}
 	}
 
-	
+
 	// Test invalid IPs
 	uint32 dummyIP = 27;
-	
+
 	// Missing fields
 	ASSERT_FALSE(StringIPtoUint32(wxT(".2.3.4"), dummyIP));
 	ASSERT_FALSE(StringIPtoUint32(wxT("1..3.4"), dummyIP));
@@ -101,11 +101,11 @@ TEST(NetworkFunctions, StringIPtoUint32)
 	ASSERT_FALSE(StringIPtoUint32(wxT("1.-2.3.4"), dummyIP));
 	ASSERT_FALSE(StringIPtoUint32(wxT("1.2.-3.4"), dummyIP));
 	ASSERT_FALSE(StringIPtoUint32(wxT("1.2.3.-4"), dummyIP));
-	
+
 	// Whitespace between fields
 	for (unsigned i = 0; i < itemsof(whitespace); ++i) {
 		wxChar c = whitespace[i];
-		
+
 		ASSERT_FALSE(StringIPtoUint32(wxString::Format(wxT("1%c.2.3.4"), c), dummyIP));
 		ASSERT_FALSE(StringIPtoUint32(wxString::Format(wxT("1.%c2.3.4"), c), dummyIP));
 		ASSERT_FALSE(StringIPtoUint32(wxString::Format(wxT("1.2%c.3.4"), c), dummyIP));
@@ -114,7 +114,7 @@ TEST(NetworkFunctions, StringIPtoUint32)
 		ASSERT_FALSE(StringIPtoUint32(wxString::Format(wxT("1.2.3.%c4"), c), dummyIP));
 	}
 
-	
+
 	// Faar too large values (triggered overflow and became negative)
 	ASSERT_FALSE(StringIPtoUint32(wxT("2147483648.2.3.4"), dummyIP));
 	ASSERT_FALSE(StringIPtoUint32(wxT("1.2147483648.3.4"), dummyIP));
@@ -127,7 +127,7 @@ TEST(NetworkFunctions, StringIPtoUint32)
 	ASSERT_FALSE(StringIPtoUint32(wxT("1.2.4294967296.4"), dummyIP));
 	ASSERT_FALSE(StringIPtoUint32(wxT("1.2.3.4294967296"), dummyIP));
 
-	
+
 	// The dummyIP value shouldn't have been changed by any of these calls
 	ASSERT_EQUALS(27u, dummyIP);
 }
diff --git a/unittests/tests/PathTest.cpp b/unittests/tests/PathTest.cpp
index b296d1a..7c7412b 100644
--- a/unittests/tests/PathTest.cpp
+++ b/unittests/tests/PathTest.cpp
@@ -22,7 +22,7 @@ const STestStr g_fromFSTests[] = {
 	{ true, wxConvFileName->cMB2WC("\xe1\x62\x63"), wxT("\xe1\x62\x63") },
 	{ true, wxConvFileName->cMB2WC("\xe6\xf8\xe5"), wxT("\xe6\xf8\xe5") },
 	{ true, wxConvFileName->cMB2WC("\xd8\xa7\xd9\x84\xd8\xb9"), wxT("\u0627\u0644\u0639") },
-	
+
 	// From User
 	{ false, wxT("\u0627\u0644\u0639"), wxT("\u0627\u0644\u0639") }
 };
@@ -112,12 +112,12 @@ TEST(CPath, PathConstructor)
 		ASSERT_FALSE(tmp.IsOk());
 		ASSERT_EQUALS(tmp, CPath());
 	}
-	
+
 
 	for (size_t i = 0; i < ArraySize(g_fromFSTests); ++i) {
 		const wxString input = g_fromFSTests[i].input;
 		const wxString result = g_fromFSTests[i].expected;
-		
+
 		ASSERT_TRUE(result.Length());
 		ASSERT_TRUE(input.Length());
 
@@ -180,7 +180,7 @@ TEST(CPath, CopyConstructor)
 	{
 		CPath a;
 		CPath b(a);
-		
+
 		ASSERT_EQUALS(a, b);
 		ASSERT_FALSE(a.IsOk());
 		ASSERT_FALSE(b.IsOk());
@@ -192,7 +192,7 @@ TEST(CPath, Operators)
 {
 	const wxChar* tmpPath1 = wxT("foobar.tgz");
 	const wxChar* tmpPath2 = wxT("barfoo.tar");
-	
+
 	{
 		CPath a, b;
 		ASSERT_EQUALS(a, b);
@@ -239,7 +239,7 @@ TEST(CPath, Operators)
 
 		ASSERT_EQUALS(a, b);
 	}
-#endif 
+#endif
 
 	// TODO: Less than
 }
@@ -264,7 +264,7 @@ TEST(CPath, JoinPaths)
 	ASSERT_EQUALS(expected1, Norm(wxT("/home")).JoinPaths(Norm(wxT("/amule/"))));
 	ASSERT_EQUALS(expected1, Norm(wxT("/home/")).JoinPaths(Norm(wxT("/amule/"))));
 	ASSERT_EQUALS(expected1, Norm(wxT("/home/")).JoinPaths(Norm(wxT("amule/"))));
-	
+
 	ASSERT_EQUALS(expected2, Norm(wxT("/home")).JoinPaths(Norm(wxT("amule"))));
 	ASSERT_EQUALS(expected2, Norm(wxT("/home")).JoinPaths(Norm(wxT("/amule"))));
 	ASSERT_EQUALS(expected2, Norm(wxT("/home/")).JoinPaths(Norm(wxT("/amule"))));
@@ -272,7 +272,7 @@ TEST(CPath, JoinPaths)
 
 	ASSERT_EQUALS(expected1, expected1.JoinPaths(CPath()));
 	ASSERT_EQUALS(expected1, CPath().JoinPaths(expected1));
-	
+
 	ASSERT_EQUALS(expected2, expected2.JoinPaths(CPath()));
 	ASSERT_EQUALS(expected2, CPath().JoinPaths(expected2));
 }
@@ -306,7 +306,7 @@ TEST(CPath, IsSameDir)
 	ASSERT_TRUE(Norm(wxT("/root/")).IsSameDir(Norm(wxT("/root"))));
 	ASSERT_TRUE(Norm(wxT("/root")).IsSameDir(Norm(wxT("/root/"))));
 	ASSERT_TRUE(Norm(wxT("/root/")).IsSameDir(Norm(wxT("/root/"))));
-	
+
 	ASSERT_FALSE(CPath().IsSameDir(Norm(wxT("/"))));
 	ASSERT_FALSE(Norm(wxT("/")).IsSameDir(CPath()));
 
@@ -337,14 +337,14 @@ TEST(CPath, GetPath_FullName)
 
 	{
 		const CPath path = Norm(wxT("mule"));
-		
+
 		ASSERT_EQUALS(path.GetPath(), CPath());
 		ASSERT_EQUALS(path.GetFullName(), Norm(wxT("mule")));
 	}
 
 	{
 		const CPath path = Norm(wxT("mule.ext"));
-		
+
 		ASSERT_EQUALS(path.GetPath(), CPath());
 		ASSERT_EQUALS(path.GetFullName(), Norm(wxT("mule.ext")));
 	}
diff --git a/unittests/tests/RangeMapTest.cpp b/unittests/tests/RangeMapTest.cpp
index bd53e66..2400c47 100644
--- a/unittests/tests/RangeMapTest.cpp
+++ b/unittests/tests/RangeMapTest.cpp
@@ -47,11 +47,11 @@ wxString StringFrom(CRangeMap<void>::iterator it)
 /**
  * Returns the contents of a TestRangeMap as a string-representation.
  *
- * Using this function allows for easy comparison against the expected 
+ * Using this function allows for easy comparison against the expected
  * result of a particular test.
  */
 template <typename VALUE>
-wxString StringFrom(const CRangeMap<VALUE>& map) 
+wxString StringFrom(const CRangeMap<VALUE>& map)
 {
 	wxString stream;
 
@@ -60,7 +60,7 @@ wxString StringFrom(const CRangeMap<VALUE>& map)
 		if (it != map.begin()) {
 			stream << wxT(", ");
 		}
-		
+
 		stream += StringFrom(it);
 	}
 
@@ -83,16 +83,16 @@ DECLARE(RangeMap);
 	// Sets up a few maps with predefined ranges.
 	void setUp() {
 		m_map.insert(100, 150, 0);
-		
+
 		m_mmaps[CONT].insert(100, 150, 0);
 		m_mmaps[CONT].insert(151, 200, 1);
-		
+
 		m_mmaps[SDIFF].insert(100, 150, 0);
 		m_mmaps[SDIFF].insert(160, 200, 1);
-		
+
 		m_mmaps[SSAME].insert(100, 150, 1);
 		m_mmaps[SSAME].insert(160, 200, 1);
-		
+
 		ASSERT_EQUALS(wxT("[(100, 150, 0)]"), StringFrom(m_map));
 		ASSERT_EQUALS(wxT("[(100, 150, 0), (151, 200, 1)]"), StringFrom(m_mmaps[CONT]));
 		ASSERT_EQUALS(wxT("[(100, 150, 0), (160, 200, 1)]"), StringFrom(m_mmaps[SDIFF]));
@@ -114,36 +114,36 @@ DECLARE(RangeMap);
 	void singleInsert(uint32 start, uint32 end, int value, const wxString& result)
 	{
 		TestRangeMap::iterator it = m_map.insert(start, end, value);
-		
+
 		// Test that the correct iterator was returned
 		ASSERT_TRUE(it.keyStart() <= start);
 		ASSERT_TRUE(it.keyEnd() >= end);
 		ASSERT_EQUALS(*it, value);
-		
+
 		// Check the resulting map
 		ASSERT_EQUALS(result, StringFrom(m_map));
 		ASSERT_EQUALS((uint32)std::count(result.begin(), result.end(), '('), m_map.size());
-		
+
 		// Reset the rangemap
 		tearDown();
 		setUp();
-	}	
+	}
 
 	void doErase(uint32 start, uint32 end, const wxString& result)
 	{
 		m_map.erase_range(start, end);
-		
+
 		// Check the resulting map
 		ASSERT_EQUALS(result, StringFrom(m_map));
 		ASSERT_EQUALS((uint32)std::count(result.begin(), result.end(), '('), m_map.size());
-		
+
 		// Reset the rangemap
 		tearDown();
-		setUp();	
+		setUp();
 	}
 
-	/** 
-	 * Tests insertion into a map with multiple ranges, checking against an 
+	/**
+	 * Tests insertion into a map with multiple ranges, checking against an
 	 * expected result.
 	 */
 	void multiInsert(int type, uint32 start, uint32 end, int value, const wxString& result)
@@ -154,11 +154,11 @@ DECLARE(RangeMap);
 		ASSERT_TRUE(it.keyStart() <= start);
 		ASSERT_TRUE(it.keyEnd() >= end);
 		ASSERT_EQUALS(*it, value);
-		
+
 		// Check the resulting map
 		ASSERT_EQUALS(result, StringFrom(m_mmaps[type]));
 		ASSERT_EQUALS((uint32)std::count(result.begin(), result.end(), '('), m_mmaps[type].size());
-		
+
 		tearDown();
 		setUp();
 	}
@@ -182,13 +182,13 @@ TEST(RangeMap, CopyConstructor)
 	TestRangeMap mapB(m_mmaps[CONT]);
 	TestRangeMap mapC(m_mmaps[SSAME]);
 	TestRangeMap mapD(m_mmaps[SDIFF]);
-	
+
 	ASSERT_EQUALS(m_map, mapA);
 	ASSERT_EQUALS(m_mmaps[CONT], mapB);
 	ASSERT_EQUALS(m_mmaps[SSAME], mapC);
-	ASSERT_EQUALS(m_mmaps[SDIFF], mapD);	
-	
-	
+	ASSERT_EQUALS(m_mmaps[SDIFF], mapD);
+
+
 	// The copies must not affect the originals
 	mapA.insert(125, 175, 2);
 	mapB.insert(125, 175, 2);
@@ -207,10 +207,10 @@ TEST(RangeMap, AssignmentOperator)
 	// Check basic assignment
 	TestRangeMap mapA, mapB;
 	mapA = mapB = m_map;
-	
+
 	ASSERT_EQUALS(m_map, mapA);
 	ASSERT_EQUALS(m_map, mapB);
-	
+
 
 	// The copies must not affect the originals
 	mapA.insert(125, 175, 2);
@@ -225,9 +225,9 @@ TEST(RangeMap, AssignmentOperator)
 TEST(RangeMap, Equality)
 {
 	TestRangeMap mapA(m_mmaps[SSAME]), mapB(m_mmaps[SDIFF]);
-	
+
 	ASSERT_FALSE(mapA == mapB);
-	
+
 	mapA = mapB;
 
 	ASSERT_EQUALS(mapA, mapB);
@@ -243,21 +243,21 @@ TEST(RangeMap, Iterators)
 	// Adding a third range
 	m_mmaps[CONT].insert(125, 175, 2);
 	TestRangeMap map(m_mmaps[CONT]);
-	
+
 	TestRangeMap::iterator it = map.begin();
 	TestRangeMap::iterator it_orig = map.begin();
-	TestRangeMap::iterator it_other = map.end();	
-	
+	TestRangeMap::iterator it_other = map.end();
+
 	ASSERT_EQUALS(wxT("(100, 124, 0)"), StringFrom(it));
-	
+
 	it_other = ++it;
-	
+
 	ASSERT_EQUALS(wxT("(125, 175, 2)"), StringFrom(it));
 	ASSERT_EQUALS(it_other, it++);
 	ASSERT_EQUALS(wxT("(176, 200, 1)"), StringFrom(it));
-	
+
 	it_other = --it;
-	
+
 	ASSERT_EQUALS(wxT("(125, 175, 2)"), StringFrom(it));
 	ASSERT_EQUALS(it_other, it--);
 	ASSERT_EQUALS(wxT("(100, 124, 0)"), StringFrom(it));
@@ -268,7 +268,7 @@ TEST(RangeMap, Erase)
 {
 	// Adding a third range
 	m_mmaps[CONT].insert(125, 175, 2);
-	
+
 	// The expected results from forwards deletion
 	TestRangeMap map(m_mmaps[CONT]);
 	wxString expectedFW[4];
@@ -295,7 +295,7 @@ TEST(RangeMap, Erase)
 
 	for (int i = 0; i < 4; ++i) {
 		ASSERT_EQUALS(expectedBW[i], StringFrom(map));
-		
+
 		if (map.begin() != map.end()) {
 			map.erase(--map.end());
 		}
@@ -309,7 +309,7 @@ TEST(RangeMap, Clear)
 	ASSERT_TRUE(m_map.empty());
 	ASSERT_EQUALS(0u, m_map.size());
 	ASSERT_EQUALS(wxT("[]"), StringFrom(m_map));
-	
+
 	for (int i = 0; i < 3; ++i) {
 		m_mmaps[i].clear();
 		ASSERT_TRUE(m_mmaps[i].empty());
@@ -324,7 +324,7 @@ TEST(RangeMap, FindRange)
 	// Adding a third range
 	m_mmaps[CONT].insert(125, 175, 2);
 	TestRangeMap map(m_mmaps[CONT]);
-	
+
 	ASSERT_EQUALS(map.end(), map.find_range(0));
 	ASSERT_EQUALS(map.end(), map.find_range(98));
 	ASSERT_EQUALS(map.end(), map.find_range(99));
@@ -340,7 +340,7 @@ TEST(RangeMap, FindRange)
 	ASSERT_EQUALS(wxT("(176, 200, 1)"), StringFrom(map.find_range(176)));
 	ASSERT_EQUALS(wxT("(176, 200, 1)"), StringFrom(map.find_range(186)));
 	ASSERT_EQUALS(wxT("(176, 200, 1)"), StringFrom(map.find_range(200)));
-	
+
 	ASSERT_EQUALS(map.end(), map.find_range(201));
 	ASSERT_EQUALS(map.end(), map.find_range(202));
 	ASSERT_EQUALS(map.end(), map.find_range(250));
@@ -355,7 +355,7 @@ TEST(RangeMap, InvalidErase)
 
 TEST(RangeMap, InvalidInsert)
 {
-	ASSERT_RAISES(CInvalidParamsEx, m_map.insert(10, 9, 8));	
+	ASSERT_RAISES(CInvalidParamsEx, m_map.insert(10, 9, 8));
 }
 
 
@@ -363,7 +363,7 @@ TEST(RangeMap, InvalidInsert)
 // The following tests exercize the merging algorithm.
 // The comment before each comment descrices the RangeMaps used to test,
 // and which types of ranges are tested. For example, the description
-// "a / b <-> c / d" is to be read as: 
+// "a / b <-> c / d" is to be read as:
 //   Insert range starting at a or b, ending at c or d.
 
 
@@ -414,7 +414,7 @@ TEST(RangeMap, SingleInsert_BeforeStart_TouchingStart_AtEnd_TouchingEnd_AfterEnd
 
 
 // Single insert touching start <-> touching start.
-TEST(RangeMap, SingleInsert_TouchingStart_TouchingStart) 
+TEST(RangeMap, SingleInsert_TouchingStart_TouchingStart)
 {
 	singleInsert(99, 99, 0, wxT("[(99, 150, 0)]")); // Same
 	singleInsert(99, 99, 1, wxT("[(99, 99, 1), (100, 150, 0)]")); // Different
@@ -428,9 +428,9 @@ TEST(RangeMap, SingleInsert_TouchingStart_AtStart_AtStart_Inside)
 		for (int offset_b = 0; offset_b < 2; ++offset_b) { // (at start, inside)
 			int start = 99 + offset_a;
 			int end   = 100 + offset_b;
-			
+
 			// Same
-			singleInsert(start, end, 0, wxString::Format(wxT("[(%u, 150, 0)]"), 99 + offset_a)); 
+			singleInsert(start, end, 0, wxString::Format(wxT("[(%u, 150, 0)]"), 99 + offset_a));
 
 			// Different
 			wxString exp = wxString::Format(wxT("[(%u, %u, 1), (%u, 150, 0)]"), start, end, 101 + offset_b);
@@ -441,14 +441,14 @@ TEST(RangeMap, SingleInsert_TouchingStart_AtStart_AtStart_Inside)
 
 
 // Single insert at start <-> at end / touching end / after end.
-TEST(RangeMap, SingleInsert_AtStart_AtEnd_TouchingEnd_AfterEnd) 
+TEST(RangeMap, SingleInsert_AtStart_AtEnd_TouchingEnd_AfterEnd)
 {
 	// (at end, touching end, after end)
 	for (int offset = 0; offset < 3; ++offset) {
 		// Same
 		singleInsert(100, 150 + offset, 0, wxString::Format(wxT("[(100, %u, 0)]"), 150 + offset));
 		// Different
-		singleInsert(100, 150 + offset, 1, wxString::Format(wxT("[(100, %u, 1)]"), 150 + offset)); 
+		singleInsert(100, 150 + offset, 1, wxString::Format(wxT("[(100, %u, 1)]"), 150 + offset));
 	}
 }
 
@@ -462,10 +462,10 @@ TEST(RangeMap, SingleInsert_Inside_AtEnd_AtEnd_TouchingEnd_AfterEnd)
 		for (int offset_b = 0; offset_b < 3; ++offset_b) {
 			int start = 149 + offset_a;
 			int end   = 150 + offset_b;
-			
+
 			// Same
 			singleInsert(start, end, 0, wxString::Format(wxT("[(100, %u, 0)]"), end));
-			
+
 			// Different
 			singleInsert(start, end, 1, wxString::Format(wxT("[(100, %u, 0), (%u, %u, 1)]"), 148 + offset_a, start, end));
 		}
@@ -479,10 +479,10 @@ TEST(RangeMap, SingleInsert_TouchingEnd_TouchingEnd_AfterEnd)
 	// (touching end, after end)
 	for (int offset = 0; offset < 2; ++offset) {
 		int end = 151 + offset;
-		
+
 		// Same
 		singleInsert(151, end, 0, wxString::Format(wxT("[(100, %u, 0)]"), end));
-		
+
 		// Different
 		singleInsert(151, end, 1, wxString::Format(wxT("[(100, 150, 0), (151, %u, 1)]"), end));
 	}
@@ -514,7 +514,7 @@ TEST(RangeMap, MultiInsert_BeforeStart_TouchingStart)
 	multiInsert(CONT, 0, 99, 0, wxT("[(0, 150, 0), (151, 200, 1)]"));
 	multiInsert(SDIFF, 0, 99, 0, wxT("[(0, 150, 0), (160, 200, 1)]"));
 	multiInsert(SSAME, 0, 99, 0, wxT("[(0, 99, 0), (100, 150, 1), (160, 200, 1)]"));
-	
+
 	multiInsert(CONT, 0, 99, 1, wxT("[(0, 99, 1), (100, 150, 0), (151, 200, 1)]"));
 	multiInsert(SDIFF, 0, 99, 1, wxT("[(0, 99, 1), (100, 150, 0), (160, 200, 1)]"));
 	multiInsert(SSAME, 0, 99, 1, wxT("[(0, 150, 1), (160, 200, 1)]"));
@@ -526,11 +526,11 @@ TEST(RangeMap, MultiInsert_BeforeStart_AtStart_InSide)
 {
 	for (int offset = 0; offset < 3; ++offset) { // (at start, inside, inside)
 		int end = 100 + offset;
-		
+
 		multiInsert(CONT, 0, end, 0, wxT("[(0, 150, 0), (151, 200, 1)]"));
 		multiInsert(SDIFF, 0, end, 0, wxT("[(0, 150, 0), (160, 200, 1)]"));
 		multiInsert(SSAME, 0, end, 0, wxString::Format(wxT("[(0, %u, 0), (%u, 150, 1), (160, 200, 1)]"), end, 101 + offset));
-		
+
 		multiInsert(CONT, 0, end, 1, wxString::Format(wxT("[(0, %u, 1), (%u, 150, 0), (151, 200, 1)]"), end, 101 + offset));
 		multiInsert(SDIFF, 0, end, 1, wxString::Format(wxT("[(0, %u, 1), (%u, 150, 0), (160, 200, 1)]"), end, 101 + offset));
 		multiInsert(SSAME, 0, end, 1, wxT("[(0, 150, 1), (160, 200, 1)]"));
@@ -545,11 +545,11 @@ TEST(RangeMap, MultiInsert_BeforeStart_TouchingStart_AtEnd_TouchingEnd_AfterEnd)
 		for (int start_offset = 0; start_offset < 2; ++start_offset) { // (before start, touching start)
 			int start = 98 + start_offset;
 			int end   = 150 + end_offset;
-				
+
 			multiInsert(CONT, start, end, 0, wxString::Format(wxT("[(%u, %u, 0), (%u, 200, 1)]"), start, end, end + 1));
 			multiInsert(SDIFF, start, end, 0, wxString::Format(wxT("[(%u, %u, 0), (160, 200, 1)]"), start, end));
 			multiInsert(SSAME, start, end, 0, wxString::Format(wxT("[(%u, %u, 0), (160, 200, 1)]"), start, end));
-				
+
 			multiInsert(CONT, start, end, 1, wxString::Format(wxT("[(%u, 200, 1)]"), start));
 			multiInsert(SDIFF, start, end, 1, wxString::Format(wxT("[(%u, %u, 1), (160, 200, 1)]"), start, end));
 			multiInsert(SSAME, start, end, 1, wxString::Format(wxT("[(%u, %u, 1), (160, 200, 1)]"), start, end));
@@ -564,7 +564,7 @@ TEST(RangeMap, MultiInsert_TouchingStart_TouchingStart)
 	multiInsert(CONT, 99, 99, 0, wxT("[(99, 150, 0), (151, 200, 1)]"));
 	multiInsert(SDIFF, 99, 99, 0, wxT("[(99, 150, 0), (160, 200, 1)]"));
 	multiInsert(SSAME, 99, 99, 0, wxT("[(99, 99, 0), (100, 150, 1), (160, 200, 1)]"));
-	
+
 	multiInsert(CONT, 99, 99, 1, wxT("[(99, 99, 1), (100, 150, 0), (151, 200, 1)]"));
 	multiInsert(SDIFF, 99, 99, 1, wxT("[(99, 99, 1), (100, 150, 0), (160, 200, 1)]"));
 	multiInsert(SSAME, 99, 99, 1, wxT("[(99, 150, 1), (160, 200, 1)]"));
@@ -578,11 +578,11 @@ TEST(RangeMap, MultiInsert_TouchingStart_AtStart_AtStart_Inside)
 		for (int offset_b = 0; offset_b < 2; ++offset_b) { // (at start, inside)
 			int start = 99 + offset_a;
 			int end   = 100 + offset_b;
-			
+
 			multiInsert(CONT, start, end, 0, wxString::Format(wxT("[(%u, 150, 0), (151, 200, 1)]"), start));
 			multiInsert(SDIFF, start, end, 0, wxString::Format(wxT("[(%u, 150, 0), (160, 200, 1)]"), start));
 			multiInsert(SSAME, start, end, 0, wxString::Format(wxT("[(%u, %u, 0), (%u, 150, 1), (160, 200, 1)]"), start, end, end + 1));
-			
+
 			multiInsert(CONT, start, end, 1, wxString::Format(wxT("[(%u, %u, 1), (%u, 150, 0), (151, 200, 1)]"), start, end, end + 1));
 			multiInsert(SDIFF, start, end, 1, wxString::Format(wxT("[(%u, %u, 1), (%u, 150, 0), (160, 200, 1)]"), start, end, end + 1));
 			multiInsert(SSAME, start, end, 1, wxString::Format(wxT("[(%u, 150, 1), (160, 200, 1)]"), start));
@@ -597,11 +597,11 @@ TEST(RangeMap, MultiInsert_AtStart_AtEnd_TouchingEnd_AfterEnd)
 	for (int offset = 0; offset < 3; ++offset) { // (at end, touching end, after end)
 		int start = 100;
 		int end   = 150 + offset;
-		
+
 		multiInsert(CONT, start, end, 0, wxString::Format(wxT("[(%u, %u, 0), (%u, 200, 1)]"), start, end, end + 1));
 		multiInsert(SDIFF, start, end, 0, wxString::Format(wxT("[(%u, %u, 0), (160, 200, 1)]"), start, end));
 		multiInsert(SSAME, start, end, 0, wxString::Format(wxT("[(%u, %u, 0), (160, 200, 1)]"), start, end));
-		
+
 		multiInsert(CONT, start, end, 1, wxString::Format(wxT("[(%u, 200, 1)]"), start));
 		multiInsert(SDIFF, start, end, 1, wxString::Format(wxT("[(%u, %u, 1), (160, 200, 1)]"), start, end));
 		multiInsert(SSAME, start, end, 1, wxString::Format(wxT("[(%u, %u, 1), (160, 200, 1)]"), start, end));
@@ -615,7 +615,7 @@ TEST(RangeMap, MultiInsert_Inside_Inside)
 	multiInsert(CONT, 110, 140, 0, wxT("[(100, 150, 0), (151, 200, 1)]"));
 	multiInsert(SDIFF, 110, 140, 0, wxT("[(100, 150, 0), (160, 200, 1)]"));
 	multiInsert(SSAME, 110, 140, 0, wxT("[(100, 109, 1), (110, 140, 0), (141, 150, 1), (160, 200, 1)]"));
-	
+
 	multiInsert(CONT, 110, 140, 1, wxT("[(100, 109, 0), (110, 140, 1), (141, 150, 0), (151, 200, 1)]"));
 	multiInsert(SDIFF, 110, 140, 1, wxT("[(100, 109, 0), (110, 140, 1), (141, 150, 0), (160, 200, 1)]"));
 	multiInsert(SSAME, 110, 140, 1, wxT("[(100, 150, 1), (160, 200, 1)]"));
@@ -629,11 +629,11 @@ TEST(RangeMap, MultiInsert_Inside_AtEnd_AtEnd_TouchingEnd_AfterEnd)
 		for (int offset_b = 0; offset_b < 3; ++offset_b) { // (at end, touching end, after end)
 			int start = 149 + offset_a;
 			int end   = 150 + offset_b;
-			
+
 			multiInsert(CONT, start, end, 0, wxString::Format(wxT("[(100, %u, 0), (%u, 200, 1)]"), end, end + 1));
 			multiInsert(SDIFF, start, end, 0, wxString::Format(wxT("[(100, %u, 0), (160, 200, 1)]"), end));
 			multiInsert(SSAME, start, end, 0, wxString::Format(wxT("[(100, %u, 1), (%u, %u, 0), (160, 200, 1)]"), start - 1, start, end));
-			
+
 			multiInsert(CONT, start, end, 1, wxString::Format(wxT("[(100, %u, 0), (%u, 200, 1)]"), start - 1, start));
 			multiInsert(SDIFF, start, end, 1, wxString::Format(wxT("[(100, %u, 0), (%u, %u, 1), (160, 200, 1)]"), start - 1, start, end));
 			multiInsert(SSAME, start, end, 1, wxString::Format(wxT("[(100, %u, 1), (160, 200, 1)]"), end));
@@ -648,11 +648,11 @@ TEST(RangeMap, MultiInsert_TouchingEnd_TouchingEnd_AfterEnd)
 	for (int offset = 0; offset < 2; ++offset) { // (touching end, after end)
 		int start = 151;
 		int end   = 151 + offset;
-		
+
 		multiInsert(CONT, start, end, 0, wxString::Format(wxT("[(100, %u, 0), (%u, 200, 1)]"), end, end + 1));
 		multiInsert(SDIFF, start, end, 0, wxString::Format(wxT("[(100, %u, 0), (160, 200, 1)]"), end));
 		multiInsert(SSAME, start, end, 0, wxString::Format(wxT("[(100, 150, 1), (%u, %u, 0), (160, 200, 1)]"), start, end));
-		
+
 		multiInsert(CONT, start, end, 1, wxString::Format(wxT("[(100, 150, 0), (%u, 200, 1)]"), start));
 		multiInsert(SDIFF, start, end, 1, wxString::Format(wxT("[(100, 150, 0), (%u, %u, 1), (160, 200, 1)]"), start, end));
 		multiInsert(SSAME, start, end, 1, wxString::Format(wxT("[(100, %u, 1), (160, 200, 1)]"), end));
@@ -666,7 +666,7 @@ TEST(RangeMap, MultiInsert_AfterEnd_AfterEnd)
 	multiInsert(CONT, 152, 170, 0, wxT("[(100, 150, 0), (151, 151, 1), (152, 170, 0), (171, 200, 1)]"));
 	multiInsert(SDIFF, 152, 170, 0, wxT("[(100, 150, 0), (152, 170, 0), (171, 200, 1)]"));
 	multiInsert(SSAME, 152, 170, 0, wxT("[(100, 150, 1), (152, 170, 0), (171, 200, 1)]"));
-	
+
 	multiInsert(CONT, 152, 170, 1, wxT("[(100, 150, 0), (151, 200, 1)]"));
 	multiInsert(SDIFF, 152, 170, 1, wxT("[(100, 150, 0), (152, 200, 1)]"));
 	multiInsert(SSAME, 152, 170, 1, wxT("[(100, 150, 1), (152, 200, 1)]"));
@@ -716,7 +716,7 @@ TEST(RangeMap, Erase_BeforeStart_TouchingStart_AtEnd_TouchingEnd_AfterEnd)
 
 
 // Single erase touching start <-> touching start.
-TEST(RangeMap, Erase_TouchingStart_TouchingStart) 
+TEST(RangeMap, Erase_TouchingStart_TouchingStart)
 {
 	doErase(99, 99, wxT("[(100, 150, 0)]"));
 }
@@ -729,15 +729,15 @@ TEST(RangeMap, Erase_TouchingStart_AtStart_AtStart_Inside)
 		for (int offset_b = 0; offset_b < 2; ++offset_b) { // (at start, inside)
 			int start = 99 + offset_a;
 			int end   = 100 + offset_b;
-			
-			doErase(start, end, wxString::Format(wxT("[(%u, 150, 0)]"), 100 + offset_b + 1)); 
+
+			doErase(start, end, wxString::Format(wxT("[(%u, 150, 0)]"), 100 + offset_b + 1));
 		}
 	}
 }
 
 
 // Single erase at start <-> at end / touching end / after end.
-TEST(RangeMap, Erase_AtStart_AtEnd_TouchingEnd_AfterEnd) 
+TEST(RangeMap, Erase_AtStart_AtEnd_TouchingEnd_AfterEnd)
 {
 	// (at end, touching end, after end)
 	for (int offset = 0; offset < 3; ++offset) {
@@ -755,7 +755,7 @@ TEST(RangeMap, Erase_Inside_AtEnd_AtEnd_TouchingEnd_AfterEnd)
 		for (int offset_b = 0; offset_b < 3; ++offset_b) {
 			int start = 149 + offset_a;
 			int end   = 150 + offset_b;
-			
+
 			doErase(start, end, wxString::Format(wxT("[(100, %u, 0)]"), start - 1));
 		}
 	}
@@ -768,7 +768,7 @@ TEST(RangeMap, Erase_TouchingEnd_TouchingEnd_AfterEnd)
 	// (touching end, after end)
 	for (int offset = 0; offset < 2; ++offset) {
 		int end = 151 + offset;
-		
+
 		doErase(151, end, wxT("[(100, 150, 0)]"));
 	}
 }
@@ -786,34 +786,34 @@ TEST(RangeMap, Swap)
 	{
 		TestRangeMap mapA = m_mmaps[CONT];
 		TestRangeMap mapB = m_mmaps[SSAME];
-		
+
 		ASSERT_EQUALS(mapA, m_mmaps[CONT]);
 		ASSERT_EQUALS(mapB, m_mmaps[SSAME]);
-		
+
 		std::swap(mapA, mapB);
 
 		ASSERT_EQUALS(mapB, m_mmaps[CONT]);
-		ASSERT_EQUALS(mapA, m_mmaps[SSAME]);		
+		ASSERT_EQUALS(mapA, m_mmaps[SSAME]);
 	}
-	
+
 	{
 		TestRangeMap mapA = m_mmaps[CONT];
 		TestRangeMap mapB = m_mmaps[SSAME];
-		
+
 		ASSERT_EQUALS(mapA, m_mmaps[CONT]);
 		ASSERT_EQUALS(mapB, m_mmaps[SSAME]);
-		
+
 		mapA.swap(mapB);
 
 		ASSERT_EQUALS(mapB, m_mmaps[CONT]);
-		ASSERT_EQUALS(mapA, m_mmaps[SSAME]);		
+		ASSERT_EQUALS(mapA, m_mmaps[SSAME]);
 	}
 }
 
 
 /////////////////////////////////////////////////
 // The following test exercize the CRangeSet specialization.
-// 
+//
 
 TEST(RangeMap, RangeSet)
 {
diff --git a/unittests/tests/StringFunctionsTest.cpp b/unittests/tests/StringFunctionsTest.cpp
index 86bd1e5..c2d7b5a 100644
--- a/unittests/tests/StringFunctionsTest.cpp
+++ b/unittests/tests/StringFunctionsTest.cpp
@@ -55,7 +55,7 @@ TEST(StringFunctions, FuzzyStrCmp)
 
 DECLARE_SIMPLE(SimpleParser)
 
-	
+
 TEST(SimpleParser, Constructor)
 {
 	// Empty strings are acceptable and should just return an empty string
@@ -84,33 +84,33 @@ TEST(SimpleParser, EmptyTokens)
 		CSimpleTokenizer tkz1(wxT(" a"), wxT(' '));
 		ASSERT_EQUALS(wxT(" a"), tkz1.remaining());
 		ASSERT_EQUALS(0u, tkz1.tokenCount());
-		
+
 		ASSERT_EQUALS(wxEmptyString, tkz1.next());
 		ASSERT_EQUALS(wxT("a"), tkz1.remaining());
 		ASSERT_EQUALS(1u, tkz1.tokenCount());
-		
+
 		ASSERT_EQUALS(wxT("a"), tkz1.next());
 		ASSERT_EQUALS(wxT(""), tkz1.remaining());
 		ASSERT_EQUALS(1u, tkz1.tokenCount());
-		
+
 		ASSERT_EQUALS(wxEmptyString, tkz1.next());
 		ASSERT_EQUALS(wxT(""), tkz1.remaining());
 		ASSERT_EQUALS(1u, tkz1.tokenCount());
 	}
-	
-	{	
+
+	{
 		CSimpleTokenizer tkz2(wxT("c "), wxT(' '));
 		ASSERT_EQUALS(wxT("c "), tkz2.remaining());
 		ASSERT_EQUALS(0u, tkz2.tokenCount());
-		
+
 		ASSERT_EQUALS(wxT("c"), tkz2.next());
 		ASSERT_EQUALS(wxT(""), tkz2.remaining());
 		ASSERT_EQUALS(1u, tkz2.tokenCount());
-		
+
 		ASSERT_EQUALS(wxEmptyString, tkz2.next());
 		ASSERT_EQUALS(wxT(""), tkz2.remaining());
 		ASSERT_EQUALS(1u, tkz2.tokenCount());
-		
+
 		ASSERT_EQUALS(wxEmptyString, tkz2.next());
 		ASSERT_EQUALS(wxT(""), tkz2.remaining());
 		ASSERT_EQUALS(1u, tkz2.tokenCount());
@@ -149,19 +149,19 @@ TEST(SimpleParser, NormalTokens)
 	CSimpleTokenizer tkz(wxT("a c"), wxT(' '));
 	ASSERT_EQUALS(wxT("a c"), tkz.remaining());
 	ASSERT_EQUALS(0u, tkz.tokenCount());
-	
+
 	ASSERT_EQUALS(wxT("a"), tkz.next());
 	ASSERT_EQUALS(wxT("c"), tkz.remaining());
 	ASSERT_EQUALS(1u, tkz.tokenCount());
-	
+
 	ASSERT_EQUALS(wxT("c"), tkz.next());
 	ASSERT_EQUALS(wxT(""), tkz.remaining());
 	ASSERT_EQUALS(1u, tkz.tokenCount());
-	
+
 	ASSERT_EQUALS(wxEmptyString, tkz.next());
 	ASSERT_EQUALS(wxT(""), tkz.remaining());
 	ASSERT_EQUALS(1u, tkz.tokenCount());
-	
+
 	ASSERT_EQUALS(wxEmptyString, tkz.next());
 	ASSERT_EQUALS(wxT(""), tkz.remaining());
 	ASSERT_EQUALS(1u, tkz.tokenCount());
diff --git a/unittests/tests/TextFileTest.cpp b/unittests/tests/TextFileTest.cpp
index 07ace8f..179565d 100644
--- a/unittests/tests/TextFileTest.cpp
+++ b/unittests/tests/TextFileTest.cpp
@@ -48,9 +48,9 @@ void CompareReadLines(size_t count, const wxChar* expected[], EReadTextFile crit
 		CONTEXT(wxString(wxT("Checking file: ")) + g_filesDefault[j]);
 
 		ASSERT_TRUE(file.Open(CPath(wxSTRINGIZE_T(SRCDIR)).JoinPaths(CPath(g_filesDefault[j])).GetRaw(), CTextFile::read));
-		
+
 		wxArrayString lines = file.ReadLines(criteria);
-		
+
 		ASSERT_EQUALS(ArrToStr(count, expected), ArrToStr(lines));
 		ASSERT_EQUALS(count, lines.GetCount());
 	}
@@ -89,7 +89,7 @@ TEST(TextFile, ReadLines)
 			wxT(" "),
 			wxT("")
 		};
-		
+
 		CompareReadLines(ArraySize(lines), lines, (EReadTextFile)0);
 	}
 
@@ -107,7 +107,7 @@ TEST(TextFile, ReadLines)
 			wxT(" "),
 		};
 
-		CompareReadLines(ArraySize(lines), lines, txtIgnoreEmptyLines);		
+		CompareReadLines(ArraySize(lines), lines, txtIgnoreEmptyLines);
 	}
 
 	{
@@ -186,7 +186,7 @@ public:
 
 		{
 			CONTEXT(wxT("Writing lines manually"));
-				
+
 			CTextFile file;
 			ASSERT_TRUE(file.Open(wxT("testfile.txt"), CTextFile::write));
 
@@ -214,7 +214,7 @@ public:
 
 		{
 			CONTEXT(wxT("Writing lines automatically"));
-				
+
 			CTextFile file;
 			ASSERT_FALSE(file.IsOpened());
 			ASSERT_TRUE(file.Open(wxT("testfile.txt"), CTextFile::write));

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-amule/amule.git



More information about the Pkg-amule-commits mailing list