Abstract. This paper aims at making partial order reduction independent of the modeling language. Our starting point is the stubborn set algorithm of Valmari (see also Godefroid's thesis), which relies on necessary enabling sets. We generalize it to a guard-based algorithm, which can be implemented on top of an abstract model checking interface. We extend the generalized algorithm by introducing necessary disabling sets and adding a heuristics to improve state space reduction. The effect of the changes to the algorithm are measured using an implementation in the LTSmin model checking toolset. We compare our results to the Spin model checker, both on the benchmarks from the BEEM database, as well as on a number of Promela models. In many cases, the reduction obtained by our algorithm surpasses the ideal upper bound on the reduction obtained by the ample set method, as established empirically by Geldenhuys, Hansen and Valmari.