Index: /trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
===================================================================
--- /trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs	(revision 2142)
+++ /trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs	(revision 2143)
@@ -279,15 +279,21 @@
 				}
 
-				fsManager.EraseFileSystemObject(info, method,
-					delegate(long lastWritten, long totalData, int currentPass)
-					{
-						if (Task.Canceled)
-							throw new OperationCanceledException(S._("The task was cancelled."));
-
-						progress.Total = totalData;
-						progress.Completed += lastWritten;
-						OnProgressChanged(this, new ProgressChangedEventArgs(progress,
-							new TaskProgressChangedEventArgs(info.FullName, currentPass, method.Passes)));
-					});
+				//Do not erase reparse points, as they will cause other references to the file
+				//to be to garbage.
+				if ((info.Attributes & FileAttributes.ReparsePoint) == 0)
+					fsManager.EraseFileSystemObject(info, method,
+						delegate(long lastWritten, long totalData, int currentPass)
+						{
+							if (Task.Canceled)
+								throw new OperationCanceledException(S._("The task was cancelled."));
+
+							progress.Total = totalData;
+							progress.Completed += lastWritten;
+							OnProgressChanged(this, new ProgressChangedEventArgs(progress,
+								new TaskProgressChangedEventArgs(info.FullName, currentPass, method.Passes)));
+						});
+				else
+					Logger.Log(S._("The file {0} is a reparse point and the contents of the file " +
+						"was left intact, but the file reference was erased.", LogLevel.Notice));
 
 				//Remove the file.
Index: /trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
===================================================================
--- /trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs	(revision 2142)
+++ /trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs	(revision 2143)
@@ -109,8 +109,4 @@
 			foreach (FileInfo file in files)
 			{
-				//Check that the file exists and is not a reparse point.
-				if (!file.Exists || (file.Attributes & FileAttributes.ReparsePoint) != 0)
-					continue;
-
 				//Check that the file is included
 				if (includePattern != null && !includePattern.Match(file.FullName).Success)
