With more and more open systems connected to the Internet security is perhaps the most important attribute of modern software systems. A large problem when creating secure systems is developers misunderstanding or incorrectly assuming how objects behave. In this paper I describe how such incorrect assumption can result in large problems in software systems, under which conditions these problems typically appear and a method that can be used to reduce the number of software defects caused by incorrect assumption.