Docking is a computational technique that places a small molecule (ligand) in the binding site of its macromolecular target (receptor) and estimates its binding affinity. This review addresses methodological developments that have occurred in the docking field in 2009, with a particular focus on the more difficult, and sometimes controversial, aspects of this promising computational discipline. These developments aim to address the main challenges of docking: receptor representation (such aspects as structural waters, side chain protonation, and, most of all, flexibility (from side chain rotation to domain movement)), ligand representation (protonation, tautomerism and stereoisomerism, and the effect of input conformation), as well as accounting for solvation and entropy of binding. This review is strongly focused on docking advances in the context of drug design, specifically in virtual screening and fragment-based drug design.