Index: bp-activity/bp-activity-loader.php
===================================================================
--- bp-activity/bp-activity-loader.php
+++ bp-activity/bp-activity-loader.php
@@ -28,7 +28,10 @@ class BP_Activity_Component extends BP_Component {
 		parent::start(
 			'activity',
 			__( 'Activity Streams', 'buddypress' ),
-			BP_PLUGIN_DIR
+			BP_PLUGIN_DIR,
+			array(
+				'adminbar_myaccount_order' => 10
+			)
 		);
 	}
 
Index: bp-blogs/bp-blogs-loader.php
===================================================================
--- bp-blogs/bp-blogs-loader.php
+++ bp-blogs/bp-blogs-loader.php
@@ -23,7 +23,10 @@ class BP_Blogs_Component extends BP_Component {
 		parent::start(
 			'blogs',
 			__( 'Site Tracking', 'buddypress' ),
-			BP_PLUGIN_DIR
+			BP_PLUGIN_DIR,
+			array(
+				'adminbar_myaccount_order' => 30
+			)
 		);
 	}
 
Index: bp-core/bp-core-component.php
===================================================================
--- bp-core/bp-core-component.php
+++ bp-core/bp-core-component.php
@@ -114,7 +114,7 @@ class BP_Component {
 	 *
 	 * @since BuddyPress (1.5.0)
 	 *
-	 * @uses bp_Component::setup_actions() Set up the hooks and actions.
+	 * @uses BP_Component::setup_actions() Set up the hooks and actions.
 	 *
 	 * @param string $id Unique ID (for internal identification). Letters,
 	 *        numbers, and underscores only.
@@ -122,8 +122,12 @@ class BP_Component {
 	 *        eg __( 'Groups', 'buddypress' ).
 	 * @param string $path The file path for the component's files. Used by
 	 *        {@link BP_Component::includes()}.
+	 * @param array $params Additional parameters used by the component.
+	 *        The config array supports the following values:
+	 *        - 'adminbar_myaccount_order' Sets the position for our
+	 *          component menu under the WP Toolbar's "My Account" menu.
 	 */
-	public function start( $id = '', $name = '', $path = '' ) {
+	public function start( $id = '', $name = '', $path = '', $params = array() ) {
 
 		// Internal identifier of component
 		$this->id   = $id;
@@ -134,6 +138,19 @@ class BP_Component {
 		// Path for includes
 		$this->path = $path;
 
+		// Miscellaneous component parameters that need to be set early on
+		if ( ! empty( $params ) ) {
+			// Sets the position for our menu under the WP Toolbar's "My Account" menu
+			if ( ! empty( $params['adminbar_myaccount_order'] ) ) {
+				$this->adminbar_myaccount_order = (int) $params['adminbar_myaccount_order'];
+			}
+
+		// Set defaults if not passed
+		} else {
+			// make sure new component menus are added last if position is not passed
+			$this->adminbar_myaccount_order = 101;
+		}
+
 		// Move on to the next step
 		$this->setup_actions();
 	}
@@ -304,7 +321,7 @@ class BP_Component {
 		add_action( 'bp_setup_nav',              array( $this, 'setup_nav'              ), 10 );
 
 		// Setup WP Toolbar menus
-		add_action( 'bp_setup_admin_bar',        array( $this, 'setup_admin_bar'        ), 10 );
+		add_action( 'bp_setup_admin_bar',        array( $this, 'setup_admin_bar'        ), $this->adminbar_myaccount_order );
 
 		// Setup component title
 		add_action( 'bp_setup_title',            array( $this, 'setup_title'            ), 10 );
Index: bp-forums/bp-forums-loader.php
===================================================================
--- bp-forums/bp-forums-loader.php
+++ bp-forums/bp-forums-loader.php
@@ -23,7 +23,10 @@ class BP_Forums_Component extends BP_Component {
 		parent::start(
 			'forums',
 			__( 'Discussion Forums', 'buddypress' ),
-			BP_PLUGIN_DIR
+			BP_PLUGIN_DIR,
+			array(
+				'adminbar_myaccount_order' => 80
+			)
 		);
 	}
 
Index: bp-friends/bp-friends-loader.php
===================================================================
--- bp-friends/bp-friends-loader.php
+++ bp-friends/bp-friends-loader.php
@@ -22,7 +22,10 @@ class BP_Friends_Component extends BP_Component {
 		parent::start(
 			'friends',
 			__( 'Friend Connections', 'buddypress' ),
-			BP_PLUGIN_DIR
+			BP_PLUGIN_DIR,
+			array(
+				'adminbar_myaccount_order' => 60
+			)
 		);
 	}
 
Index: bp-groups/bp-groups-loader.php
===================================================================
--- bp-groups/bp-groups-loader.php
+++ bp-groups/bp-groups-loader.php
@@ -81,7 +81,10 @@ class BP_Groups_Component extends BP_Component {
 		parent::start(
 			'groups',
 			__( 'User Groups', 'buddypress' ),
-			BP_PLUGIN_DIR
+			BP_PLUGIN_DIR,
+			array(
+				'adminbar_myaccount_order' => 70
+			)
 		);
 	}
 
Index: bp-members/bp-members-loader.php
===================================================================
--- bp-members/bp-members-loader.php
+++ bp-members/bp-members-loader.php
@@ -22,7 +22,10 @@ class BP_Members_Component extends BP_Component {
 		parent::start(
 			'members',
 			__( 'Members', 'buddypress' ),
-			BP_PLUGIN_DIR
+			BP_PLUGIN_DIR,
+			array(
+				'adminbar_myaccount_order' => 20
+			)
 		);
 	}
 
Index: bp-messages/bp-messages-loader.php
===================================================================
--- bp-messages/bp-messages-loader.php
+++ bp-messages/bp-messages-loader.php
@@ -31,7 +31,10 @@ class BP_Messages_Component extends BP_Component {
 		parent::start(
 			'messages',
 			__( 'Private Messages', 'buddypress' ),
-			BP_PLUGIN_DIR
+			BP_PLUGIN_DIR,
+			array(
+				'adminbar_myaccount_order' => 50
+			)
 		);
 	}
 
Index: bp-settings/bp-settings-loader.php
===================================================================
--- bp-settings/bp-settings-loader.php
+++ bp-settings/bp-settings-loader.php
@@ -21,7 +21,10 @@ class BP_Settings_Component extends BP_Component {
 		parent::start(
 			'settings',
 			__( 'Settings', 'buddypress' ),
-			BP_PLUGIN_DIR
+			BP_PLUGIN_DIR,
+			array(
+				'adminbar_myaccount_order' => 100
+			)
 		);
 	}
 
Index: bp-xprofile/bp-xprofile-loader.php
===================================================================
--- bp-xprofile/bp-xprofile-loader.php
+++ bp-xprofile/bp-xprofile-loader.php
@@ -39,7 +39,10 @@ class BP_XProfile_Component extends BP_Component {
 		parent::start(
 			'xprofile',
 			__( 'Extended Profiles', 'buddypress' ),
-			BP_PLUGIN_DIR
+			BP_PLUGIN_DIR,
+			array(
+				'adminbar_myaccount_order' => 20
+			)
 		);
 	}
 
