diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java
index 356966a..fd7fd44 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/AbstractFetchCommand.java
@@ -49,6 +49,7 @@
 
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.text.MessageFormat;
 
 import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.ObjectId;
@@ -104,16 +105,19 @@
 			else if (0 <= cr)
 				s = cr;
 			else {
-				writer.format(CLIText.get().remoteMessage, pkt);
+				writer.print(MessageFormat.format(CLIText.get().remoteMessage,
+						pkt));
 				writer.println();
 				break;
 			}
 
 			if (pkt.charAt(s) == '\r') {
-				writer.format(CLIText.get().remoteMessage, pkt.substring(0, s));
+				writer.print(MessageFormat.format(CLIText.get().remoteMessage,
+						pkt.substring(0, s)));
 				writer.print('\r');
 			} else {
-				writer.format(CLIText.get().remoteMessage, pkt.substring(0, s));
+				writer.print(MessageFormat.format(CLIText.get().remoteMessage,
+						pkt.substring(0, s)));
 				writer.println();
 			}
 
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java
index 1b1a8c2..1b04989 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java
@@ -114,7 +114,9 @@
 		dst.getConfig().save();
 		db = dst;
 
-		out.format(CLIText.get().initializedEmptyGitRepositoryIn, gitdir.getAbsolutePath());
+		out.print(MessageFormat.format(
+				CLIText.get().initializedEmptyGitRepositoryIn, gitdir
+						.getAbsolutePath()));
 		out.println();
 		out.flush();
 
