In this paper we study the problem of jointly performing scheduling and congestion control in mobile adhoc networks so that network queues remain bounded and the resulting flow rates satisfy an associated network utility maximization problem. In recent years a number of papers have presented theoretical solutions to this problem that are based on combining differential-backlog scheduling algorithms with utility-based congestion control. However, this work typically does not address a number of issues such as how signaling should be performed and how the new algorithms interact with other wireless protocols. In this paper we address such issues. In particular: We define a specific network utility maximization problem that we believe is appropriate for mobile adhoc networks. We describe a wireless Greedy Primal Dual (wGPD) algorithm for combined congestion control and scheduling that aims to solve this problem. We show how the wGPD algorithm and its associated signaling can be implemented in practice with minimal disruption to existing wireless protocols. We show via OPNET simulation that wGPD significantly outperforms standard protocols such as 802.11 operating in conjunction with TCP. This work was supported by the DARPA CBMANET program.