Index: bp-loader.php
--- bp-loader.php
+++ bp-loader.php
@@ -30,20 +30,18 @@
 // Load from source if no build exists
 if ( ! file_exists( $bp_loader ) || defined( 'BP_LOAD_SOURCE' ) ) {
 	$bp_loader = dirname( __FILE__ ) . '/src/bp-loader.php';
-	$subdir = 'src';
-} else {
-	$subdir = 'build';
+
+	// We are loading from source
+	if ( ! defined( 'BP_LOAD_SOURCE' ) ) {
+		define( 'BP_LOAD_SOURCE', true );
+	}
 }
 
-// Set source subdirectory
-define( 'BP_SOURCE_SUBDIRECTORY', $subdir );
-
-// Define overrides - only applicable to those running trunk
+// Directory & URL Overrides - necessary when developing BuddyPress
 if ( ! defined( 'BP_PLUGIN_DIR' ) ) {
 	define( 'BP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
 }
 if ( ! defined( 'BP_PLUGIN_URL' ) ) {
-	// Be nice to symlinked directories
 	define( 'BP_PLUGIN_URL', plugins_url( trailingslashit( basename( constant( 'BP_PLUGIN_DIR' ) ) ) ) );
 }
 
Index: src/bp-loader.php
--- src/bp-loader.php
+++ src/bp-loader.php
@@ -242,11 +242,6 @@
 			define( 'BP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
 		}
 
-		// Only applicable to those running trunk
-		if ( ! defined( 'BP_SOURCE_SUBDIRECTORY' ) ) {
-			define( 'BP_SOURCE_SUBDIRECTORY', '' );
-		}
-
 		// Define on which blog ID BuddyPress should run
 		if ( ! defined( 'BP_ROOT_BLOG' ) ) {
 
@@ -379,11 +374,23 @@
 
 		/** Paths**************************************************************/
 
+		// Assume BuddyPress is not running in a sub-directory
+		$sub_directory = '';
+
+		// Are we currently developing BuddyPress
+		if ( defined( 'BP_LOAD_SOURCE' ) ) {
+			if ( true === constant( 'BP_LOAD_SOURCE' ) ) {
+				$sub_directory = 'src';
+			} else {
+				$sub_directory = 'build';
+			}
+		}
+
 		// BuddyPress root directory
 		$this->file           = constant( 'BP_PLUGIN_DIR' ) . 'bp-loader.php';
 		$this->basename       = basename( constant( 'BP_PLUGIN_DIR' ) ) . '/bp-loader.php';
-		$this->plugin_dir     = trailingslashit( constant( 'BP_PLUGIN_DIR' ) . constant( 'BP_SOURCE_SUBDIRECTORY' ) );
-		$this->plugin_url     = trailingslashit( constant( 'BP_PLUGIN_URL' ) . constant( 'BP_SOURCE_SUBDIRECTORY' ) );
+		$this->plugin_dir     = trailingslashit( constant( 'BP_PLUGIN_DIR' ) . $sub_directory );
+		$this->plugin_url     = trailingslashit( constant( 'BP_PLUGIN_URL' ) . $sub_directory );
 
 		// Languages
 		$this->lang_dir       = $this->plugin_dir . 'bp-languages';
Index: src/bp-templates/bp-legacy/buddypress-functions.php
--- src/bp-templates/bp-legacy/buddypress-functions.php
+++ src/bp-templates/bp-legacy/buddypress-functions.php
@@ -381,11 +381,13 @@
 	 *   asset)
 	 */
 	private function locate_asset_in_stack( $file, $type = 'css', $script_handle = '' ) {
-		$locations = array();
+		$locations = $subdirs = $retval = array();
 
-		// Ensure the assets can be located when running from /src/.
-		if ( defined( 'BP_SOURCE_SUBDIRECTORY' ) && BP_SOURCE_SUBDIRECTORY === 'src' ) {
-			$file = str_replace( '.min', '', $file );
+		// Assets in /src/ are not minified
+		if ( defined( 'BP_LOAD_SOURCE' ) ) {
+			$raw_file = str_replace( '.min', '', $file );
+		} else {
+			$raw_file = $file;
 		}
 
 		// No need to check child if template == stylesheet
@@ -393,31 +395,55 @@
 			$locations['bp-child'] = array(
 				'dir'  => get_stylesheet_directory(),
 				'uri'  => get_stylesheet_directory_uri(),
-				'file' => $file,
+				'file' => $raw_file
 			);
 		}
 
 		$locations['bp-parent'] = array(
 			'dir'  => get_template_directory(),
 			'uri'  => get_template_directory_uri(),
-			'file' => $file,
+			'file' => $raw_file
 		);
 
 		$locations['bp-legacy'] = array(
 			'dir'  => bp_get_theme_compat_dir(),
 			'uri'  => bp_get_theme_compat_url(),
-			'file' => $file,
+			'file' => $raw_file
 		);
 
-		// Subdirectories within the top-level $locations directories
-		$subdirs = array(
-			'buddypress/' . $type,
-			'community/' . $type,
-			$type,
-		);
+		// Look for minified versions
+		if ( $raw_file !== $file ) {
 
-		$retval = array();
+			// Define new locations array
+			$new_locations = array();
 
+			// Loop through existing locations and add minified versions
+			foreach ( $locations as $location_type => $location_data ) {
+
+				// Repopulate current location
+				$new_locations[ $location_type ] = $location_data;
+
+				// Populate minified location
+				$location_key = $location_type . '-min';
+				$new_locations[ $location_key ] = $location_data;
+				$new_locations[ $location_key ]['file'] = $file;
+			}
+
+			// Set locations to new locations
+			$locations = $new_locations;
+		}
+
+		// Subdirectories within top-level $locations directories
+		$asset_locations = bp_get_template_locations();
+		foreach ( $asset_locations as $asset_location ) {
+			if ( ! empty( $asset_location ) ) {
+				$subdirs[] = "{$asset_location}/{$type}";
+			} else {
+				$subdirs[] = $type;
+			}
+		}
+
+		// Look for assets
 		foreach ( $locations as $location_type => $location ) {
 			foreach ( $subdirs as $subdir ) {
 				if ( file_exists( trailingslashit( $location['dir'] ) . trailingslashit( $subdir ) . $location['file'] ) ) {
