diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevCapability.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevCapability.java
index 1f0a3a1..0765b01 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevCapability.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevCapability.java
@@ -33,7 +33,7 @@
 
     private String toVersion;
 
-    private AccuRevCapability( String fromVersion, String toVersion )
+    AccuRevCapability( String fromVersion, String toVersion )
     {
         this.fromVersion = fromVersion;
         this.toVersion = toVersion;
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevStat.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevStat.java
index 14967b5..09275e4 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevStat.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/AccuRevStat.java
@@ -38,7 +38,7 @@
 
     private Pattern matchPattern;
 
-    private AccuRevStat( String statArg, String indicator )
+    AccuRevStat( String statArg, String indicator )
     {
         String pattern = "\\s*(\\S+)\\s+.*\\(" + indicator + "\\).*";
         matchPattern = Pattern.compile( pattern );
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/CommandOutputConsumer.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/CommandOutputConsumer.java
index 5ec951f..0013574 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/CommandOutputConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/CommandOutputConsumer.java
@@ -1,7 +1,5 @@
 package org.apache.maven.scm.provider.accurev.cli;
 
-import java.io.IOException;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -21,6 +19,8 @@
  * under the License.
  */
 
+import java.io.IOException;
+
 import org.apache.maven.scm.log.ScmLogger;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/ErrorConsumer.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/ErrorConsumer.java
index a37208b..31db5c9 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/ErrorConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/ErrorConsumer.java
@@ -42,7 +42,7 @@
 
     private final StringBuilder errors;
 
-    public ErrorConsumer( ScmLogger logger, StringBuilder errors )
+    ErrorConsumer( ScmLogger logger, StringBuilder errors )
     {
         this.logger = logger;
         this.errors = errors;
@@ -67,4 +67,4 @@
             logger.warn( line );
         }
     }
-}
\ No newline at end of file
+}
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/FileConsumer.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/FileConsumer.java
index 9c02d02..64cc7d1 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/FileConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/cli/FileConsumer.java
@@ -34,7 +34,7 @@
 {
     private Pattern filePattern;
 
-    public FileConsumer( List<File> matchedFilesAccumulator, Pattern filematcher )
+    FileConsumer( List<File> matchedFilesAccumulator, Pattern filematcher )
     {
         this.matchedFiles = matchedFilesAccumulator;
         this.filePattern = filematcher;
@@ -80,4 +80,4 @@
         }
 
     }
-}
\ No newline at end of file
+}
diff --git a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/util/QuotedPropertyParser.java b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/util/QuotedPropertyParser.java
index 9c9c085..eb3827c 100644
--- a/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/util/QuotedPropertyParser.java
+++ b/maven-scm-providers/maven-scm-provider-accurev/src/main/java/org/apache/maven/scm/provider/accurev/util/QuotedPropertyParser.java
@@ -144,7 +144,7 @@
      * 
      */
     // Has to be down here to avoid a QDOX exception
-    public static enum QuotedParseState
+    public enum QuotedParseState
     {
         KEY, IN_QUOTED_KEY, IN_QUOTED_VALUE, VALUE
     }
diff --git a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/tag/BazaarLsConsumer.java b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/tag/BazaarLsConsumer.java
index 5c93f6d..f310273 100644
--- a/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/tag/BazaarLsConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/tag/BazaarLsConsumer.java
@@ -52,7 +52,7 @@
      * @param repositoryRoot The root directory of this bazaar repository.
      * @param wantedStatus The status we'll report for the files listed.
      */
-    public BazaarLsConsumer( ScmLogger logger, File repositoryRoot, ScmFileStatus wantedStatus )
+    BazaarLsConsumer( ScmLogger logger, File repositoryRoot, ScmFileStatus wantedStatus )
     {
         super( logger );
         files = new LinkedList<ScmFile>();
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
index fcddb04..16d303b 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/main/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommand.java
@@ -167,7 +167,7 @@
 
         final String email;
 
-        public UserInfo( String name, String email )
+        UserInfo( String name, String email )
         {
             this.name = name;
             this.email = email;
