diff -Naur wp-content/plugins/old/buddypress/bp-core/admin/bp-core-admin-slugs.php wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-slugs.php
--- wp-content/plugins/old/buddypress/bp-core/admin/bp-core-admin-slugs.php	2016-03-31 20:02:12.000000000 +0000
+++ wp-content/plugins/buddypress/bp-core/admin/bp-core-admin-slugs.php	2016-04-20 06:42:33.126077606 +0000
@@ -113,7 +113,7 @@
 	$bp = buddypress();
 
 	// Get the existing WP pages
-	$existing_pages = bp_core_get_directory_page_ids();
+	$existing_pages = bp_core_get_directory_page_ids('all');
 
 	// Set up an array of components (along with component names) that have directory pages.
 	$directory_pages = bp_core_admin_get_directory_pages();
@@ -157,7 +157,7 @@
 					</tr>
 
 
-				<?php endforeach ?>
+				<?php endforeach; ?>
 
 				<?php
 
@@ -219,7 +219,7 @@
 						</td>
 					</tr>
 
-				<?php endforeach ?>
+				<?php endforeach; ?>
 
 				<?php
 
@@ -235,6 +235,82 @@
 
 		<?php
 	endif;
+
+	$allowed_directories = bp_admin_get_profiles_pages();
+
+    if (!empty($directory_pages)): ?>
+
+        <h3><?php _e('Profiles', 'buddypress');?></h3>
+
+        <p><?php _e('Select the default component that should be shown on Profile pages.', 'buddypress');?></p>
+
+        <table class="form-table">
+            <tbody>
+
+                <?php foreach ($directory_pages as $name => $label) : ?>
+
+                    <?php if (!array_key_exists('profile_' . $name, $allowed_directories)) {
+			        	continue;
+			    	}
+			    	?>
+
+	                 <tr valign="top">
+	                        <th scope="row">
+	                            <label for="bp_pages[profile_<?php echo esc_attr($name) ?>]"><?php echo esc_html($label) ?></label>
+	                        </th>
+
+	                        <td>
+
+	                        <?php if (!bp_is_root_blog()) {
+						       		 switch_to_blog(bp_get_root_blog_id());
+						    	}
+						    ?>
+	                        <?php
+							/* I don't know how this patch has work before I have changed next lines of code
+							   But on PHP 7.0.4 it don't work - I have tested */
+							$global_array_parameter = $allowed_directories['profile_' . $name];
+							$bp_profiles_tabs = $bp->{$global_array_parameter};
+							?>
+
+	                        <?php if (!empty($bp_profiles_tabs) || $name == 'groups'): ?>
+
+	                            <select data-value="<?php echo ($name == 'groups') ? $existing_pages['profile_groups'] : ''; ?>" name="bp_pages[profile_<?php echo esc_attr($name) ?>]" id="bp_pages[profile_<?php echo esc_attr($name) ?>]">
+									<?php if ($name != 'groups') : ?>
+									<?php foreach ($bp_profiles_tabs as $id => $tab_page): ?>
+	                                    <?php if (!is_numeric($id) || $id > 0): ?>
+
+	                                    <?php $selected_tab = ($tab_page['slug'] == $existing_pages['profile_' . $name]) ? "selected" : "";?>
+
+	                                        <option <?=$selected_tab;?> value="<?=$tab_page['slug'];?>"><?=ucfirst($tab_page['name']);?></option>
+	                                    <?php endif; ?>
+	                                <?php endforeach; ?>
+								<?php endif; ?>
+	                            </select>
+
+	                        <?php endif; ?>
+
+
+	                            <?php if (!empty($existing_pages['profile_' . $name])): ?>
+	                                <?php $current_tab = bp_get_tab_by_slug($bp_profiles_tabs, $existing_pages['profile_' . $name]);?>
+	                                <a href="<?php echo $current_tab['link']; ?>" class="button-secondary" target="_bp"><?php _e('View', 'buddypress');?></a>
+
+	                            <?php endif; ?>
+
+	                            <?php if (!bp_is_root_blog()) {
+								        restore_current_blog();
+								    }
+								 ?>
+
+	                        </td>
+	                 </tr>
+
+
+               		 <?php endforeach; ?>
+                </table>
+
+	<?php endif; ?>
+    <?php
+
 }
 
 /**
@@ -251,20 +327,64 @@
 
 		// Then, update the directory pages.
 		if ( isset( $_POST['bp_pages'] ) ) {
-			$valid_pages = array_merge( bp_core_admin_get_directory_pages(), bp_core_admin_get_static_pages() );
+			$valid_pages = array_merge(bp_core_admin_get_directory_pages(), bp_core_admin_get_static_pages(), bp_admin_get_profiles_pages());
 
 			$new_directory_pages = array();
 			foreach ( (array) $_POST['bp_pages'] as $key => $value ) {
 				if ( isset( $valid_pages[ $key ] ) ) {
-					$new_directory_pages[ $key ] = (int) $value;
+					$new_directory_pages[ $key ] = $value;
 				}
 			}
 			bp_core_update_directory_page_ids( $new_directory_pages );
 		}
 
-		$base_url = bp_get_admin_url( add_query_arg( array( 'page' => 'bp-page-settings', 'updated' => 'true' ), 'admin.php' ) );
+		$base_url = bp_get_admin_url( add_query_arg(array('page' => 'bp-page-settings', 'updated' => 'true' ), 'admin.php'));
 
 		wp_redirect( $base_url );
 	}
 }
 add_action( 'bp_admin_init', 'bp_core_admin_slugs_setup_handler' );
+
+function bp_get_tab_by_slug($tabs, $slug)
+{
+
+    if (!empty($tabs) && !empty($slug)) {
+
+        foreach ($tabs as $tab) {
+            if ($tab['slug'] == $slug) {
+                return $tab;
+            }
+
+        }
+    }
+
+    return false;
+}
+
+function my_action_javascript() {
+	if (htmlspecialchars($_GET['page']) == 'bp-page-settings') {
+		$existing_pages = bp_core_get_directory_page_ids('all');
+		$group = BP_Groups_Group::get_random(1, 1);
+		if (isset($existing_pages['groups']) && count($group['groups'])) {
+			$groups_list_page = get_page($existing_pages['groups']);
+			$group_url = '/' . $groups_list_page->post_name . '/' . $group['groups'][0]->slug . '/';
+			?>
+	   		<script type="text/javascript">
+	   			jQuery(document).ready(function($) {
+					var data = { bp_group_nav: 1 };
+	   				jQuery.getJSON('<?=$group_url?>', data, function(response) {
+						console.log(response);
+						response.pages.forEach(function(item, index, arr) {
+							var opt = $("<option value='" + item.slug + "'>" + item.name + "</option>");
+							$("#bp_pages\\[profile_groups\\]").append(opt);
+						});
+						var val = $("#bp_pages\\[profile_groups\\]").attr("data-value");
+						$("#bp_pages\\[profile_groups\\]").val(val);
+	   				});
+	   			});
+	   		</script> <?php
+		}
+	}
+}
+
+add_action('admin_footer', 'my_action_javascript');
diff -Naur wp-content/plugins/old/buddypress/bp-core/bp-core-buddybar.php wp-content/plugins/buddypress/bp-core/bp-core-buddybar.php
--- wp-content/plugins/old/buddypress/bp-core/bp-core-buddybar.php	2016-03-31 20:02:12.000000000 +0000
+++ wp-content/plugins/buddypress/bp-core/bp-core-buddybar.php	2016-04-20 07:46:25.438172444 +0000
@@ -230,9 +230,11 @@
 		// The requested URL has explicitly included the default subnav
 		// (eg: http://example.com/members/membername/activity/just-me/)
 		// The canonical version will not contain this subnav slug.
-		if ( ! empty( $r['default_subnav_slug'] ) && bp_is_current_action( $r['default_subnav_slug'] ) && ! bp_action_variable( 0 ) ) {
-			unset( $bp->canonical_stack['action'] );
-		} elseif ( ! bp_current_action() ) {
+
+		//Modified: canonical redirect not used longer.Need for set default profile page
+        /*if (!empty($r['default_subnav_slug']) && bp_is_current_action($r['default_subnav_slug']) && !bp_action_variable(0)) {
+        unset($bp->canonical_stack['action']);
+        } else*/if ( ! bp_current_action() ) {
 
 			// Add our screen hook if screen function is callable.
 			if ( is_callable( $r['screen_function'] ) ) {
@@ -848,3 +850,56 @@
 
 	return 'true' === $pref;
 }
+
+
+function bp_admin_get_profiles_pages() {
+
+    return array('profile_members' => 'bp_nav', 'profile_groups' => 'group_nav');
+
+}
+
+
+
+add_action('parse_request', 'checkRequest');
+
+function checkRequest($wp) {
+    global $bp;
+
+    $redirect_to = array();
+
+    $existing_pages      = bp_core_get_directory_page_ids('all');
+    $allowed_directories = bp_admin_get_profiles_pages();
+
+    $current_page = explode("/", $wp->query_vars['pagename']);
+
+	/* Here was second BUG: if slug of members page setted not as 'members', but as 'пользователи' (in russian) for example
+		old code haven't work */
+	$bp_redirect_slug = $existing_pages['profile_' . $current_page[0]];
+	if (empty($bp_redirect_slug)) {
+		$wp_content_current_page = get_page_by_path($current_page[0]);
+		if (isset($wp_content_current_page->ID)) {
+			$bp_settings_page_type = array_keys($existing_pages, $wp_content_current_page->ID);
+			if (count($bp_settings_page_type)) {
+				$bp_redirect_slug = $existing_pages['profile_' . $bp_settings_page_type[0]];
+			}
+		}
+	}
+
+
+	if (!empty($bp_redirect_slug) && (count($current_page) > 1 || $wp->query_vars['page'])) {
+        if (empty($current_page[2]) && $bp_redirect_slug) {
+            $redirect_to = array_merge(array(""), $redirect_to, $current_page);
+			if ($wp->query_vars['page']) {
+				$redirect_to[] = $wp->query_vars['page'];
+			}
+            if (!is_numeric($bp_redirect_slug)) {
+                $redirect_to[] = $bp_redirect_slug;
+            }
+        }
+    }
+
+    if (!empty($redirect_to)) {
+        bp_core_redirect(implode("/", $redirect_to));
+    }
+
+}
diff -Naur wp-content/plugins/old/buddypress/bp-groups/bp-groups-loader.php wp-content/plugins/buddypress/bp-groups/bp-groups-loader.php
--- wp-content/plugins/old/buddypress/bp-groups/bp-groups-loader.php	2016-03-31 20:02:12.000000000 +0000
+++ wp-content/plugins/buddypress/bp-groups/bp-groups-loader.php	2016-04-20 06:30:25.642596502 +0000
@@ -25,3 +25,15 @@
 	buddypress()->groups = new BP_Groups_Component();
 }
 add_action( 'bp_setup_components', 'bp_setup_groups', 6 );
+
+/* Getting of group nav menu options array */
+function bp_get_group_menu() {
+	if (htmlspecialchars($_GET['bp_group_nav'])) {
+		global $bp;
+		if (isset($bp->groups->current_group->slug) && $bp->groups->current_group->slug == $bp->current_item) {
+			echo json_encode(array("pages" => array_values($bp->bp_options_nav[$bp->groups->current_group->slug])));
+		}
+		die();
+	}
+}
+add_action('bp_setup_nav', 'bp_get_group_menu', 100000);
diff -Naur wp-content/plugins/old/buddypress/bp-groups/classes/class-bp-groups-component.php wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php
--- wp-content/plugins/old/buddypress/bp-groups/classes/class-bp-groups-component.php	2016-03-31 20:02:12.000000000 +0000
+++ wp-content/plugins/buddypress/bp-groups/classes/class-bp-groups-component.php	2016-04-19 23:15:39.178901093 +0000
@@ -404,9 +404,11 @@
 		// When viewing the default extension, the canonical URL should not have
 		// that extension's slug, unless more has been tacked onto the URL via
 		// action variables.
-		if ( bp_is_current_action( $this->default_extension ) && empty( $bp->action_variables ) )  {
-			unset( $bp->canonical_stack['action'] );
-		}
+		
+		//No used longer.Need for set default profile page
+        /* if (bp_is_current_action($this->default_extension) && empty($bp->action_variables)) {
+	    unset($bp->canonical_stack['action']);
+	    }*/
 	}
 
 	/**
diff -Naur wp-content/plugins/old/buddypress/bp-members/classes/class-bp-members-component.php wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php
--- wp-content/plugins/old/buddypress/bp-members/classes/class-bp-members-component.php	2016-03-31 20:02:12.000000000 +0000
+++ wp-content/plugins/buddypress/bp-members/classes/class-bp-members-component.php	2016-04-19 23:15:39.178901093 +0000
@@ -202,9 +202,11 @@
 				$bp->current_component = $bp->default_component;
 
 			// The canonical URL will not contain the default component.
-			} elseif ( bp_is_current_component( $bp->default_component ) && ! bp_current_action() ) {
-				unset( $bp->canonical_stack['component'] );
-			}
+			} 
+			//No used longer.Need for set default profile page
+            /*elseif (bp_is_current_component($bp->default_component) && !bp_current_action()) {
+            unset($bp->canonical_stack['component']);
+            }*/
 
 			// If we're on a spammer's profile page, only users with the 'bp_moderate' cap
 			// can view subpages on the spammer's profile.
