In recent years, light detection and ranging (lidar) systems have been intensively used in different urban applications such as map updating, communication analysis, virtual city modelling, risk assessment, and monitoring. A prerequisite to enhance lidar data content is to differentiate ground (bare earth) points that yield digital terrain models and off-terrain points in order to classify urban objects and vegetation. The increasing demand for a fast and efficient algorithm to extract three-dimensional urban features was the motive behind this work. A new combined approach to extract bare-earth points is proposed, and a novel methodology to automatically classify airborne laser data into different objects in an urban area is presented. In addition, a new concept of angular classification is introduced to differentiate buildings from vegetation and other small objects. The new angular classifier analyses the distribution of bare-earth points around unclassified point clusters to determine whether a cluster can be classified either as building or as vegetation. The experimental results confirm the high accuracy achieved to automatically classify urban objects in flat complex areas.