diff --git a/product/ERP5Type/Message.py b/product/ERP5Type/Message.py
index 31f78c6a651cd7f5147babe5452240ba555a4693..a7a956b2371f54a46817f18e681b37ee9aa07ec8 100644
--- a/product/ERP5Type/Message.py
+++ b/product/ERP5Type/Message.py
@@ -59,11 +59,13 @@ class Message(Persistent):
   security = ClassSecurityInfo()
   security.declareObjectPublic()
 
-  def __init__(self, domain = None, message = '',
-                     mapping = None, default = None):
+  def __init__(self, domain=None, message='',
+               mapping=None, default=None):
     self.message = message
     self.mapping = mapping
     self.domain = domain
+    if default is None:
+      default = message
     self.default = default
 
   security.declarePublic('dump')
@@ -93,8 +95,8 @@ class Message(Persistent):
     if self.domain is None or translation_service is None :
       # Map the translated string with given parameters
       if type(self.mapping) is type({}):
-        if isinstance(translated_str, unicode) :
-          translated_str = self.message.encode('utf8')
+        if isinstance(self.message, unicode) :
+          self.message = self.message.encode('utf8')
         self.message = Template(self.message).substitute(mapping)
         if not isinstance(self.message, unicode):
           self.message = self.message.decode('utf8')