diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py
index 76166ee92e085dabf454871f964c8ef03d66363e..aca8ac466c892794c3fce32eff033ff202d7a832 100644
--- a/openerp/addons/base/ir/ir_model.py
+++ b/openerp/addons/base/ir/ir_model.py
@@ -384,7 +384,7 @@ class ir_model_fields(osv.osv):
 
         # static table of properties
         model_props = [ # (our-name, fields.prop, set_fn)
-            ('field_description', 'string', str),
+            ('field_description', 'string', tools.ustr),
             ('required', 'required', bool),
             ('readonly', 'readonly', bool),
             ('domain', '_domain', eval),
diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py
index abe6b323c884fe2c1e0dbdc0b1e8b55fa8717288..e898492a7627bac3379e85ca8200ed1c4c777ba0 100644
--- a/openerp/addons/base/ir/ir_ui_view.py
+++ b/openerp/addons/base/ir/ir_ui_view.py
@@ -218,13 +218,6 @@ class view(osv.osv):
 
         self.read_template.clear_cache(self)
         ret = super(view, self).write(cr, uid, ids, vals, context)
-
-        # if arch is modified views become noupdatable
-        if 'arch' in vals and not context.get('install_mode', False):
-            # TODO: should be doable in a read and a write
-            for view_ in self.browse(cr, uid, ids, context=context):
-                if view_.model_data_id:
-                    self.pool.get('ir.model.data').write(cr, openerp.SUPERUSER_ID, view_.model_data_id.id, {'noupdate': True})
         return ret
 
     def copy(self, cr, uid, id, default=None, context=None):
diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml
index b545ec7a4587e177d2011ff9c4ebb09f81180e73..50045aaf2704f3ee994088a388e494aa7f800aee 100644
--- a/openerp/addons/base/res/res_partner_view.xml
+++ b/openerp/addons/base/res/res_partner_view.xml
@@ -156,10 +156,12 @@
 
                             <label for="street" string="Address"/>
                             <div>
-                                <field name="use_parent_address" class="oe_edit_only oe_inline"
-                                       on_change="onchange_address(use_parent_address, parent_id)"
-                                       attrs="{'invisible': ['|', ('is_company', '=', True),('parent_id', '=', False)]}"/>
-                                <label for="use_parent_address" class="oe_edit_only" attrs="{'invisible': ['|', ('is_company', '=', True), ('parent_id', '=', False)]}"/>
+                                <div class="oe_edit_only">
+                                    <field name="use_parent_address" class="oe_inline"
+                                           on_change="onchange_address(use_parent_address, parent_id)"
+                                           attrs="{'invisible': [('parent_id','=', False),('use_parent_address','=',False)]}"/>
+                                    <label for="use_parent_address" attrs="{'invisible': [('parent_id','=', False),('use_parent_address','=',False)]}"/>
+                                </div>
                                 <button name="open_parent" type="object" string="(edit company address)" class="oe_link oe_edit_only"
                                         attrs="{'invisible': ['|',('parent_id','=', False),('use_parent_address','=',False)]}"/>
                                 <field name="street" placeholder="Street..."  attrs="{'readonly': [('use_parent_address','=',True)]}"/>
diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py
index f85f6949d2ddb407f6a6fb6bae68d68b449a7578..b0731791ae099a076d1dc7b657dca7e83eb6a46e 100644
--- a/openerp/addons/base/res/res_users.py
+++ b/openerp/addons/base/res/res_users.py
@@ -99,7 +99,7 @@ class res_groups(osv.osv):
     }
 
     _sql_constraints = [
-        ('name_uniq', 'unique (category_id, name)', 'The name of the group must be unique !')
+        ('name_uniq', 'unique (category_id, name)', 'The name of the group must be unique within an application!')
     ]
 
     def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
diff --git a/openerp/addons/base/security/base_security.xml b/openerp/addons/base/security/base_security.xml
index c0f4242198c314b7741bdc26c03ed51cac856a02..755e20c3832a30643c6abf4d5763756eea37b1d5 100644
--- a/openerp/addons/base/security/base_security.xml
+++ b/openerp/addons/base/security/base_security.xml
@@ -43,7 +43,7 @@
 
         <!-- Set accesses to menu -->
         <record model="ir.ui.menu" id="base.menu_administration">
-            <field name="name">Administration</field>
+            <field name="name">Settings</field>
             <field name="groups_id" eval="[(6,0, [ref('group_system'), ref('group_erp_manager')])]"/>
         </record>
 
diff --git a/openerp/modules/module.py b/openerp/modules/module.py
index 82e86e83ce24f2bfb20c0d1dd4d897807fc605ee..0ccb2865796648170d3cbbb2b8cde20e08ef4a85 100644
--- a/openerp/modules/module.py
+++ b/openerp/modules/module.py
@@ -177,7 +177,7 @@ def load_information_from_description_file(module, mod_path=None):
 
     if not mod_path:
         mod_path = get_module_path(module)
-    terp_file = opj(mod_path, '__openerp__.py')
+    terp_file = mod_path and opj(mod_path, '__openerp__.py') or False
     if terp_file:
         info = {}
         if os.path.isfile(terp_file):
diff --git a/openerp/tools/convert.py b/openerp/tools/convert.py
index 23e2f61e0dc9c060af59a98b40703819f80e91fd..af6f3431229b08947e21d64e2090fa5e098d9874 100644
--- a/openerp/tools/convert.py
+++ b/openerp/tools/convert.py
@@ -305,12 +305,17 @@ form: module.record_id""" % (xml_id,)
 
         if d_search:
             idref = _get_idref(self, cr, self.uid, d_model, context={}, idref={})
-            ids = self.pool[d_model].search(cr, self.uid, unsafe_eval(d_search, idref))
+            try:
+                ids = self.pool[d_model].search(cr, self.uid, unsafe_eval(d_search, idref))
+            except ValueError:
+                _logger.warning('Skipping deletion for failed search `%r`', d_search, exc_info=True)
+                pass
         if d_id:
             try:
                 ids.append(self.id_get(cr, d_id))
-            except:
+            except ValueError:
                 # d_id cannot be found. doesn't matter in this case
+                _logger.warning('Skipping deletion for missing XML ID `%r`', d_id, exc_info=True)
                 pass
         if ids:
             self.pool[d_model].unlink(cr, self.uid, ids)
diff --git a/openerp/tools/safe_eval.py b/openerp/tools/safe_eval.py
index 2f280685350821f155d3ba4175bbc4663cfdaf5b..471827b098b5673409e71fb4f20a2f93080f9227 100644
--- a/openerp/tools/safe_eval.py
+++ b/openerp/tools/safe_eval.py
@@ -71,7 +71,8 @@ _SAFE_OPCODES = _EXPR_OPCODES.union(set(opmap[x] for x in [
     'CONTINUE_LOOP', 'RAISE_VARARGS',
     # New in Python 2.7 - http://bugs.python.org/issue4715 :
     'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'POP_JUMP_IF_FALSE',
-    'POP_JUMP_IF_TRUE', 'SETUP_EXCEPT', 'END_FINALLY', 'LOAD_FAST',
+    'POP_JUMP_IF_TRUE', 'SETUP_EXCEPT', 'END_FINALLY',
+    'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST',
     'LOAD_GLOBAL', # Only allows access to restricted globals
     ] if x in opmap))