There are a number of scenarios where it is desirableto have a wireless device connect to multiple networkssimultaneously. Currently, this is possible only by using multiple wireless network cards in the device. Unfortunately, using multiple wireless cards causes excessive energy drain and consequent reduction of lifetime in battery operated devices. In this paper, we propose a software based approach, called MultiNet, thatfacilitates simultaneous connections to multiple networks by virtualizing a single wireless card. The wireless card is virtualized by introducing an intermediate layer below IP, which continuously switches the card across multiple networks. The goal of theswitching algorithm is to be transparent to the user who sees hermachine as being connected to multiple networks. We present thedesign, implementation, and performance of the MultiNet system.We analyze and evaluate buffering and switching algorithms interms of delay and energy consumption. Our system is agnosticof the upper layer protocols, and works well over popular IEEE802.11 wireless LAN cards.