diff --git a/src/common/zeroconf/client_zeroconf.py b/src/common/zeroconf/client_zeroconf.py
index da15b7ad5ec730d0de0ce7b9d44e435e67c925c3..8614acbf48b1fd0450362227df4b6e45fd925bf3 100644
--- a/src/common/zeroconf/client_zeroconf.py
+++ b/src/common/zeroconf/client_zeroconf.py
@@ -250,7 +250,6 @@ def _register_handlers(self):
 			common.xmpp.NS_BYTESTREAM)
 	
 class P2PConnection(IdleObject, PlugIn):
-	''' class for sending file to socket over socks5 '''
 	def __init__(self, sock_hash, _sock, host = None, port = None, caller = None, on_connect = None, client = None):
 		IdleObject.__init__(self)
 		self._owner = client
diff --git a/src/common/zeroconf/connection_handlers_zeroconf.py b/src/common/zeroconf/connection_handlers_zeroconf.py
index 238de3ee8ce82b58b575080e05cdc54335d21a57..9aa8f3089562c5977e1d5e4ed80ea49bf9daeff5 100644
--- a/src/common/zeroconf/connection_handlers_zeroconf.py
+++ b/src/common/zeroconf/connection_handlers_zeroconf.py
@@ -18,16 +18,12 @@
 ## GNU General Public License for more details.
 ##
 
-import os
 import time
-import base64
-import sha
 import socket
-import sys
 
 from calendar import timegm
 
-#import socks5
+from common import socks5
 import common.xmpp
 
 from common import GnuPG
@@ -518,173 +514,8 @@ def _siErrorCB(self, con, iq_obj):
 		self.dispatch('FILE_REQUEST_ERROR', (jid, file_props, ''))
 		raise common.xmpp.NodeProcessed
 
-
-
-class ConnectionVcard:
+class ConnectionHandlersZeroconf(ConnectionBytestream):
 	def __init__(self):
-		self.vcard_sha = None
-		self.vcard_shas = {} # sha of contacts
-		self.room_jids = [] # list of gc jids so that vcard are saved in a folder
-		
-	def add_sha(self, p, send_caps = True):
-		'''
-		c = p.setTag('x', namespace = common.xmpp.NS_VCARD_UPDATE)
-		if self.vcard_sha is not None:
-			c.setTagData('photo', self.vcard_sha)
-		if send_caps:
-			return self.add_caps(p)
-		return p
-		'''
-		pass
-	
-	def add_caps(self, p):
-		'''
-		# advertise our capabilities in presence stanza (jep-0115)
-		c = p.setTag('c', namespace = common.xmpp.NS_CAPS)
-		c.setAttr('node', 'http://gajim.org/caps')
-		c.setAttr('ext', 'ftrans')
-		c.setAttr('ver', gajim.version)
-		return p
-		'''
-		pass
-	
-	def node_to_dict(self, node):
-		dict = {}
-		
-		for info in node.getChildren():
-			name = info.getName()
-			if name in ('ADR', 'TEL', 'EMAIL'): # we can have several
-				if not dict.has_key(name):
-					dict[name] = []
-				entry = {}
-				for c in info.getChildren():
-					 entry[c.getName()] = c.getData()
-				dict[name].append(entry)
-			elif info.getChildren() == []:
-				dict[name] = info.getData()
-			else:
-				dict[name] = {}
-				for c in info.getChildren():
-					 dict[name][c.getName()] = c.getData()
-		
-		return dict
-
-	def save_vcard_to_hd(self, full_jid, card):
-		jid, nick = gajim.get_room_and_nick_from_fjid(full_jid)
-		puny_jid = helpers.sanitize_filename(jid)
-		path = os.path.join(gajim.VCARD_PATH, puny_jid)
-		if jid in self.room_jids or os.path.isdir(path):
-			# remove room_jid file if needed
-			if os.path.isfile(path):
-				os.remove(path)
-			# create folder if needed
-			if not os.path.isdir(path):
-				os.mkdir(path, 0700)
-			puny_nick = helpers.sanitize_filename(nick)
-			path_to_file = os.path.join(gajim.VCARD_PATH, puny_jid, puny_nick)
-		else:
-			path_to_file = path
-		fil = open(path_to_file, 'w')
-		fil.write(str(card))
-		fil.close()
-	
-	def get_cached_vcard(self, fjid, is_fake_jid = False):
-		'''return the vcard as a dict
-		return {} if vcard was too old
-		return None if we don't have cached vcard'''
-		jid, nick = gajim.get_room_and_nick_from_fjid(fjid)
-		puny_jid = helpers.sanitize_filename(jid)
-		if is_fake_jid:
-			puny_nick = helpers.sanitize_filename(nick)
-			path_to_file = os.path.join(gajim.VCARD_PATH, puny_jid, puny_nick)
-		else:
-			path_to_file = os.path.join(gajim.VCARD_PATH, puny_jid)
-		if not os.path.isfile(path_to_file):
-			return None
-		# We have the vcard cached
-		f = open(path_to_file)
-		c = f.read()
-		f.close()
-		card = common.xmpp.Node(node = c)
-		vcard = self.node_to_dict(card)
-		if vcard.has_key('PHOTO'):
-			if not isinstance(vcard['PHOTO'], dict):
-				del vcard['PHOTO']
-			elif vcard['PHOTO'].has_key('SHA'):
-				cached_sha = vcard['PHOTO']['SHA']
-				if self.vcard_shas.has_key(jid) and self.vcard_shas[jid] != \
-					cached_sha:
-					# user change his vcard so don't use the cached one
-					return {}
-		vcard['jid'] = jid
-		vcard['resource'] = gajim.get_resource_from_jid(fjid)
-		return vcard
-
-	def request_vcard(self, jid = None, is_fake_jid = False):
-		'''request the VCARD. If is_fake_jid is True, it means we request a vcard
-		to a fake jid, like in private messages in groupchat'''
-		if not self.connection:
-			return
-		'''
-		iq = common.xmpp.Iq(typ = 'get')
-		if jid:
-			iq.setTo(jid)
-		iq.setTag(common.xmpp.NS_VCARD + ' vCard')
-
-		id = self.connection.getAnID()
-		iq.setID(id)
-		self.awaiting_answers[id] = (VCARD_ARRIVED, jid)
-		if is_fake_jid:
-			room_jid, nick = gajim.get_room_and_nick_from_fjid(jid)
-			if not room_jid in self.room_jids:
-				self.room_jids.append(room_jid)
-		self.connection.send(iq)
-			#('VCARD', {entry1: data, entry2: {entry21: data, ...}, ...})
-		'''
-		pass
-		
-	def send_vcard(self, vcard):
-		if not self.connection:
-			return
-		'''
-		iq = common.xmpp.Iq(typ = 'set')
-		iq2 = iq.setTag(common.xmpp.NS_VCARD + ' vCard')
-		for i in vcard:
-			if i == 'jid':
-				continue
-			if isinstance(vcard[i], dict):
-				iq3 = iq2.addChild(i)
-				for j in vcard[i]:
-					iq3.addChild(j).setData(vcard[i][j])
-			elif type(vcard[i]) == type([]):
-				for j in vcard[i]:
-					iq3 = iq2.addChild(i)
-					for k in j:
-						iq3.addChild(k).setData(j[k])
-			else:
-				iq2.addChild(i).setData(vcard[i])
-
-		id = self.connection.getAnID()
-		iq.setID(id)
-		self.connection.send(iq)
-
-		# Add the sha of the avatar
-		if vcard.has_key('PHOTO') and isinstance(vcard['PHOTO'], dict) and \
-		vcard['PHOTO'].has_key('BINVAL'):
-			photo = vcard['PHOTO']['BINVAL']
-			photo_decoded = base64.decodestring(photo)
-			our_jid = gajim.get_jid_from_account(self.name)
-			gajim.interface.save_avatar_files(our_jid, photo_decoded)
-			avatar_sha = sha.sha(photo_decoded).hexdigest()
-			iq2.getTag('PHOTO').setTagData('SHA', avatar_sha)
-
-		self.awaiting_answers[id] = (VCARD_PUBLISHED, iq2)
-		'''
-		pass
-		
-class ConnectionHandlersZeroconf(ConnectionVcard, ConnectionBytestream):
-	def __init__(self):
-		ConnectionVcard.__init__(self)
 		ConnectionBytestream.__init__(self)
 		# List of IDs we are waiting answers for {id: (type_of_request, data), }
 		self.awaiting_answers = {}
@@ -790,15 +621,6 @@ def _messageCB(self, ip, con, msg):
 				self.dispatch('MSG', (frm, msgtxt, tim, encrypted, 'normal',
 					subject, chatstate, msg_id, composing_jep, user_nick))
 	# END messageCB
-	'''
-	def build_http_auth_answer(self, iq_obj, answer):
-		if answer == 'yes':
-			iq = iq_obj.buildReply('result')
-		elif answer == 'no':
-			iq = iq_obj.buildReply('error')
-			iq.setError('not-authorized', 401)
-		self.connection.send(iq)
-	'''
 	
 	def parse_data_form(self, node):
 		dic = {}
@@ -863,44 +685,14 @@ def store_metacontacts(self, tags):
 		# serverside metacontacts  are not supported with zeroconf 
 		# (there is no server)
 		pass
+
 	def remove_transfers_for_contact(self, contact):
 		''' stop all active transfer for contact '''
-		'''for file_props in self.files_props.values():
-			if self.is_transfer_stoped(file_props):
-				continue
-			receiver_jid = unicode(file_props['receiver']).split('/')[0]
-			if contact.jid == receiver_jid:
-				file_props['error'] = -5
-				self.remove_transfer(file_props)
-				self.dispatch('FILE_REQUEST_ERROR', (contact.jid, file_props))
-			sender_jid = unicode(file_props['sender']).split('/')[0]
-			if contact.jid == sender_jid:
-				file_props['error'] = -3
-				self.remove_transfer(file_props)
-		'''
 		pass
-	
+
 	def remove_all_transfers(self):
 		''' stops and removes all active connections from the socks5 pool '''
-		'''
-		for file_props in self.files_props.values():
-			self.remove_transfer(file_props, remove_from_list = False)
-		del(self.files_props)
-		self.files_props = {}
-		'''
 		pass
-	
-	def remove_transfer(self, file_props, remove_from_list = True):
-		'''
-		if file_props is None:
-			return
-		self.disconnect_transfer(file_props)
-		sid = file_props['sid']
-		gajim.socks5queue.remove_file_props(self.name, sid)
 
-		if remove_from_list:
-			if self.files_props.has_key('sid'):
-				del(self.files_props['sid'])
-		'''
+	def remove_transfer(self, file_props, remove_from_list = True):
 		pass
-			
diff --git a/src/common/zeroconf/connection_zeroconf.py b/src/common/zeroconf/connection_zeroconf.py
index b5dfd5090e71d68a96195522465a8bbe1d50e167..148893c7f4a5998417c510327158a5918c465335 100644
--- a/src/common/zeroconf/connection_zeroconf.py
+++ b/src/common/zeroconf/connection_zeroconf.py
@@ -37,12 +37,9 @@
 	signal.signal(signal.SIGPIPE, signal.SIG_DFL)
 import getpass
 import gobject
-import notify
 
-from common import helpers
 from common import gajim
 from common import GnuPG
-from common.zeroconf import connection_handlers_zeroconf
 from common.zeroconf import client_zeroconf
 from connection_handlers_zeroconf import *
 
diff --git a/src/common/zeroconf/roster_zeroconf.py b/src/common/zeroconf/roster_zeroconf.py
index 269d3dbb2355e156b525143a68da0126c5142de4..ea676ac23c92f30577d4afd622b77c6bb6fdf410 100644
--- a/src/common/zeroconf/roster_zeroconf.py
+++ b/src/common/zeroconf/roster_zeroconf.py
@@ -134,7 +134,7 @@ def getMessage(self, jid):
 
 	def getShow(self, jid):
 		#print 'roster_zeroconf.py: getShow'
-		return getStatus(jid)
+		return self.getStatus(jid)
 
 	def getPriority(jid):
 		return 5
diff --git a/src/common/zeroconf/zeroconf.py b/src/common/zeroconf/zeroconf.py
index fbaadfd1d83fc4487454f9708a625444a46f1eca..154694fefab072532db823506237ff4dd5f123ca 100755
--- a/src/common/zeroconf/zeroconf.py
+++ b/src/common/zeroconf/zeroconf.py
@@ -12,11 +12,7 @@
 ## GNU General Public License for more details.
 ##
 
-import os
-import sys
-import socket
 from common import gajim
-from common import xmpp
 
 try:
 	import dbus.glib
@@ -365,7 +361,7 @@ def connect(self):
 			self.domain_browser.connect_to_signal('ItemNew', self.new_domain_callback)
 			self.domain_browser.connect_to_signal('Failure', self.error_callback)
 		else:
-			self.browse_domain(self.avahi.IF_UNSPEC, self.avahi.PROTO_UNSPEC, domain)
+			self.browse_domain(self.avahi.IF_UNSPEC, self.avahi.PROTO_UNSPEC, self.domain)
 		
 		return True
 
@@ -397,8 +393,6 @@ def resolve_all(self):
 				reply_handler=self.service_resolved_all_callback, error_handler=self.error_callback)
 
 	def get_contacts(self):
-		if not jid in self.contacts:
-			return None
 		return self.contacts
 
 	def get_contact(self, jid):