diff --git a/field_extrawidgets.module b/field_extrawidgets.module
index 9fadef5..b47fa65 100644
--- a/field_extrawidgets.module
+++ b/field_extrawidgets.module
@@ -30,6 +30,14 @@ function field_extrawidgets_field_widget_info() {
     ),
   );
 
+  $widgets['field_extrawidgets_disabled'] = array(
+    'label' => t('Disabled'),
+    'description' => t('A widget makes field disabled.'),
+    // TODO: We should support all fields that accepts #disable option in FAPI
+    'field types' => array('text'),
+    'settings' => array(),
+  );
+
   $widgets['field_extrawidgets_read_only'] = array(
     'label' => t('Read-only'),
     'description' => t('A widget that is read-only.'),
@@ -156,6 +164,26 @@ function field_extrawidgets_field_widget_form(&$form, &$form_state, $field, $ins
     return array();
   }
 
+  if ($widget_type == 'field_extrawidgets_disabled') {
+
+    // Find out which field type and default widget
+    // TODO: Widget could be selected from settings?
+    $field_info = field_info_field_types($field['type']);
+    $widget = $field_info['default_widget'];
+
+    // Find out the right function callback for that widget
+    $widget_info = field_info_widget_types($widget);
+    $function = $widget_info['module'] . '_field_widget_form';
+    if (function_exists($function)) {
+      $instance['widget']['type'] = $widget;
+      $return = $function($form, $form_state, $field, $instance, $langcode, $items, $delta, $element);
+      // TODO: How to deal with multi column fields?
+      $return['value']['#disabled'] = TRUE;
+      return $return;
+    }
+
+  }
+
   if ($widget_type == 'field_extrawidgets_read_only') {
     // Set the fallback formatter.
     $display['type'] = $widget_settings['formatter'];
