diff --git a/loopy/kernel/__init__.py b/loopy/kernel/__init__.py
index 44088ee5fc16beb4344c8173456d9ed46b83bfe1..d65aca6e9d18e047feacd1857d6dd4850cc1acb8 100644
--- a/loopy/kernel/__init__.py
+++ b/loopy/kernel/__init__.py
@@ -1314,6 +1314,13 @@ class LoopKernel(ImmutableRecordWithoutPickling):
         return "\n".join(lines)
 
     def __str__(self):
+        if six.PY3:
+            return self.stringify()
+        else:
+            # Path of least resistance...
+            return self.stringify().encode("utf-8")
+
+    def __unicode__(self):
         return self.stringify()
 
     # }}}
diff --git a/loopy/kernel/tools.py b/loopy/kernel/tools.py
index af64bf977600b677669eac7fe33f87febee78dcc..5f123963239fbe1286de0814b9fecaa500caaa65 100644
--- a/loopy/kernel/tools.py
+++ b/loopy/kernel/tools.py
@@ -1299,7 +1299,7 @@ def draw_dependencies_as_unicode_arrows(
     def make_extender():
         result = n_columns[0] * [" "]
         for col, (_, updown) in six.iteritems(columns_in_use):
-            result[col] = do_flag_downward("│", updown)
+            result[col] = do_flag_downward(u"│", updown)
 
         return result
 
@@ -1314,7 +1314,7 @@ def draw_dependencies_as_unicode_arrows(
             if dep_key not in dep_to_column:
                 col = dep_to_column[dep_key] = find_free_column()
                 columns_in_use[col] = (rdep, "up")
-                row[col] = "↱"
+                row[col] = u"↱"
 
         for dep in insn.depends_on:
             assert dep != insn.id
@@ -1322,15 +1322,15 @@ def draw_dependencies_as_unicode_arrows(
             if dep_key not in dep_to_column:
                 col = dep_to_column[dep_key] = find_free_column()
                 columns_in_use[col] = (dep, "down")
-                row[col] = do_flag_downward("┌", "down")
+                row[col] = do_flag_downward(u"┌", "down")
 
         for col, (end, updown) in list(six.iteritems(columns_in_use)):
             if insn.id == end:
                 del columns_in_use[col]
                 if updown == "up":
-                    row[col] = "â””"
+                    row[col] = u"â””"
                 else:
-                    row[col] = do_flag_downward("↳", updown)
+                    row[col] = do_flag_downward(u"↳", updown)
 
         extender = make_extender()