Index: wp-includes/class-wp-customize-manager.php
===================================================================
--- wp-includes/class-wp-customize-manager.php	(revision 21003)
+++ wp-includes/class-wp-customize-manager.php	(working copy)
@@ -752,6 +752,11 @@
 			'theme_supports' => 'custom-background',
 		) );
 
+		$this->add_setting( 'background_image_has_default', array(
+			'default' => (bool) get_theme_support( 'custom-background', 'default-image' ),
+			'theme_supports' => 'custom-background',
+		) );
+
 		$this->add_control( new WP_Customize_Background_Image_Control( $this ) );
 
 		$this->add_setting( 'background_repeat', array(
Index: wp-includes/js/customize-preview.dev.js
===================================================================
--- wp-includes/js/customize-preview.dev.js	(revision 21003)
+++ wp-includes/js/customize-preview.dev.js	(working copy)
@@ -109,13 +109,13 @@
 				return;
 
 			update = function() {
-				var css = '';
+				var css = '', has_default = api.settings.values.background_image_has_default;
 
 				// The body will support custom backgrounds if either
 				// the color or image are set.
 				//
 				// See get_body_class() in /wp-includes/post-template.php
-				body.toggleClass( 'custom-background', !! ( color() || image() ) );
+				body.toggleClass( 'custom-background', !! ( color() || image() || has_default ) );
 
 				if ( color() )
 					css += 'background-color: ' + color() + ';';
@@ -125,6 +125,8 @@
 					css += 'background-position: top ' + position_x() + ';';
 					css += 'background-repeat: ' + repeat() + ';';
 					css += 'background-position: top ' + attachment() + ';';
+				} else if ( has_default ) {
+					css += 'background-image: none;';
 				}
 
 				// Refresh the stylesheet by removing and recreating it.
