The problem of subpixel heterogeneity in cover types has been addressed in terrestrial environments by the application of linear spectral unmixing techniques. However, in aquatic systems the interceding depth of water causes the apparent reflectance of the substrate to diverge from a linear model, and if depth is unknown these methods cannot be applied. A new technique is presented in which the conventional spectral unmixing method has been modified to calculate depth at each pixel in addition to the proportions of substrate type. The technique requires knowledge of the reflectance spectra of m pure substrata in n (n > m) spectral bands at depth 0 and the water diffuse attenuation coefficients for the site in the same bands. Depth, z, can be entirely unknown. The method is comparable to "classical" spectral unmixing and proceeds by performing a Gaussian elimination for endmember quantities and then solving the remaining nonlinear function of z for f(z) = 0 by successive approximation. Computer-based models are used to test the technique with realistic water diffuse attenuation coefficients and random spectra and actual spectra of coral reef substrata. The robustness of the technique is assessed against three forms of introduced error: measurement errors on the spectra to be unmixed, differences between the true endmember spectra and those used in the analysis, and measurement error on the water diffuse attenuation coefficients. The results of these tests imply the technique is sufficiently robust for use on real data. Furthermore, spectral unmixing of aquatic systems appears to be relatively insensitive to inaccuracies in depth estimation and offers great utility for benthic mapping