diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionManager.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionManager.java
index 8e108f27dd63a5972538464ab0cae9916a005f65..0f837ad34afcb98d63fbd4c25d4180fb745aca19 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionManager.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionManager.java
@@ -49,7 +49,7 @@ class ConnectionManager {
     private final SimpleTimer2 _timer;
     /** cache of the property to detect changes */
     private static volatile String _currentBlacklist = "";
-    private static final Set<Hash> _globalBlacklist = new ConcurrentHashSet();
+    private static final Set<Hash> _globalBlacklist = new ConcurrentHashSet<Hash>();
     
     /** @since 0.9.3 */
     public static final String PROP_BLACKLIST = "i2p.streaming.blacklist";
@@ -62,8 +62,8 @@ class ConnectionManager {
         _session = session;
         _defaultOptions = defaultOptions;
         _log = _context.logManager().getLog(ConnectionManager.class);
-        _connectionByInboundId = new ConcurrentHashMap(32);
-        _pendingPings = new ConcurrentHashMap(4);
+        _connectionByInboundId = new ConcurrentHashMap<Long,Connection>(32);
+        _pendingPings = new ConcurrentHashMap<Long,PingRequest>(4);
         _messageHandler = new MessageHandler(_context, this);
         _packetHandler = new PacketHandler(_context, this);
         _connectionHandler = new ConnectionHandler(_context, this);
@@ -443,7 +443,7 @@ class ConnectionManager {
             // rebuild _globalBlacklist when property changes
             synchronized(_globalBlacklist) {
                 if (hashes.length() > 0) {
-                    Set<Hash> newSet = new HashSet();
+                    Set<Hash> newSet = new HashSet<Hash>();
                     StringTokenizer tok = new StringTokenizer(hashes, ",; ");
                     while (tok.hasMoreTokens()) {
                         String hashstr = tok.nextToken();
@@ -547,7 +547,7 @@ class ConnectionManager {
      * @return set of Connection objects
      */
     public Set<Connection> listConnections() {
-            return new HashSet(_connectionByInboundId.values());
+            return new HashSet<Connection>(_connectionByInboundId.values());
     }
 
     /** blocking */
@@ -563,7 +563,7 @@ class ConnectionManager {
      * @param keyToUse ignored
      * @param tagsToSend ignored
      */
-    public boolean ping(Destination peer, long timeoutMs, boolean blocking, SessionKey keyToUse, Set tagsToSend, PingNotifier notifier) {
+    public boolean ping(Destination peer, long timeoutMs, boolean blocking, SessionKey keyToUse, Set<?> tagsToSend, PingNotifier notifier) {
         return ping(peer, timeoutMs, blocking, notifier);
     }
 
@@ -578,8 +578,13 @@ class ConnectionManager {
         //    packet.setKeyUsed(keyToUse);
         //    packet.setTagsSent(tagsToSend);
         //}
+        if (_log.shouldLog(Log.INFO)) {
+            _log.info(String.format("about to ping %s timeout=%d blocking=%b",
+                    peer,timeoutMs,blocking));
+        }
+            
         
-        PingRequest req = new PingRequest(peer, packet, notifier);
+        PingRequest req = new PingRequest(notifier);
         
         _pendingPings.put(id, req);
         
@@ -630,7 +635,7 @@ class ConnectionManager {
         private boolean _ponged;
         private final PingNotifier _notifier;
 
-        public PingRequest(Destination peer, PacketLocal packet, PingNotifier notifier) { 
+        public PingRequest(PingNotifier notifier) { 
             _notifier = notifier;
         }
 
@@ -638,14 +643,14 @@ class ConnectionManager {
             // static, no log
             //_log.debug("Ping successful");
             //_context.sessionKeyManager().tagsDelivered(_peer.getPublicKey(), _packet.getKeyUsed(), _packet.getTagsSent());
-            synchronized (ConnectionManager.PingRequest.this) {
+            synchronized (this) {
                 _ponged = true; 
-                ConnectionManager.PingRequest.this.notifyAll();
+                notifyAll();
             }
             if (_notifier != null)
                 _notifier.pingComplete(true);
         }
-        public boolean pongReceived() { return _ponged; }
+        public synchronized boolean pongReceived() { return _ponged; }
     }
     
     void receivePong(long pingId) {