Index: wp-includes/meta.php
===================================================================
--- wp-includes/meta.php	(revision 18464)
+++ wp-includes/meta.php	(working copy)
@@ -322,6 +322,47 @@
 }
 
 /**
+ * Update meta data by meta ID
+ *
+ * @since 3.3.0
+ *
+ * @uses update_metadata() Calls update_metadata() to actually update the meta value after
+ * 		the meta_key, object_id and prev_value are fetched.
+ *
+ * @param string $meta_type Type of object metadata is for (e.g., comment, post, or user)
+ * @param int $meta_id ID for a specific meta row
+ * @param string $meta_value Metadata value
+ * @return bool True on successful update, false on failure.
+ */
+function update_metadata_by_mid( $meta_type, $meta_id, $meta_value ) {
+	if ( ! $meta_type )
+		return false;
+
+	if ( ! $meta_id = absint($meta_id) )
+		return false;
+
+	if ( ! $table = _get_meta_table($meta_type) )
+		return false;
+
+	global $wpdb;
+
+	$column = esc_sql($meta_type . '_id');
+	$id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
+
+	// Fetch the meta key, value and object_id by the given meta_id.
+	if ( $meta = $wpdb->get_row( $wpdb->prepare( "SELECT meta_key, meta_value, $column FROM $table WHERE $id_column = %d", $meta_id ) ) ) {
+			$object_id = $meta->{$column};
+			$meta_key = $meta->meta_key;
+			$prev_value = $meta->meta_value;
+			
+			// If the meta was found, update it.
+			return update_metadata( $meta_type, $object_id, $meta_key, $meta_value, $prev_value );
+	}
+	
+	return false;
+}
+
+/**
  * Update the metadata cache for the specified objects.
  *
  * @since 2.9.0
