diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 0d45c29b25abbeec157003708d66b73433700fad..4790afcf4d0a884b32bfa864b41edd549cc2ec50 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1685,6 +1685,7 @@
 				// close sidebar
 				this._updateDetailsView(null);
 			}
+			this._setCurrentDir(this.getCurrentDirectory(), false);
 			var callBack = this.reloadCallback.bind(this);
 			return this._reloadCall.then(callBack, callBack);
 		},
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index 1f8d38c59ce29a151c4ece616712f3c245779d24..8bb188e3602aea8cb8d955463a0f33905022b6e9 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -1627,7 +1627,9 @@ describe('OCA.Files.FileList tests', function() {
 			var setDirSpy = sinon.spy(fileList.breadcrumb, 'setDirectory');
 			fileList.changeDirectory('/anothersubdir');
 			deferredList.resolve(200, [testRoot].concat(testFiles));
-			expect(fileList.breadcrumb.setDirectory.calledOnce).toEqual(true);
+			// twice because setDirectory gets called by _setCurrentDir which
+			// gets called directly by changeDirectory and via reload()
+			expect(fileList.breadcrumb.setDirectory.calledTwice).toEqual(true);
 			expect(fileList.breadcrumb.setDirectory.calledWith('/anothersubdir')).toEqual(true);
 			setDirSpy.restore();
 			getFolderContentsStub.restore();
diff --git a/apps/systemtags/js/systemtagsfilelist.js b/apps/systemtags/js/systemtagsfilelist.js
index a40eb548d9f94eff7d8525e1afea6282efd0f6e3..ad6bf7dd78d19447cc5b4bdb89392d024b62a44d 100644
--- a/apps/systemtags/js/systemtagsfilelist.js
+++ b/apps/systemtags/js/systemtagsfilelist.js
@@ -234,6 +234,9 @@
 		},
 
 		reload: function() {
+			// there is only root
+			this._setCurrentDir('/', false);
+
 			if (!this._systemTagIds.length) {
 				// don't reload
 				this.updateEmptyContent();