--- a/src/devices/mesh/dot11s/hwmp-protocol.cc Thu Oct 15 23:55:06 2009 -0700 +++ a/src/devices/mesh/dot11s/hwmp-protocol.cc Fri Oct 16 14:45:57 2009 +0400 @@ -213,6 +213,8 @@ m_rqueue.clear (); m_rtable = 0; m_mp = 0; + + m_neighboursCallback = MakeNullCallback, uint32_t> (); } bool --- a/src/devices/mesh/dot11s/peer-management-protocol.cc Thu Oct 15 23:55:06 2009 -0700 +++ a/src/devices/mesh/dot11s/peer-management-protocol.cc Fri Oct 16 14:45:57 2009 +0400 @@ -95,6 +95,8 @@ m_neighbourBeacons.clear (); m_plugins.clear (); + + m_peerStatusCallback = MakeNullCallback (); } bool --- a/src/helper/dot11s-installer.cc Thu Oct 15 23:55:06 2009 -0700 +++ a/src/helper/dot11s-installer.cc Fri Oct 16 14:45:57 2009 +0400 @@ -73,9 +73,8 @@ hwmp->SetRoot (); } //Install interaction between HWMP and Peer management protocol: - //PeekPointer()'s to avoid circular Ptr references - pmp->SetPeerLinkStatusCallback (MakeCallback (&HwmpProtocol::PeerLinkStatus, PeekPointer (hwmp))); - hwmp->SetNeighboursCallback (MakeCallback (&PeerManagementProtocol::GetActiveLinks, PeekPointer (pmp))); + pmp->SetPeerLinkStatusCallback (MakeCallback (&HwmpProtocol::PeerLinkStatus, hwmp)); + hwmp->SetNeighboursCallback (MakeCallback (&PeerManagementProtocol::GetActiveLinks, pmp)); return true; } void