diff --git bp-core/bp-core-template-loader.php bp-core/bp-core-template-loader.php
index 7887169..05ab2df 100644
--- bp-core/bp-core-template-loader.php
+++ bp-core/bp-core-template-loader.php
@@ -108,15 +108,18 @@ function bp_locate_template( $template_names, $load = false, $require_once = tru
  *
  * @param string $location Callback function that returns the stack location
  * @param int $priority
+ * @param string $path_type 'dir' for filesystem paths, 'uri' for URI paths
  */
-function bp_register_template_stack( $location_callback = '', $priority = 10 ) {
+function bp_register_template_stack( $location_callback = '', $priority = 10, $path_type = 'dir' ) {
 
 	// Bail if no location, or function does not exist
-	if ( empty( $location_callback ) || ! function_exists( $location_callback ) )
+	if ( empty( $location_callback ) || ! is_callable( $location_callback ) )
 		return false;
 
+	$tag = 'uri' === $path_type ? 'bp_template_stack_uri' : 'bp_template_stack';
+
 	// Add location callback to template stack
-	return add_filter( 'bp_template_stack', $location_callback, (int) $priority );
+	return add_filter( $tag, $location_callback, (int) $priority );
 }
 
 /**
@@ -128,14 +131,16 @@ function bp_register_template_stack( $location_callback = '', $priority = 10 ) {
  * @param int $priority
  * @see bp_register_template_stack()
  */
-function bp_deregister_template_stack( $location_callback = '', $priority = 10 ) {
+function bp_deregister_template_stack( $location_callback = '', $priority = 10, $path_type = 'dir' ) {
 
 	// Bail if no location, or function does not exist
-	if ( empty( $location_callback ) || ! function_exists( $location_callback ) )
+	if ( empty( $location_callback ) || ! is_callable( $location_callback ) )
 		return false;
 
+	$tag = 'uri' === $path_type ? 'bp_template_stack_uri' : 'bp_template_stack';
+
 	// Add location callback to template stack
-	return remove_filter( 'bp_template_stack', $location_callback, (int) $priority );
+	return remove_filter( $tag, $location_callback, (int) $priority );
 }
 
 /**
@@ -152,11 +157,11 @@ function bp_deregister_template_stack( $location_callback = '', $priority = 10 )
  *
  * @return array The filtered value after all hooked functions are applied to it.
  */
-function bp_get_template_stack() {
+function bp_get_template_stack( $path_type = 'dir' ) {
 	global $wp_filter, $merged_filters, $wp_current_filter;
 
 	// Setup some default variables
-	$tag  = 'bp_template_stack';
+	$tag  = 'uri' === $path_type ? 'bp_template_stack_uri' : 'bp_template_stack';
 	$args = $stack = array();
 
 	// Add 'bp_template_stack' to the current filter array
@@ -187,7 +192,7 @@ function bp_get_template_stack() {
 	// Remove empties and duplicates
 	$stack = array_unique( array_filter( $stack ) );
 
-	return (array) apply_filters( 'bp_get_template_stack', $stack ) ;
+	return (array) apply_filters( 'bp_get_template_stack', $stack, $path_type ) ;
 }
 
 /**
diff --git bp-loader.php bp-loader.php
index 6c138ef..8393a6d 100644
--- bp-loader.php
+++ bp-loader.php
@@ -256,7 +256,7 @@ class BuddyPress {
 
 					// get network-activated plugins
 					$plugins = get_site_option( 'active_sitewide_plugins');
-					
+
 					// basename
 					$basename = plugin_basename( constant( 'BP_PLUGIN_DIR' ) . 'bp-loader.php' );
 
@@ -553,6 +553,9 @@ class BuddyPress {
 		bp_register_template_stack( 'get_stylesheet_directory', 10 );
 		bp_register_template_stack( 'get_template_directory',   12 );
 		bp_register_template_stack( 'bp_get_theme_compat_dir',  14 );
+		bp_register_template_stack( 'get_stylesheet_directory_uri', 10, 'uri' );
+		bp_register_template_stack( 'get_template_directory_uri',   12, 'uri' );
+		bp_register_template_stack( 'bp_get_theme_compat_url',  14, 'uri' );
 	}
 
 	/**
diff --git bp-templates/bp-legacy/buddypress-functions.php bp-templates/bp-legacy/buddypress-functions.php
index af2a5cd..564c422 100644
--- bp-templates/bp-legacy/buddypress-functions.php
+++ bp-templates/bp-legacy/buddypress-functions.php
@@ -197,6 +197,20 @@ class BP_Legacy extends BP_Theme_Compat {
 		// LTR or RTL
 		$file = is_rtl() ? 'css/buddypress-rtl.css' : 'css/buddypress.css';
 
+		$located            = false;
+		$template_locations = bp_get_template_stack( 'uri' );
+		var_dump( $template_locations );
+
+		foreach ( (array) $template_locations as $template_location ) {
+			if ( empty( $template_location ) ) {
+				continue;
+			}
+
+			if ( file_exists( trailingslashit( $template_location ) . $file ) ) {
+				$located = trailingslashit( $template_location ) . $file;
+				break;
+			}
+		}
 		// Check child theme
 		if ( file_exists( trailingslashit( get_stylesheet_directory() ) . $file ) ) {
 			$location = trailingslashit( get_stylesheet_directory_uri() );
