diff --git a/apps/theming/css/theming.scss b/apps/theming/css/theming.scss
index d2196362d3bf73d5ac97ac55a4c03c423c79d3b9..71e0df6735ec6e65a2e1d75355fec27db3ab5ba3 100644
--- a/apps/theming/css/theming.scss
+++ b/apps/theming/css/theming.scss
@@ -45,12 +45,12 @@
 #header .logo,
 #header .logo-icon {
 	background-size: contain;
-	background-image: url(#{$image-logo}?v=#{$theming-cachebuster});
+	background-image: url(#{$image-logo});
 }
 
 #body-login,
 #firstrunwizard .firstrunwizard-header {
-	background-image: url(#{$image-login-background}?v=#{$theming-cachebuster});
+	background-image: url(#{$image-login-background});
 	background-color: $color-primary;
 }
 
diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php
index 2935355f26da422b3f082426e639be6a45a4cc47..39547af49163e963c7348018968d59d6b21fd988 100644
--- a/apps/theming/lib/ThemingDefaults.php
+++ b/apps/theming/lib/ThemingDefaults.php
@@ -165,11 +165,13 @@ class ThemingDefaults extends \OC_Defaults {
 			$backgroundExists = false;
 		}
 
+		$cacheBusterCounter = $this->config->getAppValue('theming', 'cachebuster', '0');
+
 		if(!$backgroundLogo || !$backgroundExists) {
-			return $this->urlGenerator->imagePath('core','background.jpg');
+			return $this->urlGenerator->imagePath('core','background.jpg') . '?v=' . $cacheBusterCounter;
 		}
 
-		return $this->urlGenerator->linkToRoute('theming.Theming.getLoginBackground');
+		return $this->urlGenerator->linkToRoute('theming.Theming.getLoginBackground') . '?v=' . $cacheBusterCounter;
 	}
 
 
diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php
index 736eeb3afc3d37be6ddfae9eec4eae0bb017e4db..7535eddb4f02028e7d3bcb69c6eeef6f8e1a3e83 100644
--- a/apps/theming/tests/ThemingDefaultsTest.php
+++ b/apps/theming/tests/ThemingDefaultsTest.php
@@ -384,10 +384,15 @@ class ThemingDefaultsTest extends TestCase {
 			->method('getFolder')
 			->willThrowException(new NotFoundException());
 		$this->config
-			->expects($this->once())
+			->expects($this->at(0))
 			->method('getAppValue')
 			->with('theming', 'backgroundMime')
 			->willReturn('');
+		$this->config
+			->expects($this->at(1))
+			->method('getAppValue')
+			->with('theming', 'cachebuster', '0')
+			->willReturn('0');
 		$this->appData
 			->expects($this->once())
 			->method('getFolder')
@@ -397,7 +402,7 @@ class ThemingDefaultsTest extends TestCase {
 			->method('imagePath')
 			->with('core', 'background.jpg')
 			->willReturn('core-background');
-		$this->assertEquals('core-background', $this->template->getBackground());
+		$this->assertEquals('core-background?v=0', $this->template->getBackground());
 	}
 
 	public function testGetBackgroundCustom() {
@@ -410,15 +415,20 @@ class ThemingDefaultsTest extends TestCase {
 			->method('getFolder')
 			->willReturn($folder);
 		$this->config
-			->expects($this->once())
+			->expects($this->at(0))
 			->method('getAppValue')
 			->with('theming', 'backgroundMime', false)
 			->willReturn('image/svg+xml');
+		$this->config
+			->expects($this->at(1))
+			->method('getAppValue')
+			->with('theming', 'cachebuster', '0')
+			->willReturn('0');
 		$this->urlGenerator->expects($this->once())
 			->method('linkToRoute')
 			->with('theming.Theming.getLoginBackground')
 			->willReturn('custom-background');
-		$this->assertEquals('custom-background', $this->template->getBackground());
+		$this->assertEquals('custom-background?v=0', $this->template->getBackground());
 	}
 
 	public function testGetLogoDefault() {
@@ -444,7 +454,7 @@ class ThemingDefaultsTest extends TestCase {
 			->method('imagePath')
 			->with('core', 'logo.svg')
 			->willReturn('core-logo');
-		$this->assertEquals('core-logo' . '?v=0', $this->template->getLogo());
+		$this->assertEquals('core-logo?v=0', $this->template->getLogo());
 	}
 
 	public function testGetLogoCustom() {
@@ -483,9 +493,10 @@ class ThemingDefaultsTest extends TestCase {
 		$this->config->expects($this->at(1))->method('getAppValue')->with('theming', 'logoMime', false)->willReturn('jpeg');
 		$this->config->expects($this->at(2))->method('getAppValue')->with('theming', 'cachebuster', '0')->willReturn('0');
 		$this->config->expects($this->at(3))->method('getAppValue')->with('theming', 'backgroundMime', false)->willReturn('jpeg');
-		$this->config->expects($this->at(4))->method('getAppValue')->with('theming', 'color', null)->willReturn($this->defaults->getColorPrimary());
-		$this->config->expects($this->at(5))->method('getAppValue')->with('theming', 'color', $this->defaults->getColorPrimary())->willReturn($this->defaults->getColorPrimary());
+		$this->config->expects($this->at(4))->method('getAppValue')->with('theming', 'cachebuster', '0')->willReturn('0');
+		$this->config->expects($this->at(5))->method('getAppValue')->with('theming', 'color', null)->willReturn($this->defaults->getColorPrimary());
 		$this->config->expects($this->at(6))->method('getAppValue')->with('theming', 'color', $this->defaults->getColorPrimary())->willReturn($this->defaults->getColorPrimary());
+		$this->config->expects($this->at(7))->method('getAppValue')->with('theming', 'color', $this->defaults->getColorPrimary())->willReturn($this->defaults->getColorPrimary());
 
 		$this->util->expects($this->any())->method('invertTextColor')->with($this->defaults->getColorPrimary())->willReturn(false);
 		$this->cache->expects($this->once())->method('get')->with('getScssVariables')->willReturn(null);
@@ -512,7 +523,7 @@ class ThemingDefaultsTest extends TestCase {
 		$expected = [
 			'theming-cachebuster' => '\'0\'',
 			'image-logo' => "'absolute-custom-logo?v=0'",
-			'image-login-background' => "'absolute-custom-background'",
+			'image-login-background' => "'absolute-custom-background?v=0'",
 			'color-primary' => $this->defaults->getColorPrimary(),
 			'color-primary-text' => '#ffffff'