Index: django/forms/forms.py
===================================================================
--- django/forms/forms.py	(revision 8752)
+++ django/forms/forms.py	(working copy)
@@ -371,7 +371,7 @@
         """
         contents = contents or escape(self.label)
         widget = self.field.widget
-        id_ = widget.attrs.get('id') or self.auto_id
+        id_ = smart_unicode(widget.attrs.get('id', '')) or self.auto_id
         if id_:
             attrs = attrs and flatatt(attrs) or ''
             contents = '<label for="%s"%s>%s</label>' % (widget.id_for_label(id_), attrs, contents)
Index: tests/regressiontests/forms/regressions.py
===================================================================
--- tests/regressiontests/forms/regressions.py	(revision 8752)
+++ tests/regressiontests/forms/regressions.py	(working copy)
@@ -34,6 +34,16 @@
 u'<p><label for="id_username">Nazwa u\u017cytkownika:</label> <input id="id_username" type="text" name="username" maxlength="10" /></p>'
 >>> deactivate()
 
+There was some problems with form translations in #5216
+>>> class SomeForm(Form):
+...     field_1 = CharField(max_length=10, label=ugettext_lazy('field_1'))
+...     field_2 = CharField(max_length=10, label=ugettext_lazy('field_2'), widget=TextInput(attrs={'id': 'field_2_id'}))
+>>> f = SomeForm()
+>>> print f['field_1'].label_tag()
+<label for="id_field_1">field_1</label>
+>>> print f['field_2'].label_tag()
+<label for="field_2_id">field_2</label>
+
 Unicode decoding problems...
 >>> GENDERS = ((u'\xc5', u'En tied\xe4'), (u'\xf8', u'Mies'), (u'\xdf', u'Nainen'))
 >>> class SomeForm(Form):
