diff --git a/Filters/Extraction/vtkExtractGeometry.cxx b/Filters/Extraction/vtkExtractGeometry.cxx
index 7dd78c203255838cd5d57e7d9c2b2532cbc0d686..92d2d9dd836b0be5c8c28ba196502f5d46873a8c 100644
--- a/Filters/Extraction/vtkExtractGeometry.cxx
+++ b/Filters/Extraction/vtkExtractGeometry.cxx
@@ -87,8 +87,9 @@ int vtkExtractGeometry::RequestData(
   // May be nullptr, check before dereferencing.
   vtkUnstructuredGrid* gridInput = vtkUnstructuredGrid::SafeDownCast(input);
 
-  if (vtk3DLinearGridCrinkleExtractor::CanFullyProcessDataObject(input) &&
-    this->GetExtractBoundaryCells())
+  if (!this->GetExtractInside() && this->GetExtractOnlyBoundaryCells() &&
+    this->GetExtractBoundaryCells() &&
+    vtk3DLinearGridCrinkleExtractor::CanFullyProcessDataObject(input))
   {
     vtkNew<vtk3DLinearGridCrinkleExtractor> linear3DExtractor;
     linear3DExtractor->SetImplicitFunction(this->GetImplicitFunction());