diff --git a/Source/Interface/HtmlTable.Select.js b/Source/Interface/HtmlTable.Select.js
index 67e3228b..b4fd9903 100644
--- a/Source/Interface/HtmlTable.Select.js
+++ b/Source/Interface/HtmlTable.Select.js
@@ -163,7 +163,6 @@ HtmlTable = Class.refactor(HtmlTable, {
if (typeOf(startRow) == 'element') startRow = rows.indexOf(startRow);
if (typeOf(endRow) == 'element') endRow = rows.indexOf(endRow);
- endRow = endRow < rows.length - 1 ? endRow : rows.length - 1;
if (endRow < startRow){
var tmp = startRow;
@@ -171,7 +170,10 @@ HtmlTable = Class.refactor(HtmlTable, {
endRow = tmp;
}
- for (var i = startRow; i <= endRow; i++){
+ var rowAfterEndRow = Math.min(endRow + 1, rows.length);
+ startRow = Math.max(startRow, 0);
+
+ for (var i = startRow; i < rowAfterEndRow; i++){
if (this.options.selectHiddenRows || rows[i].isDisplayed()) this[method](rows[i], true);
}