Msn disconnect and listener dont fire the presence change

We have this problem the msn disconnect abruptally and we dont recibe the presence change throw the listener

we know the code is all right because it happens sometimes and others not.

The msn connection is lost and when we ask

final Roster roster = session.getXMPPConnection().getRoster();
return roster.getPresence(“msn.server.com”);

its returns available (so the smack dont know either that the msn is down)

any help please