diff --git a/django/contrib/markup/templatetags/markup.py b/django/contrib/markup/templatetags/markup.py
index a8a09ce..df8dfd1 100644
--- a/django/contrib/markup/templatetags/markup.py
+++ b/django/contrib/markup/templatetags/markup.py
@@ -26,7 +26,7 @@ def textile(value):
     except ImportError:
         if settings.DEBUG:
             raise template.TemplateSyntaxError, "Error in {% textile %} filter: The Python textile library isn't installed."
-        return mark_safe(value)
+        return value
     else:
         return mark_safe(textile.textile(value, encoding=settings.DEFAULT_CHARSET, output=settings.DEFAULT_CHARSET))
 textile.is_safe = True
@@ -37,7 +37,7 @@ def markdown(value):
     except ImportError:
         if settings.DEBUG:
             raise template.TemplateSyntaxError, "Error in {% markdown %} filter: The Python markdown library isn't installed."
-        return mark_safe(value)
+        return value
     else:
         return mark_safe(markdown.markdown(value))
 markdown.is_safe = True
@@ -48,7 +48,7 @@ def restructuredtext(value):
     except ImportError:
         if settings.DEBUG:
             raise template.TemplateSyntaxError, "Error in {% restructuredtext %} filter: The Python docutils library isn't installed."
-        return mark_safe(value)
+        return value
     else:
         docutils_settings = getattr(settings, "RESTRUCTUREDTEXT_FILTER_SETTINGS", {})
         parts = publish_parts(source=value, writer_name="html4css1", settings_overrides=docutils_settings)
diff --git a/django/utils/safestring.py b/django/utils/safestring.py
index eac37c6..8cac661 100644
--- a/django/utils/safestring.py
+++ b/django/utils/safestring.py
@@ -37,7 +37,7 @@ class SafeString(str, SafeData):
         if isinstance(rhs, SafeUnicode):
             return SafeUnicode(self + rhs)
         elif isinstance(rhs, SafeString):
-            return SafeString(self, rhs)
+            return SafeString(self + rhs)
         else:
             return super(SafeString, self).__add__(rhs)
 
