The virtual docking and scoring of a large number of molecules in a protein active site has proven to be a useful method for selecting molecules for screening. It has the potential to be less biased than pharmacophore-based methods, since the only assumption one must make is the region of the protein surface to target. In this chapter, we will briefly outline the steps in a generic docking procedure, and compare and contrast how the more commonly used methods approach each of these steps. Several groups have recently compared a variety of popular docking methods using different test systems. These studies are remarkable for the similarity of their conclusions and as a group give a good picture of the state of the art. We will then focus in on two aspects of the docking problem that are receiving increased attention and have potential to significantly improve docking results: ligand preparation and protein flexibility. Ligand preparation is a fundamental aspect of virtual screening that has not been systematically investigated. Issues with ligand preparation include ionization states, tautomerization, and stereochemistry. If these are not treated accurately, one can miss a promising lead or overwhelm the docking with molecules that are unlikely to be present under physiologic conditions. Both false positives and false negatives can result. Proteins are not rigid entities. It is clear that docking to a rigid model of a protein, even if it is an experimentally determined model, does not capture the dynamic behavior of the protein in solution. Current approaches such as docking to different models of the same protein or allowing limited side chain flexibility are steps toward more realistic modeling of the protein target.