Index: src/includes/common/template.php
===================================================================
--- src/includes/common/template.php	(revision 5581)
+++ src/includes/common/template.php	(working copy)
@@ -1071,6 +1071,35 @@
 }
 
 /**
+ * Output correct nav_menu classes if is_bbpress
+ *
+ * @since bbPress (r??)
+ *
+ * @param array $items
+ * @uses is_bbpress()
+ * @return array nav menu items
+ */
+function bbp_nav_menu_class( $items ) {
+	if ( is_bbpress() ) {
+		$parents = array();
+		foreach ( $items as $item ) {
+			if ( strstr( $item->url, bbp_get_root_slug() ) ) {
+				$item->classes[] = 'current-menu-item';
+				if ( $item->menu_item_parent && $item->menu_item_parent > 0 ) {
+					$parents[] = $item->menu_item_parent;
+				}
+			}
+		}
+		foreach ( $items as $item ) {
+			if ( in_array( $item->ID, $parents ) ) {
+				$item->classes[] = 'current-menu-ancestor';
+			}
+		}
+	}
+	return $items;
+}
+
+/**
  * Use the above is_() functions to return if in any bbPress page
  *
  * @since bbPress (r3344)
Index: src/includes/core/filters.php
===================================================================
--- src/includes/core/filters.php	(revision 5581)
+++ src/includes/core/filters.php	(working copy)
@@ -41,6 +41,7 @@
 add_filter( 'template_include',        'bbp_template_include',   10    );
 add_filter( 'wp_title',                'bbp_title',              10, 3 );
 add_filter( 'body_class',              'bbp_body_class',         10, 2 );
+add_filter( 'wp_nav_menu_objects', 'bbp_nav_menu_class', 10, 1 );
 add_filter( 'map_meta_cap',            'bbp_map_meta_caps',      10, 4 );
 add_filter( 'allowed_themes',          'bbp_allowed_themes',     10    );
 add_filter( 'redirect_canonical',      'bbp_redirect_canonical', 10    );
