Teleseismic SH waves are essential for imaging the rupture processes of large earthquakes. However, for great earthquakes (M8+) such as the 2004 Sumatra earthquake, the 2008 Wenchuan earthquake and the recent Tohoku-Oki earthquake, the source duration is very long (>100 s). Thus the direct SH waves are overlapped with ScS waves for epicentral distances larger than 60°, leaving contaminated S waves for source processes modelling. Therefore artefacts in finite fault models of large earthquake could be produced with such contaminated body waves. We propose an iterative algorithm based on the slowness information of S and ScS waves and stacking technique, to separate S and ScS waves with records from a regional seismic network. Tests on various synthetic data sets show that the algorithm is effective in retrieving teleseismic SH waveforms from complicated wave trains containing both S and ScS. Separation of waveforms for the 2008 Wenchuan earthquake with our algorithm clearly demonstrates the influence of ScS energy, suggesting necessity of recovering S waves.