In this paper we present our experience on detecting and classifying traffic jams in real time from probe data. We classify traffic jams at two levels. At a higher level, we classify traffic jams into recurring and non-recurring jams. Then at a lower level we identify accidents out of non-recurring jams based on features that characterize upstream and downstream traffic patterns. Accidents are highly unpredictable and usually create heavy and long lasting congestion, and therefore are particularly worth detecting. We discuss the challenges of detecting accidents in real time as well as our approaches and results.