diff --git a/src/common/zeroconf/client_zeroconf.py b/src/common/zeroconf/client_zeroconf.py
index bd08721263068872d970f65246fe97f35165ac2f..e11dda12ba870f6e7a6f3112b721fbae38967bc9 100644
--- a/src/common/zeroconf/client_zeroconf.py
+++ b/src/common/zeroconf/client_zeroconf.py
@@ -310,8 +310,9 @@ class P2PConnection(IdleObject, PlugIn):
 		if not recv_handler(None) and _tmp == self.on_receive:
 			self.on_receive = recv_handler
 		
-	def send(self, packet, is_message = False):
-		'''Append stanza to the queue of messages to be send. 
+	def send(self, packet, is_message = False, now = False):
+		'''Append stanza to the queue of messages to be send if now is
+		False, else send it instantly. 
 		If supplied data is unicode string, encode it to utf-8.
 		'''
 		if self.state <= 0:
@@ -324,7 +325,11 @@ class P2PConnection(IdleObject, PlugIn):
 		elif not isinstance(r, str): 
 			r = ustr(r).encode('utf-8')
 
-		self.sendqueue.append((r, is_message))
+		if now:
+			self.sendqueue.insert(0, (r, is_message))
+			self._do_send()
+		else:
+			self.sendqueue.append((r, is_message))
 		self._plug_idle()
 		
 	def read_timeout(self):
@@ -617,7 +622,7 @@ class ClientZeroconf:
 			return self.roster.getRoster()
 		return {}
 
-	def send(self, stanza, is_message = False):
+	def send(self, stanza, is_message = False, now = False):
 		stanza.setFrom(self.roster.zeroconf.name)
 		to = stanza.getTo()