diff --git a/includes/webform.components.inc b/includes/webform.components.inc
index e755452..1de8918 100644
--- a/includes/webform.components.inc
+++ b/includes/webform.components.inc
@@ -412,7 +412,7 @@ function webform_component_edit_form($form, $form_state, $node, $component, $clo
       '#description' => t('This is used as a descriptive label when displaying this form element.'),
       '#required' => TRUE,
       '#weight' => -10,
-      '#maxlength' => 255,
+      '#maxlength' => NULL,
     );
   }
 
diff --git a/webform.install b/webform.install
index aef45ee..65f53a6 100644
--- a/webform.install
+++ b/webform.install
@@ -228,8 +228,8 @@ function webform_schema() {
       ),
       'name' => array(
         'description' => 'The label for this component.',
-        'type' => 'varchar',
-        'length' => 255,
+        'type' => 'text',
+        'not null' => TRUE,
       ),
       'type' => array(
         'description' => 'The field type of this component (textfield, select, hidden, etc.).',
@@ -1823,3 +1823,10 @@ function webform_update_7416() {
 
   return t('Columns for serial numbered submissions successfully added. Serial numbers added to existing submissions.');
 }
+
+/**
+ * Change webform_component.name to text to allow for longer labels.
+ */
+function webform_update_7417() {
+  db_change_field('webform_component', 'name', 'name', array('type' => 'text', 'not null' => TRUE));
+}
