diff --git a/src/main/java-templates/org/primefaces/component/datatable/DataTableTemplate.java b/src/main/java-templates/org/primefaces/component/datatable/DataTableTemplate.java
index <HASH>..<HASH> 100644
--- a/src/main/java-templates/org/primefaces/component/datatable/DataTableTemplate.java
+++ b/src/main/java-templates/org/primefaces/component/datatable/DataTableTemplate.java
@@ -885,13 +885,13 @@ import org.primefaces.util.LangUtils;
         if(hasRowKey) {
             map.put(var, object);
             Object rowKey = this.getRowKey();
-            if (rowKey != null) {
+            if (rowKey != null && !isDisabledSelection()) {
                 this.selectedRowKeys.add(rowKey);
             }
         }
         else {
             Object rowKey = this.getRowKeyFromModel(object);
-            if (rowKey != null) {
+            if (rowKey != null & !isDisabledSelection()) {
                 this.selectedRowKeys.add(rowKey);
             }
         }
Fix #<I> - DataTable: preselection does not take account "disableSelection"