Hello caml-list, I'm encountering a segfault on ocaml 3.09 The test case seems long, but if I remove any line from it it stops segfaulting. The strangest thing is that get_right_sibling_specific is called, though it appears nowhere. If you change it's name, the segfault dissapears. Any help would be appreciated! here's the code: class virtual bottle_environment = object method virtual gladiators : string list method virtual bottles : bottle list end and virtual bottle = object method virtual action : (unit -> bottle_environment option) end type outer_space = { foo : int list } let empty_outer_space = { foo = []; } class virtual expression = object method virtual get_silly_bottle : bottle end class virtual expression_skel = object(self) inherit expression method bambam = empty_outer_space method get_silly_bottle = (object inherit bottle method action () = Some (object method gladiators = print_endline "entering bottles"; ignore (self#bambam.foo); ["enter "] method bottles = [] end) end) end class virtual baggy_expression_skel = object(self) inherit expression_skel method get_bottle_environment = object method gladiators = ([]:string list) method bottles = [self#get_silly_bottle] end end class virtual papa_expression_skel = object(self) method get_right_sibling_specific = print_endline "im being called, though I shouldn't" ; (None:expression option) inherit expression end class papa_baggy_expression = object(self) inherit baggy_expression_skel inherit papa_expression_skel end class top_baggy_expression = object(self) inherit baggy_expression_skel end let _ = let body_expression = new top_baggy_expression in let e = new papa_baggy_expression in ignore ((body_expression#get_bottle_environment)#bottles); let sugg = e#get_silly_bottle in match sugg#action () with | None -> () | Some y -> ignore (y#gladiators)