diff --git a/policy/modules/services/amavis.if b/policy/modules/services/amavis.if
index db18f31c5..22523cdca 100644
--- a/policy/modules/services/amavis.if
+++ b/policy/modules/services/amavis.if
@@ -18,9 +18,28 @@ interface(`amavis_domtrans',`
type amavis_t, amavis_exec_t;
')
+ corecmd_search_bin($1)
domtrans_pattern($1, amavis_exec_t, amavis_t)
')
+########################################
+##
+## Execute amavis server in the amavis domain.
+##
+##
+##
+## The type of the process performing this action.
+##
+##
+#
+interface(`amavis_initrc_domtrans',`
+ gen_require(`
+ type afs_initrc_exec_t;
+ ')
+
+ init_labeled_script_domtrans($1, amavis_initrc_exec_t)
+')
+
########################################
##
## Read amavis spool files.
@@ -209,13 +228,12 @@ interface(`amavis_admin',`
type amavis_t, amavis_tmp_t, amavis_var_log_t;
type amavis_spool_t, amavis_var_lib_t, amavis_var_run_t;
type amavis_etc_t, amavis_quarantine_t;
- type amavis_initrc_exec_t;
')
allow $1 amavis_t:process { ptrace signal_perms };
ps_process_pattern($1, amavis_t)
- init_labeled_script_domtrans($1, amavis_initrc_exec_t)
+ amavis_initrc_domtrans($1)
domain_system_change_exemption($1)
role_transition $2 amavis_initrc_exec_t system_r;
allow $2 system_r;