diff --git a/src/common/xmpp/auth_nb.py b/src/common/xmpp/auth_nb.py
index cfbc3d43cd72ea713daaf79c4084f746f58ca1c7..7c89b3b73842489c153bca8011af366ead90a8d7 100644
--- a/src/common/xmpp/auth_nb.py
+++ b/src/common/xmpp/auth_nb.py
@@ -484,15 +484,17 @@ class NonBlockingBind(PlugIn):
 
 	def _on_bound(self, resp):
 		if isResultNode(resp):
-			self.bound.append(resp.getTag('bind').getTagData('jid'))
-			log.info('Successfully bound %s.' % self.bound[-1])
-			jid = JID(resp.getTag('bind').getTagData('jid'))
-			self._owner.User = jid.getNode()
-			self._owner.Resource = jid.getResource()
-			self._owner.SendAndWaitForResponse(Protocol('iq', typ='set',
-				payload=[Node('session', attrs={'xmlns':NS_SESSION})]),
-				func=self._on_session)
-		elif resp:
+			if resp.getTag('bind') and resp.getTag('bind').getTagData('jid'):
+				self.bound.append(resp.getTag('bind').getTagData('jid'))
+				log.info('Successfully bound %s.' % self.bound[-1])
+				jid = JID(resp.getTag('bind').getTagData('jid'))
+				self._owner.User = jid.getNode()
+				self._owner.Resource = jid.getResource()
+				self._owner.SendAndWaitForResponse(Protocol('iq', typ='set',
+					payload=[Node('session', attrs={'xmlns':NS_SESSION})]),
+					func=self._on_session)
+				return
+		if resp:
 			log.error('Binding failed: %s.' % resp.getTag('error'))
 			self.on_bound(None)
 		else: