diff --git a/relation_select.module b/relation_select.module
index 0d148bc..db1d8c6 100644
--- a/relation_select.module
+++ b/relation_select.module
@@ -824,20 +824,25 @@ function relation_select_entity_get_relations($entity_type, $entity_id, $relatio
  * @param string $entity_type
  */
 function relation_select_get_relation_types($entity_type, $bundle){
-  $query = db_select('relation_bundles', 'rb');
-  $query->fields('rb', array(
-    'relation_type'
-  ));
-  $query->join('relation_type', 'rt', 'rb.relation_type = rt.relation_type');
-  $query->fields('rt', array(
-    'label'
-  ));
-  $query->condition('entity_type', $entity_type);
-  $query->where('bundle = :bundle OR bundle = :asterisk', array(
-    ':bundle' => $bundle,
-    ':asterisk' => '*'
-  ));
-  $results = $query->execute();
+  $all_relation_types = relation_get_types();
+
+  $bundle_key = $entity_type . ':' . $bundle;
+  $bundle_wildcard_key = $entity_type . ':' . '*';
+
+  $results = array();
+  
+  foreach ($all_relation_types as $type) {
+    foreach ($type->source_bundles as $source_bundle) {
+      if ($source_bundle == $bundle_key || $source_bundle == $bundle_wildcard_key) {
+        $rel = new stdClass();
+        $rel->relation_type = $type->relation_type;
+        $rel->label = $type->label;
+        $results[$type->relation_type] = $rel;
+        break;
+      }
+    }
+  }
+  
   $relation_types = array();
   foreach($results as $relation_type){
     $relation_types[$relation_type->relation_type] = $relation_type;
