I think I have found a problem. I am using the isModified method to signify when a bean needs to have ejbstore called. However, I had a situation where after isModified was set to true I called a get method from my bean which caused jboss to call ejbload before it had delt with the isModified. I first thought that jboss just wasn't calling isModified in time before the get method call. But in fact it did call isModified before the get method was handled. It appears to be delaying the ejbstore call until after all transactions are complete. To fix this I simply put a check in ejbload to call ejbstore if my dirty flag was set. The bean persistance that I am using is option D with a 30 minute refresh interval.