Index: includes/admin/converters/phpBB.php
===================================================================
--- includes/admin/converters/phpBB.php	(revision 5241)
+++ includes/admin/converters/phpBB.php	(working copy)
@@ -193,6 +193,15 @@
 			'callback_method' => 'callback_userid'
 		);
 
+		// Topic first poster name (Used for storing original topic author, Stored in postmeta)
+		// Note: See #2347 http://bbpress.trac.wordpress.org/ticket/2347#comment:7
+		$this->field_map[] = array(
+			'from_tablename'  => 'topics',
+			'from_fieldname'  => 'topic_first_poster_name',
+			'to_type'         => 'topic',
+			'to_fieldname'    => '_bbp_phpbb_topic_first_poster_name'
+		);
+
 		// Topic Author ip (Stored in postmeta)
 		$this->field_map[] = array(
 			'from_tablename'  => 'posts',
@@ -359,6 +368,14 @@
 			'callback_method' => 'callback_userid'
 		);
 
+		// Reply poster username (Used for storing original post author, Stored in postmeta)
+		// Note: See #2347 http://bbpress.trac.wordpress.org/ticket/2347#comment:7
+		$this->field_map[] = array(
+			'from_tablename'  => 'posts',
+			'from_fieldname'  => 'post_username',
+			'to_type'         => 'reply',
+			'to_fieldname'    => '_bbp_phpbb_post_username'
+		);
 		// Reply title.
 		$this->field_map[] = array(
 			'from_tablename'  => 'posts',
@@ -435,6 +452,14 @@
 			'to_fieldname'   => '_bbp_user_id'
 		);
 
+		// Store old User id (Stored in usermeta)
+		$this->field_map[] = array(
+			'from_tablename' => 'users',
+			'from_fieldname' => 'user_type',
+			'to_type'        => 'user',
+			'to_fieldname'   => '_bbp_phpbb_user_type'
+		);
+
 		// Store old User password (Stored in usermeta serialized with salt)
 		$this->field_map[] = array(
 			'from_tablename'  => 'users',
Index: includes/admin/tools.php
===================================================================
--- includes/admin/tools.php	(revision 5241)
+++ includes/admin/tools.php	(working copy)
@@ -174,7 +174,8 @@
 		65 => array( 'bbp-user-favorites',           __( 'Remove trashed topics from user favorites',         'bbpress' ), 'bbp_admin_repair_user_favorites'           ),
 		70 => array( 'bbp-user-topic-subscriptions', __( 'Remove trashed topics from user subscriptions',     'bbpress' ), 'bbp_admin_repair_user_topic_subscriptions' ),
 		75 => array( 'bbp-user-forum-subscriptions', __( 'Remove trashed forums from user subscriptions',     'bbpress' ), 'bbp_admin_repair_user_forum_subscriptions' ),
-		80 => array( 'bbp-user-role-map',            __( 'Remap existing users to default forum roles',       'bbpress' ), 'bbp_admin_repair_user_roles'               )
+		80 => array( 'bbp-user-role-map',            __( 'Remap existing users to default forum roles',       'bbpress' ), 'bbp_admin_repair_user_roles'               ),
+		85 => array( 'bbp-import-phpbb',             __( 'phpBB post import repair tasks',                    'bbpress' ), 'bbp_admin_repair_import_phpbb'             )
 	);
 	ksort( $repair_list );
 
@@ -1110,6 +1111,123 @@
 	return array( 0, sprintf( $statement, __( 'Complete!', 'bbpress' ) ) );
 }
 
+/**
+ * phpBB post import repair tasks
+ *
+ * @since bbPress (rXXXX)
+ *
+ * @global WPDB $wpdb
+ * @uses is_wp_error() To check if the executed query returned {@link WP_Error}
+ * @uses update_post_meta() To update topic meta
+ * @uses update_post_meta() To update reply meta
+ * @uses get_users() To get the imported phpBB bots
+ * @uses wp_delete_user() To delete the imported phpBB users (bots, crawlers & anonymous)
+ * @return array An array of the status code and the message
+ */
+function bbp_admin_repair_import_phpbb() {
+	global $wpdb;
+
+	/** phpBB Anonymous Topics ************************************************/
+
+	$statement = __( 'Running phpBB post import tasks&hellip; %s', 'bbpress' );
+	$r_count   = 0;
+	$t_count   = 0;
+	$u_count   = 0;
+
+	// Get the phpBB anonymous topic IDs
+	$topic_ids = $wpdb->query( "SELECT `posts` .`ID` AS `post_id`, '_bbp_anonymous_name', `postmeta` . `meta_value` AS `meta_value`
+								FROM `{$wpdb->posts}` AS `posts`
+									LEFT JOIN `{$wpdb->postmeta}` AS `postmeta`
+										ON `posts`.`ID` = `postmeta`.`post_id`
+										AND `postmeta`.`meta_key` = '_bbp_phpbb_topic_first_poster_name'
+									LEFT JOIN `{$wpdb->usermeta}` AS `usermeta`
+										ON `usermeta` . `user_id` = `posts`.`post_author`
+										AND `usermeta` . `meta_key` = '_bbp_phpbb_user_type'
+								WHERE `posts`.`post_type` = 'topic'
+									AND `usermeta` . `meta_value` = '2';" );
+
+	// Bail if topic IDs returned an error
+	if ( is_wp_error( $topic_ids ) ) {
+		return array( 1, sprintf( $statement, __( 'Failed!', 'bbpress' ) ) );
+	}
+
+	// Stash the last results
+	$results = $wpdb->last_result;
+
+	// Update each anonymous topic
+	foreach ( $results as $anon_topic ) {
+
+		// Update topic meta _bbp_anonymous_name with anonymous user name
+		update_post_meta( $anon_topic->post_id, '_bbp_anonymous_name', $anon_topic->meta_value );
+
+		// Bump the count for output later
+		++$t_count;
+	}
+
+	unset( $topic_ids, $results, $anon_topic );
+
+	/** phpBB Anonymous Replies ***********************************************/
+
+	// Get the phpBB anonymous reply IDs
+	$reply_ids = $wpdb->query( "SELECT `posts` .`ID` AS `post_id`, '_bbp_anonymous_name', `postmeta` . `meta_value` AS `meta_value`
+								FROM `{$wpdb->posts}` AS `posts`
+									LEFT JOIN `{$wpdb->postmeta}` AS `postmeta`
+										ON `posts`.`ID` = `postmeta`.`post_id`
+										AND `postmeta`.`meta_key` = '_bbp_phpbb_post_username '
+									LEFT JOIN `{$wpdb->usermeta}` AS `usermeta`
+										ON `usermeta` . `user_id` = `posts`.`post_author`
+										AND `usermeta` . `meta_key` = '_bbp_phpbb_user_type'
+								WHERE `posts`.`post_type` = 'reply'
+								AND `usermeta` . `meta_value` = '2';" );
+
+	// Bail if reply IDs returned an error
+	if ( is_wp_error( $reply_ids ) ) {
+		return array( 2, sprintf( $statement, __( 'Failed!', 'bbpress' ) ) );
+	}
+
+	// Stash the last results
+	$results = $wpdb->last_result;
+
+	// Update each anonymous reply
+	foreach ( $results as $anon_reply ) {
+
+		// Update reply meta _bbp_anonymous_name with anonymous user name
+		update_post_meta( $anon_reply->post_id, '_bbp_anonymous_name', $anon_reply->meta_value );
+
+		// Bump the count for output later
+		++$r_count;
+	}
+
+	unset( $reply_ids, $results, $anon_reply );
+
+	/** phpBB Anonymous Users *************************************************/
+
+	// Get the phpBB anonymous, bots and crawler user IDs
+	$bbp_anonymous_id = 0;
+	$phpbb_bots = get_users(array( 'meta_key' => '_bbp_phpbb_user_type','meta_value' => '2', ) );
+
+	// Bail if user IDs returned an error
+	if ( is_wp_error( $phpbb_bots ) ) {
+		return array( 3, sprintf( $statement, __( 'Failed!', 'bbpress' ) ) );
+	}
+
+	// Delete each anonymous user
+	foreach ( $phpbb_bots as $phpbb_bot ) {
+
+		// Delete each imported bot user replacing posts with bbPress anonymous user ID
+		wp_delete_user( $phpbb_bot->ID, $bbp_anonymous_id );
+
+		// Bump the count for output later
+		++$u_count;
+	}
+
+	unset( $phpbb_bots, $results, $phpbb_bot );
+
+	// Complete results
+	$result = sprintf( __( 'Complete! %s anonymous topics updated, %s anonymous replies updated and %s user bots deleted.', 'bbpress' ), bbp_number_format( $t_count ), bbp_number_format( $r_count ), bbp_number_format( $u_count ) );
+	return array( 0, sprintf( $statement, $result ) );
+}
+
 /** Reset ********************************************************************/
 
 /**
