Volumetric data, such as output from CT scans or laser range scan processing methods, often have isosurfaces that contain topological noise--small handles and holes that are not present in the original model. Because this noise can significantly degrade the performance of other geometric processing algorithms, we present a volumetric method that removes the topological noise and patches holes in undefined regions for a given isovalue. We start with a surface completely inside the isosurface of interest and a surface completely outside the isosurface. These surfaces are expanded and contracted, respectively, on a voxel-by-voxel basis. Changes in topology of the surfaces are prevented at every step using a local topology test. The result is a pair of surfaces that accurately reflect the geometry of the model but have simple topology. We represent the volume in an octree format for improved performance in space and time.