diff --git a/refpolicy/policy/support/misc_macros.spt b/refpolicy/policy/support/misc_macros.spt
index 1f9d2b0..b4f4a2a 100644
--- a/refpolicy/policy/support/misc_macros.spt
+++ b/refpolicy/policy/support/misc_macros.spt
@@ -19,4 +19,10 @@ define(`shiftn',`ifelse($1,0,`shift($*)',`shiftn(decr($1),shift(shift($*)))')')
 #
 define(`context_template',`ifdef(`enable_mls',`$1:$2',`$1')') dnl
 
-define(`can_exec',`allow $1 $2:file { rx_file_perms execute_no_trans };')
+define(`can_exec',`
+	gen_require(`
+		class file { rx_file_perms execute_no_trans };
+	')
+
+	allow $1 $2:file { rx_file_perms execute_no_trans };
+')