diff --git a/lib/private/App/AppManager.php b/lib/private/App/AppManager.php
index 4bf15c23fab9607cc91febd8faf4ac227746ed57..f46ec2a584ecabbb67943266df06ea7f3e672e3a 100644
--- a/lib/private/App/AppManager.php
+++ b/lib/private/App/AppManager.php
@@ -287,6 +287,16 @@ class AppManager implements IAppManager {
 		}
 		unset($this->installedAppsCache[$appId]);
 		$this->appConfig->setValue($appId, 'enabled', 'no');
+
+		// run uninstall steps
+		$appData = $this->getAppInfo($appId);
+		if (!is_null($appData)) {
+			\OC_App::executeRepairSteps($appId, $appData['repair-steps']['uninstall']);
+		}
+
+		// emit disable hook - needed anymore ?
+		\OC_Hook::emit('OC_App', 'pre_disable', array('app' => $appId));
+
 		$this->dispatcher->dispatch(ManagerEvent::EVENT_APP_DISABLE, new ManagerEvent(
 			ManagerEvent::EVENT_APP_DISABLE, $appId
 		));
diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php
index 16e57d43ebcb640d30f9e28014d48fd6fb8b2978..eba29d27cf808fae3248fa94bd5b35995e9b662f 100644
--- a/lib/private/legacy/app.php
+++ b/lib/private/legacy/app.php
@@ -431,16 +431,6 @@ class OC_App {
 		// flush
 		self::$enabledAppsCache = [];
 
-		// run uninstall steps
-		$appData = OC_App::getAppInfo($app);
-		if (!is_null($appData)) {
-			OC_App::executeRepairSteps($app, $appData['repair-steps']['uninstall']);
-		}
-
-		// emit disable hook - needed anymore ?
-		\OC_Hook::emit('OC_App', 'pre_disable', array('app' => $app));
-
-		// finally disable it
 		$appManager = \OC::$server->getAppManager();
 		$appManager->disableApp($app);
 	}
diff --git a/settings/ajax/disableapp.php b/settings/ajax/disableapp.php
index a2f9fa42693d2bcda8ba242e52718099152edd07..1d9cb984e2af1ad0967be3cffee1f81d2585ecd5 100644
--- a/settings/ajax/disableapp.php
+++ b/settings/ajax/disableapp.php
@@ -39,6 +39,6 @@ if (!array_key_exists('appid', $_POST)) {
 $appIds = (array)$_POST['appid'];
 foreach($appIds as $appId) {
 	$appId = OC_App::cleanAppId($appId);
-	OC_App::disable($appId);
+	\OC::$server->getAppManager()->disableApp($appId);
 }
 OC_JSON::success();