diff --git a/uc_order/uc_order.module b/uc_order/uc_order.module
index 97f85b2..05ed064 100644
--- a/uc_order/uc_order.module
+++ b/uc_order/uc_order.module
@@ -1938,15 +1938,11 @@ function uc_order_actions($order, $icon_html = FALSE) {
       }
       else {
         // See if any modules have a say in this order's eligibility for deletion
-        foreach (module_list() as $module) {
+        foreach (module_implements('order') as $module) {
           $function = $module .'_order';
-          // $order must be passed by reference.
-          if (function_exists($function) && ($response = $function('can_delete', $order, NULL))) {
-            // Break out early if possible.
-            if ($response === FALSE) {
-              $can_delete = FALSE;
-              break;
-            }
+          if ($function('can_delete', $order, NULL) === FALSE) {
+            $can_delete = FALSE;
+            break;
           }
         }
       }
