Index: bp-themes/bp-default/functions.php
===================================================================
--- bp-themes/bp-default/functions.php
+++ bp-themes/bp-default/functions.php
@@ -126,6 +126,8 @@ function bp_dtheme_setup() {
 		if ( bp_is_active( 'blogs' ) )
 			add_action( 'bp_directory_blogs_actions',  'bp_blogs_visit_blog_button' );
 	}
+
+	add_action( 'get_header', 'ob_start', 0 );
 }
 add_action( 'after_setup_theme', 'bp_dtheme_setup' );
 endif;
@@ -177,6 +179,27 @@ if ( !function_exists( 'bp_dtheme_enqueue_styles' ) ) :
  * @since 1.5
  */
 function bp_dtheme_enqueue_styles() {
+	// save output buffer into a variable
+	$buffer = ob_get_contents();
+
+	// stop output buffering
+	ob_end_clean();
+
+	// backpat: check to see if a stylesheet was hardcoded into header.php
+	// if so, echo the output buffer without the hardcoded stylesheet and enqueue it
+        if ( strpos( $buffer, 'style.css' ) !== false ) { 
+		// replace hardcoded stylesheet with nothing
+		echo str_replace( '<link rel="stylesheet" href="' . get_bloginfo( 'stylesheet_url' ) . '" type="text/css" media="screen" />', '', $buffer );
+                // Now properly enqueue the child theme's stylesheet
+                wp_enqueue_style( get_stylesheet(), get_stylesheet_uri(), array() ); 
+                
+                // stop the rest of this function
+                return;
+	}
+
+	// we still need to output the saved buffer, then we continue as usual!
+	echo $buffer;
+
 	// Bump this when changes are made to bust cache
 	$version = '20110830';
 
