         $list.after($paragraph)
         $li.addClass("graf--removed").remove()
 
-      else if ($li.prev().length isnt 0 and $li.prev().text() is "")
+      else if ($li.prev().length isnt 0 and $li.prev().text() is "" and @getCharacterPrecedingCaret() is "")
         e.preventDefault()
         utils.log("PREV IS EMPTY")
         content = $li.html()

        $list.remove()

      @setupFirstAndLast()

  setElementName: (element)->
    $(element).attr("name", utils.generateUniqueName())

  # LIST METHODS

  listify: ($paragraph, listType, regex)->
  
    utils.log "LISTIFY PARAGRAPH"
    
    content = $paragraph.html().replace(/&nbsp;/g, " ").replace(regex, "")
    
    switch(listType)
      when "ul" then $list = $("<ul></ul>")
      when "ol" then $list = $("<ol></ol>")
      else return false
   
    @addClassesToElement($list[0])
    @replaceWith("li", $paragraph)
    $li = $(".is-selected")
    
    @setElementName($li[0])

    $li.html(content).wrap($list)

    if($li.find("br").length == 0)
      $li.append("<br/>")

    @setRangeAt($li[0])

    $li[0]

  handleSmartList: ($item, e)->
    utils.log("HANDLE A SMART LIST")

    chars = @getCharacterPrecedingCaret()
    match = chars.match(/^\s*(\-|\*)\s*$/)
    if(match)
        utils.log("CREATING LIST ITEM")
        e.preventDefault()
        regex = new RegExp(/\s*(\-|\*)\s*/)
        $li = @listify($item, "ul", regex)
    else
      match = chars.match(/^\s*1(\.|\))\s*$/)
      if(match)
        utils.log("CREATING LIST ITEM")
        e.preventDefault()
        
        regex = new RegExp(/\s*1(\.|\))\s*/)
        $li = @listify($item, "ol", regex)
    $li

  handleListLineBreak: ($li, e)->
