diff --git a/installsystems/printer.py b/installsystems/printer.py
index d5926a1c4f626b10284314d368ba8943f9ed6551..4aec988cde5754e8981c6026edd5cee9a0ab3246 100644
--- a/installsystems/printer.py
+++ b/installsystems/printer.py
@@ -51,6 +51,10 @@ def out(message="", fd=sys.stdout, endl=os.linesep, flush=True):
             message = message.replace("#%s#" % c, color[c])
         else:
             message = message.replace("#%s#" % c, "")
+    # convert unicode into str before write
+    # this can cause issue on python 2.6
+    if type(message) == unicode:
+        message = message.encode("utf8")
     # printing
     fd.write("%s%s" % (message, endl))
     if flush: