diff --git a/src/common/i18n.py b/src/common/i18n.py
index e6e7d3f9b1e19ede00f0334e4dff695e239b44a1..94c8fc2ef853f237bee69822985f327af22e85c5 100644
--- a/src/common/i18n.py
+++ b/src/common/i18n.py
@@ -5,6 +5,7 @@
 ## Copyright (C) 2004 Vincent Hanquez <tab AT snarc.org>
 ## Copyright (C) 2004-2007 Yann Leboulanger <asterix AT lagaule.org>
 ## Copyright (C) 2005-2006 Nikos Kouremenos <kourem AT gmail.com>
+## Copyright (C) 2009 Benjamin Richter <br AT waldteufel-online.net>
 ##
 ## This file is part of Gajim.
 ##
@@ -25,6 +26,19 @@ import locale
 import gettext
 import os
 import defs
+import unicodedata
+
+def paragraph_direction_mark(text):
+	"""Determine paragraph writing direction according to
+	http://www.unicode.org/reports/tr9/#The_Paragraph_Level
+	
+	Returns either Unicode LTR mark or RTL mark."""
+	for c in text:
+		bidi = unicodedata.bidirectional(c)
+		if bidi == 'L': return u'\u200E'
+		elif bidi == 'AL' or bidi == 'R': return u'\u200F' 
+
+	return u'\u200E'
 
 APP = 'gajim'
 DIR = defs.localedir
diff --git a/src/roster_window.py b/src/roster_window.py
index 69e35c2509bac91f1948ef95049b9f7fbd56dda6..7bc4c1cf1c215dabd19766ca754b12ca4ab4b1d1 100644
--- a/src/roster_window.py
+++ b/src/roster_window.py
@@ -1113,7 +1113,9 @@ class RosterWindow:
 			if c.show not in ('error', 'offline'):
 				nb_connected_contact += 1
 		if nb_connected_contact > 1:
-			name += ' (' + unicode(nb_connected_contact) + ')'
+			# switch back to default writing direction
+			name += i18n.paragraph_direction_mark(unicode(name))
+			name += u' (%d)' % nb_connected_contact
 
 		# show (account_name) if there are 2 contact with same jid
 		# in merged mode