diff --git a/garr/tomcat/manifests/classes/admin.pp b/garr/tomcat/manifests/classes/admin.pp
index f3df62dbb9c50fba0d1cd9c9f5a431bf7e8ba1b5..f1d928b7efccae34ecad0d954dd63f47710f4d67 100644
--- a/garr/tomcat/manifests/classes/admin.pp
+++ b/garr/tomcat/manifests/classes/admin.pp
@@ -7,14 +7,12 @@
 # +tomcat_admin_password+:: If the Tomcat administration interface is going to be installed this parameter permits to specify the password for the 'admin' user used by tomcat to access the administration interface. 
 # +tomcat_manager_password+:: If the Tomcat administration interface is going to be installed this parameter permits to specify the password for the 'manager' user used by tomcat to access the administration interface.
 #
-class tomcat::admin(
-  $tomcat_admin_password = 'adminpassword',
-  $tomcat_manager_password = 'managerpassword',
-) {
-  
-  $curtomcat = $::tomcat::curtomcat
-  
-  Class[$curtomcat] -> Class['tomcat::admin']
+	class tomcat::admin(
+	  $tomcat_admin_password = 'adminpassword',
+	  $tomcat_manager_password = 'managerpassword',
+	) {
+	  
+	$curtomcat = $::tomcat::curtomcat
   
   package { "tomcat-admin":
     ensure => present,
@@ -22,6 +20,8 @@ class tomcat::admin(
     require => Package[$curtomcat],
   }
   
+  Class["Tomcat::Admin"] ~> Service[$curtomcat]
+  
   augeas { "tomcat_users_role_manager":
     context   => "/files/etc/${curtomcat}/tomcat-users.xml",
     changes   => [
diff --git a/garr/tomcat/manifests/classes/tomcat6.pp b/garr/tomcat/manifests/classes/tomcat6.pp
index bb70a9d72b68cc174e5c2eeeda26a41cd3cda760..be42bbb1d114689174cb7129cbde376152110746 100644
--- a/garr/tomcat/manifests/classes/tomcat6.pp
+++ b/garr/tomcat/manifests/classes/tomcat6.pp
@@ -13,11 +13,14 @@ class tomcat::tomcat6 {
 
   package {
     ["liblog4j1.2-java", "libcommons-logging-java", "libtomcat6-java"]:
-      ensure => present;
+      ensure => present,
+      before  => Class['tomcat::admin'],
+      require => Class['shib2common::java::package'];
   
     ["tomcat6-common", "tomcat6"]:
-      ensure => present;
-
+      ensure => present,
+      before  => Class['tomcat::admin'],
+      require => Class['shib2common::java::package'];
   }
 
   service { "tomcat6":
diff --git a/garr/tomcat/manifests/classes/tomcat7.pp b/garr/tomcat/manifests/classes/tomcat7.pp
index 5784f2c993052cfbbaf686239c34f1dd1a18ce0d..320deeb2c1dfddc601953a1048c095b7e9bd3c3d 100644
--- a/garr/tomcat/manifests/classes/tomcat7.pp
+++ b/garr/tomcat/manifests/classes/tomcat7.pp
@@ -14,10 +14,12 @@ class tomcat::tomcat7 {
   package {
     ["liblog4j1.2-java", "libcommons-logging-java", "libtomcat7-java"]:
       ensure  => present,
+      before  => Class['tomcat::admin'],
       require => Class['shib2common::java::package'];
   
     ["tomcat7-common", "tomcat7"]:
       ensure  => present,
+      before  => Class['tomcat::admin'],
       require => Class['shib2common::java::package'];
 
   }
@@ -33,16 +35,6 @@ class tomcat::tomcat7 {
   $catalina_home = '/var/lib/tomcat7'
   
   # Default JVM options
-  file {"${tomcat_home}/bin/setenv.sh":
-    content  => join(['export JAVA_HOME="/usr/lib/jvm/java-7-oracle"',
-                      'export JAVA_ENDORSED_DIRS="/usr/share/tomcat7/endorsed"'], "\n"),
-    owner   => "root",
-    group   => "root",
-    mode    => 755,
-    require => Package["tomcat7"],
-    before  => Service["tomcat7"],
-  }
-  
   file { "log4j.properties":
     path => "${catalina_home}/conf/log4j.properties",
     source => $::log4j_conffile ? {
@@ -50,6 +42,7 @@ class tomcat::tomcat7 {
       ""      => "puppet:///modules/tomcat/conf/log4j.rolling.properties",
     },
     require => Package["tomcat7"],
+    before  => Service["tomcat7"],
   }
   
   # Verify that /etc/environment has the correct lines