Index: /trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs
===================================================================
--- /trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs	(revision 1755)
+++ /trunk/eraser6/Eraser.DefaultPlugins/ErasureMethods/FirstLast16KB.cs	(revision 1756)
@@ -85,11 +85,11 @@
 			if (paths == null)
 			{
-				if (targetSize <= dataSize)
+				if (targetSize <= DataSize)
 					amountToWrite = targetSize;
 				else
-					amountToWrite = dataSize * 2;
+					amountToWrite = DataSize * 2;
 			}
 			else
-				amountToWrite = paths.Count * dataSize * 2;
+				amountToWrite = paths.Count * DataSize * 2;
 
 			//The final amount has to be multiplied by the number of passes.
@@ -115,5 +115,5 @@
 			//If the target stream is shorter than or equal to 32kb, just forward it to
 			//the default function.
-			if (strm.Length < dataSize * 2)
+			if (strm.Length < DataSize * 2)
 			{
 				method.Erase(strm, erasureLength, prng, callback);
@@ -123,8 +123,9 @@
 			//We need to intercept the callback function as we run the erasure method
 			//twice on two parts of the file.
+			long dataSize = method.CalculateEraseDataSize(null, DataSize * 2);
 			ErasureMethodProgressFunction customCallback =
 				delegate(long lastWritten, long totalData, int currentPass)
 				{
-					callback(lastWritten, dataSize * 2, currentPass);
+					callback(lastWritten, dataSize, currentPass);
 				};
 
@@ -141,5 +142,5 @@
 		/// The amount of data to be erased from the header and the end of the file.
 		/// </summary>
-		private const long dataSize = 16 * 1024;
+		private const long DataSize = 16 * 1024;
 
 		private ErasureMethod method;
