diff --git modules/field/modules/options/options.api.php modules/field/modules/options/options.api.php
index 906c932..d67c9f7 100644
--- modules/field/modules/options/options.api.php
+++ modules/field/modules/options/options.api.php
@@ -16,6 +16,9 @@
  *
  * @param $field
  *   The field definition.
+ * @param $instance
+ *   The instance definition. This is an optional parameter and it is mostly
+ *   used to filter out values previously defined by the field.
  *
  * @return
  *   The array of options for the field. Array keys are the values to be
@@ -26,7 +29,7 @@
  *   widget. The HTML tags defined in _field_filter_xss_allowed_tags() are
  *   allowed, other tags will be filtered.
  */
-function hook_options_list($field) {
+function hook_options_list($field, $instance) {
   // Sample structure.
   $options = array(
     0 => t('Zero'),
diff --git modules/field/modules/options/options.module modules/field/modules/options/options.module
index 0da436c..0bd2e81 100644
--- modules/field/modules/options/options.module
+++ modules/field/modules/options/options.module
@@ -232,7 +232,7 @@ function _options_properties($type, $multiple, $required, $has_value) {
  */
 function _options_get_options($field, $instance, $properties) {
   // Get the list of options.
-  $options = (array) module_invoke($field['module'], 'options_list', $field);
+  $options = (array) module_invoke($field['module'], 'options_list', $field, $instance);
 
   // Sanitize the options.
   _options_prepare_options($options, $properties);
