 		coordsVectorIndex = 0;
 		keysVector = new Vector.<IQualifiedKey>();
 		geomVector = new Vector.<GeneralizedGeometry>();
-		coordsVector = new Vector.<Array>();
+		coordsVector.length = 0;
 		sourceProj = projectionManager.getProjection(sourceProjSRS);
 		destinationProj = projectionManager.getProjection(destinationProjSRS);
 		
+		WeaveAPI.ProgressIndicator.addTask(this);
+		WeaveAPI.ProgressIndicator.addTask(coordsVector);
 		processGeometries(taskID);
 	}
 	

		for (; coordsVectorIndex < coordsVector.length; coordsVectorIndex++)
		{
			// continue later if necessary
			if (StageUtils.shouldCallLater)
			{
				StageUtils.callLater(unprojectedColumn, processGeometries, arguments);
				return;
			}
			newGeometry = geomVector[coordsVectorIndex];
			newGeometry.setCoordinates(coordsVector[coordsVectorIndex], BLGTreeUtils.METHOD_SAMPLE);
		}
								
		// after all geometries have been reprojected, update the reprojected column
		var reprojectedColumn:GeometryColumn = proxyColumn.internalColumn as GeometryColumn;
		reprojectedColumn.setGeometries(keysVector, geomVector);
	}
}


	private var coordsVectorIndex:int; // the index of the Array in coordsVector that should be passed to GeneralizedGeometry.setCoordinates()
	private var keysVector:Vector.<IQualifiedKey>; // vector to pass to GeometryColumn.setGeometries()
	private var geomVector:Vector.<GeneralizedGeometry>; // vector to pass to GeometryColumn.setGeometries()
	private const coordsVector:Vector.<Array> = new Vector.<Array>(); // each Array will be passed to setCoordinates() on the corresponding GeneralizedGeometry 
	private var sourceProj:ProjProjection; // parameter for Proj4as.transform()
	private var destinationProj:ProjProjection; // parameter for Proj4as.transform()

