diff --git a/router/java/src/net/i2p/router/transport/udp/ACKSender.java b/router/java/src/net/i2p/router/transport/udp/ACKSender.java
index 3dd2386c1679bd3a82d0b3f898b5123e6b13a030..d34d0cfa55787a70ef8e3e14b2cf3cdab848ea67 100644
--- a/router/java/src/net/i2p/router/transport/udp/ACKSender.java
+++ b/router/java/src/net/i2p/router/transport/udp/ACKSender.java
@@ -109,6 +109,8 @@ public class ACKSender implements Runnable {
                     ack.markType(1);
                     if (_log.shouldLog(Log.INFO))
                         _log.info("Sending ACK for " + ackBitfields);
+                    boolean ok = peer.allocateSendingBytes(ack.getPacket().getLength(), true);
+                    // ignore whether its ok or not, its a bloody ack.  this should be fixed, probably.
                     _transport.send(ack);
                     
                     if ( (wanted > 0) && (wanted <= peer.getWantedACKSendSince()) ) {
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 12495618eac5f20aece5502f98009f7dc47faec0..9dcc8af137a1df1539a362a3d104e0d24e3de2a1 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -884,7 +884,12 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
             buf.append(formatKBps(peer.getReceiveBps()));
             buf.append("KBps/");
             buf.append(formatKBps(peer.getSendBps()));
-            buf.append("KBps</td>");
+            buf.append("KBps ");
+            //buf.append(formatKBps(peer.getReceiveACKBps()));
+            //buf.append("KBps/");
+            //buf.append(formatKBps(peer.getSendACKBps()));
+            //buf.append("KBps ");
+            buf.append("</td>");
 
             buf.append("<td>");
             buf.append(DataHelper.formatDuration(now-peer.getKeyEstablishedTime()));
@@ -923,10 +928,15 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
             buf.append(peer.getPacketsReceived());
             buf.append("</td>");
             
-            double sendLostPct = (double)peer.getPacketsRetransmitted()/(double)PeerState.RETRANSMISSION_PERIOD_WIDTH;
+            double sent = (double)peer.getPacketsPeriodTransmitted();
+            double sendLostPct = 0;
+            if (sent > 0)
+                sendLostPct = (double)peer.getPacketsRetransmitted()/(sent);
+            
             buf.append("<td>");
             //buf.append(formatPct(sendLostPct));
-            buf.append(peer.getPacketRetransmissionRate());
+            buf.append(peer.getPacketsRetransmitted()); // + "/" + peer.getPacketsPeriodRetransmitted() + "/" + sent);
+            //buf.append(peer.getPacketRetransmissionRate());
             buf.append("</td>");
             
             double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived();