Index: bp-forums/bp-forums-functions.php
===================================================================
--- bp-forums/bp-forums-functions.php	(revision 4268)
+++ bp-forums/bp-forums-functions.php	(working copy)
@@ -273,12 +273,13 @@ function bp_forums_total_topic_count() {
 	if ( isset( $bbdb ) ) {
 		if ( bp_is_active( 'groups' ) ) {
 			$groups_table_sql = groups_add_forum_tables_sql();
+			$groups_table_sql = preg_replace( '|^, |', '', $groups_table_sql );
 			$groups_where_sql = groups_add_forum_where_sql( "t.topic_status = 0" );
 		} else {
 			$groups_table_sql = '';
 			$groups_where_sql = "t.topic_status = 0";
 		}
-		$count = $bbdb->get_results( $bbdb->prepare( "SELECT t.topic_id FROM {$bbdb->topics} AS t {$groups_table_sql} WHERE {$groups_where_sql}" ) );
+		$count = $bbdb->get_results( $bbdb->prepare( "SELECT t.topic_id FROM {$groups_table_sql} WHERE {$groups_where_sql}" ) );
 		$count = count( (array)$count );
 	} else {
 		$count = 0;
Index: bp-forums/bp-forums-screens.php
===================================================================
--- bp-forums/bp-forums-screens.php	(revision 4268)
+++ bp-forums/bp-forums-screens.php	(working copy)
@@ -3,7 +3,7 @@
 function bp_forums_directory_forums_setup() {
 	global $bp;
 
-	if ( bp_is_forums_component() && !bp_current_action() && !bp_current_item() ) {
+	if ( bp_is_forums_component() ) {
 		if ( bp_forum_directory_is_disabled() )
 			return false;
 
Index: bp-groups/bp-groups-filters.php
===================================================================
--- bp-groups/bp-groups-filters.php	(revision 4268)
+++ bp-groups/bp-groups-filters.php	(working copy)
@@ -68,16 +68,32 @@ function groups_add_forum_privacy_sql() {
 	add_filter( 'get_topics_fields',     'groups_add_forum_fields_sql' );
 	add_filter( 'get_topics_index_hint', 'groups_add_forum_tables_sql' );
 	add_filter( 'get_topics_where',      'groups_add_forum_where_sql'  );
+	add_filter( 'bb_query',   	     'groups_remove_topic_table_declaration' );
 }
 add_filter( 'bbpress_init', 'groups_add_forum_privacy_sql' );
 
+/**
+ * Removes the redundant topic table declaration in the topics query. History's hackiest hack.
+ *
+ * @package BuddyPress
+ *
+ * @param obj $query The bbPress query object
+ * @return obj @query The modified object
+ */
+function groups_remove_topic_table_declaration( $query ) {
+	global $bbdb;
+	
+	$query->request = str_replace( 'FROM ' . $bbdb->topics . ' AS t ,', 'FROM ', $query->request );
+	return $query;
+}
 function groups_add_forum_fields_sql( $sql = '' ) {
 	return 't.*, g.id as object_id, g.name as object_name, g.slug as object_slug';
 }
 
 function groups_add_forum_tables_sql( $sql = '' ) {
-	global $bp;
-	return ', ' . $bp->groups->table_name . ' AS g LEFT JOIN ' . $bp->groups->table_name_groupmeta . ' AS gm ON g.id = gm.group_id ';
+	global $bp, $bbdb;
+	
+	return ', ' . $bp->groups->table_name . ' AS g LEFT JOIN ' . $bp->groups->table_name_groupmeta . ' AS gm ON g.id = gm.group_id, ' . $bbdb->topics . ' AS t';
 }
 
 function groups_add_forum_where_sql( $sql = '' ) {
