Index: /trunk/src/game/Level3.cpp
===================================================================
--- /trunk/src/game/Level3.cpp (revision 85)
+++ /trunk/src/game/Level3.cpp (revision 94)
@@ -4825,23 +4825,16 @@
             }
 
-            loginDatabase.escape_string(nameOrIP);
-            QueryResult *result = CharacterDatabase.PQuery("SELECT account FROM characters WHERE name = '%s'", nameOrIP.c_str());
-            if (!result)
+            accountid = objmgr.GetPlayerAccountIdByPlayerName (nameOrIP);
+            if (!accountid)
             {
                 PSendSysMessage(LANG_BANINFO_NOCHARACTER);
                 return true;
             }
-            fields = result->Fetch();
-            accountid = fields[0].GetUInt32();
-            delete result;
-            result = loginDatabase.PQuery("SELECT username FROM account WHERE id = '%u'", accountid);
-            if (!result)
+            
+            if (!accmgr.GetName (accountid,accountname))
             {
                 PSendSysMessage(LANG_BANINFO_NOCHARACTER);
                 return true;
             }
-            fields = result->Fetch();
-            accountname = fields[0].GetCppString();
-            delete result;
         }
         else
Index: /trunk/src/game/ObjectMgr.h
===================================================================
--- /trunk/src/game/ObjectMgr.h (revision 88)
+++ /trunk/src/game/ObjectMgr.h (revision 94)
@@ -414,4 +414,5 @@
         uint32 GetPlayerTeamByGUID(const uint64 &guid) const;
         uint32 GetPlayerAccountIdByGUID(const uint64 &guid) const;
+        uint32 GetPlayerAccountIdByPlayerName(std::string name) const;
 
         uint32 GetNearestTaxiNode( float x, float y, float z, uint32 mapid );
Index: /trunk/src/game/World.cpp
===================================================================
--- /trunk/src/game/World.cpp (revision 88)
+++ /trunk/src/game/World.cpp (revision 94)
@@ -37,4 +37,5 @@
 #include "SkillDiscovery.h"
 #include "World.h"
+#include "AccountMgr.h"
 #include "ObjectMgr.h"
 #include "SpellMgr.h"
@@ -2338,13 +2339,8 @@
         if(type == "account")
         {
-            //NO SQL injection as name is escaped
-            loginDatabase.escape_string(nameOrIP);
-            QueryResult *resultAccounts = loginDatabase.PQuery("SELECT id FROM account WHERE username = '%s'",nameOrIP.c_str());
-            if(!resultAccounts)
+            if (!AccountMgr::normilizeString (nameOrIP))
                 return false;
-            Field* fieldsAccount = resultAccounts->Fetch();
-            account = fieldsAccount->GetUInt32();
-
-            delete resultAccounts;
+            
+            account = accmgr.GetId (nameOrIP);
         }
         else if(type == "character")
@@ -2353,16 +2349,9 @@
                 return false;
 
-            //NO SQL injection as name is escaped
-            loginDatabase.escape_string(nameOrIP);
-            QueryResult *resultAccounts = CharacterDatabase.PQuery("SELECT account FROM characters WHERE name = '%s'",nameOrIP.c_str());
-            if(!resultAccounts)
-                return false;
-            Field* fieldsAccount = resultAccounts->Fetch();
-            account = fieldsAccount->GetUInt32();
-
-            delete resultAccounts;
+            account = objmgr.GetPlayerAccountIdByPlayerName (nameOrIP);
         }
         if(!account)
             return false;
+            
         //NO SQL injection as account is uint32
         loginDatabase.PExecute("UPDATE account_banned SET active = '0' WHERE id = '%u'",account);
Index: /trunk/src/game/ObjectMgr.cpp
===================================================================
--- /trunk/src/game/ObjectMgr.cpp (revision 88)
+++ /trunk/src/game/ObjectMgr.cpp (revision 94)
@@ -1356,4 +1356,17 @@
 {
     QueryResult *result = CharacterDatabase.PQuery("SELECT account FROM characters WHERE guid = '%u'", GUID_LOPART(guid));
+    if(result)
+    {
+        uint32 acc = (*result)[0].GetUInt32();
+        delete result;
+        return acc;
+    }
+
+    return 0;
+}
+
+uint32 ObjectMgr::GetPlayerAccountIdByPlayerName(std::string name) const
+{
+    QueryResult *result = CharacterDatabase.PQuery("SELECT account FROM characters WHERE name = '%s'", name.c_str());
     if(result)
     {
