diff --git a/docs/reference/glib/tmpl/glib-unused.sgml b/docs/reference/glib/tmpl/glib-unused.sgml
index ac05685f3..6d653cbfb 100644
--- a/docs/reference/glib/tmpl/glib-unused.sgml
+++ b/docs/reference/glib/tmpl/glib-unused.sgml
@@ -156,6 +156,21 @@ Turns the argument into a string literal by using the '#' stringizing operator.
@x: text to convert to a literal string.
+
+
+Gets the original key and the associated value and a gboolean which is
+TRUE if the key was found. This is useful if you need to free the memory
+allocated for the original key, for example before calling g_tree_remove().
+Since a #GTree is automatically balanced as key/value pairs are added,
+key lookup is very fast.
+
+
+@tree: a #GTree.
+@lookup_key: the key to look up.
+@orig_key: returns the original key.
+@value: returns the value associated with the key.
+@Returns: TRUE if the key was found in the #GTree.
+
diff --git a/docs/reference/glib/tmpl/trees-binary.sgml b/docs/reference/glib/tmpl/trees-binary.sgml
index 58fa33476..c68e739eb 100644
--- a/docs/reference/glib/tmpl/trees-binary.sgml
+++ b/docs/reference/glib/tmpl/trees-binary.sgml
@@ -124,22 +124,6 @@ added, key lookup is very fast.
@Returns: the value corresponding to the key.
-
-
-Gets the original key and the associated value and a gboolean which is
-TRUE if the key was found. This is useful if you need to free the memory
-allocated for the original key, for example before calling g_tree_remove().
-Since a #GTree is automatically balanced as key/value pairs are added,
-key lookup is very fast.
-
-
-@tree: a #GTree.
-@lookup_key: the key to look up.
-@orig_key: returns the original key.
-@value: returns the value associated with the key.
-@Returns: TRUE if the key was found in the #GTree.
-
-
Searches a #GTree using an alternative form of the comparison function.
diff --git a/gobject/ChangeLog b/gobject/ChangeLog
index a966cb8e8..309a18a4a 100644
--- a/gobject/ChangeLog
+++ b/gobject/ChangeLog
@@ -1,3 +1,12 @@
+Fri Mar 9 10:14:00 2001 Tim Janik
+
+ * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
+ for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
+ that wouldn't allow interface types.
+
+ * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
+ with bad implications and an off-by-one error.
+
Thu Mar 8 16:34:22 2001 Owen Taylor
* gvaluetransform.c: Include for memcpy.
diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c
index 35f60e015..d305f2c14 100644
--- a/gobject/gparamspecs.c
+++ b/gobject/gparamspecs.c
@@ -1587,7 +1587,7 @@ g_param_spec_object (const gchar *name,
{
GParamSpecObject *ospec;
- g_return_val_if_fail (G_TYPE_IS_OBJECT (object_type), NULL);
+ g_return_val_if_fail (g_type_is_a (object_type, G_TYPE_OBJECT), NULL);
ospec = g_param_spec_internal (G_TYPE_PARAM_OBJECT,
name,
diff --git a/gobject/gtype.c b/gobject/gtype.c
index 6f7450388..06a7303b5 100644
--- a/gobject/gtype.c
+++ b/gobject/gtype.c
@@ -1141,7 +1141,7 @@ g_type_interface_add_prerequisite (GType interface_type,
G_WRITE_LOCK (&type_rw_lock);
iface = lookup_type_node_L (interface_type);
- prerequisite_node = lookup_type_node_L (interface_type);
+ prerequisite_node = lookup_type_node_L (prerequisite_type);
if (!iface || !prerequisite_node || !NODE_IS_IFACE (iface))
{
g_warning ("interface type `%s' or prerequisite type `%s' invalid",
@@ -1164,7 +1164,7 @@ g_type_interface_add_prerequisite (GType interface_type,
{
guint i;
- for (i = 0; i < prerequisite_node->n_supers; i++)
+ for (i = 0; i < prerequisite_node->n_supers + 1; i++)
type_iface_add_prerequisite_W (iface, lookup_type_node_L (prerequisite_node->supers[i]));
}
else if (NODE_IS_IFACE (prerequisite_node))