if you make it __PACKAGE__->columns (Essential => instead of __PACKAGE__->columns (Others => does it work (since it should load the Essential columns by default)? If so, is that an acceptable work around (i.e. do you really need to take advantage of lazy population in this case)? Obviously that's not an answer to the root question, but might provide extra information at least..