diff --git a/.gitignore b/.gitignore
index dd18e54..3c54a44 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,3 +42,4 @@ wp-tests-config.php
 
 # Ignore other .gitignore files to allow for personal customizations
 .gitignore
+/nbproject/private/
\ No newline at end of file
diff --git a/src/wp-admin/edit-tags.php b/src/wp-admin/edit-tags.php
index 748ae17..bb22f91 100644
--- a/src/wp-admin/edit-tags.php
+++ b/src/wp-admin/edit-tags.php
@@ -163,6 +163,27 @@ case 'edit':
 
 	exit;
 
+case 'edit-parent':
+
+    $parent_id = (int) $_REQUEST['parent'];
+
+    if ($parent_id != -1) {
+
+        $terms = (array) $_REQUEST['delete_tags'];
+
+        foreach ($terms as $term_id) {
+            if ($term_id == $parent_id)
+                continue;
+
+            $update_parent = wp_update_term($term_id, $_REQUEST['taxonomy'], array('parent' => $parent_id));
+
+            if ($update_parent && !is_wp_error($update_parent))
+                $location = add_query_arg('message', 3, $location);
+        }
+    }
+
+    break;		
+
 case 'editedtag':
 	$tag_ID = (int) $_POST['tag_ID'];
 	check_admin_referer( 'update-tag_' . $tag_ID );
diff --git a/src/wp-admin/includes/class-wp-terms-list-table.php b/src/wp-admin/includes/class-wp-terms-list-table.php
index 8cfeedf..affc83b 100644
--- a/src/wp-admin/includes/class-wp-terms-list-table.php
+++ b/src/wp-admin/includes/class-wp-terms-list-table.php
@@ -152,6 +152,10 @@ class WP_Terms_List_Table extends WP_List_Table {
 	protected function get_bulk_actions() {
 		$actions = array();
 		$actions['delete'] = __( 'Delete' );
+		
+		if ( is_taxonomy_hierarchical( $this->screen->taxonomy ) ) {
+			$actions['edit'] = __( 'Edit' );
+		}
 
 		return $actions;
 	}
@@ -160,9 +164,14 @@ class WP_Terms_List_Table extends WP_List_Table {
 	 *
 	 * @return string
 	 */
-	public function current_action() {
-		if ( isset( $_REQUEST['action'] ) && isset( $_REQUEST['delete_tags'] ) && ( 'delete' === $_REQUEST['action'] || 'delete' === $_REQUEST['action2'] ) )
+	public function current_action() {               
+            
+                
+		if ( isset( $_REQUEST['action'] ) && isset( $_REQUEST['delete_tags'] ) && ( 'delete' === $_REQUEST['action'] || 'delete' === $_REQUEST['action2'] ) ) {
 			return 'bulk-delete';
+		}   else if ( isset( $_REQUEST['action'] ) && isset( $_REQUEST['delete_tags'] ) && ( 'edit' == $_REQUEST['action'] || 'edit-category' == $_REQUEST['screen'] ) ) {
+			return 'edit-parent';
+		}
 
 		return parent::current_action();
 	}
@@ -555,22 +564,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 ?>
 
 	<form method="get"><table style="display: none"><tbody id="inlineedit">
-		<tr id="inline-edit" class="inline-edit-row" style="display: none"><td colspan="<?php echo $this->get_column_count(); ?>" class="colspanchange">
-
-			<fieldset>
-				<legend class="inline-edit-legend"><?php _e( 'Quick Edit' ); ?></legend>
-				<div class="inline-edit-col">
-				<label>
-					<span class="title"><?php _ex( 'Name', 'term name' ); ?></span>
-					<span class="input-text-wrap"><input type="text" name="name" class="ptitle" value="" /></span>
-				</label>
-	<?php if ( !global_terms_enabled() ) { ?>
-				<label>
-					<span class="title"><?php _e( 'Slug' ); ?></span>
-					<span class="input-text-wrap"><input type="text" name="slug" class="ptitle" value="" /></span>
-				</label>
-	<?php } ?>
-			</div></fieldset>
+	
 	<?php
 
 		$core_columns = array( 'cb' => true, 'description' => true, 'name' => true, 'slug' => true, 'posts' => true );
@@ -580,24 +574,101 @@ class WP_Terms_List_Table extends WP_List_Table {
 		foreach ( $columns as $column_name => $column_display_name ) {
 			if ( isset( $core_columns[$column_name] ) )
 				continue;
-
-			/** This action is documented in wp-admin/includes/class-wp-posts-list-table.php */
+                        
+                        if ( $bulk ) {    
+                            
+			do_action( 'bulk_edit_custom_box', $column_name, $this->screen->taxonomy );
+			                        
+                        } else {
+                            
 			do_action( 'quick_edit_custom_box', $column_name, 'edit-tags', $this->screen->taxonomy );
+                                                
+                        }                       
 		}
 
 	?>
-
-		<p class="inline-edit-save submit">
-			<a href="#inline-edit" class="cancel button-secondary alignleft"><?php _e( 'Cancel' ); ?></a>
-			<a href="#inline-edit" class="save button-primary alignright"><?php echo $tax->labels->update_item; ?></a>
-			<span class="spinner"></span>
-			<span class="error" style="display:none;"></span>
-			<?php wp_nonce_field( 'taxinlineeditnonce', '_inline_edit', false ); ?>
-			<input type="hidden" name="taxonomy" value="<?php echo esc_attr( $this->screen->taxonomy ); ?>" />
-			<input type="hidden" name="post_type" value="<?php echo esc_attr( $this->screen->post_type ); ?>" />
-			<br class="clear" />
-		</p>
-		</td></tr>
+                   <?php  
+                   $bulk = 0;                   
+                   while ( $bulk < 2 ) {    ?>  
+                    <tr id="<?php echo $bulk ? 'bulk-edit' : 'inline-edit'; ?>" class="inline-edit-row inline-edit-row-<?php
+                                echo "inline-edit-" . $this->screen->taxonomy;
+                                echo $bulk ? " bulk-edit-row bulk-edit-row bulk-edit-{$this->screen->taxonomy}" : " quick-edit-row quick-edit-row inline-edit-{$this->screen->taxonomy}";
+                                ?>" style="display: none"><td colspan="<?php echo $this->get_column_count(); ?>" class="colspanchange">
+
+                                        <?php if ($bulk) : ?>
+                                            <fieldset class="inline-edit-col-left">                                       
+                                                <legend class="inline-edit-legend"><?php echo __('Bulk Edit'); ?></legend>                                        
+                                                <div class="inline-edit-col">
+                                                    <div id="bulk-title-div">
+                                                        <div id="bulk-titles"></div>
+                                                    </div>                                              
+                                                </div>
+                                            </fieldset>
+                                            <fieldset class="inline-edit-col-left">                                       
+                                                <span class="title inline-edit-categories-label"><?php _e('Parent Category') ?></span>  
+                                                <div class="inline-edit-col">
+                                                    <div class="bulk-edit-col">                                                        
+                                                        <?php
+                                                        wp_dropdown_categories(array(
+                                                            'hide_empty' => 0,
+                                                            'hide_if_empty' => false,
+                                                            'name' => 'parent',
+                                                            'orderby' => 'name',
+                                                            'taxonomy' => $this->screen->taxonomy,
+                                                            'hierarchical' => true,
+                                                            'show_option_none' => __('None')
+                                                        ));
+                                                        ?>
+                                                    </div>
+                                                </div>     
+                                                </div>
+                                            </fieldset>
+                                        <?php else : // $bulk  ?>
+                                            <fieldset>                                       
+                                                <legend class="inline-edit-legend"><?php echo $bulk ? __('Bulk Edit') : __('Quick Edit'); ?></legend>   
+                                                <div class="inline-edit-col">
+                                                    <label>
+                                                        <span class="title"><?php _ex('Name', 'term name'); ?></span>
+                                                        <span class="input-text-wrap"><input type="text" name="name" class="ptitle" value="" /></span>
+                                                    </label>
+                                                    <?php if (!global_terms_enabled()) { ?>
+                                                        <label>
+                                                            <span class="title"><?php _e('Slug'); ?></span>
+                                                            <span class="input-text-wrap"><input type="text" name="slug" class="ptitle" value="" /></span>
+                                                        </label>
+                                                    <?php } ?>
+                                                </div>
+                                            </fieldset>
+                                        <?php endif; // $bulk  ?>
+
+
+
+                                        <p class="inline-edit-save submit">
+                                            <a href="#inline-edit" class="cancel button-secondary alignleft"><?php _e('Cancel'); ?></a>
+                                            <?php
+                                            if ($bulk) :
+                                                submit_button(__('Update'), 'button-primary alignright', 'edit-parent', false);
+                                            else : // $bulk 
+                                                ?>
+                                                <a href="#inline-edit" class="save button-primary alignright"><?php echo $tax->labels->update_item; ?></a>
+                                            <?php endif; // $bulk ?>
+                                            <span class="spinner"></span>
+                                            <span class="error" style="display:none;"></span>
+                                            <?php wp_nonce_field('taxinlineeditnonce', '_inline_edit', false); ?>
+                                            <input type="hidden" name="taxonomy" value="<?php echo esc_attr($this->screen->taxonomy); ?>" />
+                                            <input type="hidden" name="post_type" value="<?php echo esc_attr($this->screen->post_type); ?>" />
+                                            <?php if ($bulk) { ?>                                        
+                                                <input type="hidden" name="screen" value="<?php echo esc_attr($this->screen->id); ?>" />
+                                            <?php } ?>
+                                            <br class="clear" />
+                                        </p>
+                                    </td>
+                                </tr>                  
+
+                                <?php
+                                $bulk++;
+                            }
+                            ?>                            
 		</tbody></table></form>
 	<?php
 	}
diff --git a/src/wp-admin/js/inline-edit-tax.js b/src/wp-admin/js/inline-edit-tax.js
index 99bfca4..4c17d6f 100644
--- a/src/wp-admin/js/inline-edit-tax.js
+++ b/src/wp-admin/js/inline-edit-tax.js
@@ -25,6 +25,9 @@ inlineEditTax = {
 		$( 'a.cancel', row ).click( function() {
 			return inlineEditTax.revert();
 		});
+		$( '.cancel' ).click( function() {		  
+			return inlineEditTax.revert();
+		});
 		$( 'a.save', row ).click( function() {
 			return inlineEditTax.save(this);
 		});
@@ -37,6 +40,50 @@ inlineEditTax = {
 		$( '#posts-filter input[type="submit"]' ).mousedown( function() {
 			t.revert();
 		});
+		
+		$('#doaction, #doaction2').click(function(e){	           
+			var n = $(this).attr('id').substr(2);
+			if ( 'edit' === $( 'select[name="' + n + '"]' ).val() ) {		
+				e.preventDefault();
+				t.setBulk();
+			} else if ( $('form#posts-filter tr.inline-editor').length > 0 ) {
+				t.revert();
+			}
+		});
+	},
+	
+	
+	setBulk : function() {	
+		var te = '', type = this.type, tax, c = true;	
+		this.revert();
+		
+		$( '#bulk-edit td' ).attr( 'colspan', $( 'th:visible, td:visible', '.widefat:first thead' ).length );	
+		$('table.widefat tbody').prepend( $('#bulk-edit') ).prepend('<tr class="hidden"></tr>');
+		$('#bulk-edit').addClass('inline-editor').show();
+		
+		$( 'tbody th.check-column input[type="checkbox"]' ).each( function() {
+			if ( $(this).prop('checked') ) {
+				c = false;
+				var id = $(this).val(), theTitle;
+				theTitle = $('#tag-'+id+' .row-title').html() || inlineEditL10n.notitle;				
+				te += '<div id="ttle'+id+'"><a id="_'+id+'" class="ntdelbutton" title="'+inlineEditL10n.ntdeltitle+'">X</a>'+theTitle+'</div>';
+			}
+		});
+		
+		if ( c ) {
+			return this.revert();
+		}
+		
+		$('#bulk-titles').html(te);
+		$('#bulk-titles a').click(function(){
+			var id = $(this).attr('id').substr(1);
+
+			$('table.widefat input[value="' + id + '"]').prop('checked', false);
+			$('#ttle'+id).remove();
+		});
+		
+		$('html, body').animate( { scrollTop: 0 }, 'fast' );
+	
 	},
 
 	toggle : function(el) {
@@ -134,9 +181,15 @@ inlineEditTax = {
 
 		if ( id ) {
 			$( 'table.widefat .spinner' ).removeClass( 'is-active' );
-			$('#'+id).siblings('tr.hidden').addBack().remove();
-			id = id.substr( id.lastIndexOf('-') + 1 );
-			$(this.what+id).show();
+			if ( 'bulk-edit' === id ) {			  
+				$('table.widefat #bulk-edit').removeClass('inline-editor').hide().siblings('tr.hidden').remove();
+				$('#bulk-titles').empty();
+				$('#inlineedit').append( $('#bulk-edit') );
+			} else {			 
+				$('#'+id).siblings('tr.hidden').addBack().remove();
+				id = id.substr( id.lastIndexOf('-') + 1 );
+				$(this.what+id).show();
+			}
 		}
 
 		return false;
