diff -Naur uc_shipcountryrestriction/uc_shipcountryrestriction.module uc_shipcountryrestriction_byhachreak/uc_shipcountryrestriction.module
--- uc_shipcountryrestriction/uc_shipcountryrestriction.module	2010-07-26 08:16:23.000000000 +0200
+++ uc_shipcountryrestriction_byhachreak/uc_shipcountryrestriction.module	2010-10-11 23:58:51.288255525 +0200
@@ -49,10 +49,17 @@
  * @return Forms for store administrator to set configuration options.
  */
 function uc_shipcountryrestriction_admin_settings() {
-  $form['uc_shipcountryrestriction_country_list']=uc_country_select(uc_get_field_name('country'));
-  $form['uc_shipcountryrestriction_country_list']['#title']='Select countries which you permit products to be delivered to.';
-  $form['uc_shipcountryrestriction_country_list']['#type']='checkboxes';
-  $form['uc_shipcountryrestriction_country_list']['#default_value'] = variable_get('uc_shipcountryrestriction_country_list', $settings['countries']);
+  $countries = uc_country_select(uc_get_field_name('country'));
+
+  $product_classes = uc_product_types();
+  foreach($product_classes as $class){
+    $country_selected = variable_get('uc_shipcountryrestriction_country_list_'.$class, $settings['countries']);
+    $form[$class]['uc_shipcountryrestriction_country_list_'.$class] = $countries;
+    $form[$class]['uc_shipcountryrestriction_country_list_'.$class]['#title']=t('Product class "%class": select countries which you not permit products to be delivered to.', array('%class' => $class));
+    $form[$class]['uc_shipcountryrestriction_country_list_'.$class]['#type']='checkboxes';
+    $form[$class]['uc_shipcountryrestriction_country_list_'.$class]['#default_value'] = ($country_selected == '' ? array() : $country_selected);
+  }
+
   return system_settings_form($form);
 }
 
@@ -70,23 +77,23 @@
   if (($order_id = intval($_SESSION['cart_order'])) > 0) {
     $order = uc_order_load($order_id);
     $country_id = $form_state['values']['panes']['delivery']['delivery_country'];
+    $country = db_fetch_object(db_query("SELECT country_name FROM {uc_countries} WHERE country_id = %d", $country_id));
     $items = array();
 
-// run through the cart
+    // run through the cart
     foreach ($order->products as $product) {
       $product_node = node_load($product->nid);
       if ($product_node->shippable=='1') {
-        $items[] = $product_node->title;
+        $var_countries = variable_get('uc_shipcountryrestriction_country_list_'.$product_node->type, '');
+        //Check if the delivery address is a shippable country
+        if ($var_countries[$country_id] != 0) {
+          $items[] = $product_node->title;
+        }
       }
     }
 
-//Check if the delivery address is a shippable country
-    $var_countries = variable_get('uc_shipcountryrestriction_country_list', '');
-    if (count($items)!=0) {
-      if ($var_countries[$country_id] == 0) {
-        $country = db_fetch_object(db_query("SELECT country_name FROM {uc_countries} WHERE country_id = %d", $country_id));
-        form_set_error('panes][delivery][delivery_country', 'Sorry, but we do not deliver the following products to <b>'.$country->country_name .'</b>.' . theme('item_list', $items));
-      }
+    if(count($items) > 0){
+      form_set_error('panes][delivery][delivery_country', t('Sorry, but we do not deliver the following products to <b>!country</b>', array('!country' => $country->country_name)). theme('item_list', $items));
     }
+  }
 }
-}
\ No newline at end of file
