diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeFormatter.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeFormatter.java
index a35b30e..5006f9e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeFormatter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeFormatter.java
@@ -129,40 +129,6 @@ public void formatMergeDiff3(OutputStream out,
 	 *            the name ranges from ours should get
 	 * @param theirsName
 	 *            the name ranges from theirs should get
-	 * @param charsetName
-	 *            the name of the character set used when writing conflict
-	 *            metadata
-	 * @throws java.io.IOException
-	 *             if an IO error occurred
-	 * @deprecated use
-	 *             {@link #formatMerge(OutputStream, MergeResult, String, String, String, Charset)}
-	 *             instead.
-	 */
-	@Deprecated
-	public void formatMerge(OutputStream out, MergeResult res, String baseName,
-			String oursName, String theirsName, String charsetName) throws IOException {
-		formatMerge(out, res, baseName, oursName, theirsName,
-				Charset.forName(charsetName));
-	}
-
-	/**
-	 * Formats the results of a merge of exactly two
-	 * {@link org.eclipse.jgit.diff.RawText} objects in a Git conformant way.
-	 * This convenience method accepts the names for the three sequences (base
-	 * and the two merged sequences) as explicit parameters and doesn't require
-	 * the caller to specify a List
-	 *
-	 * @param out
-	 *            the {@link java.io.OutputStream} where to write the textual
-	 *            presentation
-	 * @param res
-	 *            the merge result which should be presented
-	 * @param baseName
-	 *            the name ranges from the base should get
-	 * @param oursName
-	 *            the name ranges from ours should get
-	 * @param theirsName
-	 *            the name ranges from theirs should get
 	 * @param charset
 	 *            the character set used when writing conflict metadata
 	 * @throws java.io.IOException
