In this paper we present a checkpointing and failure recovery algorithm suited to mobile computing systems. A survey of mobile systems and the algorithms that are presently available is made to gather the essential knowledge about how these systems work. This includes study and analysis of existing checkpointing & recovery algorithms to identify their relative advantages & disadvantages. The existing algorithms suffers from problems like overhead involved in taking checkpoints and time to recover from a failure in an attempt to make a trade-off between efficiency and reliability. Hence we have attempted to develop an algorithm to solve these problems as far as possible. Our proposed algorithm has three subparts - a checkpointing scheme, a failure recovery scheme and authentication scheme for a mobile host.