Index: wp-includes/post-template.php
===================================================================
--- wp-includes/post-template.php	(revision 20994)
+++ wp-includes/post-template.php	(working copy)
@@ -501,10 +501,7 @@
 	if ( is_admin_bar_showing() )
 		$classes[] = 'admin-bar';
 
-	if ( get_theme_mod( 'background_image' ) || get_theme_mod( 'background_color' ) ||
-		( '_custom_background_cb' != get_theme_support( 'custom-background', 'wp-head-callback' )
-			&& ( get_theme_support( 'custom-background', 'default-image' ) ||
-				get_theme_support( 'custom-background', 'default-color' ) ) ) )
+	if ( get_background_image() || get_background_color() )
 		$classes[] = 'custom-background';
 
 	$page = $wp_query->get( 'page' );
Index: wp-includes/theme.php
===================================================================
--- wp-includes/theme.php	(revision 20994)
+++ wp-includes/theme.php	(working copy)
@@ -1063,7 +1063,11 @@
  * @return string
  */
 function get_background_image() {
-	return get_theme_mod('background_image', get_theme_support( 'custom-background', 'default-image' ) );
+	$bg = get_theme_mod('background_image', false );
+	if ( false !== $bg )
+		return $bg;
+
+	return sprintf( get_theme_support( 'custom-background', 'default-image' ), get_template_directory_uri(), get_stylesheet_directory_uri() ) ;
 }
 
 /**
@@ -1102,8 +1106,8 @@
  * @access protected
  */
 function _custom_background_cb() {
-	$background = get_theme_mod( 'background_image' );
-	$color = get_theme_mod( 'background_color' );
+	$background = get_background_image();
+	$color = get_background_color();
 
 	if ( ! $background && ! $color )
 		return;
@@ -1129,6 +1133,9 @@
 		$attachment = " background-attachment: $attachment;";
 
 		$style .= $image . $repeat . $position . $attachment;
+	} else if ( '' === $background && get_theme_support( 'custom-background', 'default-image' ) ) {
+		$image = " background-image: none;";
+		$style .= $image;
 	}
 ?>
 <style type="text/css" id="custom-background-css">
