diff --git a/commentaries/urls.py b/commentaries/urls.py
index c9569a1bed76d7d45befc283ae986de9d15baa36..a1b5ba5ec119853ae337ab52c7213cb4feadea8f 100644
--- a/commentaries/urls.py
+++ b/commentaries/urls.py
@@ -6,20 +6,27 @@ from . import views
 urlpatterns = [
     # Commentaries
     url(r'^$', views.CommentaryListView.as_view(), name='commentaries'),
-    url(r'^browse/(?P<discipline>[a-z]+)/(?P<nrweeksback>[0-9]+)/$', views.browse, name='browse'),
+    url(r'^browse/(?P<discipline>[a-z]+)/(?P<nrweeksback>[0-9]+)/$',
+        views.CommentaryListView.as_view(), name='browse'),
     url(r'^howto$', TemplateView.as_view(template_name='commentaries/howto.html'), name='howto'),
 
     # Match a DOI-based link:
-    url(r'^(?P<arxiv_or_DOI_string>10.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)/$', views.commentary_detail, name='commentary'),
+    url(r'^(?P<arxiv_or_DOI_string>10.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)/$',
+        views.commentary_detail, name='commentary'),
     # Match an arxiv-based link:
     # new style identifiers:
-    url(r'^(?P<arxiv_or_DOI_string>arXiv:[0-9]{4,}.[0-9]{5,}(v[0-9]+)?)/$', views.commentary_detail, name='commentary'),
+    url(r'^(?P<arxiv_or_DOI_string>arXiv:[0-9]{4,}.[0-9]{5,}(v[0-9]+)?)/$',
+        views.commentary_detail, name='commentary'),
     # old style identifiers:
-    url(r'^(?P<arxiv_or_DOI_string>arXiv:[a-z-]+/[0-9]{7,}(v[0-9]+)?)/$', views.commentary_detail, name='commentary'),
+    url(r'^(?P<arxiv_or_DOI_string>arXiv:[a-z-]+/[0-9]{7,}(v[0-9]+)?)/$',
+        views.commentary_detail, name='commentary'),
 
     url(r'^request_commentary$', views.RequestCommentary.as_view(), name='request_commentary'),
     url(r'^prefill_using_DOI$', views.prefill_using_DOI, name='prefill_using_DOI'),
-    url(r'^prefill_using_identifier$', views.PrefillUsingIdentifierView.as_view(), name='prefill_using_identifier'),
-    url(r'^vet_commentary_requests$', views.vet_commentary_requests, name='vet_commentary_requests'),
-    url(r'^vet_commentary_request_ack/(?P<commentary_id>[0-9]+)$', views.vet_commentary_request_ack, name='vet_commentary_request_ack'),
+    url(r'^prefill_using_identifier$', views.PrefillUsingIdentifierView.as_view(),
+        name='prefill_using_identifier'),
+    url(r'^vet_commentary_requests$', views.vet_commentary_requests,
+        name='vet_commentary_requests'),
+    url(r'^vet_commentary_request_ack/(?P<commentary_id>[0-9]+)$',
+        views.vet_commentary_request_ack, name='vet_commentary_request_ack'),
 ]
diff --git a/commentaries/views.py b/commentaries/views.py
index dd72d085f4aca9868d40a765f0969d791a0e6a82..640100a7c22436864ce3aab1e7b49e76f10a0c67 100644
--- a/commentaries/views.py
+++ b/commentaries/views.py
@@ -1,9 +1,6 @@
-import datetime
-import feedparser
 import re
 import requests
 
-from django.utils import timezone
 from django.shortcuts import get_object_or_404, render
 from django.contrib import messages
 from django.contrib.auth.decorators import permission_required
@@ -40,7 +37,7 @@ class RequestCommentaryMixin(object):
             kwargs['request_commentary_form'] = RequestCommentaryForm()
         context = super(RequestCommentaryMixin, self).get_context_data(**kwargs)
 
-        context['existing_commentary'] = None  # context['request_commentary_form'].get_existing_commentary()
+        context['existing_commentary'] = None
         context['doiform'] = DOIToQueryForm()
         context['identifierform'] = IdentifierToQueryForm()
         return context
@@ -276,7 +273,7 @@ class CommentaryListView(ListView):
     def get_queryset(self):
         '''Perform search form here already to get the right pagination numbers.'''
         self.form = self.form(self.request.GET)
-        if self.form.is_valid():
+        if self.form.is_valid() and self.form.has_changed():
             return self.form.search_results()
         return self.model.objects.vetted().order_by('-latest_activity')
 
@@ -295,24 +292,12 @@ class CommentaryListView(ListView):
             context['discipline'] = self.kwargs['discipline']
             context['nrweeksback'] = self.kwargs['nrweeksback']
             context['browse'] = True
-        elif not any(argument in ['title', 'author', 'abstract'] for argument in self.request.GET):
+        elif not any(self.request.GET[field] for field in self.request.GET):
             context['recent'] = True
 
         return context
 
 
-def browse(request, discipline, nrweeksback):
-    """List all commentaries for discipline and period"""
-    commentary_browse_list = Commentary.objects.vetted(
-        discipline=discipline,
-        latest_activity__gte=timezone.now() + datetime.timedelta(weeks=-int(nrweeksback)))
-    context = {
-        'form': CommentarySearchForm(),
-        'discipline': discipline, 'nrweeksback': nrweeksback,
-        'commentary_browse_list': commentary_browse_list}
-    return render(request, 'commentaries/commentaries.html', context)
-
-
 def commentary_detail(request, arxiv_or_DOI_string):
     commentary = get_object_or_404(Commentary, arxiv_or_DOI_string=arxiv_or_DOI_string)
     comments = commentary.comment_set.all()