Index: trunk/src/game/Map.h
===================================================================
--- trunk/src/game/Map.h (revision 44)
+++ trunk/src/game/Map.h (revision 61)
@@ -235,4 +235,6 @@
         bool isCellMarked(uint32 pCellId) { return marked_cells.test(pCellId); }
         void markCell(uint32 pCellId) { marked_cells.set(pCellId); }
+        Creature* GetCreatureInMap(uint64 guid);
+        GameObject* GetGameObjectInMap(uint64 guid);
     private:
         void LoadVMap(int pX, int pY);
Index: trunk/src/game/Unit.h
===================================================================
--- trunk/src/game/Unit.h (revision 59)
+++ trunk/src/game/Unit.h (revision 61)
@@ -1219,5 +1219,4 @@
         void removeFollower(FollowerReference* /*pRef*/ ) { /* nothing to do yet */ }
         static Unit* GetUnit(WorldObject& object, uint64 guid);
-        template<class T> static T* GetObjectInWorld(uint64 guid, T* /*fake*/);
 
         MotionMaster* GetMotionMaster() { return &i_motionMaster; }
Index: trunk/src/game/Unit.cpp
===================================================================
--- trunk/src/game/Unit.cpp (revision 60)
+++ trunk/src/game/Unit.cpp (revision 61)
@@ -9397,10 +9397,4 @@
 }
 
-template<class T> T*
-Unit::GetObjectInWorld(uint64 guid, T* /*fake*/)
-{
-    return ObjectAccessor::GetObjectInWorld(uint64 guid, T* /*fake*/);
-}
-
 bool Unit::isVisibleForInState( Player const* u, bool inVisibleList ) const
 {
Index: trunk/src/game/Map.cpp
===================================================================
--- trunk/src/game/Map.cpp (revision 44)
+++ trunk/src/game/Map.cpp (revision 61)
@@ -1561,4 +1561,18 @@
 }
 
+Creature * Map::GetCreatureInMap(uint64 guid)
+{
+    Creature * obj = HashMapHolder<Creature>::Find(guid);
+    if(obj && obj->GetInstanceId() != GetInstanceId()) obj = NULL;
+    return obj;
+}
+
+GameObject * Map::GetGameObjectInMap(uint64 guid)
+{
+    GameObject * obj = HashMapHolder<GameObject>::Find(guid);
+    if(obj && obj->GetInstanceId() != GetInstanceId()) obj = NULL;
+    return obj;
+}
+
 void InstanceMap::CreateInstanceData(bool load)
 {
