Index: src/main/java/org/jgroups/protocols/FC.java
===================================================================
--- src/main/java/org/jgroups/protocols/FC.java	(.../trunk/backend/thirdparty/jgroups/src/main/java/org/jgroups/protocols/FC.java)	(revision 8214)
+++ src/main/java/org/jgroups/protocols/FC.java	(.../branches/V1_0/backend/thirdparty/jgroups-all/src/main/java/org/jgroups/protocols/FC.java)	(working copy)
@@ -366,6 +366,9 @@
             case Event.INFO:
                 handleInfo((Map<String,Object>)evt.getArg());
                 return null;
+            case Event.VIEW_CHANGE:
+                handleViewChange(((View)evt.getArg()).getMembers());
+                break;
         }
         return down_prot.down(evt); // this could potentially use the lower protocol's thread which may block
     }
@@ -578,6 +581,9 @@
                 lowest=val;
                 lowest-=credits;
                 m.put(dest, lowest);
+                if(log.isTraceEnabled())
+                	log.trace("sender " + dest + " minus " + credits
+							+ " credits, " + lowest + " remaining");
                 return lowest;
             }
         }
@@ -647,6 +653,9 @@
         lock.lock();
         try {
             long remaining_cred=decrementCredit(map, sender, length);
+            if(log.isTraceEnabled())
+                log.trace("sender " + sender + " minus " + length
+						+ " credits, " + remaining_cred + " remaining");
             if(remaining_cred == -1)
                 return 0;
             long credit_response=max_credits - remaining_cred;
@@ -715,6 +724,9 @@
 
 
     private void sendCredit(Address dest, long credit) {
+        if(log.isTraceEnabled())
+            log.trace("replentished " + dest + " with " + credit
+					+ " credits");
         Number number;
         if(credit < Integer.MAX_VALUE)
             number=(int)credit;
@@ -743,7 +755,7 @@
     }
 
 
-    private void handleViewChange(Vector mbrs) {
+    private void handleViewChange(Vector<Address> mbrs) {
         Address addr;
         if(mbrs == null) return;
         if(log.isTraceEnabled()) log.trace("new membership: " + mbrs);
@@ -760,15 +772,15 @@
                     sent.put(addr, max_credits);
             }
             // remove members that left
-            for(Iterator it=received.keySet().iterator(); it.hasNext();) {
-                addr=(Address)it.next();
+            for(Iterator<Address> it=received.keySet().iterator(); it.hasNext();) {
+                addr=it.next();
                 if(!mbrs.contains(addr))
                     it.remove();
             }
 
             // remove members that left
-            for(Iterator it=sent.keySet().iterator(); it.hasNext();) {
-                addr=(Address)it.next();
+            for(Iterator<Address> it=sent.keySet().iterator(); it.hasNext();) {
+                addr=it.next();
                 if(!mbrs.contains(addr))
                     it.remove(); // modified the underlying map
             }
