 
     currentSelection = window.getSelection()
 
-    this.currentIndex = currentSelection.extentOffset
-    this.currentSentence = this.currentSentence + 1
-
     elementToUse = currentSelection.extentNode.parentElement
     tagName = $(elementToUse).prop('tagName').toLowerCase()
 
-    if elementToUse.textContent.length <= (this.currentIndex)
+    this.currentIndexes.put(elementToUse, currentSelection.extentOffset)
+    this.currentSentence = this.currentSentence + 1
+
+    if elementToUse.textContent.length <= (this.currentIndexes.get(elementToUse))
       nextSibling = $(elementToUse).next()
 
-      this.currentIndex = 0
+      this.currentIndexes.put(nextSibling, 0)
       this.currentSentence = 0
 
       # algorithm here is:


    this.storedEvent = event

    this.currentIndex = 0
    this.currentSentence = 0

    event.target = this.normalizeStyleTags event.target

    this.selectSentence event.target


        if desiredText == undefined
          # Just start in the next jump element without saving the current position in the document
          nextSibling = this.returnNext(currentTarget)
          this.currentIndexes.put(currentTarget, 0)
          this.currentSentence = 0
          this.selectSentence nextSibling
        else if desiredText.endsWith(".") or desiredText.endsWith("!") or desiredText.endsWith("?")
