The Dynamic Source Routing (DSR) algorithm computes a new route when packet loss occurs. DSR does not have an in-built mechanism to determine whether the packet loss was the result of congestion or node failure causing DSR to compute a new route. This leads to inefficient energy utilization when DSR is used in wireless sensor networks. In this work, we exploit cross-layer optimization techniques that extend DSR to improve its routing energy efficiency by minimizing the frequency of recomputed routes. Our proposed approach enables DSR to initiate a route discovery only when link failure occurs. We conducted extensive simulations to evaluate the performance of our proposed cross-layer DSR routing protocol. The simulation results obtained with our extended DSR routing protocol show that the frequency with which new routes are recomputed is 50% lower compared with the traditional DSR protocol. This improvement is attributed to the fact that, with our proposed cross-layer DSR, we distinguish between congestion and link failure conditions, and new routes are recalculated only for the latter.