diff options
-rw-r--r-- | OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs index 838d42c..afd6a4c 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs | |||
@@ -436,12 +436,20 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
436 | upd = new UserAgentData(); | 436 | upd = new UserAgentData(); |
437 | upd.AgentOnline = true; | 437 | upd.AgentOnline = true; |
438 | upd.Handle = m_UserRegionMap[toAgentID]; | 438 | upd.Handle = m_UserRegionMap[toAgentID]; |
439 | |||
440 | // We need to compare the current regionhandle with the previous region handle | ||
441 | // or the recursive loop will never end because it will never try to lookup the agent again | ||
442 | if (prevRegionHandle == upd.Handle) | ||
443 | { | ||
444 | lookupAgent = true; | ||
445 | } | ||
439 | } | 446 | } |
440 | else | 447 | else |
441 | { | 448 | { |
442 | lookupAgent = true; | 449 | lookupAgent = true; |
443 | } | 450 | } |
444 | } | 451 | } |
452 | |||
445 | 453 | ||
446 | // Are we needing to look-up an agent? | 454 | // Are we needing to look-up an agent? |
447 | if (lookupAgent) | 455 | if (lookupAgent) |