diff --git a/alpha/includes/alpha.inc b/alpha/includes/alpha.inc
index 5a510fb..b4be3e2 100644
--- a/alpha/includes/alpha.inc
+++ b/alpha/includes/alpha.inc
@@ -184,7 +184,8 @@ function alpha_alter($type, &$data, &$context1 = NULL, &$context2 = NULL) {
 function alpha_theme_trail($theme) {
   $static = &drupal_static(__FUNCTION__);
 
-  if (!isset($static)) {
+  if (!isset($static[$theme])) {
+    $static[$theme] = array();
     $themes = list_themes();
 
     if (isset($themes[$theme]->info['base theme'])) {
@@ -196,14 +197,10 @@ function alpha_theme_trail($theme) {
     }
 
     // Add our current subtheme ($key) to that array.
-    if (isset($themes[$theme])) {
-      $static[$theme][$theme] = $themes[$theme]->info['name'];
-    }
+    $static[$theme][$theme] = $themes[$theme]->info['name'];
   }
 
-  if (isset($static[$theme])) {
-    return $static[$theme];
-  }
+  return $static[$theme];
 }
 
 /**
@@ -223,15 +220,13 @@ function alpha_get_theme() {
   }
 
   if (!isset($container[$key])) {
-    foreach (array_keys(alpha_theme_trail($theme)) as $item) {
+    foreach (array_keys(array_reverse(alpha_theme_trail($theme))) as $item) {
       if (class_exists($item . '_theme_container')) {
         $class = $item . '_theme_container';
+        $container[$key] = new $class($theme, $delta);
+        break;
       }
     }
-
-    if (isset($class)) {
-      $container[$key] = new $class($theme, $delta);
-    }
   }
 
   return $container[$key];
diff --git a/alpha/theme-settings.php b/alpha/theme-settings.php
index d06ea03..856c13a 100644
--- a/alpha/theme-settings.php
+++ b/alpha/theme-settings.php
@@ -14,24 +14,26 @@ require_once dirname(__FILE__) . '/includes/theme-settings-structure.inc';
  * Implements hook_form_system_theme_settings_alter().
  */
 function alpha_form_system_theme_settings_alter(&$form, &$form_state) {
-  drupal_add_css(drupal_get_path('theme', 'alpha') . '/css/alpha-theme-settings.css', array('group' => CSS_THEME, 'weight' => 100));
+  if ($GLOBALS['theme_key'] == $form_state['build_info']['args'][0]) {
+    drupal_add_css(drupal_get_path('theme', 'alpha') . '/css/alpha-theme-settings.css', array('group' => CSS_THEME, 'weight' => 100));
 
-  $theme = alpha_get_theme();
-  $form_state['theme'] = $theme->theme;
-  $form_state['regions'] = $theme->regions;
-  $form_state['zones'] = $theme->zones;
+    $theme = alpha_get_theme();
+    $form_state['theme'] = $theme->theme;
+    $form_state['regions'] = $theme->regions;
+    $form_state['zones'] = $theme->zones;
 
-  $form['alpha_settings'] = array(
-    '#type' => 'vertical_tabs',
-    '#weight' => -10,
-    '#prefix' => t('<h3>Layout configuration</h3>'),
-  );
+    $form['alpha_settings'] = array(
+      '#type' => 'vertical_tabs',
+      '#weight' => -10,
+      '#prefix' => t('<h3>Layout configuration</h3>'),
+    );
 
-  alpha_theme_settings_general($form, $form_state);
-  alpha_theme_settings_structure($form, $form_state);
+    alpha_theme_settings_general($form, $form_state);
+    alpha_theme_settings_structure($form, $form_state);
 
-  $form['#validate'][] = 'alpha_theme_settings_form_validate';
-  $form['#submit'][] = 'alpha_theme_settings_form_submit';
+    $form['#validate'][] = 'alpha_theme_settings_form_validate';
+    $form['#submit'][] = 'alpha_theme_settings_form_submit';
+  }
 }
 
 /**
diff --git a/omega/theme-settings.php b/omega/theme-settings.php
index 3497e33..2304db4 100644
--- a/omega/theme-settings.php
+++ b/omega/theme-settings.php
@@ -4,48 +4,50 @@
  * Implements hook_form_system_theme_settings_alter()
  */
 function omega_form_system_theme_settings_alter(&$form, &$form_state) {
-  $theme = alpha_get_theme();
-
-  foreach($theme->regions as $region => $item) {
-    $zone = $item['enabled'] ? $item['zone'] : '__unassigned__';
-    $section = $item['enabled'] && $theme->zones[$item['zone']]['enabled'] ? $theme->zones[$item['zone']]['section'] : '__unassigned__';
-
-    $form['alpha_settings']['structure'][$section][$zone]['regions'][$region]['alpha_region_' . $region . '_equal_height_element'] = array(
-      '#type' => 'value',
-      '#default_value' => $item['equal_height_element'],
-      '#element_validate' => array('omega_theme_settings_validate_equal_height'),
-      '#zone' => $zone != '__unassigned__' ? $zone : NULL,
-    );
-
-    $form['alpha_settings']['structure'][$section][$zone]['regions'][$region]['alpha_region_' . $region . '_equal_height_container'] = array(
-      '#type' => 'checkbox',
-      '#title' => t('Force equal height for all child elements'),
-      '#description' => t('Force equal height for all blocks in this region.'),
-      '#default_value' => $item['equal_height_container'],
-      '#weight' => -10,
-      '#states' => array(
-        'visible' => array(
-          ':input[name="alpha_libraries[omega_equalheights]"]' => array('checked' => TRUE),
+  if ($GLOBALS['theme_key'] == $form_state['build_info']['args'][0]) {
+    $theme = alpha_get_theme();
+
+    foreach($theme->regions as $region => $item) {
+      $zone = $item['enabled'] ? $item['zone'] : '__unassigned__';
+      $section = $item['enabled'] && $theme->zones[$item['zone']]['enabled'] ? $theme->zones[$item['zone']]['section'] : '__unassigned__';
+
+      $form['alpha_settings']['structure'][$section][$zone]['regions'][$region]['alpha_region_' . $region . '_equal_height_element'] = array(
+        '#type' => 'value',
+        '#default_value' => $item['equal_height_element'],
+        '#element_validate' => array('omega_theme_settings_validate_equal_height'),
+        '#zone' => $zone != '__unassigned__' ? $zone : NULL,
+      );
+
+      $form['alpha_settings']['structure'][$section][$zone]['regions'][$region]['alpha_region_' . $region . '_equal_height_container'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Force equal height for all child elements'),
+        '#description' => t('Force equal height for all blocks in this region.'),
+        '#default_value' => $item['equal_height_container'],
+        '#weight' => -10,
+        '#states' => array(
+          'visible' => array(
+            ':input[name="alpha_libraries[omega_equalheights]"]' => array('checked' => TRUE),
+          ),
         ),
-      ),
-    );
-  }
-
-  foreach ($theme->zones as $zone => $item) {
-    $section = $item['enabled'] ? $item['section'] : '__unassigned__';
-
-    $form['alpha_settings']['structure'][$section][$zone]['zone']['alpha_zone_' . $zone . '_equal_height_container'] = array(
-      '#type' => 'checkbox',
-      '#title' => t('Force equal height for all child elements.'),
-      '#description' => t('Force equal height for all regions in this zone.'),
-      '#default_value' => $item['equal_height_container'],
-      '#weight' => -10,
-      '#states' => array(
-        'visible' => array(
-          ':input[name="alpha_libraries[omega_equalheights]"]' => array('checked' => TRUE),
+      );
+    }
+
+    foreach ($theme->zones as $zone => $item) {
+      $section = $item['enabled'] ? $item['section'] : '__unassigned__';
+
+      $form['alpha_settings']['structure'][$section][$zone]['zone']['alpha_zone_' . $zone . '_equal_height_container'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Force equal height for all child elements.'),
+        '#description' => t('Force equal height for all regions in this zone.'),
+        '#default_value' => $item['equal_height_container'],
+        '#weight' => -10,
+        '#states' => array(
+          'visible' => array(
+            ':input[name="alpha_libraries[omega_equalheights]"]' => array('checked' => TRUE),
+          ),
         ),
-      ),
-    );
+      );
+    }
   }
 }
 
