The vertical extent of waveforms collected by the Geoscience Laser Altimeter System (onboard ICESat - the Ice, Cloud, and land Elevation Satellite) increases as a function of terrain slope and footprint size (the area on the ground that is illuminated by the laser). Over sloped terrain, returns from both canopy and ground surfaces can occur at the same elevation. As a result, the height of the waveform (waveform extent) is insufficient to make estimates of tree height on sloped terrain, and algorithms are needed that are capable of retrieving information about terrain slope from the waveform itself. Early work on this problem used a combination of waveform height indices and slope indices from a digital elevation model (DEM). A second generation algorithm was developed using datasets from diverse forests in which forest canopy height has been estimated in the field or by via airborne lidar. Forest types considered in this paper include evergreen needleleaf, deciduous broadleaf and mixed stands in temperate North America, and tropical evergreen broadleaf forests in Brazil. The algorithm described eliminates the need for a DEM, and estimates forest canopy height with an RMSE of 5 m (83% of variance in forest canopy height explained).