x-Ray fluorescence (XRF) analysis and neutron activation analysis (NAA) are the two main methods for non-invasive in vivo determination of heavy metal concentrations in man. This paper describes various XRF-techniques developed for the measurements of cadmium, mercury and lead, primarily in occupationally exposed persons. Measurements have revealed cadmium concentrations close to 400 micrograms/g in the kidneys of exposed workers. Today, the technique can also be used for measuring kidney cadmium levels in the general population. Significantly different cadmium concentrations between groups of smokers and non-smokers have been observed. For workers with current lead exposure, there is no correlation between lead in finger bone and lead in blood. However, for retired lead workers, there is a relation between these levels, due to the endogenous excretion of lead from the skeleton. From a longitudinal study of retired lead workers, the biological half-time for bone lead was estimated to about 16 yr. Recently, the XRF-technique was shown to be capable of measuring mercury in vivo. On a group of chloralkali workers, we found kidney mercury concentrations ranging from non-detectable to over 50 micrograms/g.