Index: gladeui/glade-editor-property.c
===================================================================
--- gladeui/glade-editor-property.c	(revision 1798)
+++ gladeui/glade-editor-property.c	(working copy)
@@ -101,8 +101,8 @@ glade_editor_property_commit (GladeEdito
 	/* If the value was denied by a verify function, we'll have to
 	 * reload the real value.
 	 */
-	if (g_param_values_cmp (eprop->property->klass->pspec,
-				eprop->property->value, value) != 0)
+	if (glade_property_class_values_cmp (eprop->property->klass,
+					     eprop->property->value, value) != 0)
 		GLADE_EDITOR_PROPERTY_GET_CLASS (eprop)->load (eprop, eprop->property);
 }
 
Index: gladeui/glade-property-class.c
===================================================================
--- gladeui/glade-property-class.c	(revision 1798)
+++ gladeui/glade-property-class.c	(working copy)
@@ -1578,3 +1578,40 @@ glade_property_class_void_value (GladePr
 
 	return FALSE;
 }
+
+/**
+ * glade_property_class_values_cmp:
+ * @klass: a #GladePropertyClass
+ * @value1: a GValue of correct type for @klass
+ * @value2: a GValue of correct type for @klass
+ *
+ * Compares value1 with value2 according to @klass.
+ *
+ * Returns: -1, 0 or +1, if value1 is found to be less than,
+ * equal to or greater than value2, respectively.
+ */
+gint
+glade_property_class_values_cmp (GladePropertyClass *klass,
+				 GValue             *value1,
+				 GValue             *value2)
+{
+	gint retval;
+	
+	/* GLib does not know how to compare a boxed real value */
+	if (G_PARAM_SPEC_BOXED (klass->pspec))
+	{
+		gchar *val1, *val2;
+		
+		val1 = glade_property_class_make_string_from_gvalue (klass, value1),
+		val2 = glade_property_class_make_string_from_gvalue (klass, value2);
+
+		retval = strcmp (val1, val2);
+		
+		g_free (val1);
+		g_free (val2);
+	}
+	else
+		retval = g_param_values_cmp (klass->pspec, value1, value2);
+	
+	return retval;
+}
Index: gladeui/glade-property-class.h
===================================================================
--- gladeui/glade-property-class.h	(revision 1798)
+++ gladeui/glade-property-class.h	(working copy)
@@ -214,6 +214,9 @@ gboolean            glade_property_class
 gboolean            glade_property_class_void_value              (GladePropertyClass *klass,
 								  GValue             *value);
 
+gint                glade_property_class_values_cmp              (GladePropertyClass *klass,
+								  GValue             *value1,
+								  GValue             *value2);
 G_END_DECLS
 
 #endif /* __GLADE_PROPERTY_CLASS_H__ */
