If I write class which derives frm another and add this to the class_init method static void qtestderived_class_init(gpointer g_class, gpointer g_class_data){ QTestDerivedClass *selfClass = QTESTDERIVED_CLASS(g_class); superClass = g_type_class_peek_parent(selfClass); g_type_class_add_private(selfClass, sizeof(struct QTestDerivedData)); /* assign virtual methods */ selfClass->get_someIntVal = &qtestderived_getIntValImpl; selfClass->set_someIntVal = &qtestderived_setIntValImpl; } I can later access superClass to call the parents method e.g like this: static int qtestderived_getIntValImpl(QTestDerived *self) { int result = superClass->get_someIntVal(QTEST(self)); return result; } However if I put all the handling for getting a superClass pointer in this method like this: static int qtestderived_getIntValImpl(QTestDerived *self) { QTestDerivedClass *selfClass = QTESTDERIVED_CLASS(self); QTestClass *sClass = g_type_class_peek_parent(selfClass); int result = sClass->get_someIntVal(QTEST(self)); return result; } Then the following happens, the stuff runs fine up to theline QTESTDERVIVED_CLASS, but while calling g_type_clas... I got back a NULL pointer. I simple do not understand why that happens. The example in the docs looks like this: The function g_type_class_peek_parent is used to access the original parent class structure. Its input is a pointer to the class of the derived object and it returns a pointer to the original parent class structure. The code below shows how you could use it: static void b_method_to_call (B *obj, int a) { BClass *klass; AClass *parent_class; klass = B_GET_CLASS (obj); parent_class = g_type_class_peek_parent (klass); /* do stuff before chain up */ parent_class->method_to_call (obj, a); /* do stuff after chain up */ } So it looks very similiar... I've no idea where my thoughts go wrong. Could anyone tell me about this? Thanks in advance Friedrich _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list