         unsafe = vars.text.split.value.indexOf(next_char) >= 0
         placeWord next_char if unsafe
 
+    if line * dy > height
+      truncate()
+
     lines = Math.abs(line - start) + 1
 
   wrap()


  truncate = ->
    textBox.remove()
    line--
    if line isnt 1
      if reverse
        textBox = vars.container.value.select("tspan")
      else
        textBox = d3.select(vars.container.value.node().lastChild)
    unless textBox.empty()
      words = textBox.text().match(/[^\s-]+-?/g)
      ellipsis()

      else
        if vars.text.split.value.indexOf(lastChar) >= 0
          lastWord = lastWord.substr(0, lastWord.length - 1)
        textBox.text words.join(" ") + " " + lastWord + "..."
        ellipsis() if textBox.node().getComputedTextLength() > lineWidth()
    else
      truncate()
