Haven't solved this but thought I would update this email with some extra information.
After some help from #moose (thanks rafl) - I've got a gdb traceback which points the finger towards some kind of interaction with List::Util::first Program received signal SIGSEGV, Segmentation fault. 0x00002b1a1bb0e254 in XS_List__Util_first (cv=0x9d16f40) at ListUtil.xs:337 337 PUSH_MULTICALL(cv); (gdb) bt #0 0x00002b1a1bb0e254 in XS_List__Util_first (cv=0x9d16f40) at ListUtil.xs:337 #1 0x0000000000498cc1 in Perl_pp_entersub () at pp_hot.c:2877 #2 0x0000000000477bc2 in Perl_runops_debug () at dump.c:1459 #3 0x000000000041ff74 in S_run_body (oldscope=1) at perl.c:2366 #4 0x000000000041fa86 in perl_run (my_perl=0x9b72010) at perl.c:2283 #5 0x000000000041bc14 in main (argc=4, argv=0x7fff1ee8c728, env=0x7fff1ee8c750) at perlmain.c:99 Strange thing is that I use List::Util all over the place in my code but only get the seg fault when I implement native traits. I also can't seem to get a test case to seg fault without getting Moose involved. I'm using latest version of List::Util and I've tried on a bunch of different perl builds (and machines) at work with the same backtrace. Obviously Moose gets a clean bill of health on cpan as does List::Util so maybe it is a weirdness with the setup here. If anyone else has any suggestions for other possible avenues of exploration then please do let me know. Cheers, Ian