We present extensions to a traditional cellular [Ses95] handoff system to handle the simultaneous operation of multiple wireless network interfaces. This new system allows mobile users to roam in a "Wireless Overlay Network" structure consisting of room-size, building-size, and wide-area data networks. In this structure, the user can connect to the wired network through multiple wireless subnets, and offers the best possible connectivity given the user's geographic location and local wireless connectivity. We present the basic handoff system and show that the handoff latency is bounded by the amount of time that the mobile host takes to discover that it has moved in or out of a new wireless overlay. To efficiently support applications that can not tolerate these disruptions, we present optimizations to this basic scheme that assume no knowledge about specific channel characteristics. For handoffs between room-size and building-size overlays, these optimizations lead to a handoff latency of approximately 170ms with a 1.5% overhead in terms of network resources. For handoffs between building-size and wide-area data networks, the handoff latency is approximately 600ms with a similarly low overhead. For these wide-area data networks, more specialized optimizations that attempt to take advantage of a user's network traffic patterns have little advantage due to the low-bandwidth, high-latency nature of these networks.