diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
index ed6a6478951ceb317b7ead01a8099e043abd885b..773f8b46ed32c40326e34e868ca4595d4d33345a 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -1952,9 +1952,15 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
                 buf.append("<br><i>").append(_("Choked")).append("</i>");
                 appended = true;
             }
-            if (peer.getConsecutiveFailedSends() > 0) {
+            int cfs = peer.getConsecutiveFailedSends();
+            if (cfs > 0) {
                 if (!appended) buf.append("<br>");
-                buf.append(" <i>").append(peer.getConsecutiveFailedSends()).append(' ').append(_("fail(s)")).append("</i>");
+                buf.append(" <i>");
+                if (cfs == 1)
+                    buf.append(_("1 fail"));
+                else
+                    buf.append(_("{0} fails", cfs));
+                buf.append("</i>");
                 appended = true;
             }
             if (_context.shitlist().isShitlisted(peer.getRemotePeer(), STYLE)) {
@@ -2182,6 +2188,13 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
         return Translate.getString(s, _context, BUNDLE_NAME);
     }
 
+    /**
+     *  Translate
+     */
+    private final String _(String s, Object o) {
+        return Translate.getString(s, o, _context, BUNDLE_NAME);
+    }
+
     /*
      * Cache the bid to reduce object churn
      */