diff -u -p -r1.15 rhythmdb.defs
--- bindings/python/rhythmdb.defs	19 Jun 2006 04:34:25 -0000	1.15
+++ bindings/python/rhythmdb.defs	5 Jul 2006 04:58:11 -0000
@@ -378,28 +378,6 @@
   )
 )
 
-(define-method entry_set_nonotify
-  (of-object "RhythmDB")
-  (c-name "rhythmdb_entry_set_nonotify")
-  (return-type "none")
-  (parameters
-    '("RhythmDBEntry*" "entry")
-    '("RhythmDBPropType" "propid")
-    '("const-GValue*" "value")
-  )
-)
-
-(define-method entry_set_uninserted
-  (of-object "RhythmDB")
-  (c-name "rhythmdb_entry_set_uninserted")
-  (return-type "none")
-  (parameters
-    '("RhythmDBEntry*" "entry")
-    '("RhythmDBPropType" "propid")
-    '("const-GValue*" "value")
-  )
-)
-
 (define-method entry_delete
   (of-object "RhythmDB")
   (c-name "rhythmdb_entry_delete")
diff -u -p -r1.12 rhythmdb.override
--- bindings/python/rhythmdb.override	19 Jun 2006 09:59:51 -0000	1.12
+++ bindings/python/rhythmdb.override	5 Jul 2006 04:58:12 -0000
@@ -142,74 +142,6 @@ _wrap_rhythmdb_entry_set(PyGObject *self
     return Py_None;
 }
 %%
-override rhythmdb_entry_set_nonotify kwargs
-static PyObject *
-_wrap_rhythmdb_entry_set_nonotify(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
-    static char *kwlist[] = { "entry", "propid", "value", NULL };
-    PyObject *py_entry = NULL;
-    PyObject *py_propid = NULL;
-    PyObject *py_value = NULL;
-    RhythmDBEntry *entry;
-    RhythmDBPropType propid;
-    GValue value = {0,};
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OOO:RhythmDBEntry.set_nonotify", kwlist, &py_entry, &py_propid, &py_value))
-        return NULL;
-    if (pyg_boxed_check(py_entry, RHYTHMDB_TYPE_ENTRY))
-        entry = pyg_boxed_get(py_entry, RhythmDBEntry);
-    else {
-        PyErr_SetString(PyExc_TypeError, "entry should be a RhythmDBEntry");
-        return NULL;
-    }
-    if (pyg_enum_get_value(RHYTHMDB_TYPE_PROP_TYPE, py_propid, (gint *)&propid))
-        return NULL;
-    g_value_init(&value, rhythmdb_get_property_type (RHYTHMDB(self->obj), propid));
-    if (pyg_value_from_pyobject(&value, py_value) < 0) {
-        PyErr_SetString(PyExc_TypeError,
-		"could not convert argument to correct param type");
-        return NULL;
-    }
-    rhythmdb_entry_set_nonotify(RHYTHMDB(self->obj), entry, propid, &value);
-    g_value_unset (&value);
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-%%
-override rhythmdb_entry_set_uninserted kwargs
-static PyObject *
-_wrap_rhythmdb_entry_set_uninserted(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
-    static char *kwlist[] = { "entry", "propid", "value", NULL };
-    PyObject *py_entry = NULL;
-    PyObject *py_propid = NULL;
-    PyObject *py_value = NULL;
-    RhythmDBEntry *entry;
-    RhythmDBPropType propid;
-    GValue value = {0,};
-
-    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OOO:RhythmDBEntry.set_uninserted", kwlist, &py_entry, &py_propid, &py_value))
-        return NULL;
-    if (pyg_boxed_check(py_entry, RHYTHMDB_TYPE_ENTRY))
-        entry = pyg_boxed_get(py_entry, RhythmDBEntry);
-    else {
-        PyErr_SetString(PyExc_TypeError, "entry should be a RhythmDBEntry");
-        return NULL;
-    }
-    if (pyg_enum_get_value(RHYTHMDB_TYPE_PROP_TYPE, py_propid, (gint *)&propid))
-        return NULL;
-    g_value_init(&value, rhythmdb_get_property_type (RHYTHMDB(self->obj), propid));
-    if (pyg_value_from_pyobject(&value, py_value) < 0) {
-        PyErr_SetString(PyExc_TypeError,
-		"could not convert argument to correct param type");
-        return NULL;
-    }
-    rhythmdb_entry_set_uninserted(RHYTHMDB(self->obj), entry, propid, &value);
-    g_value_unset (&value);
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-%%
 override rhythmdb_query_results_add_results kwargs
 static PyObject*
 _wrap_rhythmdb_query_results_add_results (PyGObject *self, PyObject *args, PyObject *kwargs)
diff -u -p -r1.31 rb-daap-connection.c
--- daapsharing/rb-daap-connection.c	19 Jun 2006 04:35:18 -0000	1.31
+++ daapsharing/rb-daap-connection.c	5 Jul 2006 04:58:12 -0000
@@ -677,7 +677,7 @@ entry_set_string_prop (RhythmDB        *
 
 	g_value_init (&value, G_TYPE_STRING);
 	g_value_set_string_take_ownership (&value, tmp);
-	rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, propid, &value);
+	rhythmdb_entry_set (RHYTHMDB (db), entry, propid, &value);
 	g_value_unset (&value);
 }
 
@@ -999,38 +999,38 @@ handle_song_listing (RBDAAPConnection *c
 
 			g_value_init (&value, G_TYPE_ULONG);
 			g_value_set_ulong (&value,julian);
-			rhythmdb_entry_set_uninserted (priv->db, entry, RHYTHMDB_PROP_DATE, &value);
+			rhythmdb_entry_set (priv->db, entry, RHYTHMDB_PROP_DATE, &value);
 			g_value_unset (&value);
 		} 
 
 		/* track number */
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value,(gulong)track_number);
-		rhythmdb_entry_set_uninserted (priv->db, entry, RHYTHMDB_PROP_TRACK_NUMBER, &value);
+		rhythmdb_entry_set (priv->db, entry, RHYTHMDB_PROP_TRACK_NUMBER, &value);
 		g_value_unset (&value);
 
 		/* disc number */
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value,(gulong)disc_number);
-		rhythmdb_entry_set_uninserted (priv->db, entry, RHYTHMDB_PROP_DISC_NUMBER, &value);
+		rhythmdb_entry_set (priv->db, entry, RHYTHMDB_PROP_DISC_NUMBER, &value);
 		g_value_unset (&value);
 
 		/* bitrate */
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value,(gulong)bitrate);
-		rhythmdb_entry_set_uninserted (priv->db, entry, RHYTHMDB_PROP_BITRATE, &value);
+		rhythmdb_entry_set (priv->db, entry, RHYTHMDB_PROP_BITRATE, &value);
 		g_value_unset (&value);
 		
 		/* length */
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value,(gulong)length / 1000);
-		rhythmdb_entry_set_uninserted (priv->db, entry, RHYTHMDB_PROP_DURATION, &value);
+		rhythmdb_entry_set (priv->db, entry, RHYTHMDB_PROP_DURATION, &value);
 		g_value_unset (&value);
 
 		/* file size */
 		g_value_init (&value, G_TYPE_UINT64);
 		g_value_set_uint64(&value,(gint64)size);
-		rhythmdb_entry_set_uninserted (priv->db, entry, RHYTHMDB_PROP_FILE_SIZE, &value);
+		rhythmdb_entry_set (priv->db, entry, RHYTHMDB_PROP_FILE_SIZE, &value);
 		g_value_unset (&value);
 
 		/* title */
diff -u -p -r1.49 rb-podcast-manager.c
--- podcast/rb-podcast-manager.c	22 Jun 2006 10:27:39 -0000	1.49
+++ podcast/rb-podcast-manager.c	5 Jul 2006 04:58:14 -0000
@@ -416,7 +416,7 @@ rb_podcast_manager_download_entry (RBPod
 			GValue status_val = { 0, };
 			g_value_init (&status_val, G_TYPE_ULONG);
 			g_value_set_ulong (&status_val, RHYTHMDB_PODCAST_STATUS_WAITING);
-			rhythmdb_entry_set_nonotify (pd->priv->db, entry, RHYTHMDB_PROP_STATUS, &status_val);
+			rhythmdb_entry_set (pd->priv->db, entry, RHYTHMDB_PROP_STATUS, &status_val);
 			g_value_unset (&status_val);
 		}
 		rb_debug ("Try insert entry for download.");
@@ -770,70 +770,70 @@ rb_podcast_manager_add_post (RhythmDB *d
 
 	g_value_init (&val, G_TYPE_STRING);
 	g_value_set_string (&val, name);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_ALBUM, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_ALBUM, &val);
 	
 	g_value_reset (&val);
 	g_value_set_static_string (&val, _("Podcast"));
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_GENRE, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_GENRE, &val);
 
 	g_value_reset (&val);
 	g_value_set_string (&val, title);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_TITLE, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_TITLE, &val);
 
 	g_value_reset (&val);
 	if (subtitle)
 		g_value_set_string (&val, subtitle);
 	else
 		g_value_set_static_string (&val, "");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_SUBTITLE, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_SUBTITLE, &val);
 
 	g_value_reset (&val);
 	if (description)
 		g_value_set_string (&val, description);
 	else
 		g_value_set_static_string (&val, "");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_DESCRIPTION, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_DESCRIPTION, &val);
 
 	g_value_reset (&val);
 	if (generator) 
 		g_value_set_string (&val, generator);
 	else
 		g_value_set_static_string (&val, "");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_ARTIST, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_ARTIST, &val);
 	g_value_unset (&val);
 
 	g_value_init (&val, G_TYPE_ULONG);
 	g_value_set_ulong (&val, RHYTHMDB_PODCAST_STATUS_PAUSED);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_STATUS, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_STATUS, &val);
 
 	g_value_reset (&val);
 	g_value_set_ulong (&val, date);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_POST_TIME, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_POST_TIME, &val);
 
 	g_value_reset (&val);
 	g_value_set_ulong (&val, duration);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_DURATION, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_DURATION, &val);
 
 	g_value_reset (&val);
 	g_value_set_ulong (&val, 0);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_LAST_PLAYED, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_LAST_PLAYED, &val);
 
 	/* first seen */
 	g_get_current_time (&time);
 	g_value_reset (&val);
 	g_value_set_ulong (&val, time.tv_sec);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_FIRST_SEEN, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_FIRST_SEEN, &val);
 	g_value_unset (&val);
 	
 	/* initialize the rating */
 	g_value_init (&val, G_TYPE_DOUBLE);
 	g_value_set_double (&val, 2.5);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_RATING, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_RATING, &val);
 	g_value_unset (&val);
 
 	g_value_init (&val, G_TYPE_UINT64);
 	g_value_set_uint64 (&val, filesize);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_FILE_SIZE, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_FILE_SIZE, &val);
 	g_value_unset (&val);
 
 	return entry;
@@ -1408,7 +1408,7 @@ rb_podcast_manager_insert_feed (RBPodcas
 	
 		g_value_init (&title_val, G_TYPE_STRING);
 		g_value_set_string (&title_val, (gchar * ) data->title);
-		rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_TITLE, &title_val);
+		rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_TITLE, &title_val);
 		g_value_unset (&title_val);
 	
 		g_value_init (&author_val, G_TYPE_STRING);
@@ -1416,55 +1416,55 @@ rb_podcast_manager_insert_feed (RBPodcas
 			g_value_set_string (&author_val, (gchar *) data->author);
 		else
 			g_value_set_static_string (&author_val, _("Unknown"));
-		rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_ARTIST, &author_val);
+		rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_ARTIST, &author_val);
 		g_value_unset (&author_val);
 	
 	
 		if (data->subtitle) {
 			g_value_init (&subtitle_val, G_TYPE_STRING);
 			g_value_set_string (&subtitle_val, (gchar *) data->subtitle);
-			rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_SUBTITLE, &subtitle_val);
+			rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_SUBTITLE, &subtitle_val);
 			g_value_unset (&subtitle_val);
 		}
 	
 		if (data->description) {
 			g_value_init (&description_val, G_TYPE_STRING);
 			g_value_set_string (&description_val, (gchar *) data->description);
-			rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_DESCRIPTION, &description_val);
+			rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_DESCRIPTION, &description_val);
 			g_value_unset (&description_val);
 		}
 	
 		if (data->summary) {
 			g_value_init (&summary_val, G_TYPE_STRING);
 			g_value_set_string (&summary_val, (gchar *) data->summary);
-			rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_SUMMARY, &summary_val);
+			rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_SUMMARY, &summary_val);
 			g_value_unset (&summary_val);
 		}
 
 		if (data->lang) {
 			g_value_init (&lang_val, G_TYPE_STRING);
 			g_value_set_string (&lang_val, (gchar *) data->lang);
-			rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_LANG, &lang_val);
+			rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_LANG, &lang_val);
 			g_value_unset (&lang_val);
 		}
 
 		if (data->copyright) { 
 			g_value_init (&copyright_val, G_TYPE_STRING);
 			g_value_set_string (&copyright_val, (gchar *) data->copyright);
-			rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_COPYRIGHT, &copyright_val);
+			rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_COPYRIGHT, &copyright_val);
 			g_value_unset (&copyright_val);
 		}
 
 		if (data->img) {
 			g_value_init (&image_val, G_TYPE_STRING);
 			g_value_set_string (&image_val, (gchar *) data->img);
-			rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_IMAGE, &image_val);
+			rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_IMAGE, &image_val);
 			g_value_unset (&image_val);
 		}
 
 		g_value_init (&status_val, G_TYPE_ULONG);
 		g_value_set_ulong (&status_val, 1);
-		rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_STATUS, &status_val);
+		rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_STATUS, &status_val);
 		g_value_unset (&status_val);
 
 		rb_debug("Podcast head Inserted");
@@ -1511,7 +1511,7 @@ rb_podcast_manager_insert_feed (RBPodcas
 		g_value_init (&status, G_TYPE_ULONG);
 		g_value_set_ulong (&status, RHYTHMDB_PODCAST_STATUS_WAITING);
 		for (t = download_entries; t != NULL; t = g_list_next (t)) {
-			rhythmdb_entry_set_uninserted (db, 
+			rhythmdb_entry_set (db, 
 						       (RhythmDBEntry*) t->data,
 						       RHYTHMDB_PROP_STATUS, 
 						       &status);
@@ -1531,7 +1531,7 @@ rb_podcast_manager_insert_feed (RBPodcas
 	g_value_set_ulong (&last_post_val, new_last_post);
 
 	if (new_feed) 
-		rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_POST_TIME, &last_post_val);
+		rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_POST_TIME, &last_post_val);
 	else
 		rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_POST_TIME, &last_post_val);
 	g_value_unset (&last_post_val);
@@ -1540,7 +1540,7 @@ rb_podcast_manager_insert_feed (RBPodcas
 	g_value_set_ulong (&last_update_val, time(NULL));
 
 	if (new_feed)
-		rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_LAST_SEEN, &last_update_val);
+		rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_LAST_SEEN, &last_update_val);
 	else
 		rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_LAST_SEEN, &last_update_val);
 	g_value_unset (&last_update_val);
diff -u -p -r1.230 rhythmdb.c
--- rhythmdb/rhythmdb.c	1 Jul 2006 01:58:39 -0000	1.230
+++ rhythmdb/rhythmdb.c	5 Jul 2006 04:58:16 -0000
@@ -919,7 +919,7 @@ rhythmdb_error_quark (void)
  * @type: type of entry to allocate
  *
  * Allocate and initialise memory for a new #RhythmDBEntry of the type @type.
- * The entry's initial properties needs to be set with rhythmdb_entry_set_uninserted(),
+ * The entry's initial properties needs to be set with rhythmdb_entry_set (),
  * the entry added to the database with rhythmdb_entry_insert(), and committed with
  * rhythmdb_commit().
  *
@@ -1511,7 +1511,7 @@ rhythmdb_add_import_error_entry (RhythmD
 		if (error_entry_type == RHYTHMDB_ENTRY_TYPE_IMPORT_ERROR) {
 			g_value_init (&value, G_TYPE_STRING);
 			g_value_set_string (&value, event->error->message);
-			rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_PLAYBACK_ERROR, &value);
+			rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_PLAYBACK_ERROR, &value);
 			g_value_unset (&value);
 		}
 	
@@ -1519,7 +1519,7 @@ rhythmdb_add_import_error_entry (RhythmD
 		if (event->vfsinfo) {
 			g_value_init (&value, G_TYPE_ULONG);
 			g_value_set_ulong (&value, event->vfsinfo->mtime);
-			rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_MTIME, &value);
+			rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_MTIME, &value);
 			g_value_unset (&value);
 		}
 
@@ -1584,20 +1584,20 @@ rhythmdb_process_metadata_load (RhythmDB
 		/* initialize the last played date to 0=never */
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value, 0);
-		rhythmdb_entry_set_uninserted (db, entry,
+		rhythmdb_entry_set (db, entry,
 					       RHYTHMDB_PROP_LAST_PLAYED, &value);
 		g_value_unset (&value);
 
 		/* initialize the rating */
 		g_value_init (&value, G_TYPE_DOUBLE);
 		g_value_set_double (&value, 0);
-		rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_RATING, &value);
+		rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_RATING, &value);
 		g_value_unset (&value);
 
 	        /* first seen */
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value, time.tv_sec);
-		rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_FIRST_SEEN, &value);
+		rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_FIRST_SEEN, &value);
 		g_value_unset (&value);
 	}
 
@@ -2326,30 +2326,6 @@ rhythmdb_save (RhythmDB *db)
 	g_mutex_unlock (db->priv->saving_mutex);
 }
 
-static void
-threadsafe_entry_set (RhythmDB *db, RhythmDBEntry *entry,
-		      gboolean notify, guint propid, const GValue *value)
-{
-	if (!rhythmdb_get_readonly (db) && rb_is_main_thread ()) {
-		rhythmdb_entry_set_internal (db, entry, notify, propid, value);
-	} else {
-		RhythmDBEvent *result;
-
-		result = g_new0 (RhythmDBEvent, 1);
-		result->db = db;
-		result->type = RHYTHMDB_EVENT_ENTRY_SET;
-
-		rb_debug ("queuing RHYTHMDB_ACTION_ENTRY_SET");
-
-		result->entry = entry;
-		result->change.prop = propid;
-		result->signal_change = notify;
-		g_value_init (&result->change.new, G_VALUE_TYPE (value));
-		g_value_copy (value, &result->change.new);
-		g_async_queue_push (db->priv->event_queue, result);
-	}
-}
-
 /**
  * rhythmdb_entry_set:
  * @db:# a RhythmDB.
@@ -2375,29 +2351,28 @@ void 
 rhythmdb_entry_set (RhythmDB *db, RhythmDBEntry *entry, 
 		    guint propid, const GValue *value)
 {
-	g_return_if_fail ((entry->flags & RHYTHMDB_ENTRY_INSERTED) != 0);
-	threadsafe_entry_set (db, entry, TRUE, propid, value);
-}
+	if ((entry->flags & RHYTHMDB_ENTRY_INSERTED) != 0) {
+		if (!rhythmdb_get_readonly (db) && rb_is_main_thread ()) {
+			rhythmdb_entry_set_internal (db, entry, TRUE, propid, value);
+		} else {
+			RhythmDBEvent *result;
 
-/**
- * rhythmdb_entry_set_nonotify:
- * @db: a #RhythmDB.
- * @entry: a #RhythmDBEntry.
- * @propid: the id of the property to set.
- * @value: the property value.
- *
- * This function is like rhythmdb_entry_set(), except no notification
- * of the change will be sent.  This is useful if you know no
- * one could possibly be listening for the change.
- * 
- * Note that you do not need to call rhythmdb_commit() after this.
- **/
-void 
-rhythmdb_entry_set_nonotify (RhythmDB *db, RhythmDBEntry *entry, 
-			     guint propid, const GValue *value)
-{
-	g_return_if_fail ((entry->flags & RHYTHMDB_ENTRY_INSERTED) == 0);
-	threadsafe_entry_set (db, entry, FALSE, propid, value);
+			result = g_new0 (RhythmDBEvent, 1);
+			result->db = db;
+			result->type = RHYTHMDB_EVENT_ENTRY_SET;
+
+			rb_debug ("queuing RHYTHMDB_ACTION_ENTRY_SET");
+
+			result->entry = entry;
+			result->change.prop = propid;
+			result->signal_change = TRUE;
+			g_value_init (&result->change.new, G_VALUE_TYPE (value));
+			g_value_copy (value, &result->change.new);
+			g_async_queue_push (db->priv->event_queue, result);
+		}
+	} else {
+		rhythmdb_entry_set_internal (db, entry, FALSE, propid, value);
+	}
 }
 
 static void
@@ -2430,27 +2405,6 @@ record_entry_change (RhythmDB *db, Rhyth
 	g_mutex_unlock (db->priv->change_mutex);
 }
 
-/**
- * rhythmdb_entry_set_uninserted:
- * @db: a #RhythmDB.
- * @entry: a #RhythmDBEntry.
- * @propid: the id of the property to set.
- * @value: the property value.
- *
- * This function is like rhythmdb_entry_set(), except that it should only
- * be called for entries that have been created with rhythmdb_entry_new()
- * but not yet committed to the database (i.e. before rhythmdb_commit()).
- *
- * Note that you need to call rhythmdb_commit() after all properties are set.
- **/
-void
-rhythmdb_entry_set_uninserted (RhythmDB *db, RhythmDBEntry *entry,
-			       guint propid, const GValue *value)
-{
-	g_return_if_fail ((entry->flags & RHYTHMDB_ENTRY_INSERTED) == 0);
-
-	rhythmdb_entry_set_internal (db, entry, FALSE, propid, value);
-}
 
 void
 rhythmdb_entry_set_internal (RhythmDB *db, RhythmDBEntry *entry,
diff -u -p -r1.39 rb-audiocd-source.c
--- sources/rb-audiocd-source.c	19 Jun 2006 04:40:04 -0000	1.39
+++ sources/rb-audiocd-source.c	5 Jul 2006 04:58:16 -0000
@@ -211,7 +211,7 @@ entry_set_string_prop (RhythmDB *db,
 	if (is_inserted)
 		rhythmdb_entry_set (RHYTHMDB (db), entry, propid, &value);
 	else
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, propid, &value);
+		rhythmdb_entry_set (RHYTHMDB (db), entry, propid, &value);
 	g_value_unset (&value);
 }
 
@@ -241,7 +241,7 @@ rb_audiocd_create_track_entry (RBAudioCd
 	/* generate track # */
 	g_value_init (&value, G_TYPE_ULONG);
 	g_value_set_ulong (&value, track_number);
-	rhythmdb_entry_set_uninserted (db, entry,
+	rhythmdb_entry_set (db, entry,
 			    RHYTHMDB_PROP_TRACK_NUMBER, 
 			    &value);
 	g_value_unset (&value);
@@ -250,7 +250,7 @@ rb_audiocd_create_track_entry (RBAudioCd
 	g_value_init (&value, G_TYPE_STRING);
 	str = g_strdup_printf (_("Track %u"), track_number);
 	g_value_take_string (&value, str);
-	rhythmdb_entry_set_uninserted (db, entry,
+	rhythmdb_entry_set (db, entry,
 			    RHYTHMDB_PROP_TITLE, 
 			    &value);
 	g_value_unset (&value);
@@ -280,7 +280,7 @@ rb_audiocd_create_track_entry (RBAudioCd
 		if (result) {
 			g_value_init (&value, G_TYPE_ULONG);
 			g_value_set_ulong (&value, (gulong)(duration / GST_SECOND));
-			rhythmdb_entry_set_uninserted (db, entry,
+			rhythmdb_entry_set (db, entry,
 					    RHYTHMDB_PROP_DURATION, 
 					    &value);
 			g_value_unset (&value);
diff -u -p -r1.56 rb-ipod-source.c
--- sources/rb-ipod-source.c	19 Jun 2006 04:40:04 -0000	1.56
+++ sources/rb-ipod-source.c	5 Jul 2006 04:58:17 -0000
@@ -230,7 +230,7 @@ entry_set_string_prop (RhythmDB *db, Rhy
 
 	g_value_init (&value, G_TYPE_STRING);
 	g_value_set_static_string (&value, str);
-	rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, propid, &value);
+	rhythmdb_entry_set (RHYTHMDB (db), entry, propid, &value);
 	g_value_unset (&value);
 }
 
@@ -373,7 +373,7 @@ add_ipod_song_to_db (RBiPodSource *sourc
 		GValue value = {0, };
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value, song->track_nr);
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, 
+		rhythmdb_entry_set (RHYTHMDB (db), entry, 
 					       RHYTHMDB_PROP_TRACK_NUMBER, 
 					       &value);
 		g_value_unset (&value);
@@ -384,7 +384,7 @@ add_ipod_song_to_db (RBiPodSource *sourc
 		GValue value = {0, };
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value, song->cd_nr);
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, 
+		rhythmdb_entry_set (RHYTHMDB (db), entry, 
 					       RHYTHMDB_PROP_DISC_NUMBER, 
 					       &value);
 		g_value_unset (&value);
@@ -395,7 +395,7 @@ add_ipod_song_to_db (RBiPodSource *sourc
 		GValue value = {0, };
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value, song->bitrate);
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, 
+		rhythmdb_entry_set (RHYTHMDB (db), entry, 
 					       RHYTHMDB_PROP_BITRATE, 
 					       &value);
 		g_value_unset (&value);
@@ -406,7 +406,7 @@ add_ipod_song_to_db (RBiPodSource *sourc
 		GValue value = {0, };
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value, song->tracklen/1000);
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, 
+		rhythmdb_entry_set (RHYTHMDB (db), entry, 
 					       RHYTHMDB_PROP_DURATION, 
 					       &value);
 		g_value_unset (&value);
@@ -417,7 +417,7 @@ add_ipod_song_to_db (RBiPodSource *sourc
 		GValue value = {0, };
 		g_value_init (&value, G_TYPE_UINT64);
 		g_value_set_uint64 (&value, song->size);
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry, 
+		rhythmdb_entry_set (RHYTHMDB (db), entry, 
 					       RHYTHMDB_PROP_FILE_SIZE, 
 					       &value);
 		g_value_unset (&value);
@@ -428,7 +428,7 @@ add_ipod_song_to_db (RBiPodSource *sourc
 		GValue value = {0, };
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value, song->playcount);
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry,
+		rhythmdb_entry_set (RHYTHMDB (db), entry,
 					       RHYTHMDB_PROP_PLAY_COUNT,
 					       &value);
 		g_value_unset (&value);
@@ -448,7 +448,7 @@ add_ipod_song_to_db (RBiPodSource *sourc
 		g_value_init (&value, type);
 		g_value_set_ulong (&value, (date ? g_date_get_julian (date) : 0));
 			
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry,
+		rhythmdb_entry_set (RHYTHMDB (db), entry,
 					       RHYTHMDB_PROP_DATE,
 					       &value);
 		g_value_unset (&value);
@@ -461,7 +461,7 @@ add_ipod_song_to_db (RBiPodSource *sourc
 		GValue value = {0, };
 		g_value_init (&value, G_TYPE_DOUBLE);
 		g_value_set_double (&value, song->rating/20.0);
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry,
+		rhythmdb_entry_set (RHYTHMDB (db), entry,
 					       RHYTHMDB_PROP_RATING,
 					       &value);
 		g_value_unset (&value);
@@ -472,7 +472,7 @@ add_ipod_song_to_db (RBiPodSource *sourc
 		GValue value = {0, };
 		g_value_init (&value, G_TYPE_ULONG);
 		g_value_set_ulong (&value, itdb_time_mac_to_host (song->time_played));
-		rhythmdb_entry_set_uninserted (RHYTHMDB (db), entry,
+		rhythmdb_entry_set (RHYTHMDB (db), entry,
 					       RHYTHMDB_PROP_LAST_PLAYED,
 					       &value);
 		g_value_unset (&value);
diff -u -p -r1.122 rb-iradio-source.c
--- sources/rb-iradio-source.c	19 Jun 2006 04:40:04 -0000	1.122
+++ sources/rb-iradio-source.c	5 Jul 2006 04:58:18 -0000
@@ -468,18 +468,18 @@ rb_iradio_source_add_station (RBIRadioSo
 		g_value_take_string (&val,
 				     gnome_vfs_format_uri_for_display (uri));
 
-	rhythmdb_entry_set_uninserted (source->priv->db, entry, RHYTHMDB_PROP_TITLE, &val);
+	rhythmdb_entry_set (source->priv->db, entry, RHYTHMDB_PROP_TITLE, &val);
 	g_value_reset (&val);
 		
 	if ((!genre) || (strcmp (genre, "") == 0))
 		genre = _("Unknown");
 	g_value_set_string (&val, genre);
-	rhythmdb_entry_set_uninserted (source->priv->db, entry, RHYTHMDB_PROP_GENRE, &val);
+	rhythmdb_entry_set (source->priv->db, entry, RHYTHMDB_PROP_GENRE, &val);
 	g_value_unset (&val);
 	
 	g_value_init (&val, G_TYPE_DOUBLE);
 	g_value_set_double (&val, 0.0);
-	rhythmdb_entry_set_uninserted (source->priv->db, entry, RHYTHMDB_PROP_RATING, &val);
+	rhythmdb_entry_set (source->priv->db, entry, RHYTHMDB_PROP_RATING, &val);
 	g_value_unset (&val);
 	
 	rhythmdb_commit (source->priv->db);
diff -u -p -r1.6 test-rhythmdb.c
--- tests/test-rhythmdb.c	17 Jun 2006 10:14:39 -0000	1.6
+++ tests/test-rhythmdb.c	5 Jul 2006 04:58:18 -0000
@@ -100,22 +100,22 @@ START_TEST (test_rhythmdb_indexing)
 
 	g_value_init (&val, G_TYPE_STRING);
 	g_value_set_static_string (&val, "Rock");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_GENRE, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_GENRE, &val);
 	g_value_unset (&val);
 
 	g_value_init (&val, G_TYPE_STRING);
 	g_value_set_static_string (&val, "Nine Inch Nails");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_ARTIST, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_ARTIST, &val);
 	g_value_unset (&val);
 
 	g_value_init (&val, G_TYPE_STRING);
 	g_value_set_static_string (&val, "Pretty Hate Machine");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_ALBUM, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_ALBUM, &val);
 	g_value_unset (&val);
 
 	g_value_init (&val, G_TYPE_STRING);
 	g_value_set_static_string (&val, "Sin");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_TITLE, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_TITLE, &val);
 	g_value_unset (&val);
 
 	rhythmdb_commit (db);
@@ -234,7 +234,7 @@ START_TEST (test_rhythmdb_mirroring)
 	/* check the last-played date is mirrored */
 	g_value_init (&val, G_TYPE_ULONG);
 	g_value_set_ulong (&val, 1354285);
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_LAST_PLAYED, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_LAST_PLAYED, &val);
 	g_value_unset (&val);
 	rhythmdb_commit (db);
 
@@ -279,22 +279,22 @@ START_TEST (test_rhythmdb_db_queries)
 
 	g_value_init (&val, G_TYPE_STRING);
 	g_value_set_static_string (&val, "Rock");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_GENRE, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_GENRE, &val);
 	g_value_unset (&val);
 
 	g_value_init (&val, G_TYPE_STRING);
 	g_value_set_static_string (&val, "Nine Inch Nails");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_ARTIST, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_ARTIST, &val);
 	g_value_unset (&val);
 
 	g_value_init (&val, G_TYPE_STRING);
 	g_value_set_static_string (&val, "Pretty Hate Machine");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_ALBUM, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_ALBUM, &val);
 	g_value_unset (&val);
 
 	g_value_init (&val, G_TYPE_STRING);
 	g_value_set_static_string (&val, "Sin");
-	rhythmdb_entry_set_uninserted (db, entry, RHYTHMDB_PROP_TITLE, &val);
+	rhythmdb_entry_set (db, entry, RHYTHMDB_PROP_TITLE, &val);
 	g_value_unset (&val);
 
 	rhythmdb_commit (db);
