diff --git a/ada.fc b/ada.fc
index e802ed5..f1502de 100644
--- a/ada.fc
+++ b/ada.fc
@@ -1,7 +1,5 @@
-#
-# /usr
-#
/usr/bin/gnatbind -- gen_context(system_u:object_r:ada_exec_t,s0)
-/usr/bin/gnatls -- gen_context(system_u:object_r:ada_exec_t,s0)
+/usr/bin/gnatls -- gen_context(system_u:object_r:ada_exec_t,s0)
/usr/bin/gnatmake -- gen_context(system_u:object_r:ada_exec_t,s0)
-/usr/libexec/gcc(/.*)?/gnat1 -- gen_context(system_u:object_r:ada_exec_t,s0)
+
+/usr/libexec/gcc(/.*)?/gnat1 -- gen_context(system_u:object_r:ada_exec_t,s0)
diff --git a/ada.if b/ada.if
index 43ba21d..e514e8a 100644
--- a/ada.if
+++ b/ada.if
@@ -1,4 +1,4 @@
-## GNAT Ada95 compiler
+## GNAT Ada95 compiler.
########################################
##
@@ -37,9 +37,9 @@ interface(`ada_domtrans',`
#
interface(`ada_run',`
gen_require(`
- type ada_t;
+ attribute_role ada_roles;
')
ada_domtrans($1)
- role $2 types ada_t;
+ roleattribute $2 ada_roles;
')
diff --git a/ada.te b/ada.te
index 39c75fb..8b5ad06 100644
--- a/ada.te
+++ b/ada.te
@@ -1,14 +1,17 @@
-policy_module(ada, 1.4.0)
+policy_module(ada, 1.4.1)
########################################
#
# Declarations
#
+attribute_role ada_roles;
+roleattribute system_r ada_roles;
+
type ada_t;
type ada_exec_t;
application_domain(ada_t, ada_exec_t)
-role system_r types ada_t;
+role ada_roles types ada_t;
########################################
#