We rely on the same basic idea, but improve it (i) by adding a fingerprint pre-screening step to the substructure searching to quickly remove impossible candidates, and (ii) by providing heuristics that allow us to eliminate a large number of building block combinations. These heuristics perform exceptionally well in real-world scenarios, and searches in the Enamine REAL space (containing around 300 separate combinatorial libraries with over 1 million non-unique synthons) usually take a couple of seconds on a single thread.