In this paper, we present a heuristic approach for finding errors and possible improvements in business process models. First, we translate the information that is included in a model into a set of Prolog facts. We then search for patterns which are related to a violation of the soundness property, bad modeling style or otherwise give raise to the assumption that the model should be improved. By testing our approach on a large repository of real-world models, we found that the heuristic approach identifies violations of the soundness property almost as accurate as model-checkers that explore the state space of all possible executions of the model. Other than these tools, our approach never ran into state-space explosion problems. Furthermore, our pattern system can also detect patterns for bad modeling style which can help to improve the quality of the models.