NET-673 IMAPClient.APPEND does not always calculate the correct length
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d7b5670..643e18d 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -74,6 +74,9 @@
  The examples are not part of the public API, so this does not affect compatibility.
 
 ">
+            <action issue="NET-673" type="fix" dev="sebb">
+            IMAPClient.APPEND does not always calculate the correct length
+            </action>
             <action issue="NET-646" type="add" dev="sebb">
             ALLO FTP Command for files >2GB
             </action>
diff --git a/src/main/java/org/apache/commons/net/imap/IMAPClient.java b/src/main/java/org/apache/commons/net/imap/IMAPClient.java
index fd243a3..51e306f 100644
--- a/src/main/java/org/apache/commons/net/imap/IMAPClient.java
+++ b/src/main/java/org/apache/commons/net/imap/IMAPClient.java
@@ -266,12 +266,12 @@
             }
         }
         args.append(" ");
-        // String literal (probably not used much - it at all)
+        // String literal (probably not used much - if at all)
         if (message.startsWith(DQUOTE_S) && message.endsWith(DQUOTE_S)) {
             args.append(message);
             return doCommand (IMAPCommand.APPEND, args.toString());
         }
-        args.append('{').append(message.length()).append('}'); // length of message
+        args.append('{').append(message.getBytes(IMAP.__DEFAULT_ENCODING).length).append('}'); // length of message
         final int status = sendCommand(IMAPCommand.APPEND, args.toString());
         return IMAPReply.isContinuation(status) // expecting continuation response
             && IMAPReply.isSuccess(sendData(message)); // if so, send the data