diff --git a/src/Controller/EntityResource.php b/src/Controller/EntityResource.php
index 2e51dc2..6e57027 100644
--- a/src/Controller/EntityResource.php
+++ b/src/Controller/EntityResource.php
@@ -1072,7 +1072,7 @@ class EntityResource {
     if ($request->query->has('filter')) {
       $serializer = \Drupal::service('jsonapi.serializer_do_not_use_removal_imminent');
       $context = ['entity_type_id' => $resource_type->getEntityTypeId(), 'bundle' => $resource_type->getBundle()];
-      $params[Filter::KEY_NAME] = $serializer->denormalize($request->query->get('filter'), Filter::class, NULL, $context);
+      //$params[Filter::KEY_NAME] = $serializer->denormalize($request->query->get('filter'), Filter::class, NULL, $context);
     }
     return $params;
   }
diff --git a/src/Routing/JsonApiParamEnhancer.php b/src/Routing/JsonApiParamEnhancer.php
index d016198..29e76a5 100644
--- a/src/Routing/JsonApiParamEnhancer.php
+++ b/src/Routing/JsonApiParamEnhancer.php
@@ -4,6 +4,7 @@ namespace Drupal\jsonapi\Routing;
 
 use Drupal\Core\Routing\EnhancerInterface;
 use Drupal\jsonapi\Exception\UnprocessableHttpEntityException;
+use Drupal\jsonapi\Query\Filter;
 use Drupal\jsonapi\Query\OffsetPage;
 use Drupal\jsonapi\Query\Sort;
 use Drupal\jsonapi\ResourceType\ResourceType;
@@ -64,6 +65,11 @@ class JsonApiParamEnhancer implements EnhancerInterface, ContainerAwareInterface
       $options['sort'] = $this->serializer()->denormalize($sort, Sort::class, NULL, $context);
     }
 
+    if ($request->query->has('filter')) {
+      $filter = $request->query->get('filter');
+      $options['filter'] = $this->serializer()->denormalize($filter, Filter::class, NULL, $context);
+    }
+
     $options['page'] = $request->query->has('page')
       ? $this->serializer()->denormalize($request->query->get('page'), OffsetPage::class)
       : new OffsetPage(OffsetPage::DEFAULT_OFFSET, OffsetPage::SIZE_MAX);
