diff --git a/cms_helper.py b/cms_helper.py
index f268fe6..0999553 100644
--- a/cms_helper.py
+++ b/cms_helper.py
@@ -9,6 +9,7 @@ HELPER_SETTINGS = {
     ],
     'ROOT_URLCONF': 'tests.test_utils.urls',
     'INSTALLED_APPS': [
+        'django.contrib.messages',
         'admin_enhancer',
         'filer',
         'parler',
@@ -71,6 +72,9 @@ HELPER_SETTINGS = {
             'hide_untranslated': False,
         }
     },
+    'MIDDLEWARE_CLASSES': [
+        'django.contrib.messages.middleware.MessageMiddleware',
+    ],
     'META_SITE_PROTOCOL': 'http',
     'META_SITE_DOMAIN': 'example.com',
     'META_USE_OG_PROPERTIES': True,
diff --git a/djangocms_blog/admin.py b/djangocms_blog/admin.py
index ad7701e..d4475ef 100755
--- a/djangocms_blog/admin.py
+++ b/djangocms_blog/admin.py
@@ -61,7 +61,8 @@ class PostAdmin(EnhancedModelAdminMixin, FrontendEditableAdmin,
         return {'slug': ('title',)}
 
     def save_model(self, request, obj, form, change):
-        if not obj.author_id:
+        from .settings import BLOG_AUTHOR_AUTO
+        if not obj.author_id and BLOG_AUTHOR_AUTO:
             obj.author = request.user
         super(PostAdmin, self).save_model(request, obj, form, change)
 
diff --git a/djangocms_blog/models.py b/djangocms_blog/models.py
index 8917e83..0e98aaa 100644
--- a/djangocms_blog/models.py
+++ b/djangocms_blog/models.py
@@ -180,10 +180,12 @@ class Post(ModelMeta, TranslatableModel):
 
     def save(self, *args, **kwargs):
         super(Post, self).save(*args, **kwargs)
+        main_lang = self.get_current_language()
         for lang in self.get_available_languages():
             self.set_current_language(lang)
             if not self.slug and self.title:
                 self.slug = slugify(self.title)
+        self.set_current_language(main_lang)
         self.save_translations()
 
     def get_absolute_url(self):
diff --git a/djangocms_blog/settings.py b/djangocms_blog/settings.py
index 707bccf..211fc90 100644
--- a/djangocms_blog/settings.py
+++ b/djangocms_blog/settings.py
@@ -34,3 +34,4 @@ BLOG_GPLUS_AUTHOR = getattr(settings, 'BLOG_GPLUS_AUTHOR', 'get_author_gplus')
 BLOG_ENABLE_COMMENTS = getattr(settings, 'BLOG_ENABLE_COMMENTS', True)
 BLOG_USE_PLACEHOLDER = getattr(settings, 'BLOG_USE_PLACEHOLDER', True)
 BLOG_MULTISITE = getattr(settings, 'BLOG_MULTISITE', True)
+BLOG_AUTHOR_AUTO = getattr(settings, 'BLOG_AUTHOR_AUTO', True)
\ No newline at end of file
diff --git a/djangocms_blog/templates/djangocms_blog/includes/blog_item.html b/djangocms_blog/templates/djangocms_blog/includes/blog_item.html
index f5c2022..e09fc84 100644
--- a/djangocms_blog/templates/djangocms_blog/includes/blog_item.html
+++ b/djangocms_blog/templates/djangocms_blog/includes/blog_item.html
@@ -6,9 +6,11 @@
         <h3><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h3>
 		{% block blog_meta %}
             <ul class="post-detail">
+				{% if post.author %}
                 <li>
                     {% trans "by" %} <a href="{% url 'djangocms_blog:posts-author' post.author.get_username %}">{{ post.author.get_full_name }}</a>
                 </li>
+				{% endif %}
                 <li>
                     {{ post.date_published|date:"M d, Y" }}
                 </li>
diff --git a/djangocms_blog/templates/djangocms_blog/post_detail.html b/djangocms_blog/templates/djangocms_blog/post_detail.html
index 90e03b5..11d63b0 100644
--- a/djangocms_blog/templates/djangocms_blog/post_detail.html
+++ b/djangocms_blog/templates/djangocms_blog/post_detail.html
@@ -13,9 +13,11 @@
         <h2>{% render_model post "title" %}</h2>
 		{% block blog_meta %}
 			<ul class="post-detail">
+				{% if post.author %}
 	            <li>
 	                {% trans "by" %} <a href="{% url 'djangocms_blog:posts-author' post.author.get_username %}">{{ post.author.get_full_name }}</a>
 	            </li>
+				{% endif %}
 	            <li>
 	                {{ post.date_published|date:"M d, Y" }}
 	            </li>
diff --git a/tests/__init__.py b/tests/__init__.py
index 16b18fc..9531302 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -145,6 +145,16 @@ class BaseTest(TestCase):
         request.errors = StringIO()
         return request
 
+    def post_request(self, page, lang, data):
+        request = self.request_factory.post(page.get_path(lang), data)
+        request.current_page = page
+        request.user = self.user
+        request.session = {}
+        request.cookies = SimpleCookie()
+        request.errors = StringIO()
+        request._dont_enforce_csrf_checks = True
+        return request
+
     def get_page_request(self, page, user, path=None, edit=False, lang_code='en'):
         from cms.middleware.toolbar import ToolbarMiddleware
         path = path or page and page.get_absolute_url()
diff --git a/tests/test_models.py b/tests/test_models.py
index 8a6948f..713438d 100644
--- a/tests/test_models.py
+++ b/tests/test_models.py
@@ -2,7 +2,9 @@
 from cms.api import add_plugin
 from cms.utils.copy_plugins import copy_plugins_to
 from cms.utils.plugins import downcast_plugins
+from copy import deepcopy
 from django.contrib import admin
+from django.contrib.messages.middleware import MessageMiddleware
 from django.contrib.sites.models import Site
 from django.core.urlresolvers import reverse
 from django.utils.timezone import now
@@ -43,6 +45,35 @@ class AdminTest(BaseTest):
         fsets = post_admin.get_fieldsets(request)
         self.assertTrue('author' in fsets[1][1]['fields'][0])
 
+    def test_admin_auto_author(self):
+        page1, page2 = self.get_pages()
+        request = self.get_page_request('/', self.user_staff, r'/en/blog/', edit=False)
+        data = deepcopy(self.data['en'][0])
+        data['date_published_0'] = now().strftime('%Y-%m-%d')
+        data['date_published_1'] = now().strftime('%H:%M:%S')
+        data['categories'] = self.category_1.pk
+        request = self.post_request(page1, 'en', data=data)
+        msg_mid = MessageMiddleware()
+        msg_mid.process_request(request)
+        post_admin = admin.site._registry[Post]
+        post_admin.add_view(request)
+        self.assertEqual(Post.objects.count(), 1)
+        self.assertEqual(Post.objects.get(translations__slug='first-post').author_id, 1)
+
+        settings.BLOG_AUTHOR_AUTO = False
+        data = deepcopy(self.data['en'][1])
+        data['date_published_0'] = now().strftime('%Y-%m-%d')
+        data['date_published_1'] = now().strftime('%H:%M:%S')
+        data['categories'] = self.category_1.pk
+        request = self.post_request(page1, 'en', data=data)
+        msg_mid = MessageMiddleware()
+        msg_mid.process_request(request)
+        post_admin = admin.site._registry[Post]
+        post_admin.add_view(request)
+        self.assertEqual(Post.objects.count(), 2)
+        self.assertEqual(Post.objects.get(translations__slug='second-post').author_id, None)
+        settings.BLOG_AUTHOR_AUTO = True
+
 
 class ModelsTest(BaseTest):