diff --git a/vips_messages/models.py b/vips_messages/models.py
index 7916ab2dab6c14a54f564c9c3b08228f6e441eb2..db68ec07a333a7ca30fc7156b079b07ca1b433f2 100755
--- a/vips_messages/models.py
+++ b/vips_messages/models.py
@@ -102,7 +102,9 @@ class Message:
     @staticmethod
     def get_message(message_id, current_language=settings.VIPSLOGIC_LANGUAGE_CODE):
         message_json = Message.get_message_as_json(message_id)
-        return Message.get_instance_from_dict(message_json, current_language)
+        if message_json is not None:
+            return Message.get_instance_from_dict(message_json, current_language)
+        return None
     
     @staticmethod
     def get_messages_by_tag(tag_id, current_language=settings.VIPSLOGIC_LANGUAGE_CODE):
@@ -138,7 +140,10 @@ class Message:
     @staticmethod
     def get_message_as_json(message_id):
         request_result = requests.get("%s://%s/rest/message/%s" % (settings.VIPSLOGIC_PROTOCOL, settings.VIPSLOGIC_SERVER_NAME,message_id))
-        return request_result.json()
+        if request_result.status_code == 200:
+            return request_result.json()
+        return None
+        
     
     @staticmethod
     def get_instance_from_dict(the_dict,current_language=settings.VIPSLOGIC_LANGUAGE_CODE):
diff --git a/vips_messages/views.py b/vips_messages/views.py
index 54e0d2e9441265b0b634a65825aa49f8d142f727..67e203825773d6b64d1412d8ab3887851348ab0a 100755
--- a/vips_messages/views.py
+++ b/vips_messages/views.py
@@ -23,7 +23,7 @@ import json
 
 from django.shortcuts import render
 from django.utils import translation
-from django.http import HttpResponse
+from django.http import HttpResponse, Http404
 
 from vips_messages.models import Message
 from vips_messages.forms import MessagePublishedDateFilterForm
@@ -57,11 +57,14 @@ def index(request):
     return render(request, 'messages/index.html', context)
 
 def detail(request, message_id):
-    context = {
-               #'message' : get_object_or_404(Message, pk=message_id)
-               'message': Message.get_message(message_id, translation.get_language())
-               }
-    return render(request, 'messages/detail.html', context)
+    message = Message.get_message(message_id, translation.get_language())
+    if message is not None:
+        context = {
+                #'message' : get_object_or_404(Message, pk=message_id)
+                'message': Message.get_message(message_id, translation.get_language())
+                }
+        return render(request, 'messages/detail.html', context)
+    raise Http404("This page does not exist")
 
 # Send messages as JSON
 # TODO: Skip intermediary Python object, get json directly from VIPSLogic