diff --git a/src/wp-admin/edit-tags.php b/src/wp-admin/edit-tags.php
index 0bf8d3e..cedd563 100644
--- a/src/wp-admin/edit-tags.php
+++ b/src/wp-admin/edit-tags.php
@@ -158,6 +158,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 2acbfcf..7e53473 100644
--- a/src/wp-admin/includes/class-wp-terms-list-table.php
+++ b/src/wp-admin/includes/class-wp-terms-list-table.php
@@ -144,6 +144,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;
 	}
@@ -153,8 +157,11 @@ 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'] ) )
+		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-parent' == $_REQUEST['category_screen'] ) ) {
+			return 'edit-parent';
+		}
 
 		return parent::current_action();
 	}
@@ -590,6 +597,49 @@ class WP_Terms_List_Table extends WP_List_Table {
 			<br class="clear" />
 		</p>
 		</td></tr>
+		
+		<tr id="bulk-edit" class="bulk-edit-row bulk-edit-row inline-edit-row bulk-edit-row-post ">	
+    <td class="colspanchange" colspan="<?php echo $this->get_column_count(); ?>">
+        
+        <fieldset class="inline-edit-col-left"><div class="inline-edit-col">
+                <h4>Bulk Edit</h4>
+                <div id="bulk-title-div">
+                    <div id="bulk-titles"></div>
+                </div>	
+            </div></fieldset>
+        
+        <fieldset class="inline-edit-col-left"><div class="inline-edit-col">
+                <div class="bulk-edit-col">
+                    <span class="title inline-edit-categories-label"><?php _e( 'Parent Category') ?></span>
+                    <?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>
+        </fieldset>
+        
+        <p class="submit inline-edit-save">
+            <button type="button" class="button-secondary cancel alignleft"><?php _e('Cancel'); ?></button>
+            <?php
+            submit_button(__('Update'), 'button-primary alignright', 'edit-parent', false);
+            ?>
+            <span class="spinner"></span>
+            <input type="hidden" name="post_view" value="<?php echo esc_attr($this->screen->taxonomy); ?>" />
+            <input type="hidden" name="screen" value="<?php echo esc_attr($this->screen->id); ?>" />	
+            <input type="hidden" name="category_screen" value="edit-parent" />					
+            <span class="error" style="display:none"></span>
+            <br class="clear" />
+        </p>
+        
+    </td>		
+</tr>
 		</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;
