diff --git a/word/Editor/Paragraph.js b/word/Editor/Paragraph.js
index a10f2a663ea5e7f24806ddbabc196e9b426fbdc8..3b1b7de0a597c5c72d281ea5eaf8c99e92e196b1 100644
--- a/word/Editor/Paragraph.js
+++ b/word/Editor/Paragraph.js
@@ -12147,7 +12147,7 @@ Paragraph.prototype.GotoFootnoteRef = function(isNext, isCurrent)
 	{
 		for (var nIndex = nPos; nIndex >= 0; --nIndex)
 		{
-			var nRes = this.Content[nIndex].GotoFootnoteRef ? this.Content[nIndex].GotoFootnoteRef(true, true === isCurrent && nPos === nIndex, isStepOver) : 0;
+			var nRes = this.Content[nIndex].GotoFootnoteRef ? this.Content[nIndex].GotoFootnoteRef(false, true === isCurrent && nPos === nIndex, isStepOver) : 0;
 
 			if (nRes > 0)
 				isStepOver = true;
diff --git a/word/Editor/Run.js b/word/Editor/Run.js
index 3e9db7839fc30f73e824995688f53e662411b35e..45d3706eda7ceee57ee08c9a20d944f342ecefd8 100644
--- a/word/Editor/Run.js
+++ b/word/Editor/Run.js
@@ -9106,7 +9106,7 @@ ParaRun.prototype.GotoFootnoteRef = function(isNext, isCurrent, isStepOver)
 	}
 	else
 	{
-		for (var nIndex = nPos; nIndex >= 0; --nIndex)
+		for (var nIndex = Math.min(nPos, this.Content.length - 1); nIndex >= 0; --nIndex)
 		{
 			if (para_FootnoteReference === this.Content[nIndex].Type && ((true !== isCurrent && true === isStepOver) || (true === isCurrent && (true === this.Selection.Use || nPos !== nIndex))))
 			{