diff --git a/girepository/girnode.c b/girepository/girnode.c
index 01e83ac..f706b61 100644
--- a/girepository/girnode.c
+++ b/girepository/girnode.c
@@ -1365,7 +1365,7 @@ static void
 g_ir_node_check_unhandled_members (GList         **members,
 				   GIrNodeTypeId   container_type)
 {
-#if 0
+#if 1
   if (*members)
     {
       GList *l;
@@ -1887,6 +1887,9 @@ g_ir_node_build_typelib (GIrNode         *node,
 
 	g_ir_node_build_members (&members, G_IR_NODE_FUNCTION, &blob->n_methods,
 				 node, build, offset, offset2);
+	
+	g_ir_node_build_members (&members, G_IR_NODE_CALLBACK, &blob->n_callbacks,
+				 node, build, offset, offset2);
 
 	g_ir_node_check_unhandled_members (&members, node->type);
 
diff --git a/girepository/gtypelib.c b/girepository/gtypelib.c
index a578c67..b8c27a9 100644
--- a/girepository/gtypelib.c
+++ b/girepository/gtypelib.c
@@ -177,7 +177,7 @@ g_typelib_check_sanity (void)
   CHECK_SIZE (ValueBlob, 12);
   CHECK_SIZE (FieldBlob, 16);
   CHECK_SIZE (RegisteredTypeBlob, 16);
-  CHECK_SIZE (StructBlob, 32);
+  CHECK_SIZE (StructBlob, 36);
   CHECK_SIZE (EnumBlob, 24);
   CHECK_SIZE (PropertyBlob, 16);
   CHECK_SIZE (SignalBlob, 16);
diff --git a/girepository/gtypelib.h b/girepository/gtypelib.h
index f6ad8c9..f42b6e3 100644
--- a/girepository/gtypelib.h
+++ b/girepository/gtypelib.h
@@ -681,6 +681,7 @@ typedef struct {
 
   guint16   n_fields;
   guint16   n_methods;
+  guint16   n_callbacks;
 
   guint32   reserved2;
   guint32   reserved3;
@@ -689,6 +690,7 @@ typedef struct {
   /* variable-length parts of the blob */
   FieldBlob    fields[];   
   FunctionBlob methods[];
+  CallbackBlob callbacks[];
 #endif
 } StructBlob;
 
