Many approaches used for diagnostics today are based on a precise model. This excludes diagnostics of many complex types of machinery that cannot be modelled and simulated easily or without great effort. Our aim is to show that by including human experience it is possible to diagnose complex machinery when there is no or limited models or simulations available. This also enables diagnostics in a dynamic application where conditions change and new cases are often added. In fact every new solved case increases the diagnostic power of the system. We present a number of successful projects where we have used feature extraction together with case-based reasoning to diagnose faults in industrial robots, welding, cutting machinery and we also present our latest project for diagnosing transmissions by combining Case-Based Reasoning (CBR) with statistics. We view the fault diagnosis process as three consecutive steps. In the first step, sensor fault signals from machines and/or input from human operators are collected. Then, the second step consists of extracting relevant fault features. In the final diagnosis/prognosis step, status and faults are identified and classified. We view prognosis as a special case of diagnosis where the prognosis module predicts a stream of future features.