diff --git a/recipe.module b/recipe.module
index a73327b..ac86c77 100644
--- a/recipe.module
+++ b/recipe.module
@@ -2022,6 +2022,9 @@ function recipe_get_units($limit_to_preferred = 0) {
     uasort($units, 'unit_sort');
   }
 
+  // Allow other modules to alter the units.
+  drupal_alter('recipe_ing_units', $units);
+
   return $units;
 }
 
diff --git a/recipe.test b/recipe.test
index c281cbd..ddb3c3b 100644
--- a/recipe.test
+++ b/recipe.test
@@ -13,10 +13,24 @@ class RecipeWebTestCase extends DrupalWebTestCase {
 
   public function setUp() {
     // Enable modules required for testing.
-    parent::setUp(array('recipe', 'recipe_plaintext', 'recipe_html', 'recipe_recipeML', 'recipe_mastercook4'));
+    parent::setUp(array(
+      'recipe',
+      'recipe_plaintext',
+      'recipe_html',
+      'recipe_recipeML',
+      'recipe_mastercook4',
+      'recipe_test',
+    ));
 
     // Create and log in the admin user with Recipe content permissions.
-    $this->admin_user = $this->drupalCreateUser(array('create recipe content', 'import recipes', 'export recipes', 'administer site configuration', 'administer blocks'));
+    $this->admin_user = $this->drupalCreateUser(array(
+      'create recipe content',
+      'edit any recipe content',
+      'import recipes',
+      'export recipes',
+      'administer site configuration',
+      'administer blocks',
+    ));
     $this->drupalLogin($this->admin_user);
 
     // Populate the unit list.
@@ -305,6 +319,10 @@ class RecipeNodeTestCase extends RecipeWebTestCase {
     // Check for the description in the teaser view at /node.
     $this->drupalGet('node');
     $this->assertText($description, 'Found the recipe description.');
+
+    // Check for the altered unit list when editing the node.
+    $this->drupalGet('node/1/edit');
+    $this->assertFieldByXPath('//option[@value="test_unit"]', NULL, 'Found the altered unit.');
   }
 
   /**
diff --git a/tests/recipe_test.info b/tests/recipe_test.info
new file mode 100644
index 0000000..b5da7fa
--- /dev/null
+++ b/tests/recipe_test.info
@@ -0,0 +1,6 @@
+name = "Recipe module tests"
+description = "Support module for recipe related testing."
+package = Testing
+version = VERSION
+core = 7.x
+hidden = TRUE
diff --git a/tests/recipe_test.module b/tests/recipe_test.module
new file mode 100644
index 0000000..e0ccfcb
--- /dev/null
+++ b/tests/recipe_test.module
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * @file
+ * A dummy module for testing recipe related hooks.
+ *
+ * This is a dummy module that implements recipe related hooks to test API
+ * interaction with the Recipe module.
+ */
+
+/**
+ * Implements hook_recipe_ing_units_alter().
+ *
+ * @param array $units
+ *   The default unit data from the Recipe module.
+ */
+function recipe_test_recipe_ing_units_alter(&$units) {
+  $units['test_unit'] = array(
+    'name' => t('Test unit'),
+    'plural' => t('Test units'),
+    'abbreviation' => '',
+    'system' => 'common',
+    'type' => t('indefinite'),
+    'aliases' =>  array(),
+  );
+}
