diff -r 4fde8d4a4c76 -r 1c07ef6c6502 scansion/objects/client.lua --- a/scansion/objects/client.lua Fri Jan 01 20:44:44 2016 +0000 +++ b/scansion/objects/client.lua Fri Jan 01 20:45:22 2016 +0000 @@ -73,7 +73,14 @@ sends = function (client, data) local stanza = fill_vars(client.script, assert(parse_xml((table.concat(data):gsub("\t", " "))))); + local wait, done = async.waiter(); + local function handle_drained() + client.stream:unhook("drained", handle_drained); + done(); + end + client.stream:hook("drained", handle_drained); client.stream:send(stanza); + wait(); end; receives = function (client, data)