diff --git src/bp-core/bp-core-functions.php src/bp-core/bp-core-functions.php
index 5b93f9c..1a82571 100644
--- src/bp-core/bp-core-functions.php
+++ src/bp-core/bp-core-functions.php
@@ -381,7 +381,11 @@ function bp_core_get_directory_page_ids() {
 	if ( !empty( $page_ids ) && is_array( $page_ids ) ) {
 		foreach( (array) $page_ids as $component_name => $page_id ) {
 			if ( empty( $component_name ) || empty( $page_id ) ) {
-				unset( $page_ids[$component_name] );
+				unset( $page_ids[ $component_name ] );
+			}
+
+			if ( ! bp_is_active( $component_name ) || 'trash' == get_post_status( $page_id ) ) {
+				unset( $page_ids[ $component_name ] );
 			}
 		}
 	}
@@ -706,6 +710,25 @@ function bp_do_register_theme_directory() {
 	return apply_filters( 'bp_do_register_theme_directory', $register );
 }
 
+/**
+ * Handle for updating BP directory pages option when page is deleted.
+ *
+ * @since BuddyPress (2.2.0)
+ * 
+ * @param int $post_id Post ID.
+ */
+function bp_core_on_directory_page_delete( $post_id ) {
+	$page_ids = bp_core_get_directory_page_ids();
+	$component_name = array_search( $post_id, $page_ids );
+
+  	if ( ! empty( $component_name ) ) {
+		unset( $page_ids[ $component_name ] );
+  	}
+
+	bp_core_update_directory_page_ids( $page_ids );
+}
+add_action( 'delete_post', 'bp_core_on_directory_page_delete' );
+
 /** URI ***********************************************************************/
 
 /**
