Index: bp-activity-classes.php
===================================================================
--- bp-activity-classes.php	(revision 5825)
+++ bp-activity-classes.php	(working copy)
@@ -104,7 +104,7 @@
 		global $wpdb, $bp;
 
 		// Select conditions
-		$select_sql = "SELECT a.*, u.user_email, u.user_nicename, u.user_login, u.display_name";
+		$select_sql = "SELECT SQL_CALC_FOUND_ROWS a.*, u.user_email, u.user_nicename, u.user_login, u.display_name";
 
 		$from_sql = " FROM {$bp->activity->table_name} a LEFT JOIN {$wpdb->users} u ON a.user_id = u.ID";
 
@@ -120,6 +120,7 @@
 		// Searching
 		if ( $search_terms ) {
 			$search_terms = $wpdb->escape( $search_terms );
+			$where_conditions['search_fulltext_sql'] = "MATCH(`content`) AGAINST('".$search_terms."')";
 			$where_conditions['search_sql'] = "a.content LIKE '%%" . like_escape( $search_terms ) . "%%'";
 		}
 
@@ -165,7 +166,7 @@
 			$activities = $wpdb->get_results( apply_filters( 'bp_activity_get_user_join_filter', $wpdb->prepare( "{$select_sql} {$from_sql} {$where_sql} ORDER BY a.date_recorded {$sort}" ), $select_sql, $from_sql, $where_sql, $sort ) );
 		}
 
-		$total_activities_sql = apply_filters( 'bp_activity_total_activities_sql', $wpdb->prepare( "SELECT count(a.id) FROM {$bp->activity->table_name} a {$where_sql} ORDER BY a.date_recorded {$sort}" ), $where_sql, $sort );
+		$total_activities_sql = apply_filters( 'bp_activity_total_activities_sql', $wpdb->prepare( "SELECT FOUND_ROWS()" ) );
 
 		$total_activities = $wpdb->get_var( $total_activities_sql );
 
