Hello again, I tested in a quickstart and it works. (I just noticed you did not called super.onInitialize())
The code I used: class MyPOJO { public Boolean isSelected() { return true; } } public class HomePage extends WebPage { private static final long serialVersionUID = 1L; public MyPOJO getMyPOJO() { return new MyPOJO(); } public void onInitialize() { super.onInitialize(); this.add(new MyPanel("myPanel", this.getMyPOJO())); } } class MyPanel extends Panel { private static final long serialVersionUID = 1L; public MyPanel(String id, MyPOJO pojo) { super(id); MyDetachableModel mdl = new MyDetachableModel(this); this.add(new CheckBox("myCheckbox", new PropertyModel<Boolean>(mdl, "selected"))); } } class MyDetachableModel extends LoadableDetachableModel<MyPOJO> { private static final long serialVersionUID = 1L; private MyPanel myPanel; public MyDetachableModel(MyPanel panel) { this.myPanel = panel; } protected MyPOJO load() { HomePage page = (HomePage) myPanel.getPage(); MyPOJO pojo = page.getMyPOJO(); System.out.println(pojo.isSelected()); return pojo; } }