diff --git a/apps/files_external/lib/sftp.php b/apps/files_external/lib/sftp.php
index c457a87a6c70e5f86ceea4d4b86954d14f41aecc..cbe090311a94582ead4373963b22744f8c178753 100644
--- a/apps/files_external/lib/sftp.php
+++ b/apps/files_external/lib/sftp.php
@@ -251,7 +251,11 @@ class SFTP extends \OC\Files\Storage\Common {
 	 */
 	public function rmdir($path) {
 		try {
-			return $this->getConnection()->delete($this->absPath($path), true);
+			$result = $this->getConnection()->delete($this->absPath($path), true);
+			// workaround: stray stat cache entry when deleting empty folders
+			// see https://github.com/phpseclib/phpseclib/issues/706
+			$this->getConnection()->clearStatCache();
+			return $result;
 		} catch (\Exception $e) {
 			return false;
 		}
diff --git a/tests/lib/files/storage/storage.php b/tests/lib/files/storage/storage.php
index 2355009c9bfcfde92069032449243a1e7faf6c48..fcd7f73dcde6d03328f5df98557d9ff91d4301b1 100644
--- a/tests/lib/files/storage/storage.php
+++ b/tests/lib/files/storage/storage.php
@@ -380,6 +380,13 @@ abstract class Storage extends \Test\TestCase {
 		$this->assertFalse($this->instance->file_exists('folder'));
 	}
 
+	public function testRmdirEmptyFolder() {
+		$this->assertTrue($this->instance->mkdir('empty'));
+		$this->wait();
+		$this->assertTrue($this->instance->rmdir('empty'));
+		$this->assertFalse($this->instance->file_exists('empty'));
+	}
+
 	public function testRecursiveUnlink() {
 		$this->instance->mkdir('folder');
 		$this->instance->mkdir('folder/bar');