The IEEE 802.11 wireless LAN standard power-saving mode (PSM) allows the network interface card (NIC) to periodically sleep between receiving data. In this paper, we show that 802.11 PSM performs poorly due to the fact that an access point is unable to adapt to the requirements of each client. Therefore, we propose a novel power saving algorithm, named Dynamic Beacon Period, where the access point uses different beacon periods for different clients. During HTTP downloads, each client carefully chooses a good beacon period for itself, based on the RTT of its current connections, and informs the access point of this beacon period. This technique enables download times for Web pages that are comparable to those without any powersaving and provides energy savings comparable to the standard 802.11 PSM. We show, using real-world measurements and emulation-based experiments, that it is feasible for both clients and access points to efficiently support such per-client beacon periods, instead of having a common, static beacon for all clients. The solution is simple enough that it can be implemented with just small enhancements to the existing 802.11 specification.