An adjoint Monte Carlo technique is described for the solution of neutron transport problems. The optimum biasing function for a zero-variance collision estimator is derived. A simple approximation to this optimum biasing function has been chosen to arrive at a problem-independent sampling scheme. The transport kernel for the adjoint particles is almost the same as for neutrons. The sampling of the collision kernel needs the introduction of so-called adjoint cross sections. The optimum treatment of an analogon of a one-velocity thermal group has also been derived. The method is extended to multiplying systems, especially for eigenfunction problems to enable the estimate of averages over the unknown fundamental neutron flux distribution. A versatile computer code, FOCUS, has been written, based on the described theory. Numerical examples are given for a shielding problem and a critical assembly, illustrating the performance of the FOCUS code.