 				}
 			}
 			
-			// now determine the data bounds we need to covert in lat/lon
+			// calculate min and max tile x and y for the dataBounds
 			_tempDataBounds.copyFrom(dataBounds);
 			_tempAllowedBounds.constrainBounds(_tempDataBounds, false);
-			WeaveAPI.ProjectionManager.transformBounds(tileProjectionSRS.value, "EPSG:4326", _tempDataBounds);
-			
-			// calculate min and max tile x and y for the zoom level
 			dataBoundsToTileXY(_tempDataBounds, zoomScale);
 			
 			// if the tile range is unreasonable, cut it down to a more reasonable range

			inputAndOutput.makeSizePositive();
			if (tileProjectionSRS.value == 'EPSG:3857')
			{
				inputAndOutput.xMin = zoomScale * (inputAndOutput.xMin + 180) / 360.0; 
				inputAndOutput.xMax = zoomScale * (inputAndOutput.xMax + 180) / 360.0; 
				

				_tempCoord.z = higherQualZoomLevel;
		}
		
		private function tileUrlContainsXYZ():Boolean
		{
			return wmsURL.value && wmsURL.value.search(/\{[xyz]\}/) >= 0;
		}
		
		private function getTileUrl(coord:Coordinate, data:IBounds2D, screen:IBounds2D):String
		{
			if (!wmsURL.value)
				return null;
			
			return StandardLib.replace(wmsURL.value, 
