diff --git src/bp-core/bp-core-filters.php src/bp-core/bp-core-filters.php
index 9f0d359..b60e70a 100644
--- src/bp-core/bp-core-filters.php
+++ src/bp-core/bp-core-filters.php
@@ -859,9 +859,16 @@ function bp_setup_nav_menu_item( $menu_item ) {
 		return $menu_item;
 	}
 
+	// Prevent a notice error when using the customizer
+	$menu_classes = $menu_item->classes;
+
+	if ( is_array( $menu_classes ) ) {
+		$menu_classes = implode( ' ', $menu_item->classes);
+	}
+
 	// We use information stored in the CSS class to determine what kind of
 	// menu item this is, and how it should be treated
-	preg_match( '/\sbp-(.*)-nav/', implode( ' ', $menu_item->classes), $matches );
+	preg_match( '/\sbp-(.*)-nav/', $menu_classes, $matches );
 
 	// If this isn't a BP menu item, we can stop here
 	if ( empty( $matches[1] ) ) {
@@ -915,7 +922,12 @@ function bp_setup_nav_menu_item( $menu_item ) {
 	} else {
 		$current = bp_get_requested_url();
 		if ( strpos( $current, $menu_item->url ) !== false ) {
-			$menu_item->classes[] = 'current_page_item';
+			if ( is_array( $menu_item->classes ) ) {
+				$menu_item->classes[] = 'current_page_item';
+				$menu_item->classes[] = 'current-menu-item';
+			} else {
+				$menu_item->classes = array( 'current_page_item', 'current-menu-item' );
+			}
 		}
 	}
 
@@ -924,6 +936,76 @@ function bp_setup_nav_menu_item( $menu_item ) {
 add_filter( 'wp_setup_nav_menu_item', 'bp_setup_nav_menu_item', 10, 1 );
 
 /**
+ * Populate BuddyPress item navs for the customizer
+ *
+ * NB: this will only work if WP_Customize_Nav_Menus->load_available_items_query()
+ * includes a filter to let plugins get specific item navs.
+ * @see WordPress ticket https://core.trac.wordpress.org/ticket/32708
+ *
+ * @since  BuddyPress (2.4.0)
+ *
+ * @param  array   $items     The array of menu items
+ * @param  string  $obj_type  The requested type
+ * @param  string  $obj_name  The requested object name
+ * @param  integer $page      The page num being requested
+ * @return array              The current page number.
+ */
+function bp_customizer_nav_menus_get_items( $items = array(), $obj_type = '', $obj_name = '', $page = 0 ) {
+	if ( 'bp_loggedin_nav' === $obj_name ) {
+		$bp_items = bp_nav_menu_get_loggedin_pages();
+	} elseif ( 'bp_loggedout_nav' === $obj_name ) {
+		$bp_items = bp_nav_menu_get_loggedout_pages();
+	} else {
+		return $items;
+	}
+
+	foreach ( $bp_items as $bp_item ) {
+		$items[] = array(
+			'id'         => "bp-{$bp_item->post_excerpt}",
+			'title'      => html_entity_decode( $bp_item->post_title, ENT_QUOTES, get_bloginfo( 'charset' ) ),
+			'type'       => $obj_type,
+			'url'        => esc_url_raw( $bp_item->guid ),
+			'classes'    => "bp-menu bp-{$bp_item->post_excerpt}-nav",
+			'type_label' => __( 'Custom Link', 'buddypress' ),
+			'object'     => $obj_name,
+			'object_id'  => -1,
+		);
+	}
+
+	return array_slice( $items, 10 * $page, 10 );
+}
+add_filter( 'customize_nav_menu_available_items', 'bp_customizer_nav_menus_get_items', 10, 4 );
+
+/**
+ * Set BuddyPress item navs for the customizer
+ *
+ * NB: this will only work if WP_Customize_Nav_Menus->available_item_types()
+ * includes a filter to let plugins set specific item navs.
+ * @see WordPress ticket https://core.trac.wordpress.org/ticket/32708
+ *
+ * @since  BuddyPress (2.4.0)
+ *
+ * @param  array $item_types an associative array structured for the customizer
+ */
+function bp_customizer_nav_menus_set_item_types( $item_types = array() ) {
+	$item_types['bp_nav'] = array(
+		'bp_loggedin_nav' => array(
+			'title'  => __( 'BuddyPress (logged-in)', 'buddypress' ),
+			'object' => 'bp_nav',
+			'type'   => 'bp_loggedin_nav',
+		),
+		'bp_loggedout_nav' => array(
+			'title'  => __( 'BuddyPress (logged-out)', 'buddypress' ),
+			'object' => 'bp_nav',
+			'type'   => 'bp_loggedout_nav',
+		),
+	);
+
+	return $item_types;
+}
+add_filter( 'customize_nav_menu_available_item_types', 'bp_customizer_nav_menus_set_item_types', 10, 1 );
+
+/**
  * Filter SQL query strings to swap out the 'meta_id' column.
  *
  * WordPress uses the meta_id column for commentmeta and postmeta, and so
