diff --git a/apache-rat-core/src/main/java/org/apache/rat/ReportTransformer.java b/apache-rat-core/src/main/java/org/apache/rat/ReportTransformer.java
index 9507bdc..b22b336 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/ReportTransformer.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/ReportTransformer.java
@@ -41,7 +41,7 @@
 	private final Transformer transformer;
 
 	/** The in. */
-	private final Reader in;
+	private final Reader reader;
 
 	/**
 	 * Instantiates a new report transformer.
@@ -56,11 +56,11 @@
 	 *             the transformer configuration exception
 	 */
 	public ReportTransformer(final Writer out, final Reader style,
-			final Reader in) throws TransformerConfigurationException {
+			final Reader reader) throws TransformerConfigurationException {
 		this.out = out;
 		transformer = TransformerFactory.newInstance().newTransformer(
 				new StreamSource(style));
-		this.in = in;
+		this.reader = reader;
 	}
 
 	/**
@@ -76,11 +76,11 @@
 	 *             the transformer configuration exception
 	 */
 	public ReportTransformer(final Writer out, final InputStream style,
-			final Reader in) throws TransformerConfigurationException {
+			final Reader reader) throws TransformerConfigurationException {
 		this.out = out;
 		transformer = TransformerFactory.newInstance().newTransformer(
 				new StreamSource(style));
-		this.in = in;
+		this.reader = reader;
 	}
 
 	/*
@@ -103,7 +103,7 @@
 	 *             the transformer exception
 	 */
 	public void transform() throws TransformerException {
-		transformer.transform(new StreamSource(in), new StreamResult(out));
+		transformer.transform(new StreamSource(reader), new StreamResult(out));
 	}
 
 }
