diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
index ba17a3c6a24..d425837d1c9 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
@@ -198,6 +198,7 @@
account.analytic.account.list.contract
account.analytic.account
+
diff --git a/addons/pad/pad.py b/addons/pad/pad.py
index 68b19c3a1d6..421d9b9ca62 100644
--- a/addons/pad/pad.py
+++ b/addons/pad/pad.py
@@ -37,7 +37,9 @@ class pad_common(osv.osv_memory):
s = string.ascii_uppercase + string.digits
salt = ''.join([s[random.randint(0, len(s) - 1)] for i in range(10)])
#path
- path = '%s-%s-%s' % (cr.dbname.replace('_','-'), self._name, salt)
+ # etherpad hardcodes pad id length limit to 50
+ path = '-%s-%s' % (self._name, salt)
+ path = '%s%s' % (cr.dbname.replace('_','-')[0:50 - len(path)], path)
# contruct the url
url = '%s/p/%s' % (pad["server"], path)
diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py
index 62ef9eba902..0a9140ef8f0 100644
--- a/openerp/osv/orm.py
+++ b/openerp/osv/orm.py
@@ -504,7 +504,17 @@ class browse_record(object):
def __getattr__(self, name):
try:
return self[name]
- except KeyError, e:
+ except KeyError as e:
+ if name in self._all_columns:
+ raise ValueError(
+ 'Cannot fetch field "%(field)s" for "%(model)s" record '
+ 'with ID %(id)s, that record does not exist or has been '
+ 'deleted' % {
+ 'field': name,
+ 'model': self._model._name,
+ 'id': self._id,
+ }
+ )
import sys
exc_info = sys.exc_info()
raise AttributeError, "Got %r while trying to get attribute %s on a %s record." % (e, name, self._table._name), exc_info[2]