-add_iq_handler("c2s", xmlns_version, handle_version_request);
-add_iq_handler("s2sin", xmlns_version, handle_version_request);
+version = version:match("^%s*(.-)%s*$") or version;
+
+local query = st.stanza("query", {xmlns = "jabber:iq:version"})
+ :tag("name"):text("Prosody"):up()
+ :tag("version"):text(prosody.version):up()
+ :tag("os"):text(version);
+
+module:hook("iq/host/jabber:iq:version:query", function(event)
+ local stanza = event.stanza;
+ if stanza.attr.type == "get" and stanza.attr.to == module.host then
+ event.origin.send(st.reply(stanza):add_child(query));
+ return true;
+ end
+end);