 				return unprojectedColumn;
 			
 			// check the cache
-			var srsCache:Object = cache[unprojectedColumn] as Object;
+			var srsCache:Object = _reprojectedColumnCache[unprojectedColumn] as Object;
 			if (srsCache == null)
 			{
 				srsCache = new Object(); // destinationSRS -> ProxyColumn
-				cache[unprojectedColumn] = srsCache;
+				_reprojectedColumnCache[unprojectedColumn] = srsCache;
 			}
 			var proxyColumn:ProxyColumn = srsCache[destinationProjectionSRS] as ProxyColumn;
 

			
			srsCode = srsCode.toUpperCase();
			
			if (srsToProjMap.hasOwnProperty(srsCode))
				return srsToProjMap[srsCode];
			
			if (projectionExists(srsCode))
				return srsToProjMap[srsCode] = new ProjProjection(srsCode);
			
			return null;
		}

		/**
		 * srsToProjMap
		 * This maps an SRS Code to a cached ProjProjection object for that code.
		 */
		private const srsToProjMap:Object = new Object();
		
		/**
		 * _tempProjPoint
		 * This is a temporary object used for single point transformations.
		 */
		private const _tempProjPoint:ProjPoint = new ProjPoint();
		
		/**
		 * _tempInputPoint
		 * This is a temporary object used only in transformBounds.
		 */
		private const _tempPoint:Point = new Point();

			// continue later if necessary
			if (StageUtils.shouldCallLater)
			{
				WeaveAPI.ProgressIndicator.updateTask(coordsVector, coordsVectorIndex / coordsVector.length);
				StageUtils.callLater(unprojectedColumn, processGeometries, arguments);
				return;
			}
