diff --git bp-core/bp-core-catchuri.php bp-core/bp-core-catchuri.php
index eaaa287..5e27471 100644
--- bp-core/bp-core-catchuri.php
+++ bp-core/bp-core-catchuri.php
@@ -340,30 +340,18 @@ function bp_core_enable_root_profiles() {
  * @return bool|null Returns false on failure.
  */
 function bp_core_load_template( $templates ) {
-	global $post, $bp, $wp_query, $wpdb;
+	global $wp_query;
 
-	// Determine if the root object WP page exists for this request
-	// note: get_page_by_path() breaks non-root pages
-	if ( !empty( $bp->unfiltered_uri_offset ) ) {
-		if ( !$page_exists = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_name = %s", $bp->unfiltered_uri[$bp->unfiltered_uri_offset] ) ) ) {
-			return false;
-		}
-	}
-
-	// Set the root object as the current wp_query-ied item
-	$object_id = 0;
-	foreach ( (array) $bp->pages as $page ) {
-		if ( $page->name == $bp->unfiltered_uri[$bp->unfiltered_uri_offset] ) {
-			$object_id = $page->id;
-		}
-	}
+	// add a dummy post
+	bp_theme_compat_reset_post( array(
+		'ID'          => 0,
+		'is_404'      => true,
+		'post_status' => 'publish',
+	) );
 
-	// Make the queried/post object an actual valid page
-	if ( !empty( $object_id ) ) {
-		$wp_query->queried_object    = get_post( $object_id );
-		$wp_query->queried_object_id = $object_id;
-		$post                        = $wp_query->queried_object;
-	}
+	// need to set theme compat to false since the reset post function
+	// automatically sets theme compat to true
+	bp_set_theme_compat_active( false );
 
 	// Fetch each template and add the php suffix
 	$filtered_templates = array();
@@ -371,10 +359,20 @@ function bp_core_load_template( $templates ) {
 		$filtered_templates[] = $template . '.php';
 	}
 
-	// Filter the template locations so that plugins can alter where they are located
-	$located_template = apply_filters( 'bp_located_template', locate_template( (array) $filtered_templates, false ), $filtered_templates );
-	if ( !empty( $located_template ) ) {
+	// bp-default template lookup. will always exist!
+	if ( ! bp_use_theme_compat_with_current_theme() ) {
+		$template = locate_template( (array) $filtered_templates, false );
+
+	// theme compat doesn't require older bp-default so avoid unnecessary
+	// locate_template() call
+	} else {
+		$template = '';
+	}
+
+	// Filter the template locations so plugins can alter where they are located
+	$located_template = apply_filters( 'bp_located_template', $template, $filtered_templates );
 
+	if ( ! empty( $located_template ) ) {
 		// Template was located, lets set this as a valid page and not a 404.
 		status_header( 200 );
 		$wp_query->is_page     = true;
