diff --git a/metacore/forms.py b/metacore/forms.py
index 2563a3c7c11a22b895e81d4658c54741fabd25e0..c9f95322f8772b89f9fa5a74cf260ad360a5c287 100644
--- a/metacore/forms.py
+++ b/metacore/forms.py
@@ -1,7 +1,10 @@
 from django import forms
 
+import logging
+
 from .models import Citable, CitableWithDOI
 
+logger = logging.getLogger(__name__)
 
 class CitableSearchForm(forms.Form):
     omni = forms.CharField(max_length=100, required=False, label="Authors / title (text search)")
@@ -12,7 +15,10 @@ class CitableSearchForm(forms.Form):
 
     def search_results(self):
         """Return all Citable objects according to search"""
-        if not self.cleaned_data.get('omni'):
+        if not self.cleaned_data.get('omni', False):
+            if self.is_empty:
+                return None
+
             return Citable.objects.simple().filter(
                 title__icontains=self.cleaned_data.get('title', ''),
                 authors__icontains=self.cleaned_data.get('author', ''),
@@ -20,6 +26,7 @@ class CitableSearchForm(forms.Form):
                 **{'metadata__container-title__icontains': self.cleaned_data.get('journal', '')},
             )
         else:
+
             """If a text index is present, search using the authors/title box is enables"""
             return Citable.objects.simple().filter(
                 title__icontains=self.cleaned_data.get('title', ''),
@@ -28,3 +35,12 @@ class CitableSearchForm(forms.Form):
                 **{'metadata__container-title__icontains': self.cleaned_data.get('journal', '')},
             ).omni_search(self.cleaned_data.get('omni'), 'and')
 
+    def is_empty(self):
+        form_empty = True
+        for field_value in self.cleaned_data.values():
+            if field_value is not None and field_value != '':
+                form_empty = False
+                break
+
+        if form_empty:
+            return None
diff --git a/metacore/views.py b/metacore/views.py
index 712de954dc938755e99aac6f7a573a4c73579350..0269bc6f19046348f0db5b6d53c1b7f508a1b5a9 100644
--- a/metacore/views.py
+++ b/metacore/views.py
@@ -18,10 +18,14 @@ class CitableListView(ListView):
 
         if self.form.is_valid() and self.form.has_changed():
             queryset = self.form.search_results()
-        else:
-            # queryset = Citable.objects.simple().limit(100)
-            queryset = Citable.objects.simple().order_by('-metadata.is-referenced-by-count').limit(10)
 
+            # search_results() returns None when all form fields are empty
+            if queryset is not None:
+                return queryset
+
+        # If there's no search or the search form is empty:
+        # queryset = Citable.objects.simple().limit(100)
+        queryset = Citable.objects.simple().order_by('-metadata.is-referenced-by-count').limit(10)
         return queryset
 
     def get_context_data(self, **kwargs):
@@ -31,13 +35,23 @@ class CitableListView(ListView):
         # Form into the context!
         context['form'] = self.form
 
-        if self.form.is_valid() and self.form.has_changed():
+        if self.search_active():
             context['search'] = True
         else:
             context['browse'] = True
 
         return context
 
+    def search_active(self):
+        """ 
+        Helper method to figure out whether there is a search going on,
+        meaning that the form is not empty, or not.
+        """
+        if self.form.is_valid() and self.form.has_changed() and not self.form.is_empty():
+            return True
+        else:
+            return False
+
     def get_paginate_by(self, queryset):
         """
         Dynamically compute pagination setting.
@@ -48,7 +62,7 @@ class CitableListView(ListView):
         Also you can add an extra parameter to specify pagination size, like so:
             return self.request.GET.get('paginate_by', self.paginate_by)
         """
-        if self.request.GET:
+        if self.search_active():
             return self.paginate_by
         else:
             return None