 
     x = @cursor_col * @canvas_char_width
     y = (@cursor_row + 1) * @canvas_char_height
-    w = str.length * @canvas_char_width
+    w = chars.length * @canvas_char_width
 
     @ctx.fillStyle = @get_cur_fg_color()
-    @ctx.fillText str, x, y, w
+
+    # Paint each char individually in order to ensure they
+    # line up as expected
+    char_x = x
+    for char in chars
+      @ctx.fillText char, char_x, y, @canvas_char_width
+      char_x += @canvas_char_width
 
     if @attrs.underline
       @ctx.strokeStyle = @get_cur_fg_color()


  nv_normal_mode: -> document.body.className = 'normal-mode'

  nv_put: (str) ->
    return if str.length == 0
    # paint background
    @clear_block @cursor_col, @cursor_row, str.length, 1

    # paint string
    @ctx.font = @get_canvas_font()

        @ctx.lineTo xx, y - @devicePixelRatio * offs[(xx / @devicePixelRatio) % 8]
      @ctx.stroke()

    @cursor_col += chars.length

  nv_resize: (col, row) ->
    @total_col = col
