Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 14166)
+++ wp-includes/post.php	(working copy)
@@ -2229,12 +2229,21 @@
 	// old-style tags_input
 	if ( isset( $tags_input ) )
 		wp_set_post_tags( $post_ID, $tags_input );
-	// new-style support for all tag-like taxonomies
+	// new-style support for all taxonomies
 	if ( !empty($tax_input) ) {
-		foreach ( $tax_input as $taxonomy => $tags ) {
-			$taxonomy_obj = get_taxonomy($taxonomy);
-			if ( current_user_can($taxonomy_obj->assign_cap) )
-				wp_set_post_terms( $post_ID, $tags, $taxonomy );
+		$tax_names = get_object_taxonomies( get_post($post_ID) );
+
+		foreach ( $tax_names as $tax_name ) {
+			$tax_obj = get_taxonomy($tax_name);
+			if ( !current_user_can($tax_obj->assign_cap) )
+				continue;
+
+			if ( isset($tax_input[$tax_name]) )
+				$term = $tax_input[$tax_name];
+			else
+				$term = array();
+
+			wp_set_post_terms( $post_ID, $term, $tax_name );
 		}
 	}
 
