This paper addresses the vehicle routing problem with time windows and stochastic demands (VRPTWSD). The problem is modeled as a two-stage stochastic program with recourse, in which routes are designed in the first stage and executed in the second. In this configuration, a failure can occur if the load of the vehicle is insufficient to meet the observed demand of a customer. Such failures imply recourse actions to recover the feasibility of the routes. We consider the classical recourse policy where reactive trips to the depot are made in case of failures and a fixed rule-based recourse policy where, in addition, preventive trips are allowed. These recourse actions delay the vehicle and can cause further failures related to violating time windows on the remaining vertices of the route. An additional recourse action, consisting of a direct round trip from the depot, is used to service the vertices that have a time window failure. We propose an Integer L-shaped algorithm to solve the problem considering the mentioned recourse actions. To the best of our knowledge, this is the first tailored exact approach for the VRPTWSD. Computational experiments using benchmark instances from the literature evaluate the computational performance of this algorithm as well as the quality of the stochastic problem solutions. The results show that significant savings can be achieved by using the fixed rule-based policy and round-trip recourse actions in comparison to the classical policy.