diff --git a/lib/aethyr/core/render/display.rb b/lib/aethyr/core/render/display.rb
index fb61c1b48520e6b54f7e78a2de1785073bd3cd8b..40bbca9410618432e1bdd1b9f43a0130db4ad561 100644
--- a/lib/aethyr/core/render/display.rb
+++ b/lib/aethyr/core/render/display.rb
@@ -186,6 +186,28 @@ class Display
     @socket.puts message
   end
 
+  def split_message(message, cols = 80)
+    new_message = message.gsub(/\t/, '     ')
+    new_message.tr!("\r", '')
+
+    last_was_text = false
+    buffer_lines = []
+    new_message.split(/(\n)/) do |line|
+      next if line.nil? || line.length == 0
+      if line.length == 1 && line.start_with?("\n")
+        if last_was_text
+          last_was_text = false
+        else
+          buffer_lines << ""
+        end
+      else
+        buffer_lines.concat(word_wrap(line, cols))
+        last_was_text = true
+      end
+    end
+    return buffer_lines
+  end
+
   def parse_buffer(channel = :main, cols = 80)
     @buffer_lines[channel] = nil
     buffer = @buffer[channel]
@@ -194,23 +216,7 @@ class Display
     @buffer_lines[channel]  = buffer_lines
 
     buffer.each do |message|
-      new_message = message.gsub(/\t/, '     ')
-      new_message.tr!("\r", '')
-
-      last_was_text = false
-      new_message.split(/(\n)/) do |line|
-        next if line.nil? || line.length == 0
-        if line.length == 1 && line.start_with?("\n")
-          if last_was_text
-            last_was_text = false
-          else
-            buffer_lines << ""
-          end
-        else
-          buffer_lines.concat(word_wrap(line))
-          last_was_text = true
-        end
-      end
+      buffer_lines.concat(split_message(message, cols))
     end
   end
 
@@ -234,8 +240,9 @@ class Display
 
         if next_line_length + new_line_length >= cols
           if new_line_length == 0
-            lines << next_line
+            lines << new_line + next_line
             next_line = ""
+            new_line = ""
             next_line_length = 0
           else
             lines << new_line
@@ -320,15 +327,15 @@ class Display
   def render(message, window = @window_main, add_newline: true)
 
     message = message.tr("\r", '')
-    lines = message.split("\n");
-    return if lines.empty?
-    if lines.length > 1
-      lines.each do |line|
-        render line, window, add_newline: add_newline
-      end
-      return
-    end
-    message = lines[0]
+    # lines = message.split("\n");
+    # return if lines.empty?
+    # if lines.length > 1
+    #   lines.each do |line|
+    #     render line, window, add_newline: add_newline
+    #   end
+    #   return
+    # end
+    # message = lines[0]
 
     message += "\n" if add_newline
     colored_send(window, message)
@@ -542,7 +549,7 @@ CONF
         if not room.nil?
           look_text = room.look(player)
           cleared = false
-          word_wrap(look_text, 79).each do |msg|
+          split_message(look_text, 79).each do |msg|
             send(msg, message_type: :look, internal_clear: !cleared, add_newline: true)
             cleared = true
           end