We present a set of programs, DREAM+2 (Docking and Reaction programs using Efficient seArch Methods written in C++), for docking computationally generated ligands into macromolecular binding sites. DREAM++ is composed of three programs: ORIENT++, REACT++ and SEARCH++. The program ORIENT++ positions molecules in a binding site with the DOCK algorithm. Its output can be used as input to REACT++ and SEARCH+2. The program REACT++ performs user-specific chemical reactions on a docked molecule, so that reaction products can be evaluated for three dimensional complementarity with the macromolecular site. The program SEARCH++ performs an efficient conformation search on the reaction products using a hybrid backtrack and incremental construction algorithm. We have applied the programs to HIV protease-inhibitor complexes as test systems. We found that we can differentiate high-affinity ligands based on several measures: interaction energies, occupancy of protein subsites and the number of successfully docked conformations for each product. Encouraged by the results in the test case, we applied the programs to propose novel inhibitors of HIV protease. These inhibitors can be generated by organic reactions using commercially available reagents. They are alternatives to the inhibitors synthesized by Glaxo.