diff --git a/modules/salesforce_pull/salesforce_pull.module b/modules/salesforce_pull/salesforce_pull.module
index e44e4ff..8bfa560 100644
--- a/modules/salesforce_pull/salesforce_pull.module
+++ b/modules/salesforce_pull/salesforce_pull.module
@@ -375,3 +375,10 @@ function salesforce_pull_map_fields($field_maps, &$entity_wrapper, $sf_object) {
     }
   }
 }
+
+/**
+ * Avoid duplicate processing if entity has just been updated by Salesforce pull
+ */
+function salesforce_pull_salesforce_push_entity_allowed($entity_type, $entity, $sf_sync_trigger) { 
+  return !isset($entity->salesforce_pull) || !$entity->salesforce_pull;
+}
diff --git a/modules/salesforce_push/salesforce_push.module b/modules/salesforce_push/salesforce_push.module
index 304a116..6b6c055 100644
--- a/modules/salesforce_push/salesforce_push.module
+++ b/modules/salesforce_push/salesforce_push.module
@@ -39,14 +39,9 @@ function salesforce_push_entity_delete($entity, $type) {
  *   The trigger being responded to.
  */
 function salesforce_push_entity_crud($entity_type, $entity, $sf_sync_trigger) {
-  // Avoid duplicate processing if this entity has just been updated by
-  // Salesforce pull.
-  if (isset($entity->salesforce_pull) && $entity->salesforce_pull) {
-    return;
-  }
-
   // Trigger a hook to allow other modules to prevent this entity/operation from
   // triggering a sync with Salesforce.
+  // @see salesforce_pull_salesforce_push_entity_allowed()
   foreach (module_implements('salesforce_push_entity_allowed') as $module) {
     if (module_invoke($module, 'salesforce_push_entity_allowed', $entity_type, $entity, $sf_sync_trigger) === FALSE) {
       return;
