diff --git a/xos/configurations/frontend/docker-compose.yml b/xos/configurations/frontend/docker-compose.yml
index 6895d42..7e98da4 100644
--- a/xos/configurations/frontend/docker-compose.yml
+++ b/xos/configurations/frontend/docker-compose.yml
@@ -26,6 +26,6 @@
       - ../../core/dashboard:/opt/xos/core/dashboard
       - ../../core/templatetags:/opt/xos/core/templatetags
       - ../../core/views:/opt/xos/core/views
-      - ../../templates/admin:/opt/xos/templates/admin
+      - ../../templates:/opt/xos/templates
       - ../../configurations:/opt/xos/configurations
       - ../../xos:/opt/xos/xos
diff --git a/xos/core/templatetags/core_tags.py b/xos/core/templatetags/core_tags.py
index 3cd2cae..6caf034 100644
--- a/xos/core/templatetags/core_tags.py
+++ b/xos/core/templatetags/core_tags.py
@@ -8,8 +8,10 @@
 @register.inclusion_tag('admin/tags/dashboard_list.html', takes_context=True)
 def dashboard_list(context):
     request = context['request']
-    dashboards = request.user.get_dashboards()
-    customize = DashboardView.objects.filter(name="Customize")
-    #print >>sys.stderr, request.path
-    result_list = list(chain(dashboards, customize))
+    if request.user.is_authenticated():
+        dashboards = request.user.get_dashboards()
+        customize = DashboardView.objects.filter(name="Customize")
+        result_list = list(chain(dashboards, customize))
+    else:
+        result_list = []
     return {'dashboards': result_list, 'path': request.path}
\ No newline at end of file
diff --git a/xos/templates/registration/logged_out.html b/xos/templates/registration/logged_out.html
new file mode 100644
index 0000000..3908f9a
--- /dev/null
+++ b/xos/templates/registration/logged_out.html
@@ -0,0 +1,12 @@
+{% extends "admin/base_site.html" %}
+{% load i18n admin_modify%}
+
+{% block breadcrumbs %}<div class="breadcrumbs"><a href="{% url 'admin:index' %}">{% trans 'Home' %}</a></div>{% endblock %}
+
+{% block content %}
+
+<p>{% random_str "a" %}</p>
+
+<p><a href="{% url 'admin:index' %}">{% trans 'Log in again' %}</a></p>
+
+{% endblock %}
\ No newline at end of file
diff --git a/xos/xos/admin_customize/templatetags/admin_modify.py b/xos/xos/admin_customize/templatetags/admin_modify.py
index f25b823..0b6ec2c 100644
--- a/xos/xos/admin_customize/templatetags/admin_modify.py
+++ b/xos/xos/admin_customize/templatetags/admin_modify.py
@@ -1,6 +1,6 @@
 from django.contrib.admin.templatetags.admin_modify import *
 from django.contrib.admin.templatetags.admin_modify import submit_row as original_submit_row
-
+import random
 @register.inclusion_tag('admin/submit_line.html', takes_context=True)
 def submit_row(context):
     ctx = original_submit_row(context)
@@ -11,3 +11,11 @@
         'custom_delete_url': context.get("custom_delete_url",None),
         })                                                                  
     return ctx 
+
+
+
+@register.simple_tag
+def random_str(a):
+    a = ["Thanks","Thanks for spending some quality time with the Web site today.", "Thanks for spending some quality time with the Web site today.", "Thanks for spending some quality time",
+ "Thanks for visiting the Web site today"]
+    return a[random.randint(0,4)]
\ No newline at end of file
