diff --git a/includes/admin/converters/vBulletin.php b/includes/admin/converters/vBulletin.php
index 03d6a42..a0afcb3 100644
--- a/includes/admin/converters/vBulletin.php
+++ b/includes/admin/converters/vBulletin.php
@@ -1,9 +1,10 @@
 <?php
 
 /**
- * vBulletin Converter
+ * Implementation of vBulletin v4.x Converter.
  *
- * @since bbPress (r)
+ * @since bbPress (r4724)
+ * @link Codex Docs http://codex.bbpress.org/import-forums/vbulletin
  */
 class vBulletin extends BBP_Converter_Base {
 
@@ -32,7 +33,7 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'   => '_bbp_forum_id'
 		);
 
-		// Forum parent id (If no parent, than 0. Stored in postmeta)
+		// Forum parent id (If no parent, then 0. Stored in postmeta)
 		$this->field_map[] = array(
 			'from_tablename' => 'forum',
 			'from_fieldname' => 'parentid',
@@ -40,6 +41,22 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'   => '_bbp_forum_parent_id'
 		);
 
+		// Forum topic count (Stored in postmeta)
+		$this->field_map[] = array(
+			'from_tablename' => 'forum',
+			'from_fieldname' => 'threadcount',
+			'to_type'        => 'forum',
+			'to_fieldname'   => '_bbp_topic_count'
+		);
+
+		// Forum reply count (Stored in postmeta)
+		$this->field_map[] = array(
+			'from_tablename' => 'forum',
+			'from_fieldname' => 'replycount',
+			'to_type'        => 'forum',
+			'to_fieldname'   => '_bbp_reply_count'
+		);
+
 		// Forum title.
 		$this->field_map[] = array(
 			'from_tablename' => 'forum',
@@ -74,7 +91,7 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'   => 'menu_order'
 		);
 
-		// Forum date update.
+		// Forum dates.
 		$this->field_map[] = array(
 			'to_type'      => 'forum',
 			'to_fieldname' => 'post_date',
@@ -106,7 +123,7 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'   => '_bbp_topic_id'
 		);
 
-		// Forum id (Stored in postmeta)
+		// Topic parent forum id (If no parent, then 0. Stored in postmeta)
 		$this->field_map[] = array(
 			'from_tablename'  => 'thread',
 			'from_fieldname'  => 'forumid',
@@ -115,6 +132,15 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_forumid'
 		);
 
+		// Topic reply count (Stored in postmeta)
+		$this->field_map[] = array(
+			'from_tablename'  => 'thread',
+			'from_fieldname'  => 'replycount',
+			'to_type'         => 'topic',
+			'to_fieldname'    => '_bbp_reply_count',
+			'callback_method' => 'callback_topic_reply_count'
+		);
+
 		// Topic author.
 		$this->field_map[] = array(
 			'from_tablename'  => 'thread',
@@ -141,7 +167,7 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_slug'
 		);
 
-		// Forum id (If no parent, than 0)
+		// Topic parent forum id (If no parent, then 0)
 		$this->field_map[] = array(
 			'from_tablename'  => 'thread',
 			'from_fieldname'  => 'forumid',
@@ -163,7 +189,7 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_html'
 		);
 
-		// Topic date update.
+		// Topic dates.
 		$this->field_map[] = array(
 			'from_tablename'  => 'thread',
 			'from_fieldname'  => 'dateline',
@@ -192,6 +218,22 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'    => 'post_modified_gmt',
 			'callback_method' => 'callback_datetime'
 		);
+		$this->field_map[] = array(
+			'from_tablename' => 'thread',
+			'from_fieldname' => 'lastpost',
+			'to_type'        => 'topic',
+			'to_fieldname'   => '_bbp_last_active_time',
+			'callback_method' => 'callback_datetime'
+		);
+
+		// Topic status (Open or Closed)
+		$this->field_map[] = array(
+			'from_tablename'  => 'thread',
+			'from_fieldname'  => 'open',
+			'to_type'         => 'topic',
+			'to_fieldname'    => 'post_status',
+			'callback_method' => 'callback_topic_status'
+		);
 
 		/** Tags Section ******************************************************/
 
@@ -204,7 +246,15 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_topicid'
 		);
 
-		// Tags text.
+		// Taxonomy ID.
+		$this->field_map[] = array(
+			'from_tablename'  => 'tagcontent',
+			'from_fieldname'  => 'tagid',
+			'to_type'         => 'tags',
+			'to_fieldname'    => 'taxonomy'
+		);
+
+		// Term text.
 		$this->field_map[] = array(
 			'from_tablename'  => 'tag',
 			'from_fieldname'  => 'tagtext',
@@ -215,27 +265,29 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'    => 'name'
 		);
 
-		/** Post Section ******************************************************/
+		/** Reply Section *****************************************************/
 
-		// Post id (Stores in postmeta)
+		// Reply id (Stored in postmeta)
 		$this->field_map[] = array(
 			'from_tablename'  => 'post',
 			'from_fieldname'  => 'postid',
-			'from_expression' => 'WHERE post.parentid != 0',
 			'to_type'         => 'reply',
 			'to_fieldname'    => '_bbp_post_id'
 		);
 
-		// Forum id (Stores in postmeta)
+		// Reply parent forum id (If no parent, then 0. Stored in postmeta)
 		$this->field_map[] = array(
-			'from_tablename'  => 'post',
-			'from_fieldname'  => 'threadid',
+			'from_tablename'  => 'thread',
+			'from_fieldname'  => 'forumid',
+			'join_tablename'  => 'post',
+			'join_type'       => 'INNER',
+			'join_expression' => 'USING (threadid) WHERE post.parentid != 0',
 			'to_type'         => 'reply',
 			'to_fieldname'    => '_bbp_forum_id',
 			'callback_method' => 'callback_topicid_to_forumid'
 		);
 
-		// Topic id (Stores in postmeta)
+		// Reply parent topic id (If no parent, then 0. Stored in postmeta)
 		$this->field_map[] = array(
 			'from_tablename'  => 'post',
 			'from_fieldname'  => 'threadid',
@@ -244,7 +296,7 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_topicid'
 		);
 
-		// Author ip.
+		// Reply author ip (Stored in postmeta)
 		$this->field_map[] = array(
 			'from_tablename' => 'post',
 			'from_fieldname' => 'ipaddress',
@@ -252,7 +304,7 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'   => '_bbp_author_ip'
 		);
 
-		// Post author.
+		// Reply author.
 		$this->field_map[] = array(
 			'from_tablename'  => 'post',
 			'from_fieldname'  => 'userid',
@@ -261,24 +313,20 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_userid'
 		);
 
-		// Topic title.
+		// Reply title.
+		// Note: We join the thread table because post table does not include topic title.
 		$this->field_map[] = array(
-			'from_tablename' => 'post',
-			'from_fieldname' => 'title',
-			'to_type'        => 'reply',
-			'to_fieldname'   => 'post_title'
-		);
-
-		// Topic slug (Clean name)
-		$this->field_map[] = array(
-			'from_tablename'  => 'post',
+			'from_tablename'  => 'thread',
 			'from_fieldname'  => 'title',
+			'join_tablename'  => 'post',
+			'join_type'       => 'INNER',
+			'join_expression' => 'USING (threadid) WHERE post.parentid != 0',
 			'to_type'         => 'reply',
-			'to_fieldname'    => 'post_name',
-			'callback_method' => 'callback_slug'
+			'to_fieldname'    => 'post_title',
+			'callback_method' => 'callback_reply_title'
 		);
 
-		// Post content.
+		// Reply content.
 		$this->field_map[] = array(
 			'from_tablename'  => 'post',
 			'from_fieldname'  => 'pagetext',
@@ -287,7 +335,7 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_html'
 		);
 
-		// Topic id (If no parent, than 0)
+		// Reply parent topic id (If no parent, then 0)
 		$this->field_map[] = array(
 			'from_tablename'  => 'post',
 			'from_fieldname'  => 'threadid',
@@ -296,7 +344,7 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_topicid'
 		);
 
-		// Topic date update.
+		// Reply dates.
 		$this->field_map[] = array(
 			'from_tablename'  => 'post',
 			'from_fieldname'  => 'dateline',
@@ -328,7 +376,7 @@ class vBulletin extends BBP_Converter_Base {
 
 		/** User Section ******************************************************/
 
-		// Store old User id (Stores in usermeta)
+		// Store old User id (Stored in usermeta)
 		$this->field_map[] = array(
 			'from_tablename' => 'user',
 			'from_fieldname' => 'userid',
@@ -336,7 +384,7 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'   => '_bbp_user_id'
 		);
 
-		// Store old User password (Stores in usermeta serialized with salt)
+		// Store old User password (Stored in usermeta serialized with salt)
 		$this->field_map[] = array(
 			'from_tablename'  => 'user',
 			'from_fieldname'  => 'password',
@@ -345,8 +393,7 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_savepass'
 		);
 
-		// Store old User Salt (This is only used for the SELECT row info for
-		// the above password save)
+		// Store old User Salt (This is only used for the SELECT row info for the above password save)
 		$this->field_map[] = array(
 			'from_tablename' => 'user',
 			'from_fieldname' => 'salt',
@@ -354,7 +401,7 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'   => ''
 		);
 
-		// User password verify class (Stores in usermeta for verifying password)
+		// User password verify class (Stored in usermeta for verifying password)
 		$this->field_map[] = array(
 			'to_type'      => 'user',
 			'to_fieldname' => '_bbp_class',
@@ -369,14 +416,6 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'   => 'user_login'
 		);
 
-		// User nice name.
-		$this->field_map[] = array(
-			'from_tablename' => 'user',
-			'from_fieldname' => 'user_nicename',
-			'to_type'        => 'user',
-			'to_fieldname'   => 'user_nicename'
-		);
-
 		// User email.
 		$this->field_map[] = array(
 			'from_tablename' => 'user',
@@ -402,7 +441,7 @@ class vBulletin extends BBP_Converter_Base {
 			'callback_method' => 'callback_datetime'
 		);
 
-		// User aim.
+		// User AIM (Stored in usermeta)
 		$this->field_map[] = array(
 			'from_tablename' => 'user',
 			'from_fieldname' => 'aim',
@@ -410,13 +449,37 @@ class vBulletin extends BBP_Converter_Base {
 			'to_fieldname'   => 'aim'
 		);
 
-		// User yahoo.
+		// User Yahoo (Stored in usermeta)
 		$this->field_map[] = array(
 			'from_tablename' => 'user',
 			'from_fieldname' => 'yahoo',
 			'to_type'        => 'user',
 			'to_fieldname'   => 'yim'
 		);
+
+		// User ICQ (Stored in usermeta)
+		$this->field_map[] = array(
+			'from_tablename' => 'user',
+			'from_fieldname' => 'icq',
+			'to_type'        => 'user',
+			'to_fieldname'   => '_bbp_vbulletin_user_icq'
+		);
+
+		// User MSN (Stored in usermeta)
+		$this->field_map[] = array(
+			'from_tablename' => 'user',
+			'from_fieldname' => 'msn',
+			'to_type'        => 'user',
+			'to_fieldname'   => '_bbp_vbulletin_user_msn'
+		);
+
+		// User Skype (Stored in usermeta)
+		$this->field_map[] = array(
+			'from_tablename' => 'user',
+			'from_fieldname' => 'skype',
+			'to_type'        => 'user',
+			'to_fieldname'   => '_bbp_vbulletin_user_skype'
+		);
 	}
 
 	/**
@@ -427,6 +490,7 @@ class vBulletin extends BBP_Converter_Base {
 		return '';
 	}
 
+
 	/**
 	 * This method is to save the salt and password together.  That
 	 * way when we authenticate it we can get it out of the database
@@ -440,9 +504,88 @@ class vBulletin extends BBP_Converter_Base {
 	/**
 	 * This method is to take the pass out of the database and compare
 	 * to a pass the user has typed in.
+	 * 
+	 * vBulletin passwords do not work, change to use code from below plugin
+	 * @link http://wordpress.org/extend/plugins/vb-user-copy/
+	 * @link http://plugins.trac.wordpress.org/browser/vb-user-copy/trunk/vb_user_copy.php
 	 */
 	public function authenticate_pass( $password, $serialized_pass ) {
 		$pass_array = unserialize( $serialized_pass );
 		return ( $pass_array['hash'] == md5( md5( $password ) . $pass_array['salt'] ) );
 	}
+
+	/**
+	 * Verify the topic reply count.
+	 *
+	 * @param int $count vBulletin v4.x reply count
+	 * @return string WordPress safe
+	 */
+	public function callback_topic_reply_count( $count = 1 ) {
+		$count = absint( (int) $count - 1 );
+		return $count;
+	}
+
+	/**
+	 * Set the reply title
+	 *
+	 * @param string $title vBulletin v4.x topic title of this reply
+	 * @return string Prefixed topic title, or empty string
+	 */
+	public function callback_reply_title( $title = '' ) {
+		$title = !empty( $title ) ? __( 'Re: ', 'bbpress' ) . html_entity_decode( $title ) : '';
+		return $title;
+	}
+
+	/**
+	 * Translate the post status from vBulletin numeric's to WordPress's strings.
+	 *
+	 * @param int $status vBulletin v4.x numeric topic status
+	 * @return string WordPress safe
+	 */
+	public function callback_topic_status( $status = 1 ) {
+		switch ( $status ) {
+			case 0 :
+				$status = 'closed';
+				break;
+
+			case 1  :
+			default :
+				$status = 'publish';
+				break;
+		}
+		return $status;
+	}
+
+	/**
+	 * This callback processes any custom parser.php attributes and custom code with preg_replace
+	 */
+	protected function callback_html( $field ) {
+
+		// Strips vBulletin custom HTML first from $field before parsing $field to parser.php
+		$vbulletin_markup = $field;
+		$vbulletin_markup = html_entity_decode ( $vbulletin_markup );
+
+		// Replace '[QUOTE]' with '<blockquote>'
+		$vbulletin_markup = preg_replace ( '/\[QUOTE\]/'         , '<blockquote>'                           , $vbulletin_markup );
+		// Replace '[QUOTE=User Name($1);PostID($2)]' with '<em>@$1 $2 wrote:</em><blockquote>"
+		$vbulletin_markup = preg_replace ( '/\[QUOTE=(.*?);(.*?)\]/' , '<em>@$1 $2 wrote:</em><blockquote>' , $vbulletin_markup );
+		// Replace '[/QUOTE]' with '</blockquote>'
+		$vbulletin_markup = preg_replace ( '/\[\/QUOTE\]/'       , '</blockquote>'                          , $vbulletin_markup );
+		// Replace '[MENTION=###($1)]User Name($2)[/MENTION]' with '@$2"
+		$vbulletin_markup = preg_replace ( '/\[MENTION=(.*?)\](.*?)\[\/MENTION\]/' , '@$2'                  , $vbulletin_markup );
+
+		// Replace '[video=youtube;$1]$2[/video]' with '$2"
+		$vbulletin_markup = preg_replace ( '/\[video\=youtube;(.*?)\](.*?)\[\/video\]/' , '$2'                  , $vbulletin_markup );
+
+		// Now that vBulletin custom HTML has been stripped put the cleaned HTML back in $field
+		$field = $vbulletin_markup;
+
+		// Parse out any bbCodes in $field with the BBCode 'parser.php'
+		require_once( bbpress()->admin->admin_dir . 'parser.php' );
+		$bbcode = BBCode::getInstance(); 
+		$bbcode->enable_smileys = false;
+		$bbcode->smiley_regex   = false;
+		return html_entity_decode( $bbcode->Parse( $field ) );
+
+	}
 }