A Monte Carlo procedure, encoded in the program Blob, has been developed and tested for the purpose of positioning large molecular fragments or small flexible molecules in electron density maps. The search performed by the algorithm appears to be sufficiently thorough to accurately position a small flexible ligand in well-defined density while remaining sufficiently random to offer interesting alternate suggestions for density representing disordered binding modes of a ligand. Furthermore, the algorithm is shown to be efficient enough to accurately position large rigid molecular fragments. In the first of the test cases with large molecular fragments, Blob was surprisingly effective in positioning a poly-alanine model of a 53-residue domain in poor electron density resulting from molecular replacement with a partial model. At 3.0 A resolution the domain was positioned consistently within 0.2 A of its experimentally determined position. Even at 6.0 A resolution Blob could consistently position the domain to within 0.75 A of its actual position. A second set of tests with large molecular fragments revealed that Blob could correctly position large molecular fragments with quite significant deviations from the actual structure. In this test case, fragments ranging from a 170-residue protein domain with a 3.8 A rms deviation from the actual structure to a 22-base pair ideal B-form DNA duplex were positioned accurately in a 3.2 A electron density map derived from multiple isomorphous replacement methods. Even when decreasing the quality of the maps, from a figure of merit of 0.57 to as low as 0. 35, Blob could still effectively position the large protein domain and the DNA duplex. Since it is efficient, can handle large molecular fragments, and works in poor and low resolution maps, Blob could be a useful tool for interpreting electron density maps in de novo structure determinations and in molecular replacement studies. Proteins 1999;36:512-525.