Index: OpenMetaverse/Simulator.cs =================================================================== --- OpenMetaverse/Simulator.cs (revision 2327) +++ OpenMetaverse/Simulator.cs (working copy) @@ -973,6 +973,7 @@ { List dropAck = new List(); int now = Environment.TickCount; + List incrementcounters = new List(); // Resend packets foreach (NetworkManager.OutgoingPacket outgoing in NeedAck.Values) @@ -991,9 +992,13 @@ outgoing.ZeroTickCount(); outgoing.Packet.Header.Resent = true; + incrementcounters.Add(outgoing.Packet.Header.Sequence); ++Stats.ResentPackets; - outgoing.IncrementResendCount(); + // THIS IS A VALUE TYPE, THIS WON'T WORK + // BECAUSE IT ISN'T BEING SAVED BACK TO THE DICTIONARY + // outgoing.IncrementResendCount(); + SendPacket(outgoing.Packet, false); } catch (Exception ex) @@ -1014,6 +1019,13 @@ } } + for (int i = 0; i < incrementcounters.Count; i++) + { + NetworkManager.OutgoingPacket packetToIncrement = NeedAck[incrementcounters[i]]; + packetToIncrement.ResendCount++; + NeedAck[incrementcounters[i]] = packetToIncrement; + } + if (dropAck.Count != 0) { foreach (uint seq in dropAck)