Index: ChangeLog
===================================================================
--- ChangeLog	(revision 2657)
+++ ChangeLog	(working copy)
@@ -1,3 +1,9 @@
+2008-08-19  Tobias Mueller  <tobiasmue@svn.gnome.org>
+
+	* /gconf/gconf-value.c (gconf_entry_ref): Return a pointer to a 
+	just reffed GConfEntry.
+	Fixes bug 549063.
+
 =========================== 2.23.2 ==========================
 
 2008-08-19  Kjartan Maraas  <kmaraas@gnome.org>
Index: gconf/gconf-value.c
===================================================================
--- gconf/gconf-value.c	(revision 2657)
+++ gconf/gconf-value.c	(working copy)
@@ -1465,12 +1465,14 @@ gconf_entry_new_nocopy (char* key, GConf
   return (GConfEntry*) real;
 }
 
-void
+GConfEntry*
 gconf_entry_ref (GConfEntry *entry)
 {
-  g_return_if_fail (entry != NULL);
+  g_return_val_if_fail (entry != NULL, NULL);
   
   REAL_ENTRY (entry)->refcount += 1;
+  
+  return entry;
 }
 
 void
Index: gconf/gconf-value.h
===================================================================
--- gconf/gconf-value.h	(revision 2657)
+++ gconf/gconf-value.h	(working copy)
@@ -175,7 +175,7 @@ GConfEntry* gconf_entry_copy            
 #ifndef GCONF_DISABLE_DEPRECATED
 void        gconf_entry_free             (GConfEntry  *entry);
 #endif
-void        gconf_entry_ref   (GConfEntry *entry);
+GConfEntry*        gconf_entry_ref   (GConfEntry *entry);
 void        gconf_entry_unref (GConfEntry *entry);
 
 /* Transfer ownership of value to the caller. */
