Index: bp-themes/bp-default/functions.php
===================================================================
--- bp-themes/bp-default/functions.php	(revision 5075)
+++ bp-themes/bp-default/functions.php	(working copy)
@@ -180,8 +180,39 @@ function bp_dtheme_enqueue_styles() {
 	// Bump this when changes are made to bust cache
 	$version = '20110830';
 
-	// Default CSS
-	wp_enqueue_style( 'bp-default-main', get_template_directory_uri() . '/_inc/css/default.css', array(), $version );
+	// We may flip this flag later
+	$enqueue_default_stylesheet = false;
+
+	// Register the default CSS
+	wp_register_style( 'bp-default-main', get_template_directory_uri() . '/_inc/css/default.css', array(), $version );
+
+	// Child themes of bp-default must have their styles enqueued manually
+	if ( 'bp-default' == get_template() ) {
+		// Now we test to see whether the stylesheet does @import for bp-default's CSS
+		// Open the child theme's stylesheet
+		$fp = fopen( STYLESHEETPATH . '/style.css', 'r' );
+
+		// Pull only the first 8kiB of the file in. @imports should be near the top
+		$file_data = fread( $fp, 8192 );
+
+		// PHP will close file handle, but we are good citizens.
+		fclose( $fp );
+
+		$pattern = '|@import url\(\s*(\.\./)*plugins/buddypress/bp\-themes/bp\-default/_inc/css/default\.css|';
+
+		// If there's an @import rule, save an HTTP request and don't enqueue
+		if ( preg_match( $pattern, $file_data ) ) {
+			// Enqueue the stylesheet
+			wp_enqueue_style( get_stylesheet(), get_stylesheet_uri(), array(), $version );
+			$enqueue_default_stylesheet = false;
+		} else {
+			// Enqueue the stylesheet
+			wp_enqueue_style( get_stylesheet(), get_stylesheet_uri(), array( 'bp-default-main' ), $version );
+		}
+	}
+
+	if ( $enqueue_default_stylesheet )
+		wp_enqueue_style( 'bp-default-main' );
 
 	// Default CSS RTL
 	if ( is_rtl() )
