diff --git a/router/java/src/net/i2p/router/transport/udp/PeerState.java b/router/java/src/net/i2p/router/transport/udp/PeerState.java
index f93b62d2afe7676d0014b4e08337c44e6395cdae..00711eb296646c57c50eeae4408f98226eee45da 100644
--- a/router/java/src/net/i2p/router/transport/udp/PeerState.java
+++ b/router/java/src/net/i2p/router/transport/udp/PeerState.java
@@ -430,16 +430,6 @@ public class PeerState {
      */
     SessionKey getNextCipherKey() { return _nextCipherKey; }
 
-    /**
-     * The keying material used for the rekeying, or null if we are not in
-     * the process of rekeying.
-     * deprecated unused
-     */
-    //public byte[] getNextKeyingMaterial() { return _nextKeyingMaterial; }
-
-    /** true if we began the current rekeying, false otherwise */
-    //public boolean getRekeyBeganLocally() { return _rekeyBeganLocally; }
-
     /** when were the current cipher and MAC keys established/rekeyed? */
     public long getKeyEstablishedTime() { return _keyEstablishedTime; }
 
@@ -458,20 +448,6 @@ public class PeerState {
     /** how many seconds have we sent packets without any ACKs received? */
     public int getConsecutiveFailedSends() { return _consecutiveFailedSends; }
 
-    /**
-     *  have we received a packet with the ECN bit set in the current second?
-     *  @return false always
-     *  @deprecated unused, ECNs are never sent, always returns false
-     */
-    @Deprecated
-    public boolean getCurrentSecondECNReceived() { return _currentSecondECNReceived; }
-
-    /** 
-     * have all of the packets received in the current second requested that
-     * the previous second's ACKs be sent?
-     */
-    //public boolean getRemoteWantsPreviousACKs() { return _remoteWantsPreviousACKs; }
-
     /**
      *  how many bytes should we send to the peer in a second
      *  1st stat in CWND column, otherwise unused,
@@ -511,9 +487,6 @@ public class PeerState {
     /** what port is the peer sending and receiving packets on? */
     public int getRemotePort() { return _remotePort; }
 
-    /** if we need to contact them, do we need to talk to an introducer? */
-    //public boolean getRemoteRequiresIntroduction() { return _remoteRequiresIntroduction; }
-
     /** 
      * if we are serving as an introducer to them, this is the the tag that
      * they can publish that, when presented to us, will cause us to send
@@ -539,13 +512,6 @@ public class PeerState {
      */
     public int getReceiveMTU() { return _mtuReceive; }
 
-    /** when did we last check the MTU? */
-  /****
-    public long getMTULastChecked() { return _mtuLastChecked; }
-    public long getMTUIncreases() { return _mtuIncreases; }
-    public long getMTUDecreases() { return _mtuDecreases; }
-  ****/
-    
     /** 
      * The AES key used to verify packets, set only after the connection is
      * established.  
@@ -558,43 +524,6 @@ public class PeerState {
      */
     void setCurrentCipherKey(SessionKey key) { _currentCipherKey = key; }
 
-    /** 
-     * The pending AES key for verifying packets if we are rekeying the 
-     * connection, or null if we are not in the process of rekeying.
-     * @deprecated unused
-     */
-    @Deprecated
-    void setNextMACKey(SessionKey key) { _nextMACKey = key; }
-
-    /** 
-     * The pending AES key for encrypting/decrypting packets if we are 
-     * rekeying the connection, or null if we are not in the process 
-     * of rekeying.
-     * @deprecated unused
-     */
-    @Deprecated
-    void setNextCipherKey(SessionKey key) { _nextCipherKey = key; }
-
-    /**
-     * The keying material used for the rekeying, or null if we are not in
-     * the process of rekeying.
-     * @deprecated unused
-     */
-    //public void setNextKeyingMaterial(byte data[]) { _nextKeyingMaterial = data; }
-
-    /**
-     * @param local true if we began the current rekeying, false otherwise
-     * @deprecated unused
-     */
-    //public void setRekeyBeganLocally(boolean local) { _rekeyBeganLocally = local; }
-
-    /**
-     * when were the current cipher and MAC keys established/rekeyed?
-     * @deprecated unused
-     */
-    @Deprecated
-    void setKeyEstablishedTime(long when) { _keyEstablishedTime = when; }
-
     /**
      *  Update the moving-average clock skew based on the current difference.
      *  The raw skew will be adjusted for RTT/2 here.
@@ -672,16 +601,6 @@ public class PeerState {
         return now - lastActivity;
     }
     
-    /** how fast we are sending *ack* packets */
-    //public int getSendACKBps() { return _sendACKBps; }
-    //public int getReceiveACKBps() { return _receiveACKBps; }
-    
-    /** 
-     * have all of the packets received in the current second requested that
-     * the previous second's ACKs be sent?
-     */
-    //public void remoteDoesNotWantPreviousACKs() { _remoteWantsPreviousACKs = false; }
-    
     /** 
      * Decrement the remaining bytes in the current period's window,
      * returning true if the full size can be decremented, false if it
@@ -691,24 +610,12 @@ public class PeerState {
      *  Caller should synch
      */
     private boolean allocateSendingBytes(int size, int messagePushCount, long now) {
-        return allocateSendingBytes(size, false, messagePushCount, now);
-    }
-
-    /**
-     *  Caller should synch
-     */
-    private boolean allocateSendingBytes(int size, boolean isForACK, int messagePushCount, long now) { 
         long duration = now - _lastSendRefill;
         if (duration >= 1000) {
             _sendWindowBytesRemaining = _sendWindowBytes;
             _sendBytes += size;
             _sendBps = (int)(0.9f*_sendBps + 0.1f*(_sendBytes * (1000f/duration)));
-            //if (isForACK) {
-            //    _sendACKBytes += size;
-            //    _sendACKBps = (int)(0.9f*(float)_sendACKBps + 0.1f*((float)_sendACKBytes * (1000f/(float)duration)));
-            //}
             _sendBytes = 0;
-            //_sendACKBytes = 0;
             _lastSendRefill = now;
         }
 
@@ -737,17 +644,12 @@ public class PeerState {
                 _sendWindowBytesRemaining = 0; 
             _sendBytes += size;
             _lastSendTime = now;
-            //if (isForACK) 
-            //    _sendACKBytes += size;
             return true;
         } else {
             return false;
         }
     }
     
-    /** if we need to contact them, do we need to talk to an introducer? */
-    //public void setRemoteRequiresIntroduction(boolean required) { _remoteRequiresIntroduction = required; }
-
     /** 
      * if we are serving as an introducer to them, this is the the tag that
      * they can publish that, when presented to us, will cause us to send
@@ -763,14 +665,6 @@ public class PeerState {
      */
     void setTheyRelayToUsAs(long tag) { _theyRelayToUsAs = tag; }
 
-    /** what is the largest packet we can send to the peer? */
-  /****
-    public void setMTU(int mtu) { 
-        _mtu = mtu; 
-        _mtuLastChecked = _context.clock().now();
-    }
-  ****/
-
     /**
      *  stat in SST column, otherwise unused,
      *  candidate for removal
@@ -824,35 +718,18 @@ public class PeerState {
      *  We received the message specified completely.
      *  @param bytes if less than or equal to zero, message is a duplicate.
      */
-    void messageFullyReceived(Long messageId, int bytes) { messageFullyReceived(messageId, bytes, false); }
-
-    /** 
-     *  We received the message specified completely.
-     *  @param isForACK unused
-     *  @param bytes if less than or equal to zero, message is a duplicate.
-     */
-    private synchronized void messageFullyReceived(Long messageId, int bytes, boolean isForACK) {
+    void messageFullyReceived(Long messageId, int bytes) {
         if (bytes > 0) {
             _receiveBytes += bytes;
-            //if (isForACK)
-            //    _receiveACKBytes += bytes;
             _messagesReceived++;
         } else {
-            //if (true || _retransmissionPeriodStart + 1000 < _context.clock().now()) {
                 _packetsReceivedDuplicate++;
-            //} else {
-            //    _retransmissionPeriodStart = _context.clock().now();
-            //    _packetsReceivedDuplicate = 1;
-            //}
         }
         
         long now = _context.clock().now();
         long duration = now - _receivePeriodBegin;
         if (duration >= 1000) {
             _receiveBps = (int)(0.9f*_receiveBps + 0.1f*(_receiveBytes * (1000f/duration)));
-            //if (isForACK)
-            //    _receiveACKBps = (int)(0.9f*(float)_receiveACKBps + 0.1f*((float)_receiveACKBytes * (1000f/(float)duration)));
-            //_receiveACKBytes = 0;
             _receiveBytes = 0;
             _receivePeriodBegin = now;
            _context.statManager().addRateData("udp.receiveBps", _receiveBps);
@@ -916,14 +793,10 @@ public class PeerState {
         _lastCongestionOccurred = now;
         
         int congestionAt = _sendWindowBytes;
-        //if (true)
-        //    _sendWindowBytes -= 10000;
-        //else
-            _sendWindowBytes = _sendWindowBytes/2; //(_sendWindowBytes*2) / 3;
+        _sendWindowBytes = _sendWindowBytes/2; //(_sendWindowBytes*2) / 3;
         if (_sendWindowBytes < MINIMUM_WINDOW_BYTES)
             _sendWindowBytes = MINIMUM_WINDOW_BYTES;
-        //if (congestionAt/2 < _slowStartThreshold)
-            _slowStartThreshold = congestionAt/2;
+        _slowStartThreshold = congestionAt/2;
 
         int oldRto = _rto;
         long oldTimer = _retransmitTimer - now;
@@ -951,8 +824,6 @@ public class PeerState {
     List<Long> getCurrentFullACKs() {
             // no such element exception seen here
             List<Long> rv = new ArrayList<Long>(_currentACKs);
-            //if (_log.shouldLog(Log.DEBUG))
-            //    _log.debug("Returning " + _currentACKs.size() + " current acks");
             return rv;
     }
 
@@ -1117,8 +988,6 @@ public class PeerState {
 
         if (!rv.isEmpty())
             _lastACKSend = _context.clock().now();
-        //if (rv == null)
-        //    rv = Collections.EMPTY_LIST;
         if (partialIncluded > 0)
             _context.statManager().addRateData("udp.sendACKPartial", partialIncluded, rv.size() - partialIncluded);
         return rv;
@@ -1221,19 +1090,15 @@ public class PeerState {
         _lastReceiveTime = _context.clock().now();
         _lastSendFullyTime = _lastReceiveTime;
         
-        //if (true) {
-            if (_sendWindowBytesRemaining + bytesACKed <= _sendWindowBytes)
-                _sendWindowBytesRemaining += bytesACKed;
-            else
-                _sendWindowBytesRemaining = _sendWindowBytes;
-        //}
+        if (_sendWindowBytesRemaining + bytesACKed <= _sendWindowBytes)
+            _sendWindowBytesRemaining += bytesACKed;
+        else
+            _sendWindowBytesRemaining = _sendWindowBytes;
         
         if (numSends < 2) {
             // caller synchs
-            //synchronized (this) {
-                recalculateTimeouts(lifetime);
-                adjustMTU();
-            //}
+            recalculateTimeouts(lifetime);
+            adjustMTU();
         }
         
         if (!anyPending) {
@@ -1364,11 +1229,7 @@ public class PeerState {
 
     public synchronized int getPacketsTransmitted() { return _packetsTransmitted; }
     public synchronized int getPacketsRetransmitted() { return _packetsRetransmitted; }
-    //public long getPacketsPeriodTransmitted() { return _packetsPeriodTransmitted; }
-    //public int getPacketsPeriodRetransmitted() { return _packetsPeriodRetransmitted; }
 
-    /** avg number of packets retransmitted for every 100 packets */
-    //public long getPacketRetransmissionRate() { return _packetRetransmissionRate; }
     public synchronized int getPacketsReceived() { return _packetsReceived; }
     public synchronized int getPacketsReceivedDuplicate() { return _packetsReceivedDuplicate; }
 
@@ -1439,8 +1300,6 @@ public class PeerState {
      *  Used only by ACKSender.
      */
     boolean unsentACKThresholdReached() {
-        //int threshold = countMaxACKData() / 4;
-        //return _currentACKs.size() >= threshold;
         return _currentACKs.size() >= MAX_RESEND_ACKS / 2;
     }
 
@@ -1500,58 +1359,6 @@ public class PeerState {
         synchronized (_outboundQueue) {
             fail = !_outboundQueue.offer(state);
         }
-/****
-        synchronized (_outboundMessages) {
-            rv = _outboundMessages.size() + 1;
-            if (rv > MAX_SEND_MSGS_PENDING) { 
-                // too many queued messages to one peer?  nuh uh.
-                fail = true;
-                rv--;
-****/
-
-         /******* proactive tail drop disabled by jr 2006-04-19 so all this is pointless
-
-            } else if (_retransmitter != null) {
-                long lifetime = _retransmitter.getLifetime();
-                long totalLifetime = lifetime;
-                for (int i = 1; i < msgs.size(); i++) { // skip the first, as thats the retransmitter
-                    OutboundMessageState cur = msgs.get(i);
-                    totalLifetime += cur.getLifetime();
-                }
-                long remaining = -1;
-                OutNetMessage omsg = state.getMessage();
-                if (omsg != null)
-                    remaining = omsg.getExpiration() - _context.clock().now();
-                else
-                    remaining = 10*1000 - state.getLifetime();
-                
-                if (remaining <= 0)
-                    remaining = 1; // total lifetime will exceed it anyway, guaranteeing failure
-                float pDrop = totalLifetime / (float)remaining;
-                pDrop = pDrop * pDrop * pDrop;
-                if (false && (pDrop >= _context.random().nextFloat())) {
-                    if (_log.shouldLog(Log.WARN))
-                        _log.warn("Proactively tail dropping for " + _remotePeer.toBase64() + " (messages=" + msgs.size() 
-                                  + " headLifetime=" + lifetime + " totalLifetime=" + totalLifetime + " curLifetime=" + state.getLifetime() 
-                                  + " remaining=" + remaining + " pDrop=" + pDrop + ")");
-                    _context.statManager().addRateData("udp.queueDropSize", msgs.size(), totalLifetime);
-                    fail = true;
-                } else { 
-                    if (_log.shouldLog(Log.DEBUG))
-                        _log.debug("Probabalistically allowing for " + _remotePeer.toBase64() + " (messages=" + msgs.size() 
-                                   + " headLifetime=" + lifetime + " totalLifetime=" + totalLifetime + " curLifetime=" + state.getLifetime() 
-                                   + " remaining=" + remaining + " pDrop=" + pDrop + ")");
-                    _context.statManager().addRateData("udp.queueAllowTotalLifetime", totalLifetime, lifetime);
-                    msgs.add(state);
-                }
-
-             *******/
-/****
-            } else {
-                _outboundMessages.add(state);
-            }
-        }
-****/
         if (fail) {
             if (_log.shouldLog(Log.WARN))
                 _log.warn("Dropping msg, OB queue full for " + toString());
@@ -1832,28 +1639,15 @@ public class PeerState {
                               + "/" + getSendWindowBytes() 
                               + " remaining"
                               + " for message " + state.getMessageId() + ": " + state);
-
-
                 if (state.push())
                     _messagesSent++;
-            
-                //if (peer.getSendWindowBytesRemaining() > 0)
-                //    _throttle.unchoke(peer.getRemotePeer());
                 return true;
             } else {
                 _context.statManager().addRateData("udp.sendRejected", state.getPushCount());
-                //if (state.getMessage() != null)
-                //    state.getMessage().timestamp("send rejected, available=" + getSendWindowBytesRemaining());
                 if (_log.shouldLog(Log.INFO))
                     _log.info(_remotePeer + " Allocation of " + size + " rejected w/ wsize=" + getSendWindowBytes()
                               + " available=" + getSendWindowBytesRemaining()
                               + " for message " + state.getMessageId() + ": " + state);
-                //_throttle.choke(peer.getRemotePeer());
-
-                //if (state.getMessage() != null)
-                //    state.getMessage().timestamp("choked, not enough available, wsize=" 
-                //                                 + getSendWindowBytes() + " available="
-                //                                 + getSendWindowBytesRemaining());
                 return false;
             }
     }
@@ -1888,14 +1682,6 @@ public class PeerState {
         
         if (state != null) {
             int numSends = state.getMaxSends();
-            //if (state.getMessage() != null) {
-            //    state.getMessage().timestamp("acked after " + numSends
-            //                                 + " lastReceived: " 
-            //                                 + (_context.clock().now() - getLastReceiveTime())
-            //                                 + " lastSentFully: " 
-            //                                 + (_context.clock().now() - getLastSendFullyTime()));
-            //}
-
             if (_log.shouldLog(Log.INFO))
                 _log.info("Received ack of " + messageId + " by " + _remotePeer
                           + " after " + state.getLifetime() + " and " + numSends + " sends");
@@ -1915,8 +1701,6 @@ public class PeerState {
             }
             // this adjusts the rtt/rto/window/etc
             messageACKed(state.getMessageSize(), state.getLifetime(), numSends, anyPending, anyQueued);
-            //if (getSendWindowBytesRemaining() > 0)
-            //    _throttle.unchoke(peer.getRemotePeer());
             
         } else {
             // dupack, likely
@@ -1981,8 +1765,6 @@ public class PeerState {
                 if (state.getFragmentCount() > 1)
                     _context.statManager().addRateData("udp.sendConfirmFragments", state.getFragmentCount());
                 _context.statManager().addRateData("udp.sendConfirmVolley", numSends);
-                //if (state.getMessage() != null)
-                //    state.getMessage().timestamp("partial ack to complete after " + numSends);
                 _transport.succeeded(state);
                 
                 boolean anyQueued;
@@ -1996,12 +1778,6 @@ public class PeerState {
                 }
                 // this adjusts the rtt/rto/window/etc
                 messageACKed(state.getMessageSize(), state.getLifetime(), numSends, anyPending, anyQueued);
-                //if (state.getPeer().getSendWindowBytesRemaining() > 0)
-                //    _throttle.unchoke(state.getPeer().getRemotePeer());
-
-            } else {
-                //if (state.getMessage() != null)
-                //    state.getMessage().timestamp("partial ack after " + numSends + ": " + bitfield.toString());
             }
             return isComplete;
         } else {