Index: src/bp-activity/bp-activity-akismet.php
===================================================================
--- src/bp-activity/bp-activity-akismet.php
+++ src/bp-activity/bp-activity-akismet.php
@@ -326,7 +326,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']             = self::call_api( 'get_user_roles', $userdata->ID );
 
 		/**
 		 * Get the nonce if the new activity was submitted through the "what's up, Paul?" form.
@@ -505,8 +505,9 @@
 		$activity_data['user_agent']   = bp_core_current_user_ua();
 		$activity_data['user_ip']      = bp_core_current_user_ip();
 
-		if ( akismet_test_mode() )
+		if ( self::call_api( 'test_mode' ) ) {
 			$activity_data['is_test'] = 'true';
+		}
 
 		// Loop through _POST args and rekey strings
 		foreach ( $_POST as $key => $value )
@@ -539,7 +540,7 @@
 
 		// 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 = self::call_api( 'http_post', $query_string, $akismet_api_host, $path, $akismet_api_port );
 		remove_filter( 'akismet_ua', array( $this, 'buddypress_ua' ) );
 
 		// Get the response
@@ -618,7 +619,7 @@
 		$event = array(
 			'event'   => $event,
 			'message' => $message,
-			'time'    => akismet_microtime(),
+			'time'    => self::call_api( 'microtime' ),
 			'user'    => bp_loggedin_user_id(),
 		);
 
@@ -644,6 +645,44 @@
 
 		return $history;
 	}
+
+	/**
+	 * Call various native Akismet functions.
+	 *
+	 * This was created to support older Akismet versions... unfortunately.
+	 *
+	 * @since BuddyPress (2.3.0)
+	 *
+	 * @param  string $function_name The function or method name to call.
+	 * @param  mixed  $args,...      The arguments supported by $function_name.
+	 * @return mixed
+	 */
+	public static function call_api( $function_name = '' ) {
+		$args = func_get_args();
+		array_shift( $args );
+
+		// Akismet >= 3.0
+		if ( class_exists( 'Akismet' ) ) {
+			if ( 'microtime' === $function_name ) {
+				$function_name = '_get_microtime';
+			} elseif ( 'test_mode' === $function_name ) {
+				$function_name = 'is_test_mode';
+			} elseif ( 'http_post' === $function_name ) {
+				$args = array(
+					$args[0],
+					str_replace( '/1.1/', '', $args[2] )
+				);
+			}
+
+			$callback = array( 'Akismet', $function_name );
+
+		// Akismet < 3.0
+		} else {
+			$callback = "akismet_{$function_name}";
+		}
+
+		return call_user_func_array( $callback, $args );
+	}
 }
 
 /**
