diff --git a/SabreTools.Filtering/Remover.cs b/SabreTools.Filtering/Remover.cs
index f38ebdeb..d08c6f3d 100644
--- a/SabreTools.Filtering/Remover.cs
+++ b/SabreTools.Filtering/Remover.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Linq;
using System.Threading.Tasks;
using SabreTools.Core;
@@ -56,8 +57,6 @@ namespace SabreTools.Filtering
/// List of field names
public void PopulateExclusionsFromList(List fields)
{
- InternalStopwatch watch = new InternalStopwatch("Populating removals from list");
-
// Instantiate the removers, if necessary
DatHeaderRemover ??= new DatHeaderRemover();
DatItemRemover ??= new DatItemRemover();
@@ -66,6 +65,8 @@ namespace SabreTools.Filtering
if (fields == null || fields.Count == 0)
return;
+ InternalStopwatch watch = new InternalStopwatch("Populating removals from list");
+
foreach (string field in fields)
{
// If we don't even have a possible field name
@@ -104,11 +105,11 @@ namespace SabreTools.Filtering
InternalStopwatch watch = new InternalStopwatch("Applying removals to DAT");
// Remove DatHeader fields
- if (DatHeaderRemover != null)
+ if (DatHeaderRemover != null && DatHeaderRemover.DatHeaderFields.Any())
DatHeaderRemover.RemoveFields(datFile.Header);
// Remove DatItem and Machine fields
- if (DatItemRemover != null)
+ if (DatItemRemover != null && (DatItemRemover.MachineFields.Any() || DatItemRemover.DatItemFields.Any()))
{
Parallel.ForEach(datFile.Items.Keys, Globals.ParallelOptions, key =>
{