         @protectClipboard =>
           initialRange = @selection.getRangeAt(0).cloneRange()
           direction = @getDirection()
-          which = if direction == forward then "start" else "end"
-
+
+          # Start by re-selecting the previous match, if any.  This tells Chrome where to start from.
           if previousFindRange
             @selection.removeAllRanges()
             @selection.addRange previousFindRange
 
           window.find query, caseSensitive, findBackwards, true, false, true, false
           previousFindRange = newFindRange = @selection.getRangeAt(0).cloneRange()
-
+          # FIXME(smblott).  What if there were no matches?
+
+          # Now, install a range from the original selection to the new match.
           range = document.createRange()
+          which = if direction == forward then "start" else "end"
           range.setStart initialRange["#{which}Container"], initialRange["#{which}Offset"]
           range.setEnd newFindRange.endContainer, newFindRange.endOffset
           @selection.removeAllRanges()
           @selection.addRange range
 
+          # If we're going backwards (or if the election ended up empty), then extend the selection again,
+          # this time to include the match itself.
           if @getDirection() == backward or @selection.toString().length == 0
             range.setStart newFindRange.startContainer, newFindRange.startOffset
             @selection.removeAllRanges()

            DomUtils.suppressPropagation
            @stopBubblingAndFalse
        else
          false
      else
        @stopBubblingAndTrue


# Todo:
# Fix word movement, particularly for "a word".
# Konami code?
# Use find as a mode.

# This prevents printable characters from being passed through to underlying page.  It should, however, allow
# through chrome keyboard shortcuts.  It's a keyboard-event backstop for all of the following modes.
class SuppressPrintable extends Mode
  constructor: (options) ->
    handler = (event) =>
