diff --git a/computed_field.module b/computed_field.module
index c7bff05..5862db3 100644
--- a/computed_field.module
+++ b/computed_field.module
@@ -61,6 +61,7 @@ function computed_field_field_settings_form($field, $instance, $has_data) {
   $form = array();
   $compute_func = 'computed_field_' . $field['field_name'] . '_compute';
   $display_func = 'computed_field_' . $field['field_name'] . '_display';
+  $validate_func = 'computed_field_' . $field['field_name'] . '_validate';
   $settings = $field['settings'];
 
   $form['#element_validate'] = array('computed_field_field_settings_form_validate');
@@ -86,6 +87,21 @@ function computed_field_field_settings_form($field, $instance, $has_data) {
     '#markup' => t('<strong>This field is COMPUTED using <code>@compute_func()</code>.</strong>', array('@compute_func' => $compute_func)),
     );
   }
+
+  $form['validate'] = array(
+    '#type' => 'textarea',
+    '#rows' => 15,
+    '#title' => t('Code for validation'),
+    '#default_value' => !empty($settings['validate']) ? $settings['validate'] : '',
+    '#access' => !function_exists($validate_func),
+  );
+  if (function_exists($validate_func)) {
+    $form['validate_func'] = array(
+      '#type' => 'item',
+      '#markup' => t('<strong>This field is VALIDATED using <code>@compute_func()</code>.</strong>', array('@compute_func' => $validate_func)),
+    );
+  }
+
   $form['display_format'] = array(
     '#type' => 'textarea',
     '#title' => t('Display Code (PHP)'),
@@ -241,6 +257,21 @@ function computed_field_field_update($entity_type, $entity, $field, $instance, $
 }
 
 /**
+ * Implements field hook_field_validate().
+ */
+function computed_field_field_validate($entity_type, $entity, $field, $instance, $langcode, $items, &$errors) {
+	$validate_func = 'computed_field_'. $field['field_name'] .'_validate';
+	if (function_exists($validate_func))	{
+    $validate_func($entity_type, $entity, $field, $instance, $langcode, &$items);
+	}
+	else {
+		if (isset($field['settings']['validate'])) {
+      eval($field['settings']['validate']);
+		}
+	}
+}
+
+/**
  * Implements field hook_field_widget_info().
  */
 function computed_field_field_widget_info() {
@@ -395,4 +426,3 @@ function _computed_field_compute_value($entity_type, $entity, $field, $instance,
     }
   }
 }
-
