diff --git a/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java b/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java
index a1f69fd..cc6b953 100644
--- a/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java
+++ b/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java
@@ -85,6 +85,24 @@
     /**
      * See <a href="http://java.sun.com/javase/6/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
      */
+    @Parameter( property = "jarsigner.providerName" )
+    private String providerName;
+
+    /**
+     * See <a href="http://java.sun.com/javase/6/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
+     */
+    @Parameter( property = "jarsigner.providerClass" )
+    private String providerClass;
+
+    /**
+     * See <a href="http://java.sun.com/javase/6/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
+     */
+    @Parameter( property = "jarsigner.providerArg" )
+    private String providerArg;
+
+    /**
+     * See <a href="http://java.sun.com/javase/6/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
+     */
     @Parameter( property = "jarsigner.alias" )
     private String alias;
 
@@ -469,6 +487,9 @@
         request.setArchive( archive );
         request.setKeystore( keystore );
         request.setStoretype( storetype );
+        request.setProviderArg( providerArg );
+        request.setProviderClass( providerClass );
+        request.setProviderName( providerName );
         request.setWorkingDirectory( workingDirectory );
         request.setMaxMemory( maxMemory );
         request.setArguments( arguments );
diff --git a/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java b/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java
index 0bbc12c..091cae9 100644
--- a/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java
+++ b/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java
@@ -57,24 +57,6 @@
     private String sigfile;
 
     /**
-     * See <a href="http://java.sun.com/javase/6/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
-     */
-    @Parameter( property = "jarsigner.providerName" )
-    private String providerName;
-
-    /**
-     * See <a href="http://java.sun.com/javase/6/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
-     */
-    @Parameter( property = "jarsigner.providerClass" )
-    private String providerClass;
-
-    /**
-     * See <a href="http://java.sun.com/javase/6/docs/technotes/tools/windows/jarsigner.html#Options">options</a>.
-     */
-    @Parameter( property = "jarsigner.providerArg" )
-    private String providerArg;
-
-    /**
      * Indicates whether existing signatures should be removed from the processed JAR files prior to signing them. If
      * enabled, the resulting JAR will appear as being signed only once.
      *
@@ -136,9 +118,6 @@
         throws MojoExecutionException
     {
         JarSignerSignRequest request = new JarSignerSignRequest();
-        request.setProviderArg( providerArg );
-        request.setProviderClass( providerClass );
-        request.setProviderName( providerName );
         request.setSigfile( sigfile );
         request.setTsaLocation( tsa );
         request.setTsaAlias( tsacert );
