diff --git a/apps/files_trashbin/css/trash.css b/apps/files_trashbin/css/trash.css
new file mode 100644
index 0000000000000000000000000000000000000000..97819f4e80b5b15fcd4e31077821075aa907af7c
--- /dev/null
+++ b/apps/files_trashbin/css/trash.css
@@ -0,0 +1,3 @@
+#fileList td a.file, #fileList td a.file span {
+    cursor: default;
+}
diff --git a/apps/files_trashbin/index.php b/apps/files_trashbin/index.php
index d079af3fb6d185ddf58bf3dfa7a840cedac18995..93f385dd30b57054767f9fd448a85642bf881f14 100644
--- a/apps/files_trashbin/index.php
+++ b/apps/files_trashbin/index.php
@@ -10,6 +10,7 @@ OCP\Util::addScript('files', 'fileactions');
 $tmpl = new OCP\Template('files_trashbin', 'index', 'user');
 
 OCP\Util::addStyle('files', 'files');
+OCP\Util::addStyle('files_trashbin', 'trash');
 OCP\Util::addScript('files', 'filelist');
 // filelist overrides
 OCP\Util::addScript('files_trashbin', 'filelist');
diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js
index b157fdf1025a3a75a0d288edfee5a712b7dc5319..48e9629f7def0b3dc6636c6a1502d6821795e388 100644
--- a/apps/files_trashbin/js/trash.js
+++ b/apps/files_trashbin/js/trash.js
@@ -66,41 +66,6 @@ $(document).ready(function() {
 		procesSelection();
 	});
 
-	$('#fileList').on('click', 'td.filename a', function(event) {
-		if (event.shiftKey) {
-			event.preventDefault();
-			var last = $(lastChecked).parent().parent().prevAll().length;
-			var first = $(this).parent().parent().prevAll().length;
-			var start = Math.min(first, last);
-			var end = Math.max(first, last);
-			var rows = $(this).parent().parent().parent().children('tr');
-			for (var i = start; i < end; i++) {
-				$(rows).each(function(index) {
-					if (index == i) {
-						var checkbox = $(this).children().children('input:checkbox');
-						$(checkbox).attr('checked', 'checked');
-						$(checkbox).parent().parent().addClass('selected');
-					}
-				});
-			}
-		}
-		var checkbox = $(this).parent().children('input:checkbox');
-		lastChecked = checkbox;
-		if ($(checkbox).attr('checked')) {
-			$(checkbox).removeAttr('checked');
-			$(checkbox).parent().parent().removeClass('selected');
-			$('#select_all').removeAttr('checked');
-		} else {
-			$(checkbox).attr('checked', 'checked');
-			$(checkbox).parent().parent().toggleClass('selected');
-			var selectedCount = $('td.filename input:checkbox:checked').length;
-			if (selectedCount == $('td.filename input:checkbox').length) {
-				$('#select_all').attr('checked', 'checked');
-			}
-		}
-		procesSelection();
-	});
-
 	$('.undelete').click('click', function(event) {
 		event.preventDefault();
 		var files = getSelectedFiles('file');
@@ -184,6 +149,12 @@ $(document).ready(function() {
 
 	});
 
+	$('#fileList').on('click', 'td.filename input', function() {
+		var checkbox = $(this).parent().children('input:checkbox');
+		$(checkbox).parent().parent().toggleClass('selected');
+		procesSelection();
+	});
+
 	$('#fileList').on('click', 'td.filename a', function(event) {
 		var mime = $(this).parent().parent().data('mime');
 		if (mime !== 'httpd/unix-directory') {
diff --git a/apps/files_trashbin/lib/helper.php b/apps/files_trashbin/lib/helper.php
index 4f442ee930471cf39023059c071a79cd53376bf8..c454b35a5f2f231bb216836f33be665481ebe549 100644
--- a/apps/files_trashbin/lib/helper.php
+++ b/apps/files_trashbin/lib/helper.php
@@ -44,8 +44,10 @@ class Helper
 		}
 
 		$files = array();
+		$id = 0;
 		foreach ($result as $r) {
 			$i = array();
+			$i['id'] = $id++;
 			$i['name'] = $r['id'];
 			$i['date'] = \OCP\Util::formatDate($r['timestamp']);
 			$i['timestamp'] = $r['timestamp'];
diff --git a/apps/files_trashbin/templates/part.list.php b/apps/files_trashbin/templates/part.list.php
index 78709d986ae32a3e90425d6467e0673a34ecb53d..c32d9fd54da2688db7ea10b1be90884c5bcdd02a 100644
--- a/apps/files_trashbin/templates/part.list.php
+++ b/apps/files_trashbin/templates/part.list.php
@@ -35,18 +35,21 @@
 				<?php endif; ?>
 		<?php endif; ?>
 			>
-		<?php if(!isset($_['readonly']) || !$_['readonly']): ?><input type="checkbox" /><?php endif; ?>
+		<?php if(!isset($_['readonly']) || !$_['readonly']): ?>
+			<input id="select-<?php p($file['id']); ?>" type="checkbox" />
+			<label for="select-<?php p($file['id']); ?>"></label>
+		<?php endif; ?>
 		<?php if($file['type'] === 'dir'): ?>
 			<?php if( $_['dirlisting'] ): ?>
-				<a class="name" href="<?php p($_['baseURL'].'/'.$name); ?>" title="">
+				<a class="name dir" href="<?php p($_['baseURL'].'/'.$name); ?>" title="">
 			<?php else: ?>
-				<a class="name" href="<?php p($_['baseURL'].'/'.$name.'.d'.$file['timestamp']); ?>" title="">
+				<a class="name dir" href="<?php p($_['baseURL'].'/'.$name.'.d'.$file['timestamp']); ?>" title="">
 			<?php endif; ?>
 		<?php else: ?>
 			<?php if( $_['dirlisting'] ): ?>
-				<a class="name" href="<?php p($_['downloadURL'].'/'.$name); ?>" title="">
+				<a class="name file" href="<?php p($_['downloadURL'].'/'.$name); ?>" title="">
 			<?php else: ?>
-				<a class="name" href="<?php p($_['downloadURL'].'/'.$name.'.d'.$file['timestamp']);?>" title="">
+				<a class="name file" href="<?php p($_['downloadURL'].'/'.$name.'.d'.$file['timestamp']);?>" title="">
 			<?php endif; ?>
 		<?php endif; ?>
 			<span class="nametext">