diff --git a/src/chat_control.py b/src/chat_control.py
index 93489437a334538e24ad11fb43fbfbbf20b14d30..77ceca0ffb6b857c62420f28dfad2b825f07424b 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -1239,12 +1239,15 @@ def update_activity(self):
 
 		if activity is not None:
 			if activity in ACTIVITIES:
-				self._activity_image.set_from_pixbuf(
-					gtkgui_helpers.load_activity_icon(activity).get_pixbuf())
 				# Translate standard activities
 				if subactivity in ACTIVITIES[activity]:
-					subactivity = ACTIVITIES[activity] \
-						[subactivity]
+					self._activity_image.set_from_pixbuf(
+						gtkgui_helpers.load_activity_icon(activity, subactivity). \
+						get_pixbuf())
+					subactivity = ACTIVITIES[activity][subactivity]
+				else:
+					self._activity_image.set_from_pixbuf(
+						gtkgui_helpers.load_activity_icon(activity).get_pixbuf())
 				activity = ACTIVITIES[activity]['category']
 			else:
 				self._activity_image.set_from_pixbuf(
diff --git a/src/roster_window.py b/src/roster_window.py
index d84cd04ad87ac8e34c1745d30bd3cab595a93a2e..81fb8ff6a4f9c69ded46d62c62e74e94a304a150 100644
--- a/src/roster_window.py
+++ b/src/roster_window.py
@@ -996,10 +996,19 @@ def draw_account(self, account):
 		and 'activity' in gajim.connections[account].activity \
 		and gajim.connections[account].activity['activity'].strip() \
 		in ACTIVITIES:
-			self.model[child_iter][C_ACTIVITY_PIXBUF] = \
-				gtkgui_helpers.load_activity_icon(
-				gajim.connections[account]. \
-				activity['activity'].strip()).get_pixbuf()
+			if 'subactivity' in gajim.connections[account].activity \
+			and gajim.connections[account].activity['subactivity'].strip() \
+			in ACTIVITIES[gajim.connections[account].activity['activity'].strip()]:
+				self.model[child_iter][C_ACTIVITY_PIXBUF] = \
+					gtkgui_helpers.load_activity_icon(
+					gajim.connections[account].activity['activity'].strip(),
+					gajim.connections[account].activity['subactivity'].strip()). \
+					get_pixbuf()
+		 	else:
+				self.model[child_iter][C_ACTIVITY_PIXBUF] = \
+					gtkgui_helpers.load_activity_icon(
+					gajim.connections[account].activity['activity'].strip()). \
+					get_pixbuf()
 		elif gajim.config.get('show_activity_in_roster') \
 		and 'activity' in gajim.connections[account].activity:
 			self.model[child_iter][C_ACTIVITY_PIXBUF] = \
@@ -1247,8 +1256,15 @@ def draw_activity(self, jid, account):
 		contact = gajim.contacts.get_contact(account, jid)
 		if 'activity' in contact.activity \
 		and contact.activity['activity'].strip() in ACTIVITIES:
-			pixbuf = gtkgui_helpers.load_activity_icon(
-				contact.activity['activity'].strip()).get_pixbuf()
+			if 'subactivity' in contact.activity \
+			and contact.activity['subactivity'].strip() in \
+			ACTIVITIES[contact.activity['activity'].strip()]:
+				pixbuf = gtkgui_helpers.load_activity_icon(
+					contact.activity['activity'].strip(),
+					contact.activity['subactivity'].strip()).get_pixbuf()
+			else:
+				pixbuf = gtkgui_helpers.load_activity_icon(
+					contact.activity['activity'].strip()).get_pixbuf()
 		elif 'activity' in contact.activity:
 			pixbuf = gtkgui_helpers.load_activity_icon(
 				'unknown').get_pixbuf()