This paper presents a new technique for rendering caustics on non-Lambertian surfaces. The method is based on an extension of the photon map which removes previous restrictions limiting the usage to Lambertian surfaces. We add information about the incoming direction to the photons and this allows us to combine the photon map with arbitrary reectance functions. Furthermore we introduce balancing of the photon map which not only reduces the memory requirements but also signi cantly reduces the rendering time. We have used the method to render caustics on surfaces with re ectance functions varying from Lambertian to glossy specular.