Threads have been present in programming languages for some time now. However, they have a bad image among software developers because they lead to unreliable applications. Most of the problems are produced by unexpected critical sections, which are very difficult to find. Little research has been done recently to increase the safety of thread programming.In this paper we present a new model of concurrent threads for object oriented languages. We have called them safe-threads. We claim safe-threads are a major improvement over traditional threads because first, safe-threads are safe from critical section problems, and second, they are location transparent on a distributed system.The main characteristics of our model are that static variables are not shared among safe-threads and that the objects must provide an explicit interface to be shared.We also outline how the model could be implemented in Java.