Index: meta.php
===================================================================
--- meta.php	(revision 12543)
+++ meta.php	(working copy)
@@ -53,11 +53,12 @@
 	global $wpdb;
 
 	$column = esc_sql($meta_type . '_id');
+	$id_column = _get_meta_id_column($meta_type);
 
 	// expected_slashed ($meta_key)
 	$meta_key = stripslashes($meta_key);
 
-	if ( ! $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT meta_id FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ) )
+	if ( ! $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ) )
 		return add_metadata($meta_type, $object_id, $meta_key, $meta_value);
 
 	$meta_value = maybe_serialize( stripslashes_deep($meta_value) );
@@ -90,11 +91,12 @@
 	global $wpdb;
 
 	$type_column = esc_sql($meta_type . '_id');
+	$id_column = _get_meta_id_column($meta_type);
 	// expected_slashed ($meta_key)
 	$meta_key = stripslashes($meta_key);
 	$meta_value = maybe_serialize( stripslashes_deep($meta_value) );
 
-	$query = $wpdb->prepare( "SELECT meta_id FROM $table WHERE meta_key = %s", $meta_key );
+	$query = $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s", $meta_key );
 
 	if ( !$delete_all )
 		$query .= $wpdb->prepare(" AND $type_column = %d", $object_id );
@@ -106,7 +108,7 @@
 	if ( !count( $meta_ids ) )
 		return false;
 
-	$query = "DELETE FROM $table WHERE meta_id IN( " . implode( ',', $meta_ids ) . " )";
+	$query = "DELETE FROM $table WHERE $id_column IN( " . implode( ',', $meta_ids ) . " )";
 
 	$count = $wpdb->query($query);
 
@@ -220,4 +222,12 @@
 
 	return $wpdb->$table_name;
 }
+
+function _get_meta_id_column($type) {
+	if ( $type == 'user' )
+		return 'umeta_id';
+	else 
+		return 'meta_id';
+}
+
 ?>
