diff --git a/apps/files_sharing/lib/external/manager.php b/apps/files_sharing/lib/external/manager.php
index 22525b4e0618e7e5a9c8ae81f31d2c060c6ad61c..5b7a13f1eb1a402cd9be0d4404959c533c8981d7 100644
--- a/apps/files_sharing/lib/external/manager.php
+++ b/apps/files_sharing/lib/external/manager.php
@@ -325,6 +325,10 @@ class Manager {
 	}
 
 	public function removeShare($mountPoint) {
+
+		$mountPointObj = $this->mountManager->find($mountPoint);
+		$id = $mountPointObj->getStorage()->getCache()->getId();
+
 		$mountPoint = $this->stripPath($mountPoint);
 		$hash = md5($mountPoint);
 
@@ -345,7 +349,36 @@ class Manager {
 			WHERE `mountpoint_hash` = ?
 			AND `user` = ?
 		');
-		return (bool)$query->execute(array($hash, $this->uid));
+		$result = (bool)$query->execute(array($hash, $this->uid));
+
+		if($result) {
+			$this->removeReShares($id);
+		}
+
+		return $result;
+	}
+
+	/**
+	 * remove re-shares from share table and mapping in the federated_reshares table
+	 * 
+	 * @param $mountPointId
+	 */
+	protected function removeReShares($mountPointId) {
+		$selectQuery = $this->connection->getQueryBuilder();
+		$query = $this->connection->getQueryBuilder();
+		$selectQuery->select('id')->from('share')
+			->where($selectQuery->expr()->eq('file_source', $query->createNamedParameter($mountPointId)));
+		$select = $selectQuery->getSQL();
+
+
+		$query->delete('federated_reshares')
+			->where($query->expr()->in('share_id', $query->createFunction('(' . $select . ')')));
+		$query->execute();
+
+		$deleteReShares = $this->connection->getQueryBuilder();
+		$deleteReShares->delete('share')
+			->where($deleteReShares->expr()->eq('file_source', $deleteReShares->createNamedParameter($mountPointId)));
+		$deleteReShares->execute();
 	}
 
 	/**