diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index 8f6c42d6620b49a7718c07085038b8e81cf4d69d..754c34ef088b46e70b7584fe680aa4743f63b0de 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -139,7 +139,8 @@ if (strpos($dir, '..') === false) {
 							'originalname' => $files['tmp_name'][$i],
 							'uploadMaxFilesize' => $maxUploadFileSize,
 							'maxHumanFilesize' => $maxHumanFileSize,
-							'permissions' => $meta['permissions'] & $allowedPermissions
+							'permissions' => $meta['permissions'] & $allowedPermissions,
+							'directory' => \OC\Files\Filesystem::normalizePath(stripslashes($dir)),
 						);
 					}
 
@@ -166,7 +167,8 @@ if (strpos($dir, '..') === false) {
 					'originalname' => $files['tmp_name'][$i],
 					'uploadMaxFilesize' => $maxUploadFileSize,
 					'maxHumanFilesize' => $maxHumanFileSize,
-					'permissions' => $meta['permissions'] & $allowedPermissions
+					'permissions' => $meta['permissions'] & $allowedPermissions,
+					'directory' => \OC\Files\Filesystem::normalizePath(stripslashes($dir)),
 				);
 			}
 		}
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 2883218b2cca830786ae5e693a73090fefb2271a..a855d6cbe593e55647f76c511260fdcd1a3208ec 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -922,8 +922,8 @@ $(document).ready(function() {
 				data.context.find('td.filesize').text(humanFileSize(size));
 
 			} else {
-				// only append new file if dragged onto current dir's crumb (last)
-				if (data.context && data.context.hasClass('crumb') && !data.context.hasClass('last')) {
+				// only append new file if uploaded into the current folder
+				if (file.directory !== FileList.getCurrentDirectory()) {
 					return;
 				}