I also encountered the same problem as a client developer and initially thought it was a smack issue:
I already linked this issue there. Anyway after some debugging and trace captures we concluded that this is an Openfire issue. Maybe stream termination decision could be reconsidered until a fix for stream management is ready.