Index: bbp-admin/bbp-converter.php
--- bbp-admin/bbp-converter.php
+++ bbp-admin/bbp-converter.php
@@ -62,9 +62,6 @@
 		// Attach the bbConverter admin settings action to the WordPress admin init action.
 		add_action( 'bbp_register_admin_settings', array( $this, 'register_admin_settings' ) );
 
-		// Attach to the login process to aid in converting passwords to wordpress.
-		add_action( 'login_form_login',            array( $this, 'convert_pass'            ) );
-
 		// Attach to the admin ajax request to process cycles
 		add_action( 'wp_ajax_bbconverter_process', array( $this, 'process_callback'        ) );
 	}
@@ -478,29 +475,6 @@
 	}
 
 	/**
-	 * Convert passwords from previous forum to wordpress.
-	 *
-	 * @since bbPress (r3813)
-	 * @global WPDB $wpdb
-	 */
-	public function convert_pass() {
-
-		$username = !empty( $_POST['log'] ) ? $_POST['log'] : '';
-
-		if ( !empty( $username ) ) {
-
-			global $wpdb;
-
-			$row = $wpdb->get_row( "SELECT * FROM {$wpdb->users} INNER JOIN {$wpdb->usermeta} ON user_id = ID WHERE meta_key = '_bbp_converter_class' AND user_login = '{$username}' LIMIT 1" );
-
-			if ( !empty( $row ) ) {
-				$converter = bbp_new_converter( $row->meta_value );
-				$converter->callback_pass( $username, $_POST['pwd'] );
-			}
-		}
-	}
-
-	/**
 	 * Create Tables for fast syncing
 	 *
 	 * @since bbPress (r3813)
Index: bbp-includes/bbp-core-actions.php
--- bbp-includes/bbp-core-actions.php
+++ bbp-includes/bbp-core-actions.php
@@ -52,6 +52,7 @@
 add_action( 'setup_theme',            'bbp_setup_theme',            10 );
 add_action( 'after_setup_theme',      'bbp_after_setup_theme',      10 );
 add_action( 'template_redirect',      'bbp_template_redirect',      10 );
+add_action( 'login_form_login',       'bbp_login_form_login',       10 );
 
 /**
  * bbp_loaded - Attached to 'plugins_loaded' above
@@ -255,6 +256,9 @@
 add_action( 'bbp_template_redirect', 'bbp_check_reply_edit',        10 );
 add_action( 'bbp_template_redirect', 'bbp_check_topic_tag_edit',    10 );
 
+// Maybe convert the users password
+add_action( 'bbp_login_form_login', 'bbp_user_maybe_convert_pass' );
+
 /**
  * Requires and creates the BuddyPress extension, and adds component creation
  * action to bp_init hook. @see bbp_setup_buddypress_component()
@@ -490,6 +494,16 @@
 	do_action ( 'bbp_add_rewrite_tags' );
 }
 
+/**
+ * Add the bbPress-specific login forum action
+ *
+ * @since bbPress (r2753)
+ * @uses do_action() Calls 'bbp_login_form_login'
+ */
+function bbp_login_form_login() {
+	do_action ( 'bbp_login_form_login' );
+}
+
 /** Final Action **************************************************************/
 
 /**
Index: bbp-includes/bbp-user-functions.php
--- bbp-includes/bbp-user-functions.php
+++ bbp-includes/bbp-user-functions.php
@@ -1436,3 +1436,38 @@
 		exit();
 	}
 }
+
+/** Converter *****************************************************************/
+
+/**
+ * Convert passwords from previous forum to wordpress.
+ *
+ * @since bbPress (r3813)
+ * @global WPDB $wpdb
+ */
+function bbp_user_maybe_convert_pass() {
+
+	// Bail if no username
+	$username = !empty( $_POST['log'] ) ? $_POST['log'] : '';
+	if ( empty( $username ) )
+		return;
+
+	global $wpdb;
+
+	// Bail if no user password to convert
+	$row = $wpdb->get_row( "SELECT * FROM {$wpdb->users} INNER JOIN {$wpdb->usermeta} ON user_id = ID WHERE meta_key = '_bbp_converter_class' AND user_login = '{$username}' LIMIT 1" );
+	if ( empty( $row ) || is_wp_error( $row ) )
+		return;
+
+	// Convert password
+	require_once( bbpress()->admin->admin_dir . 'bbp-converter.php' );
+	require_once( bbpress()->admin->admin_dir . 'converters/' . $row->meta_value . '.php' );
+
+	// Create the converter
+	$converter = bbp_new_converter( $row->meta_value );
+
+	// Try to call the conversion method
+	if ( is_a( $converter, 'BBP_Converter_Base' ) && method_exists( $converter, 'callback_pass' ) ) {
+		$converter->callback_pass( $username, $_POST['pwd'] );
+	}
+}
