diff --git a/uuid_services/uuid_services.module b/uuid_services/uuid_services.module
index 337b9ec..ded8d85 100644
--- a/uuid_services/uuid_services.module
+++ b/uuid_services/uuid_services.module
@@ -14,16 +14,29 @@
  */
 function uuid_services_services_resources_alter(&$resources, &$endpoint) {
   foreach (entity_get_info() as $entity_type => $entity_info) {
-    if (isset($entity_info['uuid']) && $entity_info['uuid'] == TRUE && isset($resources[$entity_type])) {
-      unset($resources[$entity_type]['operations']['create']);
+    if (isset($entity_info['uuid']) && $entity_info['uuid'] == TRUE) {
+      // Decide what resource key to use. Some modules (like services_entity)
+      // are using keys that are not the same as the entity type.
+      // This is a bit hacky, but it works.
+      if (isset($resources[$entity_type])) {
+        $key = $entity_type;
+      }
+      elseif (isset($resources['entity_' . $entity_type])) {
+        $key = 'entity_' . $entity_type;
+      }
+      else {
+        continue;
+      }
+
+      unset($resources[$key]['operations']['create']);
 
       // Alter 'retrieve' method to use UUID enabled functions and arguments.
-      $resources[$entity_type]['operations']['retrieve']['help'] = t('Retrieve %label entities based on UUID.', array('%label' => $entity_info['label']));
-      $resources[$entity_type]['operations']['retrieve']['callback'] = '_uuid_services_entity_retrieve';
-      $resources[$entity_type]['operations']['retrieve']['access callback'] = '_uuid_services_entity_access';
-      $resources[$entity_type]['operations']['retrieve']['access arguments'] = array('view');
-      $resources[$entity_type]['operations']['retrieve']['access arguments append'] = TRUE;
-      $resources[$entity_type]['operations']['retrieve']['args'] = array(
+      $resources[$key]['operations']['retrieve']['help'] = t('Retrieve %label entities based on UUID.', array('%label' => $entity_info['label']));
+      $resources[$key]['operations']['retrieve']['callback'] = '_uuid_services_entity_retrieve';
+      $resources[$key]['operations']['retrieve']['access callback'] = '_uuid_services_entity_access';
+      $resources[$key]['operations']['retrieve']['access arguments'] = array('view');
+      $resources[$key]['operations']['retrieve']['access arguments append'] = TRUE;
+      $resources[$key]['operations']['retrieve']['args'] = array(
         // This argument isn't exposed in the service, only used internally..
         array(
           'name' => 'entity_type',
@@ -41,12 +54,12 @@ function uuid_services_services_resources_alter(&$resources, &$endpoint) {
       );
 
       // Alter 'update' method to use UUID enabled functions and arguments.
-      $resources[$entity_type]['operations']['update']['help'] = t('Update or create %label entities based on UUID. The payload must be formatted according to the <a href="!url">OData protocol</a>.', array('%label' => $entity_info['label'], '!url' => 'http://www.odata.org/developers/protocols'));
-      $resources[$entity_type]['operations']['update']['callback'] = '_uuid_services_entity_update';
-      $resources[$entity_type]['operations']['update']['access callback'] = '_uuid_services_entity_access';
-      $resources[$entity_type]['operations']['update']['access arguments'] = array('update');
-      $resources[$entity_type]['operations']['update']['access arguments append'] = TRUE;
-      $resources[$entity_type]['operations']['update']['args'] = array(
+      $resources[$key]['operations']['update']['help'] = t('Update or create %label entities based on UUID. The payload must be formatted according to the <a href="!url">OData protocol</a>.', array('%label' => $entity_info['label'], '!url' => 'http://www.odata.org/developers/protocols'));
+      $resources[$key]['operations']['update']['callback'] = '_uuid_services_entity_update';
+      $resources[$key]['operations']['update']['access callback'] = '_uuid_services_entity_access';
+      $resources[$key]['operations']['update']['access arguments'] = array('update');
+      $resources[$key]['operations']['update']['access arguments append'] = TRUE;
+      $resources[$key]['operations']['update']['args'] = array(
         // This argument isn't exposed in the service, only used internally..
         array(
           'name' => 'entity_type',
@@ -70,12 +83,12 @@ function uuid_services_services_resources_alter(&$resources, &$endpoint) {
       );
 
       // Alter 'delete' method to use UUID enabled functions and arguments.
-      $resources[$entity_type]['operations']['delete']['help'] = t('Delete %label entities based on UUID.', array('%label' => $entity_info['label']));
-      $resources[$entity_type]['operations']['delete']['callback'] = '_uuid_services_entity_delete';
-      $resources[$entity_type]['operations']['delete']['access callback'] = '_uuid_services_entity_access';
-      $resources[$entity_type]['operations']['delete']['access arguments'] = array('delete');
-      $resources[$entity_type]['operations']['delete']['access arguments append'] = TRUE;
-      $resources[$entity_type]['operations']['delete']['args'] = array(
+      $resources[$key]['operations']['delete']['help'] = t('Delete %label entities based on UUID.', array('%label' => $entity_info['label']));
+      $resources[$key]['operations']['delete']['callback'] = '_uuid_services_entity_delete';
+      $resources[$key]['operations']['delete']['access callback'] = '_uuid_services_entity_access';
+      $resources[$key]['operations']['delete']['access arguments'] = array('delete');
+      $resources[$key]['operations']['delete']['access arguments append'] = TRUE;
+      $resources[$key]['operations']['delete']['args'] = array(
         // This argument isn't exposed in the service, only used internally..
         array(
           'name' => 'entity_type',
