diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index 525ffa835786865e9c07dec9d47bf37b570bd7ba..15377680ab8034e71e34fd39a242a2ba4fc38e49 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -1,6 +1,26 @@
 <?php
 // Load other apps for file previews
 OC_App::loadApps();
+
+// Compatibility with shared-by-link items from ownCloud 4.0
+// requires old Sharing table !
+// support will be removed in OC 5.0,a
+if (isset($_GET['token'])) {
+	unset($_GET['file']);
+	$qry = \OC_DB::prepare('SELECT `source` FROM `*PREFIX*sharing` WHERE `target` = ? LIMIT 1');
+	$filepath = $qry->execute(array($_GET['token']))->fetchOne();
+	if(isset($filepath)) {
+		$info = OC_FileCache_Cached::get($filepath, '');
+		if(strtolower($info['mimetype']) == 'httpd/unix-directory') {
+			$_GET['dir'] = $filepath;
+		} else {
+			$_GET['file'] = $filepath;
+		}
+		\OCP\Util::writeLog('files_sharing', 'You have files that are shared by link originating from ownCloud 4.0. Redistribute the new links, because backwards compatibility will be removed in ownCloud 5.', \OCP\Util::WARN);
+	}
+}
+// Enf of backward compatibility
+
 if (isset($_GET['file']) || isset($_GET['dir'])) {
 	if (isset($_GET['dir'])) {
 		$type = 'folder';