diff --git a/apps/files_trashbin/ajax/delete.php b/apps/files_trashbin/ajax/delete.php
index 80382147eb7433e243b62ce2fc0c7bb98575c64c..34f35c39ccb9d5b185ed28821d352c0a420f4d62 100644
--- a/apps/files_trashbin/ajax/delete.php
+++ b/apps/files_trashbin/ajax/delete.php
@@ -5,7 +5,7 @@ OCP\JSON::callCheck();
 
 $files = $_POST['files'];
 $dirlisting = $_POST['dirlisting'];
-$list = explode('|', $files);
+$list = json_decode($files);
 
 $error = array();
 $success = array();
diff --git a/apps/files_trashbin/ajax/undelete.php b/apps/files_trashbin/ajax/undelete.php
index b76adb2a2a7b77d5b73ea5de93e32971b39f302b..93f2aaf1fa20f89f76ce7d6dec0ddac1d338809f 100644
--- a/apps/files_trashbin/ajax/undelete.php
+++ b/apps/files_trashbin/ajax/undelete.php
@@ -5,7 +5,7 @@ OCP\JSON::callCheck();
 
 $files = $_POST['files'];
 $dirlisting = $_POST['dirlisting'];
-$list = explode('|', $files);
+$list = json_decode($files);
 
 $error = array();
 $success = array();
diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js
index c8b862837a653acfefc4b869f2bba92bcc1ecb5b..3841a09814772ea21650a03551a7d8f82a25cf09 100644
--- a/apps/files_trashbin/js/trash.js
+++ b/apps/files_trashbin/js/trash.js
@@ -6,9 +6,10 @@ $(document).ready(function() {
 			var tr=$('tr').filterAttr('data-file', filename);
 			var spinner = '<img class="move2trash" title="'+t('files_trashbin', 'perform restore operation')+'" src="'+ OC.imagePath('core', 'loader.gif') +'"></a>';
 			var undeleteAction = $('tr').filterAttr('data-file',filename).children("td.date");
+			var files = tr.attr('data-file');
 			undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner;
 			$.post(OC.filePath('files_trashbin','ajax','undelete.php'),
-				{files:tr.attr('data-file'), dirlisting:tr.attr('data-dirlisting') },
+				{files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') },
 				function(result){
 					for (var i = 0; i < result.data.success.length; i++) {
 						var row = document.getElementById(result.data.success[i].filename);
@@ -31,10 +32,11 @@ $(document).ready(function() {
 			var deleteAction = $('tr').filterAttr('data-file',filename).children("td.date").children(".action.delete");
 			var oldHTML = deleteAction[0].outerHTML;
 			var newHTML = '<img class="move2trash" data-action="Delete" title="'+t('files', 'delete file permanently')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
+			var files = tr.attr('data-file');
 			deleteAction[0].outerHTML = newHTML;
 			
 			$.post(OC.filePath('files_trashbin','ajax','delete.php'),
-				{files:tr.attr('data-file'), dirlisting:tr.attr('data-dirlisting') },
+				{files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') },
 				function(result){
 					for (var i = 0; i < result.data.success.length; i++) {
 						var row = document.getElementById(result.data.success[i].filename);
@@ -93,7 +95,7 @@ $(document).ready(function() {
 		$('.undelete').click('click',function(event) {
 			var spinner = '<img class="move2trash" title="'+t('files_trashbin', 'perform restore operation')+'" src="'+ OC.imagePath('core', 'loader.gif') +'"></a>';
 			var files=getSelectedFiles('file');
-			var fileslist=files.join('|');
+			var fileslist = JSON.stringify(files);
 			var dirlisting=getSelectedFiles('dirlisting')[0];
 			
 			for (var i in files) {
@@ -118,7 +120,7 @@ $(document).ready(function() {
 			console.log("delete selected");
 			var spinner = '<img class="move2trash" title="'+t('files_trashbin', 'Delete permanently')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
 			var files=getSelectedFiles('file');
-			var fileslist=files.join('|');
+			var fileslist = JSON.stringify(files);
 			var dirlisting=getSelectedFiles('dirlisting')[0];
 			
 			for (var i in files) {