diff --git skinr_ui.module skinr_ui.module
index afa052b..d435bbc 100644
--- skinr_ui.module
+++ skinr_ui.module
@@ -428,10 +428,38 @@ function skinr_ui_form_alter(&$form, $form_state, $form_id) {
               continue;
             }
 
+            // If this is a region-sensitive feature (that is, a block with a
+            // special -region_name suffix), pull off the region name.
+            $regions = array();
+            if (is_array($skin['features'])) {
+              foreach ($skin['features'] as $key => $feature) {
+                if ($pos = strpos($feature, '-')) {
+                  $region = substr($feature, $pos - drupal_strlen($feature) + 1);
+                  $feature = substr($feature, 0, $pos);
+                  $regions[] = $region;
+                  $skin['features'][$key] = $feature;
+                }
+              }
+            }
             // Check if this skin applies to this hook.
             if (!is_array($skin['features']) || (!in_array('*', $skin['features']) && !_skinr_is_featured($preprocess_hooks, $skin['features']))) {
               continue;
             }
+            // Check if the skin fits further restrictions by region.
+            // $current_theme already obtained via skinr_current_theme(TRUE).
+            // $module to the rest of skinr_ui is block; must not override.
+            // always block: $module = $form['skinr']['module']['#value'];
+            $sid = $form['skinr']['sid']['#value'];
+            $explode = explode('-', $sid, 2);
+            list($blocks_module, $delta) = $explode;
+            $block_region = db_result(db_query(
+              "SELECT region FROM {blocks}
+               WHERE theme = '%s' AND module = '%s' AND delta = '%s'",
+              $current_theme, $blocks_module, $delta
+            ));
+            if ($regions && !in_array($block_region, $regions)) {
+              continue;
+            }
 
             // Create widget.
             switch ($skin['type']) {
