diff --git a/apps/dav/lib/Connector/PublicAuth.php b/apps/dav/lib/Connector/PublicAuth.php
index 4e63ca1d29edb4603af519afd9834c388c757073..9b386c7609d0e04981bec2919d7c12eb33ca8ed1 100644
--- a/apps/dav/lib/Connector/PublicAuth.php
+++ b/apps/dav/lib/Connector/PublicAuth.php
@@ -65,7 +65,7 @@ class PublicAuth extends AbstractBasic {
 		$this->session = $session;
 
 		// setup realm
-		$defaults = new \OC_Defaults();
+		$defaults = new \OCP\Defaults();
 		$this->realm = $defaults->getName();
 	}
 
diff --git a/apps/dav/lib/Connector/Sabre/Auth.php b/apps/dav/lib/Connector/Sabre/Auth.php
index 82c2711b5609f4b7b823d4f0de6f1517d9cba928..28e4ae2bcdea96877501cd6ecdd2c9ce886049a8 100644
--- a/apps/dav/lib/Connector/Sabre/Auth.php
+++ b/apps/dav/lib/Connector/Sabre/Auth.php
@@ -78,7 +78,7 @@ class Auth extends AbstractBasic {
 		$this->principalPrefix = $principalPrefix;
 
 		// setup realm
-		$defaults = new \OC_Defaults();
+		$defaults = new \OCP\Defaults();
 		$this->realm = $defaults->getName();
 	}
 
diff --git a/apps/federation/lib/DAV/FedAuth.php b/apps/federation/lib/DAV/FedAuth.php
index 21c0d61487c093381ead37b79cd5d973684418f5..ff83932283cd122453614100680ba6dd16b4963f 100644
--- a/apps/federation/lib/DAV/FedAuth.php
+++ b/apps/federation/lib/DAV/FedAuth.php
@@ -38,7 +38,7 @@ class FedAuth extends AbstractBasic {
 		$this->principalPrefix = 'principals/system/';
 
 		// setup realm
-		$defaults = new \OC_Defaults();
+		$defaults = new \OCP\Defaults();
 		$this->realm = $defaults->getName();
 	}
 
diff --git a/core/Application.php b/core/Application.php
index a87917b626a2c5a96367da275d0d56143ae0f71f..1485f7a7516b3a84ddc5e752134ed44025ce088c 100644
--- a/core/Application.php
+++ b/core/Application.php
@@ -35,7 +35,7 @@ use OC\Core\Controller\LostController;
 use OC\Core\Controller\TokenController;
 use OC\Core\Controller\TwoFactorChallengeController;
 use OC\Core\Controller\UserController;
-use OC_Defaults;
+use OCP\Defaults;
 use OCP\AppFramework\App;
 use OCP\Util;
 
@@ -165,8 +165,8 @@ class Application extends App {
 		$container->registerService('UserFolder', function(SimpleContainer $c) {
 			return $c->query('ServerContainer')->getUserFolder();
 		});
-		$container->registerService('Defaults', function() {
-			return new OC_Defaults;
+		$container->registerService('Defaults', function(SimpleContainer $c) {
+			return $c->query('ServerContainer')->getThemingDefaults();
 		});
 		$container->registerService('Mailer', function(SimpleContainer $c) {
 			return $c->query('ServerContainer')->getMailer();
diff --git a/core/Command/Maintenance/Install.php b/core/Command/Maintenance/Install.php
index cee0c60b4887003f7937b8148baa84ea4f520466..3e9e043b036a107e53f5004831ee4f6b03bbb596 100644
--- a/core/Command/Maintenance/Install.php
+++ b/core/Command/Maintenance/Install.php
@@ -64,7 +64,7 @@ class Install extends Command {
 		// validate the environment
 		$server = \OC::$server;
 		$setupHelper = new Setup($this->config, $server->getIniWrapper(),
-			$server->getL10N('lib'), new \OC_Defaults(), $server->getLogger(),
+			$server->getL10N('lib'), $server->getThemingDefaults(), $server->getLogger(),
 			$server->getSecureRandom());
 		$sysInfo = $setupHelper->getSystemInfo(true);
 		$errors = $sysInfo['errors'];
diff --git a/core/Controller/LostController.php b/core/Controller/LostController.php
index b509d4bf6325b427c5343f1ce3349306f6e267b3..774404af0a5f2b0c36aa069b2ed6c1b3ac084fcc 100644
--- a/core/Controller/LostController.php
+++ b/core/Controller/LostController.php
@@ -38,7 +38,6 @@ use \OCP\IConfig;
 use OCP\IUserManager;
 use OCP\Mail\IMailer;
 use OCP\Security\ISecureRandom;
-use \OC_Defaults;
 use OCP\Security\StringUtils;
 
 /**
@@ -54,8 +53,7 @@ class LostController extends Controller {
 	protected $urlGenerator;
 	/** @var IUserManager */
 	protected $userManager;
-	// FIXME: Inject a non-static factory of OC_Defaults for better unit-testing
-	/** @var OC_Defaults */
+	/** @var \OC_Defaults */
 	protected $defaults;
 	/** @var IL10N */
 	protected $l10n;
@@ -77,7 +75,7 @@ class LostController extends Controller {
 	 * @param IRequest $request
 	 * @param IURLGenerator $urlGenerator
 	 * @param IUserManager $userManager
-	 * @param OC_Defaults $defaults
+	 * @param \OC_Defaults $defaults
 	 * @param IL10N $l10n
 	 * @param IConfig $config
 	 * @param ISecureRandom $secureRandom
@@ -90,7 +88,7 @@ class LostController extends Controller {
 								IRequest $request,
 								IURLGenerator $urlGenerator,
 								IUserManager $userManager,
-								OC_Defaults $defaults,
+								\OC_Defaults $defaults,
 								IL10N $l10n,
 								IConfig $config,
 								ISecureRandom $secureRandom,
diff --git a/lib/base.php b/lib/base.php
index 70fac6d707bc4c54b69ecddcac12e6edbb8d64b7..62ace1bc0efb8c007cc7bfb3caf3d075357616ca 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -812,7 +812,7 @@ class OC {
 		if (!$systemConfig->getValue('installed', false)) {
 			\OC::$server->getSession()->clear();
 			$setupHelper = new OC\Setup(\OC::$server->getConfig(), \OC::$server->getIniWrapper(),
-				\OC::$server->getL10N('lib'), new \OC_Defaults(), \OC::$server->getLogger(),
+				\OC::$server->getL10N('lib'), \OC::$server->getThemingDefaults(), \OC::$server->getLogger(),
 				\OC::$server->getSecureRandom());
 			$controller = new OC\Core\Controller\SetupController($setupHelper);
 			$controller->run($_POST);
diff --git a/lib/private/Console/Application.php b/lib/private/Console/Application.php
index ec91064278e3cec39a1284b37357385e5992aec0..be561342178ba27dfef04e1a4e4fd9de37933c13 100644
--- a/lib/private/Console/Application.php
+++ b/lib/private/Console/Application.php
@@ -26,8 +26,8 @@
 namespace OC\Console;
 
 use OC_App;
-use OC_Defaults;
 use OCP\Console\ConsoleEvent;
+use OCP\Defaults;
 use OCP\IConfig;
 use OCP\IRequest;
 use Symfony\Component\Console\Application as SymfonyApplication;
@@ -51,7 +51,7 @@ class Application {
 	 * @param IRequest $request
 	 */
 	public function __construct(IConfig $config, EventDispatcherInterface $dispatcher, IRequest $request) {
-		$defaults = new OC_Defaults;
+		$defaults = \OC::$server->getThemingDefaults();
 		$this->config = $config;
 		$this->application = new SymfonyApplication($defaults->getName(), \OC_Util::getVersionString());
 		$this->dispatcher = $dispatcher;
diff --git a/lib/private/Server.php b/lib/private/Server.php
index c663bc44261940f43880c8c707b7d50e69e31716..d69e384ad754a181b05d348a40e00791f0bf9cd7 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -562,7 +562,7 @@ class Server extends ServerContainer implements IServerContainer {
 			return new Mailer(
 				$c->getConfig(),
 				$c->getLogger(),
-				new \OC_Defaults()
+				$c->getThemingDefaults()
 			);
 		});
 		$this->registerService('OcsClient', function (Server $c) {
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index f1454805a088e61f2886b1f43b5a71f52223329d..7b2c43923608f9b8de4bf3ca6bb4dd068d44e4ec 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -426,7 +426,7 @@ class Setup {
 		}
 
 		$setupHelper = new \OC\Setup($config, \OC::$server->getIniWrapper(),
-			\OC::$server->getL10N('lib'), new \OC_Defaults(), \OC::$server->getLogger(),
+			\OC::$server->getL10N('lib'), \OC::$server->getThemingDefaults(), \OC::$server->getLogger(),
 			\OC::$server->getSecureRandom());
 
 		$htaccessContent = file_get_contents($setupHelper->pathToHtaccess());
diff --git a/lib/private/URLGenerator.php b/lib/private/URLGenerator.php
index 9ae99d67bc6f29f997a4ee3ef7881316afe6f392..c7b2b222faf95b95844c0625c0bbd037caa938e1 100644
--- a/lib/private/URLGenerator.php
+++ b/lib/private/URLGenerator.php
@@ -29,7 +29,7 @@
  */
 
 namespace OC;
-use OC_Defaults;
+use OCP\Defaults;
 use OCP\ICacheFactory;
 use OCP\IConfig;
 use OCP\IURLGenerator;
@@ -222,7 +222,7 @@ class URLGenerator implements IURLGenerator {
 	 * @return string url to the online documentation
 	 */
 	public function linkToDocs($key) {
-		$theme = new OC_Defaults();
+		$theme = \OC::$server->getThemingDefaults();
 		return $theme->buildDocLinkToKey($key);
 	}
 }
diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php
index 2a876eda4d041920729c3b0a59de12fc84e4de61..63da546ec82a39ae9152b7841440fc0143a8cb49 100644
--- a/lib/private/legacy/util.php
+++ b/lib/private/legacy/util.php
@@ -631,7 +631,7 @@ class OC_Util {
 
 		$webServerRestart = false;
 		$setup = new \OC\Setup($config, \OC::$server->getIniWrapper(), \OC::$server->getL10N('lib'),
-			new \OC_Defaults(), \OC::$server->getLogger(), \OC::$server->getSecureRandom());
+			\OC::$server->getThemingDefaults(), \OC::$server->getLogger(), \OC::$server->getSecureRandom());
 
 		$urlGenerator = \OC::$server->getURLGenerator();
 
diff --git a/lib/public/Defaults.php b/lib/public/Defaults.php
index 791ed5827de24cb12e4aaf94dbf4cf5fc4e75e57..5194484fea20d9955b803c8dff95fdf9b0ba7b8d 100644
--- a/lib/public/Defaults.php
+++ b/lib/public/Defaults.php
@@ -51,7 +51,7 @@ class Defaults {
 	 * @since 6.0.0
 	 */
 	function __construct() {
-		$this->defaults = new \OC_Defaults();
+		$this->defaults = \OC::$server->getThemingDefaults();
 	}
 
 	/**
diff --git a/settings/Application.php b/settings/Application.php
index aedf1e00b2d5188941c48a2cae986014f9382504..1549b273c517e7a8058f85f6cab390974232b237 100644
--- a/settings/Application.php
+++ b/settings/Application.php
@@ -227,7 +227,7 @@ class Application extends App {
 			return $c->query('ServerContainer')->getMailer();
 		});
 		$container->registerService('Defaults', function(IContainer $c) {
-			return new \OC_Defaults;
+			return $c->query('ServerContainer')->getThemingDefaults();
 		});
 		$container->registerService('DefaultMailAddress', function(IContainer $c) {
 			return Util::getDefaultEmailAddress('no-reply');
diff --git a/settings/Controller/MailSettingsController.php b/settings/Controller/MailSettingsController.php
index 11f72e7e8ee48c4a5b3aa57617535891e3b53bf6..cd3c6e2224a9a64ca12b5a15d61c5b6222c687f5 100644
--- a/settings/Controller/MailSettingsController.php
+++ b/settings/Controller/MailSettingsController.php
@@ -29,7 +29,6 @@ use OCP\IRequest;
 use OCP\IL10N;
 use OCP\IConfig;
 use OCP\Mail\IMailer;
-use OCP\Mail\IMessage;
 
 /**
  * @package OC\Settings\Controller
diff --git a/settings/personal.php b/settings/personal.php
index e7a928f88bf218bb699d2ada0a0a9fa768f128f3..0519e68beaa7eb15664aee490a383290d3f1eb41 100644
--- a/settings/personal.php
+++ b/settings/personal.php
@@ -37,7 +37,7 @@
 
 OC_Util::checkLoggedIn();
 
-$defaults = new OC_Defaults(); // initialize themable default strings and urls
+$defaults = \OC::$server->getThemingDefaults();
 $certificateManager = \OC::$server->getCertificateManager();
 $config = \OC::$server->getConfig();
 $urlGenerator = \OC::$server->getURLGenerator();