diff --git a/src/main/java/org/apache/james/mime4j/util/Base64InputStream.java b/src/main/java/org/apache/james/mime4j/decoder/Base64InputStream.java
similarity index 98%
rename from src/main/java/org/apache/james/mime4j/util/Base64InputStream.java
rename to src/main/java/org/apache/james/mime4j/decoder/Base64InputStream.java
index d926c84..930b982 100644
--- a/src/main/java/org/apache/james/mime4j/util/Base64InputStream.java
+++ b/src/main/java/org/apache/james/mime4j/decoder/Base64InputStream.java
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/james/mime4j/util/ByteQueue.java b/src/main/java/org/apache/james/mime4j/decoder/ByteQueue.java
similarity index 96%
rename from src/main/java/org/apache/james/mime4j/util/ByteQueue.java
rename to src/main/java/org/apache/james/mime4j/decoder/ByteQueue.java
index ca3fb84..cff3766 100644
--- a/src/main/java/org/apache/james/mime4j/util/ByteQueue.java
+++ b/src/main/java/org/apache/james/mime4j/decoder/ByteQueue.java
@@ -17,11 +17,11 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.util.Iterator;
 
-public class ByteQueue {
+class ByteQueue {
 
     private UnboundedFifoByteBuffer buf;
     private int initialCapacity = -1;
diff --git a/src/main/java/org/apache/james/mime4j/util/CodecUtil.java b/src/main/java/org/apache/james/mime4j/decoder/CodecUtil.java
similarity index 99%
rename from src/main/java/org/apache/james/mime4j/util/CodecUtil.java
rename to src/main/java/org/apache/james/mime4j/decoder/CodecUtil.java
index d9fa485..5f33bbb 100644
--- a/src/main/java/org/apache/james/mime4j/util/CodecUtil.java
+++ b/src/main/java/org/apache/james/mime4j/decoder/CodecUtil.java
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/james/mime4j/util/DecoderUtil.java b/src/main/java/org/apache/james/mime4j/decoder/DecoderUtil.java
similarity index 98%
rename from src/main/java/org/apache/james/mime4j/util/DecoderUtil.java
rename to src/main/java/org/apache/james/mime4j/decoder/DecoderUtil.java
index 89128c8..01ac636 100644
--- a/src/main/java/org/apache/james/mime4j/util/DecoderUtil.java
+++ b/src/main/java/org/apache/james/mime4j/decoder/DecoderUtil.java
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -26,6 +26,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.james.mime4j.util.CharArrayBuffer;
+import org.apache.james.mime4j.util.CharsetUtil;
 
 /**
  * Static methods for decoding strings, byte arrays and encoded words.
diff --git a/src/main/java/org/apache/james/mime4j/util/QuotedPrintableInputStream.java b/src/main/java/org/apache/james/mime4j/decoder/QuotedPrintableInputStream.java
similarity index 99%
rename from src/main/java/org/apache/james/mime4j/util/QuotedPrintableInputStream.java
rename to src/main/java/org/apache/james/mime4j/decoder/QuotedPrintableInputStream.java
index 6093807..1ad711f 100644
--- a/src/main/java/org/apache/james/mime4j/util/QuotedPrintableInputStream.java
+++ b/src/main/java/org/apache/james/mime4j/decoder/QuotedPrintableInputStream.java
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/james/mime4j/util/UnboundedFifoByteBuffer.java b/src/main/java/org/apache/james/mime4j/decoder/UnboundedFifoByteBuffer.java
similarity index 99%
rename from src/main/java/org/apache/james/mime4j/util/UnboundedFifoByteBuffer.java
rename to src/main/java/org/apache/james/mime4j/decoder/UnboundedFifoByteBuffer.java
index 7558df3..dc32caf 100644
--- a/src/main/java/org/apache/james/mime4j/util/UnboundedFifoByteBuffer.java
+++ b/src/main/java/org/apache/james/mime4j/decoder/UnboundedFifoByteBuffer.java
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.util.Iterator;
 import java.util.NoSuchElementException;
diff --git a/src/main/java/org/apache/james/mime4j/field/UnstructuredField.java b/src/main/java/org/apache/james/mime4j/field/UnstructuredField.java
index 25890ca..5e2adf9 100644
--- a/src/main/java/org/apache/james/mime4j/field/UnstructuredField.java
+++ b/src/main/java/org/apache/james/mime4j/field/UnstructuredField.java
@@ -19,7 +19,7 @@
 
 package org.apache.james.mime4j.field;
 
-import org.apache.james.mime4j.util.DecoderUtil;
+import org.apache.james.mime4j.decoder.DecoderUtil;
 
 
 /**
diff --git a/src/main/java/org/apache/james/mime4j/field/address/Builder.java b/src/main/java/org/apache/james/mime4j/field/address/Builder.java
index cdeb4cb..30b8abe 100644
--- a/src/main/java/org/apache/james/mime4j/field/address/Builder.java
+++ b/src/main/java/org/apache/james/mime4j/field/address/Builder.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.mime4j.field.address;
 
+import org.apache.james.mime4j.decoder.DecoderUtil;
 import org.apache.james.mime4j.field.address.parser.ASTaddr_spec;
 import org.apache.james.mime4j.field.address.parser.ASTaddress;
 import org.apache.james.mime4j.field.address.parser.ASTaddress_list;
@@ -33,7 +34,6 @@
 import org.apache.james.mime4j.field.address.parser.Node;
 import org.apache.james.mime4j.field.address.parser.SimpleNode;
 import org.apache.james.mime4j.field.address.parser.Token;
-import org.apache.james.mime4j.util.DecoderUtil;
 
 import java.util.ArrayList;
 import java.util.Iterator;
diff --git a/src/main/java/org/apache/james/mime4j/message/SimpleContentHandler.java b/src/main/java/org/apache/james/mime4j/message/SimpleContentHandler.java
index f6112a9..5f8a68c 100644
--- a/src/main/java/org/apache/james/mime4j/message/SimpleContentHandler.java
+++ b/src/main/java/org/apache/james/mime4j/message/SimpleContentHandler.java
@@ -20,11 +20,11 @@
 package org.apache.james.mime4j.message;
 
 import org.apache.james.mime4j.BodyDescriptor;
+import org.apache.james.mime4j.decoder.Base64InputStream;
+import org.apache.james.mime4j.decoder.QuotedPrintableInputStream;
 import org.apache.james.mime4j.field.Field;
 import org.apache.james.mime4j.parser.AbstractContentHandler;
-import org.apache.james.mime4j.util.Base64InputStream;
 import org.apache.james.mime4j.util.MimeUtil;
-import org.apache.james.mime4j.util.QuotedPrintableInputStream;
 
 import java.io.InputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/james/mime4j/message/TempFileBinaryBody.java b/src/main/java/org/apache/james/mime4j/message/TempFileBinaryBody.java
index 1965c49..357d214 100644
--- a/src/main/java/org/apache/james/mime4j/message/TempFileBinaryBody.java
+++ b/src/main/java/org/apache/james/mime4j/message/TempFileBinaryBody.java
@@ -23,13 +23,13 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.apache.james.mime4j.decoder.Base64InputStream;
+import org.apache.james.mime4j.decoder.CodecUtil;
+import org.apache.james.mime4j.decoder.QuotedPrintableInputStream;
 import org.apache.james.mime4j.message.storage.TempFile;
 import org.apache.james.mime4j.message.storage.TempPath;
 import org.apache.james.mime4j.message.storage.TempStorage;
-import org.apache.james.mime4j.util.Base64InputStream;
-import org.apache.james.mime4j.util.CodecUtil;
 import org.apache.james.mime4j.util.MimeUtil;
-import org.apache.james.mime4j.util.QuotedPrintableInputStream;
 
 
 /**
diff --git a/src/main/java/org/apache/james/mime4j/message/TempFileTextBody.java b/src/main/java/org/apache/james/mime4j/message/TempFileTextBody.java
index 234bebb..4ef62a1 100644
--- a/src/main/java/org/apache/james/mime4j/message/TempFileTextBody.java
+++ b/src/main/java/org/apache/james/mime4j/message/TempFileTextBody.java
@@ -28,11 +28,11 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.james.mime4j.decoder.CodecUtil;
 import org.apache.james.mime4j.message.storage.TempFile;
 import org.apache.james.mime4j.message.storage.TempPath;
 import org.apache.james.mime4j.message.storage.TempStorage;
 import org.apache.james.mime4j.util.CharsetUtil;
-import org.apache.james.mime4j.util.CodecUtil;
 
 
 /**
diff --git a/src/main/java/org/apache/james/mime4j/parser/MimeEntity.java b/src/main/java/org/apache/james/mime4j/parser/MimeEntity.java
index cbb6280..da1b237 100644
--- a/src/main/java/org/apache/james/mime4j/parser/MimeEntity.java
+++ b/src/main/java/org/apache/james/mime4j/parser/MimeEntity.java
@@ -5,14 +5,14 @@
 
 import org.apache.james.mime4j.BodyDescriptor;
 import org.apache.james.mime4j.MimeException;
+import org.apache.james.mime4j.decoder.Base64InputStream;
+import org.apache.james.mime4j.decoder.QuotedPrintableInputStream;
 import org.apache.james.mime4j.stream.BufferingInputStream;
 import org.apache.james.mime4j.stream.BufferingInputStreamAdaptor;
 import org.apache.james.mime4j.stream.MimeBoundaryInputStream;
 import org.apache.james.mime4j.stream.RootInputStream;
-import org.apache.james.mime4j.util.Base64InputStream;
 import org.apache.james.mime4j.util.InputBuffer;
 import org.apache.james.mime4j.util.MimeUtil;
-import org.apache.james.mime4j.util.QuotedPrintableInputStream;
 
 public class MimeEntity extends AbstractEntity {
 
diff --git a/src/main/java/org/apache/james/mime4j/parser/MimeTokenStream.java b/src/main/java/org/apache/james/mime4j/parser/MimeTokenStream.java
index 2a57d45..21ac846 100644
--- a/src/main/java/org/apache/james/mime4j/parser/MimeTokenStream.java
+++ b/src/main/java/org/apache/james/mime4j/parser/MimeTokenStream.java
@@ -30,12 +30,12 @@
 
 import org.apache.james.mime4j.BodyDescriptor;
 import org.apache.james.mime4j.MimeException;
+import org.apache.james.mime4j.decoder.Base64InputStream;
+import org.apache.james.mime4j.decoder.QuotedPrintableInputStream;
 import org.apache.james.mime4j.stream.BasicBufferingInputStream;
 import org.apache.james.mime4j.stream.RootInputStream;
-import org.apache.james.mime4j.util.Base64InputStream;
 import org.apache.james.mime4j.util.InputBuffer;
 import org.apache.james.mime4j.util.MimeUtil;
-import org.apache.james.mime4j.util.QuotedPrintableInputStream;
 
 /**
  * <p>
diff --git a/src/test/java/org/apache/james/mime4j/util/Base64InputStreamTest.java b/src/test/java/org/apache/james/mime4j/decoder/Base64InputStreamTest.java
similarity index 98%
rename from src/test/java/org/apache/james/mime4j/util/Base64InputStreamTest.java
rename to src/test/java/org/apache/james/mime4j/decoder/Base64InputStreamTest.java
index 03a5125..ac17552 100644
--- a/src/test/java/org/apache/james/mime4j/util/Base64InputStreamTest.java
+++ b/src/test/java/org/apache/james/mime4j/decoder/Base64InputStreamTest.java
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -25,7 +25,7 @@
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 
-import org.apache.james.mime4j.util.Base64InputStream;
+import org.apache.james.mime4j.decoder.Base64InputStream;
 import org.apache.log4j.BasicConfigurator;
 
 import junit.framework.TestCase;
diff --git a/src/test/java/org/apache/james/mime4j/util/CodecUtilTest.java b/src/test/java/org/apache/james/mime4j/decoder/CodecUtilTest.java
similarity index 97%
rename from src/test/java/org/apache/james/mime4j/util/CodecUtilTest.java
rename to src/test/java/org/apache/james/mime4j/decoder/CodecUtilTest.java
index 866b3b1..449ea79 100644
--- a/src/test/java/org/apache/james/mime4j/util/CodecUtilTest.java
+++ b/src/test/java/org/apache/james/mime4j/decoder/CodecUtilTest.java
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
diff --git a/src/test/java/org/apache/james/mime4j/util/DecoderUtilTest.java b/src/test/java/org/apache/james/mime4j/decoder/DecoderUtilTest.java
similarity index 97%
rename from src/test/java/org/apache/james/mime4j/util/DecoderUtilTest.java
rename to src/test/java/org/apache/james/mime4j/decoder/DecoderUtilTest.java
index 6889456..2af8bc1 100644
--- a/src/test/java/org/apache/james/mime4j/util/DecoderUtilTest.java
+++ b/src/test/java/org/apache/james/mime4j/decoder/DecoderUtilTest.java
@@ -17,13 +17,13 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.io.UnsupportedEncodingException;
 
 import junit.framework.TestCase;
 
-import org.apache.james.mime4j.util.DecoderUtil;
+import org.apache.james.mime4j.decoder.DecoderUtil;
 import org.apache.log4j.BasicConfigurator;
 
 /**
diff --git a/src/test/java/org/apache/james/mime4j/util/QuotedPrintableEncodeTest.java b/src/test/java/org/apache/james/mime4j/decoder/QuotedPrintableEncodeTest.java
similarity index 97%
rename from src/test/java/org/apache/james/mime4j/util/QuotedPrintableEncodeTest.java
rename to src/test/java/org/apache/james/mime4j/decoder/QuotedPrintableEncodeTest.java
index 0111615..2668a45 100644
--- a/src/test/java/org/apache/james/mime4j/util/QuotedPrintableEncodeTest.java
+++ b/src/test/java/org/apache/james/mime4j/decoder/QuotedPrintableEncodeTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -25,6 +25,7 @@
 import java.util.Arrays;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.james.mime4j.decoder.QuotedPrintableInputStream;
 
 import junit.framework.TestCase;
 
diff --git a/src/test/java/org/apache/james/mime4j/util/QuotedPrintableInputStreamTest.java b/src/test/java/org/apache/james/mime4j/decoder/QuotedPrintableInputStreamTest.java
similarity index 96%
rename from src/test/java/org/apache/james/mime4j/util/QuotedPrintableInputStreamTest.java
rename to src/test/java/org/apache/james/mime4j/decoder/QuotedPrintableInputStreamTest.java
index 0429dff..06654b3 100644
--- a/src/test/java/org/apache/james/mime4j/util/QuotedPrintableInputStreamTest.java
+++ b/src/test/java/org/apache/james/mime4j/decoder/QuotedPrintableInputStreamTest.java
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mime4j.util;
+package org.apache.james.mime4j.decoder;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -27,7 +27,7 @@
 
 import junit.framework.TestCase;
 
-import org.apache.james.mime4j.util.QuotedPrintableInputStream;
+import org.apache.james.mime4j.decoder.QuotedPrintableInputStream;
 import org.apache.log4j.BasicConfigurator;
 
 /**
