diff --git a/src/Controller/CapsuleController.php b/src/Controller/CapsuleController.php
index cb9eecf490e83eb68ec4947e64c2177561f075e6..19d03946061ce6ed580a73db2609cd2e23577310 100755
--- a/src/Controller/CapsuleController.php
+++ b/src/Controller/CapsuleController.php
@@ -75,10 +75,19 @@ class CapsuleController extends AbstractController
         $all_capsules = $current_user->getCapsules()->toArray();
         $groups = $this->prependGroupAllToUserGroups($current_user);
 
-        $form = $this->createForm(FilterByGroupFormType::class, ['groups' => $groups]);
-        $form->handleRequest($request);
+        $form = $this->createForm(FilterByGroupFormType::class, ['groups' => $groups, 'method' => 'GET']);
+
+        // Retrieve group from GET data and update form data if required
+        $paginatorGroupName = $request->query->get('group', '');
+        $forceForm = false;
+        if ($paginatorGroupName != '') {
+            $form->submit(['name' => $paginatorGroupName]);
+            $forceForm = true;
+        } else {
+            $form->handleRequest($request);
+        }
 
-        if ($form->isSubmitted() && $form->isValid()) {
+        if ($forceForm || $form->isSubmitted() && $form->isValid()) {
             $group = $form->getData()['name'];
 
             if (! $group instanceof Group) {
@@ -88,6 +97,8 @@ class CapsuleController extends AbstractController
             if ($group->getId() !== Group::$GROUP_ALL_ID) {
                 $all_capsules = $group->getCapsules()->toArray();
             }
+        } else {
+            $group = null;
         }
 
         $capsules = $paginator->paginate(
@@ -96,6 +107,11 @@ class CapsuleController extends AbstractController
             5
         );
 
+        // Pass group param to the paginator (it will be sent as GET data)
+        if ($group) {
+            $capsules->setParam('group', $group->getName());
+        }
+
         return $this->renderForm('capsule/index.html.twig', [
             'filterByGroupForm' => $form,
             'capsules' => $capsules,
diff --git a/templates/capsule/index.html.twig b/templates/capsule/index.html.twig
index 3bc0322a7a997bf3f38dd9fa719c11deee34f18d..70edbdd9a903756aa6e7c0360e6c1adcba48dbd8 100644
--- a/templates/capsule/index.html.twig
+++ b/templates/capsule/index.html.twig
@@ -13,17 +13,15 @@
                 {{ 'capsule.title'|trans }}
             </h2>
 
-            {% if app.request.query.get('page')|default(1) == 1 %}
-                {% if current_user.getGroups()|length > 1 %}
-                    {{ form_start(filterByGroupForm, {'attr': {novalidate: 'novalidate', 'class': 'd-flex flex-column flex-nowrap'}}) }}
-                    {{ form_widget(filterByGroupForm._token) }}
-                    <div class="input-group">
-                        {{ form_label(filterByGroupForm.name, 'groups.filter.label', { 'label_attr' : { 'class' : 'input-group-text mb-0'}}) }}
-                        {{ form(filterByGroupForm.name, {'attr': {'class': 'choice-auto-submit' }})  }}
-                    </div>
-                    {{ form_end(filterByGroupForm) }}
-                {%  endif %}
-            {% endif %}
+            {% if current_user.getGroups()|length > 1 %}
+                {{ form_start(filterByGroupForm, {'attr': {novalidate: 'novalidate', 'class': 'd-flex flex-column flex-nowrap'}}) }}
+                {{ form_widget(filterByGroupForm._token) }}
+                <div class="input-group">
+                    {{ form_label(filterByGroupForm.name, 'groups.filter.label', { 'label_attr' : { 'class' : 'input-group-text mb-0'}}) }}
+                    {{ form(filterByGroupForm.name, {'attr': {'class': 'choice-auto-submit' }})  }}
+                </div>
+                {{ form_end(filterByGroupForm) }}
+            {%  endif %}
 
             <form class="d-flex mb-4 mb-lg-0">
                 <button class="btn btn-orange text-uppercase" formaction="{{ path('create_capsule') }}">