In precision systems that repeatedly execute the same task, iterative learning control (ILC) may be adopted for rejection of iteration-independent repetitive disturbances and improvement of trajectory tracking. However, in practice, non-repetitive dis- turbances also exist and may overlap with the repetitive ones in the frequency domain. Such non-repetitive disturbances greatly limit or even degrade the achievable performance of the stan- dard ILC algorithm. In this paper, we discuss a new ILC strat- egy with a disturbance observer (DOB) and a time-varying Q filter for improved learning. In the proposed learning scheme, repetitive disturbances are selectively learned and attenuated, and non-repetitive disturbances are either largely rejected or retained without undesired amplification. The new strategy also provides us more flexibility in designing the Q filters in ILC and DOB. Algorithm verification is provided by simulation for precision motion control of a wafer scanner system.