Index: src/bp-activity/bp-activity-actions.php
===================================================================
--- src/bp-activity/bp-activity-actions.php
+++ src/bp-activity/bp-activity-actions.php
@@ -712,17 +712,25 @@
  * Loads Akismet filtering for activity.
  *
  * @since BuddyPress (1.6.0)
+ * @since BuddyPress (2.3.0) We only support Akismet 3+.
  */
 function bp_activity_setup_akismet() {
 	$bp = buddypress();
 
 	// Bail if Akismet is not active
-	if ( ! defined( 'AKISMET_VERSION' ) )
+	if ( ! defined( 'AKISMET_VERSION' ) ) {
 		return;
+	}
+
+	// Bail if older version of Akismet
+	if ( ! class_exists( 'Akismet' ) ) {
+		return;
+	}
 
 	// Bail if no Akismet key is set
-	if ( ! bp_get_option( 'wordpress_api_key' ) && ! defined( 'WPCOM_API_KEY' ) )
+	if ( ! bp_get_option( 'wordpress_api_key' ) && ! defined( 'WPCOM_API_KEY' ) ) {
 		return;
+	}
 
 	/**
 	 * Filters if BuddyPress Activity Akismet support has been disabled by another plugin.
@@ -731,8 +739,9 @@
 	 *
 	 * @param bool $value Return value of bp_is_akismet_active boolean function.
 	 */
-	if ( ! apply_filters( 'bp_activity_use_akismet', bp_is_akismet_active() ) )
+	if ( ! apply_filters( 'bp_activity_use_akismet', bp_is_akismet_active() ) ) {
 		return;
+	}
 
 	// Instantiate Akismet for BuddyPress
 	$bp->activity->akismet = new BP_Akismet();
Index: src/bp-activity/bp-activity-akismet.php
===================================================================
--- src/bp-activity/bp-activity-akismet.php
+++ src/bp-activity/bp-activity-akismet.php
@@ -14,6 +14,7 @@
  * Akismet support for the Activity component.
  *
  * @since BuddyPress (1.6.0)
+ * @since BuddyPress (2.3.0) We only support Akismet 3+.
  */
 class BP_Akismet {
 	/**
@@ -339,7 +340,7 @@
 		$activity_data['comment_type']          = $activity->type;
 		$activity_data['permalink']             = bp_activity_get_permalink( $activity->id, $activity );
 		$activity_data['user_ID']               = $userdata->ID;
-		$activity_data['user_role']             = akismet_get_user_roles( $userdata->ID );
+		$activity_data['user_role']             = Akismet::get_user_roles( $userdata->ID );
 
 		/**
 		 * Get the nonce if the new activity was submitted through the "what's up, Paul?" form.
@@ -495,9 +496,6 @@
 	 *
 	 * @since BuddyPress (1.6.0)
 	 *
-	 * @global string $akismet_api_host
-	 * @global string $akismet_api_port
-	 *
 	 * @param array  $activity_data Packet of information to submit to Akismet.
 	 * @param string $check         "check" or "submit".
 	 * @param string $spam          "spam" or "ham".
@@ -505,12 +503,6 @@
 	 * @return array $activity_data Activity data, with Akismet data added.
 	 */
 	public function send_akismet_request( $activity_data, $check = 'check', $spam = 'spam' ) {
-		global $akismet_api_host, $akismet_api_port;
-
-		// Check that host and port are set, if not, set them
-		if ( function_exists( 'akismet_init' ) && ( empty( $akismet_api_host ) || empty( $akismet_api_port ) ) )
-			akismet_init();
-
 		$query_string = $path = '';
 
 		$activity_data['blog']         = bp_get_option( 'home' );
@@ -520,7 +512,7 @@
 		$activity_data['user_agent']   = bp_core_current_user_ua();
 		$activity_data['user_ip']      = bp_core_current_user_ip();
 
-		if ( akismet_test_mode() )
+		if ( Akismet::is_test_mode() )
 			$activity_data['is_test'] = 'true';
 
 		// Loop through _POST args and rekey strings
@@ -548,13 +540,13 @@
 			$query_string .= $key . '=' . urlencode( stripslashes( $data ) ) . '&';
 
 		if ( 'check' == $check )
-			$path = '/1.1/comment-check';
+			$path = 'comment-check';
 		elseif ( 'submit' == $check )
-			$path = '/1.1/submit-' . $spam;
+			$path = 'submit-' . $spam;
 
 		// Send to Akismet
 		add_filter( 'akismet_ua', array( $this, 'buddypress_ua' ) );
-		$response = akismet_http_post( $query_string, $akismet_api_host, $path, $akismet_api_port );
+		$response = Akismet::http_post( $query_string, $path );
 		remove_filter( 'akismet_ua', array( $this, 'buddypress_ua' ) );
 
 		// Get the response
@@ -634,7 +626,7 @@
 		$event = array(
 			'event'   => $event,
 			'message' => $message,
-			'time'    => akismet_microtime(),
+			'time'    => Akismet::_get_microtime(),
 			'user'    => bp_loggedin_user_id(),
 		);
 
Index: src/bp-activity/bp-activity-loader.php
===================================================================
--- src/bp-activity/bp-activity-loader.php
+++ src/bp-activity/bp-activity-loader.php
@@ -62,7 +62,7 @@
 		$akismet_key = bp_get_option( 'wordpress_api_key' );
 
 		/** This filter is documented in bp-activity/bp-activity-actions.php */
-		if ( defined( 'AKISMET_VERSION' ) && ( !empty( $akismet_key ) || defined( 'WPCOM_API_KEY' ) ) && apply_filters( 'bp_activity_use_akismet', bp_is_akismet_active() ) ) {
+		if ( defined( 'AKISMET_VERSION' ) && class_exists( 'Akismet' ) && ( ! empty( $akismet_key ) || defined( 'WPCOM_API_KEY' ) ) && apply_filters( 'bp_activity_use_akismet', bp_is_akismet_active() ) ) {
 			$includes[] = 'akismet';
 		}
 
