We present a method to compute the BDD for an arbitrary Boolean expression, where the operands are themselves BDDs. Such expressions are usuaLly computed by the successive application of binary operators. However, Cases exist where this method performs wasteful intermediate computations and creates BDD nodes not used in the final result. In contrast, our method never creates a BDD node unless it is present in the final result. We tested the new method on the application of building BDDs for the nodes in a multi-level logic network. Although the new method uses fewer BDD nodes, its runtime is much worse. By analyzing the reasons for this, we further our understanding of BDD operations.