diff --git a/src/conversation_textview.py b/src/conversation_textview.py
index 03fc4914ff462c49882aac64c42172d58ce28ed7..8fe28418cc80c9f9eda46b9ca8c38462bd105e63 100644
--- a/src/conversation_textview.py
+++ b/src/conversation_textview.py
@@ -624,11 +624,12 @@ def print_subject(self, subject):
 			self.print_empty_line()
 
 	def print_real_text(self, text, text_tags = [], name = None):
-		'''/me is replaces by name if name is given'''
+		'''this adds normal and special text. call this to add text'''
 		buffer = self.get_buffer()
-		# detect urls formatting and if the user has it on emoticons
+		# /me is replaced by name if name is given
 		if name and text.startswith('/me ') or text.startswith('/me\n'):
 			text = '* ' + name + text[3:]
+		# detect urls formatting and if the user has it on emoticons
 		index = self.detect_and_print_special_text(text, text_tags)
 
 		# add the rest of text located in the index and after
diff --git a/src/gtkgui.glade b/src/gtkgui.glade
index 39bf1bd93e66db1bec612fb3e560e7ee38abb42b..0f03aae8f559c3b2058cbb8319e65ddfe99583d2 100644
--- a/src/gtkgui.glade
+++ b/src/gtkgui.glade
@@ -9025,7 +9025,7 @@ Custom</property>
 	  </child>
 
 	  <child>
-	    <widget class="GtkScrolledWindow" id="scrolledwindow16">
+	    <widget class="GtkScrolledWindow" id="scrolledwindow">
 	      <property name="visible">True</property>
 	      <property name="can_focus">True</property>
 	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
@@ -9034,23 +9034,7 @@ Custom</property>
 	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 
 	      <child>
-		<widget class="GtkTextView" id="history_textview">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="editable">False</property>
-		  <property name="overwrite">False</property>
-		  <property name="accepts_tab">True</property>
-		  <property name="justification">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap_mode">GTK_WRAP_WORD</property>
-		  <property name="cursor_visible">False</property>
-		  <property name="pixels_above_lines">0</property>
-		  <property name="pixels_below_lines">0</property>
-		  <property name="pixels_inside_wrap">0</property>
-		  <property name="left_margin">0</property>
-		  <property name="right_margin">0</property>
-		  <property name="indent">0</property>
-		  <property name="text" translatable="yes"></property>
-		</widget>
+		<placeholder/>
 	      </child>
 	    </widget>
 	    <packing>
diff --git a/src/history_window.py b/src/history_window.py
index 6f5ae8bcba0836401a4aca96c160fcb4beafd21b..162c93f0ba685c3c919b52aea8a4aa0e26b21740 100644
--- a/src/history_window.py
+++ b/src/history_window.py
@@ -30,6 +30,7 @@
 import calendar
 
 import gtkgui_helpers
+import conversation_textview
 
 from common import gajim
 from common import helpers
@@ -65,7 +66,10 @@ def __init__(self, jid, account):
 		self.window = xml.get_widget('history_window')
 		
 		self.calendar = xml.get_widget('calendar')
-		self.history_buffer = xml.get_widget('history_textview').get_buffer()
+		scrolledwindow = xml.get_widget('scrolledwindow')
+		self.history_textview = conversation_textview.ConversationTextview(account)
+		scrolledwindow.add(self.history_textview)
+		self.history_buffer = self.history_textview.get_buffer()
 		self.query_entry = xml.get_widget('query_entry')
 		self.search_button = xml.get_widget('search_button')
 		query_builder_button = xml.get_widget('query_builder_button')
@@ -114,23 +118,6 @@ def __init__(self, jid, account):
 		# selected month is current month as calendar defaults to selecting
 		# current date
 		self.calendar.emit('month-changed')
-		
-
-		tag = self.history_buffer.create_tag('incoming')
-		color = gajim.config.get('inmsgcolor')
-		tag.set_property('foreground', color)
-
-		tag = self.history_buffer.create_tag('outgoing')
-		color = gajim.config.get('outmsgcolor')
-		tag.set_property('foreground', color)
-
-		tag = self.history_buffer.create_tag('status')
-		color = gajim.config.get('statusmsgcolor')
-		tag.set_property('foreground', color)
-
-		tag = self.history_buffer.create_tag('time_sometimes')
-		tag.set_property('foreground', 'grey')
-		tag.set_property('justification', gtk.JUSTIFY_CENTER)
 
 		# select and show logs for last date we have logs with contact
 		# and if we don't have logs at all, default to today
@@ -297,9 +284,9 @@ def add_new_line(self, contact_name, tim, kind, show, message):
 
 		message = message + '\n'
 		if tag_msg:
-			buf.insert_with_tags_by_name(end_iter, message, tag_msg)
+			self.history_textview.print_real_text(message, tag_msg)
 		else:
-			buf.insert(end_iter, message)
+			self.history_textview.print_real_text(message)
 
 	def set_unset_expand_on_expander(self, widget):
 		'''expander has to have expand to TRUE so scrolledwindow resizes properly