diff -ruN a/gobject-2.0.vapi b/gobject-2.0.vapi
--- a/gobject-2.0.vapi	2016-09-22 14:07:06.456203275 +0200
+++ b/gobject-2.0.vapi	2016-09-22 16:28:12.953827984 +0200
@@ -202,8 +202,34 @@
 		public void weak_unref (GLib.WeakNotify notify);
 		public signal void notify (GLib.ParamSpec pspec);
 	}
+	[CCode (lower_case_csuffix = "type_interface", free_function = "g_type_default_interface_unref")]
+	[Compact]
+	public class TypeInterface
+	{
+		[CCode (cname="g_object_interface_install_property")]
+		public void install_property (uint property_id, GLib.ParamSpec pspec);
+		[CCode (cname="g_object_interface_find_property")]
+		public unowned GLib.ParamSpec? find_property (string property_name);
+		[CCode (cname="g_object_interface_list_properties", array_length_type = "guint")]
+#if VALA_0_26
+		public (unowned GLib.ParamSpec)[] list_properties ();
+#else
+		public unowned GLib.ParamSpec[] list_properties ();
+#endif
+		[CCode (cname = "G_TYPE_FROM_INTERFACE")]
+		public GLib.Type get_type ();
+		public unowned GLib.TypeInterface interface_peek_parent ();
+	}
 	[CCode (lower_case_csuffix = "object_class")]
 	public class ObjectClass : GLib.TypeClass {
+		public void* constructor;
+		public ObjectSetPropertyFunc set_property;
+		public ObjectGetPropertyFunc get_property;
+		public void* dispose;
+		public void* finalize;
+		public void* dispatch_properties_changed;
+		public void* notify;
+		public void* constructed;
 		public unowned GLib.ParamSpec? find_property (string property_name);
 		public void install_property (uint property_id, GLib.ParamSpec pspec);
 		[CCode (array_length_type = "guint")]
@@ -212,6 +238,7 @@
 #else
 		public unowned GLib.ParamSpec[] list_properties ();
 #endif
+		public void override_property (uint property_id, GLib.ParamSpec pspec);
 	}
 	[CCode (get_value_function = "g_value_get_param", param_spec_function = "g_param_spec_param", ref_function = "g_param_spec_ref", set_value_function = "g_value_set_param", take_value_function = "g_value_take_param", type_id = "G_TYPE_PARAM", unref_function = "g_param_spec_unref")]
 	public class ParamSpec {
@@ -363,6 +390,7 @@
 	public class TypeClass {
 		[CCode (cname = "G_TYPE_FROM_CLASS")]
 		public GLib.Type get_type ();
+		public unowned GLib.TypeInterface interface_peek (GLib.Type type);
 	}
 	[CCode (lower_case_csuffix = "type_module")]
 	public class TypeModule : GLib.Object, GLib.TypePlugin {
@@ -401,6 +429,8 @@
 		public weak string value_nick;
 	}
 	public struct ObjectConstructParam {
+		ParamSpec pspec;
+		GLib.Value value;
 	}
 	[CCode (has_copy_function = false, has_destroy_function = false)]
 	public struct Parameter {
@@ -429,8 +459,10 @@
 		public const GLib.Type FLAGS;
 		public const GLib.Type INTERFACE;
 		public const GLib.Type INVALID;
-		public GLib.Type[] children ();
 		public unowned GLib.TypeClass class_peek ();
+		public unowned GLib.TypeClass class_peek_parent ();
+		public unowned GLib.TypeClass default_interface_peek ();
+		public GLib.TypeInterface default_interface_ref ();
 		public GLib.TypeClass class_ref ();
 		public uint depth ();
 		[Version (since = "2.34")]
@@ -445,6 +477,11 @@
 		public static uint get_type_registration_serial ();
 		[CCode (array_length_type = "guint")]
 		public GLib.Type[] interfaces ();
+		[CCode (array_length_type = "guint")]
+		public GLib.Type[] children ();
+		[CCode (array_length_type = "guint")]
+		public GLib.Type[] interface_prerequisites ();
+		public GLib.Type next_base (GLib.Type root_type);
 		public bool is_a (GLib.Type is_a_type);
 		[CCode (cname = "G_TYPE_IS_ABSTRACT")]
 		public bool is_abstract ();
@@ -668,7 +705,7 @@
 	[CCode (has_target = false)]
 	public delegate void ClosureNotify (void* data, GLib.Closure closure);
 	[CCode (has_target = false)]
-	public delegate void ObjectGetPropertyFunc (GLib.Object object, uint property_id, GLib.Value value, GLib.ParamSpec pspec);
+	public delegate void ObjectGetPropertyFunc (GLib.Object object, uint property_id, ref GLib.Value value, GLib.ParamSpec pspec);
 	[CCode (has_target = false)]
 	public delegate void ObjectSetPropertyFunc (GLib.Object object, uint property_id, GLib.Value value, GLib.ParamSpec pspec);
 	public delegate bool SignalEmissionHook (GLib.SignalInvocationHint ihint, [CCode (array_length_pos = 1.9)] GLib.Value[] param_values);
@@ -679,3 +716,4 @@
 	[CCode (instance_pos = 0)]
 	public delegate void WeakNotify (GLib.Object object);
 }
+
