Index: wp-includes/taxonomy.php
===================================================================
--- wp-includes/taxonomy.php	(revision 6845)
+++ wp-includes/taxonomy.php	(working copy)
@@ -1033,6 +1033,8 @@
 		$orderby = 't.slug';
 	else if ( 'term_group' == $orderby )
 		$orderby = 't.term_group';
+	else if ( 'term_order' == $orderby )
+		$orderby = 'tr.term_order';
 	else
 		$orderby = 't.term_id';
 
@@ -1249,6 +1251,18 @@
 		}
 	}
 
+	$t = get_taxonomy($taxonomy);
+	if ( ! $append && $t->sort ) {
+		$values = array();
+		$term_order = 0;
+		$final_term_ids = wp_get_object_terms($object_id, $taxonomy, 'fields=tt_ids');
+		foreach ( $term_ids as $term_id )
+			if ( in_array($term_id, $final_term_ids) )
+				$values[] = $wpdb->prepare( "(%d, %d, %d)", $object_id, $term_id, ++$term_order);
+		if ( $values )
+			$wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join(',', $values) . " ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)");
+	}
+
 	return $tt_ids;
 }
 
Index: wp-includes/version.php
===================================================================
--- wp-includes/version.php	(revision 6845)
+++ wp-includes/version.php	(working copy)
@@ -16,6 +16,6 @@
  *
  * @global int $wp_db_version
  */
-$wp_db_version = 6825;
+$wp_db_version = 6846;
 
 ?>
Index: wp-admin/includes/schema.php
===================================================================
--- wp-admin/includes/schema.php	(revision 6845)
+++ wp-admin/includes/schema.php	(working copy)
@@ -31,6 +31,7 @@
 CREATE TABLE $wpdb->term_relationships (
  object_id bigint(20) NOT NULL default 0,
  term_taxonomy_id bigint(20) NOT NULL default 0,
+ term_order int(11) NOT NULL default 0,
  PRIMARY KEY  (object_id,term_taxonomy_id),
  KEY term_taxonomy_id (term_taxonomy_id)
 ) $charset_collate;
