Index: wp-includes/theme.php
===================================================================
--- wp-includes/theme.php	(revision 20992)
+++ wp-includes/theme.php	(working copy)
@@ -1102,7 +1102,7 @@
  * @access protected
  */
 function _custom_background_cb() {
-	$background = get_theme_mod( 'background_image' );
+	$background = get_background_image();
 	$color = get_theme_mod( 'background_color' );
 
 	if ( ! $background && ! $color )
@@ -1129,6 +1129,8 @@
 		$attachment = " background-attachment: $attachment;";
 
 		$style .= $image . $repeat . $position . $attachment;
+	} elseif ( get_theme_support( 'custom-background', 'default-image' ) ) {
+		$style .= " background-image: none;";
 	}
 ?>
 <style type="text/css" id="custom-background-css">
Index: wp-includes/post-template.php
===================================================================
--- wp-includes/post-template.php	(revision 20992)
+++ 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_color() || get_theme_mod( 'background_image' ) || get_theme_support( 'custom-background', 'default-image' ) )
 		$classes[] = 'custom-background';
 
 	$page = $wp_query->get( 'page' );
