diff -ur /usr/share/gajim/src/config.py ../BUILD/gajim-0.10.1.6/src/config.py
--- /usr/share/gajim/src/config.py	2006-10-27 10:55:31.000000000 +0200
+++ ../BUILD/gajim-0.10.1.6/src/config.py	2006-11-04 16:42:17.638772000 +0100
@@ -3021,7 +3021,7 @@
 		self.go_online_checkbutton.show()
 		self.show_vcard_checkbutton.show()
 		img = self.xml.get_widget('finish_image')
-		path_to_file = os.path.join(gajim.DATA_DIR, 'pixmaps', 'gajim.png')
+		path_to_file = gtkgui_helpers.get_icon_path('gajim.png', 48)
 		img.set_from_file(path_to_file)
 
 		finish_text = '<big><b>%s</b></big>\n\n%s' % (
diff -ur /usr/share/gajim/src/dialogs.py ../BUILD/gajim-0.10.1.6/src/dialogs.py
--- /usr/share/gajim/src/dialogs.py	2006-10-27 10:55:31.000000000 +0200
+++ ../BUILD/gajim-0.10.1.6/src/dialogs.py	2006-11-04 16:41:37.598772000 +0100
@@ -767,8 +767,7 @@
 		if gtk.pygtk_version >= (2, 8, 0) and gtk.gtk_version >= (2, 8, 0):
 			dlg.props.wrap_license = True
 
-		pixbuf = gtk.gdk.pixbuf_new_from_file(os.path.join(
-			gajim.DATA_DIR, 'pixmaps', 'gajim_about.png'))			
+		pixbuf = gtkgui_helpers.get_icon_pixmap('gajim-about', 64)
 
 		dlg.set_logo(pixbuf)
 		#here you write your name in the form Name FamilyName <someone@somewhere>
@@ -1342,9 +1341,7 @@
 
 		# default image
 		if not path_to_image:
-			path_to_image = os.path.abspath(
-				os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-					'chat_msg_recv.png')) # img to display
+			path_to_image = gtkgui_helpers.get_icon_path('chat_msg_recv.png', 48) # img to display
 
 		if event_type == _('Contact Signed In'):
 			bg_color = 'limegreen'
diff -ur /usr/share/gajim/src/gajim.py ../BUILD/gajim-0.10.1.6/src/gajim.py
--- /usr/share/gajim/src/gajim.py	2006-10-27 10:55:31.000000000 +0200
+++ ../BUILD/gajim-0.10.1.6/src/gajim.py	2006-11-04 16:49:13.438772000 +0100
@@ -153,8 +153,7 @@
 pid_filename += '.pid'
 import dialogs
 if os.path.exists(pid_filename):
-	path_to_file = os.path.join(gajim.DATA_DIR, 'pixmaps/gajim.png')
-	pix = gtk.gdk.pixbuf_new_from_file(path_to_file)
+	pix = gtkgui_helpers.get_icon_pixmap('gajim')
 	gtk.window_set_default_icon(pix) # set the icon to all newly opened wind
 	pritext = _('Gajim is already running')
 	sectext = _('Another instance of Gajim seems to be running\nRun anyway?')
@@ -301,9 +300,8 @@
 
 	def handle_event_connection_lost(self, account, array):
 		# ('CONNECTION_LOST', account, [title, text])
-		path = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-			'connection_lost.png')
-		path = gtkgui_helpers.get_path_to_generic_or_avatar(path)
+		image = gtkgui_helpers.get_icon_path('gajim-connection_lost', 48)
+		path = gtkgui_helpers.get_path_to_generic_or_avatar(image)
 		notify.popup(_('Connection Failed'), account, account,
 			'connection_failed', path, array[0], array[1])
 
@@ -973,8 +971,7 @@
 			array[3]))
 
 		if helpers.allow_showing_notification(account, 'notify_on_new_message'):
-			path = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-				'gc_invitation.png')
+			path = gtkgui_helpers.get_icon_path('gajim-gc_invitation.png', 48)
 			path = gtkgui_helpers.get_path_to_generic_or_avatar(path)
 			event_type = _('Groupchat Invitation')
 			notify.popup(event_type, jid, account, 'gc-invitation', path,
@@ -1076,7 +1073,7 @@
 		self.add_event(account, jid, 'file-send-error', file_props)
 
 		if helpers.allow_showing_notification(account):
-			img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events', 'ft_error.png')
+			img = gtkhui_helpers.get_icon_path('gajim-ft_error', 48)
 			path = gtkgui_helpers.get_path_to_generic_or_avatar(img)
 			event_type = _('File Transfer Error')
 			notify.popup(event_type, jid, account, 'file-send-error', path,
@@ -1087,8 +1084,7 @@
 		gmail_new_messages = int(array[1])
 		gmail_messages_list = array[2]
 		if gajim.config.get('notify_on_new_gmail_email'):
-			img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-				'new_email_recv.png')
+			img = gtkgui_helpers.get_image_path('gajim-new_email_recv', 48)
 			title = _('New mail on %(gmail_mail_address)s') % \
 				{'gmail_mail_address': jid}
 			text = i18n.ngettext('You have %d new mail conversation',
@@ -1211,8 +1207,7 @@
 
 		if helpers.allow_showing_notification(account):
 			# check if we should be notified
-			img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events', 'ft_error.png')
-
+			img = gtkgui_helpers.get_icon_path('gajim-ft_error', 48)
 			path = gtkgui_helpers.get_path_to_generic_or_avatar(img)
 			event_type = _('File Transfer Error')
 			notify.popup(event_type, jid, account, msg_type, path,
@@ -1233,8 +1228,7 @@
 		self.add_event(account, jid, 'file-request', file_props)
 
 		if helpers.allow_showing_notification(account):
-			img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-				'ft_request.png')
+			img = gtkgui_helpers.get_icon_path('gajim-ft_request', 48)
 			txt = _('%s wants to send you a file.') % gajim.get_name_from_jid(
 				account, jid)
 			path = gtkgui_helpers.get_path_to_generic_or_avatar(img)
@@ -1299,11 +1293,11 @@
 				if event_type == _('File Transfer Completed'):
 					txt = _('You successfully received %(filename)s from %(name)s.')\
 						% {'filename': filename, 'name': name}
-					img = 'ft_done.png'
+					img = 'gajim-ft_done'
 				else: # ft stopped
 					txt = _('File transfer of %(filename)s from %(name)s stopped.')\
 						% {'filename': filename, 'name': name}
-					img = 'ft_stopped.png'
+					img = 'gajim-ft_stopped'
 			else:
 				receiver = file_props['receiver']
 				if hasattr(receiver, 'jid'):
@@ -1316,12 +1310,12 @@
 				if event_type == _('File Transfer Completed'):
 					txt = _('You successfully sent %(filename)s to %(name)s.')\
 						% {'filename': filename, 'name': name}
-					img = 'ft_done.png'
+					img = 'gajim-ft_done'
 				else: # ft stopped
 					txt = _('File transfer of %(filename)s to %(name)s stopped.')\
 						% {'filename': filename, 'name': name}
-					img = 'ft_stopped.png'
-			img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events', img)
+					img = 'gajim-ft_stopped'
+			img = gtkgui_helpers.get_icon_path(img, 48)
 			path = gtkgui_helpers.get_path_to_generic_or_avatar(img)
 		else:
 			txt = ''
@@ -1947,8 +1941,8 @@
 
 		self.show_vcard_when_connect = []
 
-		path_to_file = os.path.join(gajim.DATA_DIR, 'pixmaps/gajim.png')
-		pix = gtk.gdk.pixbuf_new_from_file(path_to_file)
+		pix = gtkgui_helpers.get_icon_pixmap('gajim')
+		path_to_file = gtkgui_helpers.get_icon_path('gajim')
 		gtk.window_set_default_icon(pix) # set the icon to all newly opened windows
 		self.roster.window.set_icon_from_file(path_to_file) # and to roster window
 		self.sleeper = common.sleepy.Sleepy(
diff -ur /usr/share/gajim/src/gtkgui_helpers.py ../BUILD/gajim-0.10.1.6/src/gtkgui_helpers.py
--- /usr/share/gajim/src/gtkgui_helpers.py	2006-10-27 10:55:31.000000000 +0200
+++ ../BUILD/gajim-0.10.1.6/src/gtkgui_helpers.py	2006-11-04 16:53:53.468772000 +0100
@@ -48,6 +48,25 @@
 screen_w = gtk.gdk.screen_width()
 screen_h = gtk.gdk.screen_height()
 
+gtk_icon_theme = gtk.icon_theme_get_default()
+
+def get_icon_pixmap(icon_name, size = 16):
+	try:
+		return gtk_icon_theme.load_icon(icon_name, size, 0)
+	except gobject.GError, e:
+		print ("Unable to load icon %s" % icon_name), e
+
+def get_icon_path(icon_name, size = 16):
+	try:
+		icon_info = gtk_icon_theme.lookup_icon(icon_name, size, 0)
+		if icon_info == None:
+			print "Icon not found: %s" % icon_name
+			return ""
+		else:
+			return icon_info.get_filename()
+	except gobject.GError, e:
+		print ("Unable to find icon %s" % icon_name), e
+
 GLADE_DIR = os.path.join('..', 'data', 'glade')
 def get_glade(file_name, root = None):
 	file_path = os.path.join(GLADE_DIR, file_name)
diff -ur /usr/share/gajim/src/history_manager.py ../BUILD/gajim-0.10.1.6/src/history_manager.py
--- /usr/share/gajim/src/history_manager.py	2006-10-27 10:55:31.000000000 +0200
+++ ../BUILD/gajim-0.10.1.6/src/history_manager.py	2006-11-04 16:46:50.218772000 +0100
@@ -56,7 +56,7 @@
 
 class HistoryManager:
 	def __init__(self):
-		path_to_file = os.path.join(gajim.DATA_DIR, 'pixmaps/gajim.png')
+		path_to_file = gtkgui_helpers.get_icon_path('gajim')
 		pix = gtk.gdk.pixbuf_new_from_file(path_to_file)
 		gtk.window_set_default_icon(pix) # set the icon to all newly opened windows
 		
diff -ur /usr/share/gajim/src/notify.py ../BUILD/gajim-0.10.1.6/src/notify.py
--- /usr/share/gajim/src/notify.py	2006-10-27 10:55:31.000000000 +0200
+++ ../BUILD/gajim-0.10.1.6/src/notify.py	2006-11-04 16:40:12.508772000 +0100
@@ -201,7 +201,7 @@
 				if status_message:
 					text =  text + " : " + status_message
 				popup(_('Contact Changed Status'), jid, account,
-					path_to_image = path, title = title, text = text)
+					image = path, title = title, text = text)
 			elif event == 'contact_connected':
 				title = _('%(nickname)s Signed In') % \
 					{'nickname': gajim.get_name_from_jid(account, jid)}
@@ -209,7 +209,7 @@
 				if status_message:
 					text = status_message
 				popup(_('Contact Signed In'), jid, account,
-					path_to_image = path, title = title, text = text)
+					image = path, title = title, text = text)
 			elif event == 'contact_disconnected':
 				title = _('%(nickname)s Signed Out') % \
 					{'nickname': gajim.get_name_from_jid(account, jid)}
@@ -217,33 +217,29 @@
 				if status_message:
 					text = status_message
 				popup(_('Contact Signed Out'), jid, account,
-					path_to_image = path, title = title, text = text)
+					image = path, title = title, text = text)
 		elif event == 'new_message':
 			if message_type == 'normal': # single message
 				event_type = _('New Single Message')
-				img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-					'single_msg_recv.png')
+				img = 'gajim-single_msg_recv'
 				title = _('New Single Message from %(nickname)s') % \
 					{'nickname': nickname}
 				text = message
 			elif message_type == 'pm': # private message
 				event_type = _('New Private Message')
 				room_name = gajim.get_nick_from_jid(jid)
-				img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-					'priv_msg_recv.png')
+				img = 'gajim-priv_msg_recv'
 				title = _('New Private Message from group chat %s') % room_name
 				text = _('%(nickname)s: %(message)s') % {'nickname': nickname,
 					'message': message}
 			else: # chat message
 				event_type = _('New Message')
-				img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-					'chat_msg_recv.png')
+				img = 'gajim-chat_msg_recv.png'
 				title = _('New Message from %(nickname)s') % \
 					{'nickname': nickname}
 				text = message
-			path = gtkgui_helpers.get_path_to_generic_or_avatar(img)
 			popup(event_type, jid, account, message_type,
-				path_to_image = path, title = title, text = text)
+				image = img, title = title, text = text)
 
 	if do_sound:
 		snd_file = None
@@ -275,7 +271,7 @@
 		except:
 			pass
 
-def popup(event_type, jid, account, msg_type = '', path_to_image = None,
+def popup(event_type, jid, account, msg_type = '', image = None,
 	title = None, text = None):
 	'''Notifies a user of an event. It first tries to a valid implementation of
 	the Desktop Notification Specification. If that fails, then we fall back to
@@ -286,7 +282,7 @@
 	if gajim.config.get('use_notif_daemon') and dbus_support.supported:
 		try:
 			DesktopNotification(event_type, jid, account, msg_type,
-				path_to_image, title, text)
+				image, title, text)
 			return	# sucessfully did D-Bus Notification procedure!
 		except dbus.dbus_bindings.DBusException, e:
 			# Connection to D-Bus failed
@@ -301,10 +297,10 @@
 		if not title:
 			title = event_type
 		# default image
-		if not path_to_image:
-			path_to_image = os.path.abspath(
-				os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-					'chat_msg_recv.png')) # img to display
+		if not image:
+			path_to_image = gtkgui_helpers.get_icon_path('gajim-chat_msg_recv', 48) # img to display
+		else:
+			path_to_image = gtkgui_helpers.get_icon_path(image, 48)
 		
 		
 		notification = pynotify.Notification(title, text)
@@ -433,9 +429,7 @@
 			ntype = 'connection.failed'
 		else:
 			# default failsafe values
-			self.path_to_image = os.path.abspath(
-				os.path.join(gajim.DATA_DIR, 'pixmaps', 'events',
-					'chat_msg_recv.png')) # img to display
+			self.path_to_image = gtkgui_helpers.get_icon_path('gajim-chat_msg_recv', 48) # img to display
 			ntype = 'im' # Notification Type
 
 		self.notif = dbus_support.get_notifications_interface()
diff -ur /usr/share/gajim/src/roster_window.py ../BUILD/gajim-0.10.1.6/src/roster_window.py
--- /usr/share/gajim/src/roster_window.py	2006-10-27 10:55:31.000000000 +0200
+++ ../BUILD/gajim-0.10.1.6/src/roster_window.py	2006-11-04 16:46:03.048772000 +0100
@@ -1417,8 +1417,7 @@
 
 			if not our_jid:
 				# add a special img for rename menuitem
-				path_to_kbd_input_img = os.path.join(gajim.DATA_DIR, 'pixmaps',
-					'kbd_input.png')
+				path_to_kbd_input_img = gtkgui_helpers.get_icon_path('gajim-kbd_input')
 				img = gtk.Image()
 				img.set_from_file(path_to_kbd_input_img)
 				rename_menuitem.set_image(img)
@@ -1536,8 +1535,7 @@
 
 		if not our_jid:
 			# add a special img for rename menuitem
-			path_to_kbd_input_img = os.path.join(gajim.DATA_DIR, 'pixmaps',
-				'kbd_input.png')
+			path_to_kbd_input_img = gtkgui_helpers.get_icon_path('kbd_input.png')
 			img = gtk.Image()
 			img.set_from_file(path_to_kbd_input_img)
 			rename_menuitem.set_image(img)
@@ -1829,8 +1827,7 @@
 
 		rename_item = gtk.ImageMenuItem(_('Re_name'))
 		# add a special img for rename menuitem
-		path_to_kbd_input_img = os.path.join(gajim.DATA_DIR, 'pixmaps',
-			'kbd_input.png')
+		path_to_kbd_input_img = gtkgui_helpers.get_icon_path('gajim-kbd_input')
 		img = gtk.Image()
 		img.set_from_file(path_to_kbd_input_img)
 		rename_item.set_image(img)
@@ -1890,8 +1887,7 @@
 		
 		item = gtk.ImageMenuItem(_('_Rename'))
 		# add a special img for rename menuitem
-		path_to_kbd_input_img = os.path.join(gajim.DATA_DIR, 'pixmaps',
-			'kbd_input.png')
+		path_to_kbd_input_img = gtkgui_helpers.get_icon_path('gajim-kbd_input')
 		img = gtk.Image()
 		img.set_from_file(path_to_kbd_input_img)
 		item.set_image(img)
@@ -1976,7 +1972,7 @@
 			sub_menu.append(item)
 
 			item = gtk.ImageMenuItem(_('_Change Status Message'))
-			path = os.path.join(gajim.DATA_DIR, 'pixmaps', 'kbd_input.png')
+			path = gtkgui_helpers.get_icon_path('gajim-kbd_input')
 			img = gtk.Image()
 			img.set_from_file(path)
 			item.set_image(img)
@@ -2038,7 +2034,7 @@
 			sub_menu.append(item)
 
 			item = gtk.ImageMenuItem(_('_Change Status Message'))
-			path = os.path.join(gajim.DATA_DIR, 'pixmaps', 'kbd_input.png')
+			path = gtkgui_helpers.get_icon_path('gajim-kbd_input')
 			img = gtk.Image()
 			img.set_from_file(path)
 			item.set_image(img)
@@ -4067,7 +4063,7 @@
 		# Add a Separator (self.iter_is_separator() checks on string SEPARATOR)
 		liststore.append(['SEPARATOR', None, '', True])
 
-		path = os.path.join(gajim.DATA_DIR, 'pixmaps', 'kbd_input.png')
+		path = gtk_gui_helpers.get_icon_path('gajim-kbd_input')
 		img = gtk.Image()
 		img.set_from_file(path)
 		# sensitivity to False because by default we're offline
diff -ur /usr/share/gajim/src/systray.py ../BUILD/gajim-0.10.1.6/src/systray.py
--- /usr/share/gajim/src/systray.py	2006-10-27 10:55:31.000000000 +0200
+++ ../BUILD/gajim-0.10.1.6/src/systray.py	2006-11-04 16:43:11.538772000 +0100
@@ -139,7 +139,7 @@
 		sub_menu.append(item)
 
 		item = gtk.ImageMenuItem(_('_Change Status Message...'))
-		path = os.path.join(gajim.DATA_DIR, 'pixmaps', 'kbd_input.png')
+		path = gtkgui_helpers.get_icon_path('gajim-kbd_input')
 		img = gtk.Image()
 		img.set_from_file(path)
 		item.set_image(img)
