diff --git a/commerce_sp.features.field.inc b/commerce_sp.features.field.inc
index f328eb2..feaca52 100644
--- a/commerce_sp.features.field.inc
+++ b/commerce_sp.features.field.inc
@@ -178,6 +178,71 @@ function commerce_sp_field_default_fields() {
     ),
   );
 
+  // Exported field: 'user-user-field_commerce_sp_skip_expire'
+  $fields['user-user-field_commerce_sp_skip_expire'] = array(
+    'field_config' => array(
+      'active' => '1',
+      'cardinality' => '1',
+      'deleted' => '0',
+      'entity_types' => array(),
+      'field_name' => 'field_commerce_sp_skip_expire',
+      'field_permissions' => array(
+        'type' => '2',
+      ),
+      'foreign keys' => array(),
+      'indexes' => array(
+        'value' => array(
+          0 => 'value',
+        ),
+      ),
+      'module' => 'list',
+      'settings' => array(
+        'allowed_values' => array(
+          0 => 'Automatic',
+          1 => 'Skip automatic expiration',
+        ),
+        'allowed_values_function' => '',
+      ),
+      'translatable' => '0',
+      'type' => 'list_boolean',
+    ),
+    'field_instance' => array(
+      'bundle' => 'user',
+      'default_value' => array(
+        0 => array(
+          'value' => 0,
+        ),
+      ),
+      'deleted' => '0',
+      'description' => 'If checked, the subscription does not expire automatically. For example, this could be used by modules to control and renew the subscription by the actual payments.',
+      'display' => array(
+        'default' => array(
+          'label' => 'above',
+          'module' => 'list',
+          'settings' => array(),
+          'type' => 'list_default',
+          'weight' => 2,
+        ),
+      ),
+      'entity_type' => 'user',
+      'field_name' => 'field_commerce_sp_skip_expire',
+      'label' => 'Subscription expiration',
+      'required' => 0,
+      'settings' => array(
+        'user_register_form' => 0,
+      ),
+      'widget' => array(
+        'active' => 1,
+        'module' => 'options',
+        'settings' => array(
+          'display_label' => 0,
+        ),
+        'type' => 'options_onoff',
+        'weight' => '6',
+      ),
+    ),
+  );
+
   // Exported field: 'user-user-field_commerce_sp_validity'
   $fields['user-user-field_commerce_sp_validity'] = array(
     'field_config' => array(
@@ -262,7 +327,9 @@ function commerce_sp_field_default_fields() {
 
   // Translatables
   // Included for use with string extractors like potx.
+  t('If checked, the subscription does not expire automatically. For example, this could be used by modules to control and renew the subscription by the actual payments.');
   t('Price');
+  t('Subscription expiration');
   t('Subscription time');
   t('Subscription validity');
   t('The validity of the subscription once it has been bought. In case multiple subscription products are bought, the subscription time of all bought products is aggregated. In case there is already a valid subscription, its validity is extended by the given time period.');
diff --git a/commerce_sp.features.user_permission.inc b/commerce_sp.features.user_permission.inc
new file mode 100644
index 0000000..b9e84c8
--- /dev/null
+++ b/commerce_sp.features.user_permission.inc
@@ -0,0 +1,38 @@
+<?php
+/**
+ * @file
+ * commerce_sp.features.user_permission.inc
+ */
+
+/**
+ * Implements hook_user_default_permissions().
+ */
+function commerce_sp_user_default_permissions() {
+  $permissions = array();
+
+  // Exported permission: create field_commerce_sp_validity
+  $permissions['create field_commerce_sp_validity'] = array(
+    'name' => 'create field_commerce_sp_validity',
+    'roles' => array(),
+  );
+
+  // Exported permission: edit field_commerce_sp_validity
+  $permissions['edit field_commerce_sp_validity'] = array(
+    'name' => 'edit field_commerce_sp_validity',
+    'roles' => array(),
+  );
+
+  // Exported permission: view field_commerce_sp_validity
+  $permissions['view field_commerce_sp_validity'] = array(
+    'name' => 'view field_commerce_sp_validity',
+    'roles' => array(),
+  );
+
+  // Exported permission: view own field_commerce_sp_validity
+  $permissions['view own field_commerce_sp_validity'] = array(
+    'name' => 'view own field_commerce_sp_validity',
+    'roles' => array(),
+  );
+
+  return $permissions;
+}
diff --git a/commerce_sp.info b/commerce_sp.info
index b1cb46b..32a6088 100644
--- a/commerce_sp.info
+++ b/commerce_sp.info
@@ -11,11 +11,13 @@ dependencies[] = "features"
 dependencies[] = "field_group"
 dependencies[] = "field_permissions"
 dependencies[] = "interval"
+dependencies[] = "list"
 dependencies[] = "rules_scheduler"
 features[commerce_product_type][] = "commerce_sp_subscription"
 features[ctools][] = "field_group:field_group:1"
 features[field][] = "commerce_product-commerce_sp_subscription-commerce_price"
 features[field][] = "commerce_product-commerce_sp_subscription-field_commerce_sp_time"
+features[field][] = "user-user-field_commerce_sp_skip_expire"
 features[field][] = "user-user-field_commerce_sp_validity"
 features[field_group][] = "group_commerce_sp|user|user|form"
 features[rules_config][] = "rules_commerce_sp_cancel_subscription_expiration"
@@ -25,9 +27,9 @@ features[rules_config][] = "rules_commerce_sp_schedule_subscription_expiration"
 features[rules_config][] = "rules_commerce_sp_subscription_aborted_as_account_is_del"
 features[rules_config][] = "rules_commerce_sp_subscription_bought"
 features[rules_config][] = "rules_commerce_sp_subscription_end"
+features[rules_config][] = "rules_commerce_sp_subscription_schedule_update"
 features[rules_config][] = "rules_commerce_sp_subscription_start"
 features[rules_config][] = "rules_commerce_sp_subscription_started_insert"
 features[rules_config][] = "rules_commerce_sp_subscription_started_update"
 features[rules_config][] = "rules_commerce_sp_subscription_time_to_validity"
 features[rules_config][] = "rules_commerce_sp_subscription_validity_is_unset"
-features[rules_config][] = "rules_commerce_sp_subscription_schedule_update"
diff --git a/commerce_sp.rules_defaults.inc b/commerce_sp.rules_defaults.inc
index 48c23ab..460444f 100644
--- a/commerce_sp.rules_defaults.inc
+++ b/commerce_sp.rules_defaults.inc
@@ -194,6 +194,40 @@ function commerce_sp_default_rules_configuration() {
       ]
     }
   }');
+  $items['rules_commerce_sp_subscription_schedule_update'] = entity_import('rules_config', '{ "rules_commerce_sp_subscription_schedule_update" : {
+      "LABEL" : "Update subscription expiration schedule",
+      "PLUGIN" : "reaction rule",
+      "TAGS" : [ "commerce_sp" ],
+      "REQUIRES" : [ "rules" ],
+      "ON" : [ "user_update" ],
+      "IF" : [
+        { "OR" : [
+            { "AND" : [
+                { "NOT data_is" : {
+                    "data" : [ "account:field-commerce-sp-validity" ],
+                    "value" : [ "account-unchanged:field-commerce-sp-validity" ]
+                  }
+                },
+                { "NOT data_is_empty" : { "data" : [ "account:field-commerce-sp-validity" ] } }
+              ]
+            },
+            { "AND" : [
+                { "NOT data_is" : {
+                    "data" : [ "account:field-commerce-sp-skip-expire" ],
+                    "value" : [ "account-unchanged:field-commerce-sp-skip-expire" ]
+                  }
+                },
+                { "data_is_empty" : { "data" : [ "account:field-commerce-sp-skip-expire" ] } }
+              ]
+            }
+          ]
+        }
+      ],
+      "DO" : [
+        { "component_rules_commerce_sp_schedule_subscription_expiration" : { "account" : [ "account" ] } }
+      ]
+    }
+  }');
   $items['rules_commerce_sp_subscription_start'] = entity_import('rules_config', '{ "rules_commerce_sp_subscription_start" : {
       "LABEL" : "Subscription start",
       "PLUGIN" : "rule set",
@@ -278,40 +312,6 @@ function commerce_sp_default_rules_configuration() {
       ]
     }
   }');
-  $items['rules_commerce_sp_subscription_schedule_update'] = entity_import('rules_config', '{ "rules_commerce_sp_subscription_schedule_update" : {
-      "LABEL" : "Update subscription expiration schedule",
-      "PLUGIN" : "reaction rule",
-      "TAGS" : [ "commerce_sp" ],
-      "REQUIRES" : [ "rules" ],
-      "ON" : [ "user_update" ],
-      "IF" : [
-        { "OR" : [
-            { "AND" : [
-                { "NOT data_is" : {
-                    "data" : [ "account:field-commerce-sp-validity" ],
-                    "value" : [ "account-unchanged:field-commerce-sp-validity" ]
-                  }
-                },
-                { "NOT data_is_empty" : { "data" : [ "account:field-commerce-sp-validity" ] } }
-              ]
-            },
-            { "AND" : [
-                { "NOT data_is" : {
-                    "data" : [ "account:field-commerce-sp-skip-expire" ],
-                    "value" : [ "account-unchanged:field-commerce-sp-skip-expire" ]
-                  }
-                },
-                { "data_is_empty" : { "data" : [ "account:field-commerce-sp-skip-expire" ] } }
-              ]
-            }
-          ]
-        }
-      ],
-      "DO" : [
-        { "component_rules_commerce_sp_schedule_subscription_expiration" : { "account" : [ "account" ] } }
-      ]
-    }
-  }');
   $items['rules_commerce_sp_subscription_validity_is_unset'] = entity_import('rules_config', '{ "rules_commerce_sp_subscription_validity_is_unset" : {
       "LABEL" : "End subscription when validity is unset",
       "PLUGIN" : "reaction rule",
