diff --git a/commentaries/test_views.py b/commentaries/test_views.py
index dbb0bb6c61464681abcf3e41acd0da83b533d17d..f2c7460a70ea5c5eb772d78882ab9f803c1204e5 100644
--- a/commentaries/test_views.py
+++ b/commentaries/test_views.py
@@ -160,3 +160,9 @@ class CommentaryDetailTest(TestCase):
     def test_status_code_200(self):
         response = self.client.get(self.target)
         self.assertEqual(response.status_code, 200)
+
+    def test_unvetted_commentary(self):
+        commentary = UnvettedCommentaryFactory(requested_by=ContributorFactory())
+        target = reverse('commentaries:commentary', kwargs={'arxiv_or_DOI_string': commentary.arxiv_or_DOI_string})
+        response = self.client.get(target)
+        self.assertEqual(response.status_code, 404)
diff --git a/commentaries/views.py b/commentaries/views.py
index 4c50ca0eb0bfb787ec9daa001339b78c54ee5c05..e95b4915ee1258132f8191a5831b01c3e7e110f2 100644
--- a/commentaries/views.py
+++ b/commentaries/views.py
@@ -206,6 +206,9 @@ class CommentaryListView(ListView):
 
 def commentary_detail(request, arxiv_or_DOI_string):
     commentary = get_object_or_404(Commentary, arxiv_or_DOI_string=arxiv_or_DOI_string)
+    if not commentary.vetted:
+        raise Http404
+
     comments = commentary.comment_set.all()
     form = CommentForm()
     try: