diff --git a/metatag_context/metatag_context.module b/metatag_context/metatag_context.module
index dfa9b82..1367a3e 100644
--- a/metatag_context/metatag_context.module
+++ b/metatag_context/metatag_context.module
@@ -91,7 +91,16 @@ function metatag_context_page_build(&$page) {
   if (!empty($metatags)) {
     // The page region can be changed.
     $region = variable_get('metatag_page_region', 'content');
-    $page[$region]['metatags']['global'] = $metatags;
+    // If metatags were set previously save them and remove the global ones.
+    $original = array();
+    if (!empty($page[$region]['metatags'])) {
+      $original = $page[$region]['metatags'];
+      if (isset($original['global'])) {
+        unset($original['global']);
+      }
+    }
+    // Place the global metatags first so the others can override them.
+    $page[$region]['metatags'] = array('global' => $metatags) + $original;
   }
 }
 
diff --git a/metatag_context/metatag_context.test b/metatag_context/metatag_context.test
index 234a87e..b5404b4 100644
--- a/metatag_context/metatag_context.test
+++ b/metatag_context/metatag_context.test
@@ -48,8 +48,21 @@ class MetatagContextTestCase extends MetatagTestHelper {
    * Performs the basic tests.
    */
   public function testMetatagContextBasic() {
-    // Create content type node.
-    $this->drupalPost('node/add/' . $this->hyphen_type, array('title' => $this->randomName(8)), t('Save'));
+    // Disable frontpage metatag title.
+    $this->drupalPost('admin/config/search/metatags/config/global:frontpage',
+      array(
+        'metatags[und][title][value]' => '',
+      ),
+      t('Save')
+    );
+    // Create content type node without meta title.
+    $this->drupalPost('node/add/' . $this->hyphen_type,
+      array(
+        'title' => $this->randomName(8),
+        'metatags[und][title][value]' => '',
+      ),
+      t('Save')
+    );
     $this->context_name = drupal_strtolower($this->randomName(8));
 
     // Generate metatags and check content.
@@ -66,6 +79,27 @@ class MetatagContextTestCase extends MetatagTestHelper {
     $this->editMetatag($this->metatag_pages['node']);
     $this->checkMetatags($this->metatag_pages['node']);
 
+    // Edit the front meta tag with custom title.
+    $custom_front_title = 'My Custom Front Title';
+    $this->drupalPost('admin/config/search/metatags/config/global:frontpage',
+      array(
+        'metatags[und][title][value]' => $custom_front_title,
+      ),
+      t('Save')
+    );
+    $this->metatag_pages['page']->title = $custom_front_title;
+    $this->checkMetatags($this->metatag_pages['page']);
+
+    // Edit the node with custom meta title.
+    $custom_node_title = 'My Custom Node Title';
+    $this->drupalPost('node/1/edit',
+      array(
+        'metatags[und][title][value]' => $custom_node_title,
+      ),
+      t('Save')
+    );
+    $this->metatag_pages['node']->title = $custom_node_title;
+    $this->checkMetatags($this->metatag_pages['node']);
   }
 
   /**
