Index: bp-core/bp-core-filters.php
===================================================================
--- bp-core/bp-core-filters.php	(revision 5152)
+++ bp-core/bp-core-filters.php	(working copy)
@@ -299,7 +299,7 @@ function bp_modify_page_title( $title, $sep, $seplocation ) {
 		if ( !bp_current_component() )
 			$title = sprintf( __( '%s Directory', 'buddypress' ), bp_get_name_from_root_slug( bp_members_slug() ) );
 		else
-			$title = sprintf( __( '%s Directory', 'buddypress' ), bp_get_name_from_root_slug() );
+			$title = sprintf( __( '%s Directory', 'buddypress' ), bp_get_name_from_root_slug( bp_get_root_slug() ) );
 
 	// Sign up page
 	} elseif ( bp_is_register_page() ) {
Index: bp-core/bp-core-template.php
===================================================================
--- bp-core/bp-core-template.php	(revision 5152)
+++ bp-core/bp-core-template.php	(working copy)
@@ -652,7 +652,9 @@ function bp_root_slug( $component = '' ) {
 
 		// Component is active
 		if ( !empty( $bp->active_components[$component] ) ) {
-			$component_name = $bp->active_components[$component];
+			// Backward compatibility: in legacy plugins, the canonical component id
+			// was stored as an array value in $bp->active_components
+			$component_name = '1' == $bp->active_components[$component] ? $component : $bp->active_components[$component];
 
 			// Component has specific root slug
 			if ( !empty( $bp->{$component_name}->root_slug ) ) {
