diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 5b947fa326cb051938a7cc72578e0535cb9c4a17..7e0371af94f33d5a68827c340c22c26b21f9dfff 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -258,6 +258,8 @@ table td.filename .thumbnail {
 	margin-top: 9px;
 	cursor: pointer;
 	float: left;
+	position: absolute;
+	z-index: 4;
 }
 table td.filename input.filename {
 	width: 70%;
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 1d7252220bf57343983a6e53cfc969d28b6333cf..c5c665cee77cb57de6447e53b16db5c9ddcf2dd3 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -323,7 +323,7 @@
 		 */
 		_onClickFile: function(event) {
 			var $tr = $(event.target).closest('tr');
-			if (event.ctrlKey || event.shiftKey) {
+			if (this._allowSelection && (event.ctrlKey || event.shiftKey)) {
 				event.preventDefault();
 				if (event.shiftKey) {
 					var $lastTr = $(this._lastChecked);
@@ -369,6 +369,8 @@
 							dir: $tr.attr('data-path') || this.getCurrentDirectory()
 						});
 					}
+					// deselect row
+					$(event.target).closest('a').blur();
 				}
 			}
 		},
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index c1c8e4ce33789d0f93be1c29a479d685688b6799..59e3f8a9d4eee5e436e8df9d91a1e809ed3297d5 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -1790,6 +1790,36 @@ describe('OCA.Files.FileList tests', function() {
 			expect(fileList.$el.find('.select-all').prop('checked')).toEqual(false);
 			expect(fileList.getSelectedFiles()).toEqual([]);
 		});
+		describe('Disabled selection', function() {
+			beforeEach(function() {
+				fileList._allowSelection = false;
+				fileList.setFiles(testFiles);
+			});
+			it('Does not render checkboxes', function() {
+				expect(fileList.$fileList.find('.selectCheckBox').length).toEqual(0);
+			});
+			it('Does not select a file with Ctrl or Shift if selection is not allowed', function() {
+				var $tr = fileList.findFileEl('One.txt');
+				var $tr2 = fileList.findFileEl('Three.pdf');
+				var e;
+				e = new $.Event('click');
+				e.ctrlKey = true;
+				$tr.find('td.filename .name').trigger(e);
+
+				// click on second entry, does not clear the selection
+				e = new $.Event('click');
+				e.ctrlKey = true;
+				$tr2.find('td.filename .name').trigger(e);
+
+				expect(fileList.getSelectedFiles().length).toEqual(0);
+
+				// deselect now
+				e = new $.Event('click');
+				e.shiftKey = true;
+				$tr2.find('td.filename .name').trigger(e);
+				expect(fileList.getSelectedFiles().length).toEqual(0);
+			});
+		})
 	});
 	describe('File actions', function() {
 		it('Clicking on a file name will trigger default action', function() {