This is an excerpt from LocalOutgoingServerSession#returnErrorToSender(Packet packet):
There's a discussion thread related to this issue here: http://www.igniterealtime.org/community/thread/30048
This code will throw a NullPointerException if the IQ that is being replied to doesn't have a child element (this is valid for IQ types 'result' and 'error'). It is in any case a violation of RFC-3920 to respond with an 'error' stanza to an 'error' or 'result' stanza.
Something like this should fix the problem. It does no longer notify the sender that a problem occurred though: