private void wipeChunks() {
		File regionFile = worldData.regionFile(currentRegion);
		if (!regionFile.canWrite()) {
			regionFile.setWritable(true);
			if (!regionFile.canWrite()) {
				sendMessage("Error! region file is locked and can't be trimmed: "
						+ regionFile.getName());
				return;
			}
		}

		// since our stored chunk positions are based on world, we need to
		// offset those to positions in the region file
		int offsetX = CoordXZ.regionToChunk(regionX);
		int offsetZ = CoordXZ.regionToChunk(regionZ);
		long wipePos = 0;

		try {
			RandomAccessFile unChunk = new RandomAccessFile(regionFile, "rwd");
			for (CoordXZ wipe : trimChunks) { // wipe this extraneous chunk's
												// pointer... note that this
												// method isn't perfect since
												// the actual chunk data is left
												// orphaned,
												// but Minecraft will overwrite
												// the orphaned data sector
												// if/when another chunk is
												// created in the region, so
												// it's not so bad
				wipePos = 4 * ((wipe.x - offsetX) + ((wipe.z - offsetZ) * 32));
				unChunk.seek(wipePos);
				unChunk.writeInt(0);
			}
			unChunk.close();

			// if DynMap is installed, re-render the trimmed chunks ... disabled
			// since it's not currently working, oh well
			// DynMapFeatures.renderChunks(world.getName(), trimChunks);

			reportTrimmedChunks += trimChunks.size();
		} catch (FileNotFoundException ex) {
			sendMessage("Error! Could not open region file to wipe individual chunks: "
					+ regionFile.getName());
		} catch (IOException ex) {
			sendMessage("Error! Could not modify region file to wipe individual chunks: "
					+ regionFile.getName());
		}
		counter += trimChunks.size();
	}