diff --git a/commerce_coupon.module b/commerce_coupon.module
index aa1ca02..de7391d 100644
--- a/commerce_coupon.module
+++ b/commerce_coupon.module
@@ -1041,8 +1041,8 @@ function commerce_coupon_reference_field($field_name, $cardinality) {
  * Implements hook_ctools_plugin_directory().
  */
 function commerce_coupon_ctools_plugin_directory($module, $plugin) {
-  if ($module == 'entityreference' && $plugin == 'selection') {
-    return 'plugins/' . $plugin;
+  if ($module == 'entityreference') {
+    return 'plugins/' . $module . '/' . $plugin;
   }
 }
 
diff --git a/plugins/entityreference/selection/EntityReference_SelectionHandler_CommerceCoupon.class.php b/plugins/entityreference/selection/EntityReference_SelectionHandler_CommerceCoupon.class.php
new file mode 100644
index 0000000..c21fe16
--- /dev/null
+++ b/plugins/entityreference/selection/EntityReference_SelectionHandler_CommerceCoupon.class.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * @file
+ * Defines a Entityreference selection handler for Commerce Coupon.
+ */
+
+/**
+ * Extend the entity reference selection class to use the coupon code for
+ * building the EFQ.
+ */
+class EntityReference_SelectionHandler_CommerceCoupon extends EntityReference_SelectionHandler_Generic {
+  public function buildEntityFieldQuery($match = NULL, $match_operator = 'CONTAINS') {
+    $query = parent::buildEntityFieldQuery($match, $match_operator);
+    // If there's a match, query the coupon code.
+    if (isset($match)) {
+      $query->fieldCondition('commerce_coupon_code', 'value', $match, $match_operator);
+    }
+    return $query;
+  }
+
+  public function getLabel($entity) {
+    $wrapper = entity_metadata_wrapper('commerce_coupon', $entity);
+    return $wrapper->commerce_coupon_code->value();
+  }
+}
diff --git a/plugins/entityreference/selection/commerce_coupon.inc b/plugins/entityreference/selection/commerce_coupon.inc
new file mode 100644
index 0000000..166c10a
--- /dev/null
+++ b/plugins/entityreference/selection/commerce_coupon.inc
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * @file
+ * Ctools plugin that provides a special Entityreference selection for
+ * Commerce Coupon.
+ */
+
+$plugin = array(
+  'title' => t('Commerce coupon'),
+  'class' => 'EntityReference_SelectionHandler_CommerceCoupon',
+  'weight' => 0,
+);
diff --git a/plugins/selection/base.inc b/plugins/selection/base.inc
deleted file mode 100644
index 02f6823..0000000
--- a/plugins/selection/base.inc
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-$plugin = array(
-  'title' => t('Coupon simple'),
-  'handler' => array(
-    'class' => 'EntityReference_SelectionHandler_Generic_commerce_coupon',
-  ),
-);
-
-include_once drupal_get_path('module', 'entityreference') . '/plugins/selection/EntityReference_SelectionHandler_Generic.class.php';
-
-/**
- * Extend the entity reference selection class to use the coupon code for
- * building the EFQ.
- */
-class EntityReference_SelectionHandler_Generic_commerce_coupon extends EntityReference_SelectionHandler_Generic {
-  public function buildEntityFieldQuery($match = NULL, $match_operator = 'CONTAINS') {
-    $query = parent::buildEntityFieldQuery($match, $match_operator);
-    
-    // If there's a match, query the coupon code.
-    if (isset($match)) {
-      $query->fieldCondition('commerce_coupon_code', 'value', $match, $match_operator);
-    }
-    return $query;
-  }
-
-  public function getLabel($entity) {
-    $wrapper = entity_metadata_wrapper('commerce_coupon', $entity);
-    return $wrapper->commerce_coupon_code->value();
-  }
-  
-}
\ No newline at end of file
