diff --git a/src/conversation_textview.py b/src/conversation_textview.py
index 50d041d30d69dc029c35bf49b6aabeaf53e2d361..d3918c19d9e1e44ce22982f17ddeff624d158fb4 100644
--- a/src/conversation_textview.py
+++ b/src/conversation_textview.py
@@ -1289,14 +1289,17 @@ class ConversationTextview(gobject.GObject):
             # We don't have tim for outgoing messages...
             tim = time.localtime()
         current_print_time = gajim.config.get('print_time')
-        direction_mark = i18n.paragraph_direction_mark(unicode(text))
+        if text.startswith('/me '):
+            direction_mark = i18n.paragraph_direction_mark(unicode(text[3:]))
+        else:
+            direction_mark = i18n.paragraph_direction_mark(unicode(text))
         # don't apply direction mark if it's status message
         if kind == 'status':
             direction_mark = i18n.direction_mark
         if current_print_time == 'always' and kind != 'info' and not simple:
             timestamp_str = self.get_time_to_show(tim, direction_mark)
             timestamp = time.strftime(timestamp_str, tim)
-            timestamp = direction_mark + timestamp
+            timestamp = direction_mark + timestamp + direction_mark
             buffer_.insert_with_tags_by_name(end_iter, timestamp,
                 *other_tags_for_time)
         elif current_print_time == 'sometimes' and kind != 'info' and not simple:
@@ -1427,8 +1430,7 @@ class ConversationTextview(gobject.GObject):
             before_str = helpers.from_one_line(before_str)
             after_str = gajim.config.get('after_nickname')
             after_str = helpers.from_one_line(after_str)
-            format_ = direction_mark + before_str + name + direction_mark + \
-                after_str + ' '
+            format_ = before_str + name + direction_mark + after_str + ' '
             buffer_.insert_with_tags_by_name(end_iter, format_, *name_tags)
 
     def print_subject(self, subject, iter_=None):