Index: lib/propoffsets.c =================================================================== --- lib/propoffsets.c (revision 3697) +++ lib/propoffsets.c (working copy) @@ -39,13 +39,21 @@ Property *prop = g_ptr_array_index(props,i); const PropOffset *ofs; for (ofs = offsets; ofs->name ; ofs++) { - if ((prop->name_quark == ofs->name_quark) && - (prop->type_quark == ofs->type_quark)) { + /* Two props cannot have the same name but different types. */ + if (prop->name_quark == ofs->name_quark) { + if (prop->type_quark != ofs->type_quark) { + g_printerr("Property name: %s\n", prop->name); + g_printerr("Property type: %s\n", prop->type); + g_printerr("Offset type: %s\n", ofs->type); + g_assert(FALSE && + "Property type mismatch when setting from offsets"); + } + /* beware of props not set, see PROP_FLAG_OPTIONAL */ if ((prop->experience & PXP_NOTSET) == 0) prop->ops->set_from_offset(prop,base,ofs->offset,ofs->offset2); break; - } + } } } }