We present an algorithm for fast filling of missing regions (holes) in images. Holes may be the result of various causes: manual manipulation e.g. removal of an object from an image, errors in the transmission of an image or video, etc. The hole is filled one pixel at a time by comparing the neighborhood of each pixel to other areas in the image. Similar areas are used as clues for choosing the color of the pixel. The neighborhood and the areas that are compared are square shaped. This symmetric shape allows the hole to be filled in an evenly fashion. However, since square areas inside the hole include some uncolored pixels, we introduce a fast and efficient data structure which allows fast comparison of areas, even with partially missing data. The speed is achieved by using a two phase algorithm: a learning phase which can be done offline and a fast synthesis phase. The data structure uses the fact that colors in an image can be represented by a bounded natural number. The algorithm fills the hole from the boundaries inward, in a spiral form to produce a smooth and coherent result.