An upper-limb stroke rehabilitation system is developed that assists patients in performing real world functionally relevant reaching tasks. The system provides de-weighting of the arm via a simple spring support whilst functional electrical stimulation is applied to the anterior deltoid and triceps via surface electrodes, and to the wrist and hand extensors via a 40 element surface electrode array. Iterative learning control (ILC) is used to mediate the electrical stimulation, and updates the stimulation signal applied to each muscle group based on the error between the ideal and actual movement in the previous attempt. The control system applies the minimum amount of stimulation required, maximising voluntary effort. Low-cost, markerless motion tracking is provided via a Microsoft Kinect, with hand and wrist data provided by an electrogoniometer or data glove. The system is described and initial experimental results are presented for a stroke patient starting treatment.