In this paper we describe a noise reduction preprocessing algorithm for the adaptive multirate (AMR) speech codec of the GSM system. The algorithm is based on spectral weighting and explicitly takes into account the properties of the human auditory system. The weighting rule results in the smallest possible speech distortion under the constraint that the background noise should exhibit no audible distortions. The algorithm was implemented in 16 Bit fixed-point arithmetic and submitted to the ETSI AMR noise reduction standardization contest. Compared to other algorithms, our noise reduction method gave very good results in CCR tests and good results in ACR tests.