diff --git a/newsbox/views.py b/newsbox/views.py
index cc9f6a7b008121e53ae93df0e09c147e06515a62..871dc7bbb9d2f049802052ff46279fbc4f7cb136 100644
--- a/newsbox/views.py
+++ b/newsbox/views.py
@@ -89,9 +89,9 @@ class NewsboxDetailView(DateDetailView):
         context['object'] = context['news']
         return context
 
-    def get_object(self):
+    def get_object(self, queryset=None):
         # We check user permission
-        obj = super(NewsboxDetailView, self).get_object()
+        obj = super(NewsboxDetailView, self).get_object(queryset)
         if(
             not obj.is_published()
             and not obj.has_change_permission(self.request)
diff --git a/newsbox_i18n/views.py b/newsbox_i18n/views.py
index 5a5cb3ae3e111417684621030549551b26cfce8b..26a8c2b5f9d122ffda55d3dbc0378f86f58621f4 100644
--- a/newsbox_i18n/views.py
+++ b/newsbox_i18n/views.py
@@ -17,12 +17,18 @@ class NewsboxI18NDetailView(NewsboxDetailView):
 
     slug_field = "translations__newsbox_slug"
 
-    def get_queryset(self):
+    def get_object(self, queryset=None):
         """
         As slug_field is translated, we need to use translation aware
         queryset.
         """
+        if not queryset:
+            queryset = self.get_queryset()
         language = get_language()
-        queryset = super(NewsboxI18NDetailView, self).get_queryset()
-        queryset = queryset.translated(language, newsbox_slug=self.kwargs[self.slug_url_kwarg])
-        return queryset
+        obj = queryset.translated(language, newsbox_slug=self.kwargs[self.slug_url_kwarg]).get()
+        if(
+            not obj.is_published()
+            and not obj.has_change_permission(self.request)
+        ):
+            raise Http404
+        return obj