Choosing the right buffer size in Wi-Fi networks is challenging due to the dynamic nature of the wireless environment. Over buffering or 'bufferbloat' may produce unacceptable end-to-end delays, while static small buffers may limit the performance gains that can be achieved with various 802.11n enhancements, such as frame aggregation. We propose WQM, a queue management scheme customized for wireless networks. WQM adapts the buffer size based on measured link characteristics and network load. Furthermore, it accounts for aggregate length when deciding about the optimal buffer size. We implement WQM on Linux and evaluate it on a wireless testbed. WQM reduces the end-to-end delay by up to 8x compared to Linux default buffer size, and 2x compared to CoDel, the state-of-the-art bufferbloat solution, while achieving comparable network goodput. Further, WQM improves fairness as it limits the ability of a single flow to saturate the buffer.