diff --git a/source/core/defparser.cpp b/source/core/defparser.cpp
index 69c6972ba..da0cb5840 100644
--- a/source/core/defparser.cpp
+++ b/source/core/defparser.cpp
@@ -2055,7 +2055,12 @@ static bool parseDefineQAVInterpolateIgnoreBlock(FScanner& sc, const int& res_id
 		{
 			// Input is a range of values, split on the hypthen and add each value to the output array.
 			auto temparray = input.Split("-");
-			for (auto& value : temparray) output.Push(atoi(value));
+			if (temparray.Size() == 2)
+			{
+				// Test if keywords 'first' and 'last' have been used.'
+				output.Push(temparray[0].CompareNoCase("first") == 0 ? 0 : atoi(temparray[0]));
+				output.Push(temparray[1].CompareNoCase("last") == 0 ? maxvalue : atoi(temparray[1]));
+			}
 		}
 		else
 		{
diff --git a/wadsrc/static/filter/blood/engine/engine.def b/wadsrc/static/filter/blood/engine/engine.def
index baae2acde..3078a4d0c 100644
--- a/wadsrc/static/filter/blood/engine/engine.def
+++ b/wadsrc/static/filter/blood/engine/engine.def
@@ -109,7 +109,7 @@ defineqav 10005 {
 	interpolate {
 		type "index"
 		ignore {
-			frames 3-6 tiles 1
+			frames 3-last tiles 1
 		}
 	}
 }
@@ -154,7 +154,7 @@ defineqav 10012 {
 	interpolate {
 		type "index"
 		ignore {
-			frames 14-99 tiles 2-3
+			frames 14-last tiles 2-3
 		}
 	}
 }
@@ -211,7 +211,7 @@ defineqav 10021 {
 	interpolate {
 		type "index"
 		ignore {
-			frames 6-65 tiles all
+			frames 6-last tiles all
 		}
 	}
 }