diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java
index edd7b31dc9c584f860a2c988f2584aa75d3467ad..ab8c24e6ee5294b82cb53091b0a70c27608cbb1e 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java
@@ -26,12 +26,10 @@ import net.i2p.stat.RateStat;
 class ProfileOrganizerRenderer {
     private final RouterContext _context;
     private final ProfileOrganizer _organizer;
-    private final ProfileComparator _comparator;
     
     public ProfileOrganizerRenderer(ProfileOrganizer organizer, RouterContext context) {
         _context = context;
         _organizer = organizer;
-        _comparator = new ProfileComparator();
     }
 
     /**
@@ -44,21 +42,19 @@ class ProfileOrganizerRenderer {
         long now = _context.clock().now();
         long hideBefore = now - 90*60*1000;
         
-        TreeSet<PeerProfile> order = new TreeSet(_comparator);
-        TreeSet<PeerProfile> integratedPeers = new TreeSet(_comparator);
+        Set<PeerProfile> order = new TreeSet(mode == 2 ? new HashComparator() : new ProfileComparator());
         int older = 0;
         int standard = 0;
         for (Iterator<Hash> iter = peers.iterator(); iter.hasNext();) {
             Hash peer = iter.next();
             if (_organizer.getUs().equals(peer)) continue;
             PeerProfile prof = _organizer.getProfile(peer);
-            //if (_organizer.isWellIntegrated(peer)) {
-            //    integratedPeers.add(prof);
-            //} else {
+            if (mode == 2) {
                 RouterInfo info = _context.netDb().lookupRouterInfoLocally(peer);
                 if (info != null && info.getCapabilities().indexOf("f") >= 0)
-                    integratedPeers.add(prof);
-            //}
+                    order.add(prof);
+                continue;
+            }
             if (prof.getLastSendSuccessful() <= hideBefore) {
                 older++;
                 continue;
@@ -221,7 +217,7 @@ class ProfileOrganizerRenderer {
         buf.append("<th class=\"smallhead\">").append(_("1d Fail Rate")).append("</th>");
         buf.append("</tr>");
         RateAverages ra = RateAverages.getTemp();
-        for (Iterator<PeerProfile> iter = integratedPeers.iterator(); iter.hasNext();) {
+        for (Iterator<PeerProfile> iter = order.iterator(); iter.hasNext();) {
             PeerProfile prof = iter.next();
             Hash peer = prof.getPeer();
 
@@ -297,11 +293,11 @@ class ProfileOrganizerRenderer {
         out.flush();
     }
     
-    private class ProfileComparator implements Comparator<PeerProfile> {
+    private class ProfileComparator extends HashComparator {
         public int compare(PeerProfile left, PeerProfile right) {
             if (_context.profileOrganizer().isFast(left.getPeer())) {
                 if (_context.profileOrganizer().isFast(right.getPeer())) {
-                    return compareHashes(left, right);
+                    return super.compare(left, right);
                 } else {
                     return -1; // fast comes first
                 }
@@ -309,13 +305,13 @@ class ProfileOrganizerRenderer {
                 if (_context.profileOrganizer().isFast(right.getPeer())) {
                     return 1; 
                 } else if (_context.profileOrganizer().isHighCapacity(right.getPeer())) {
-                    return compareHashes(left, right);
+                    return super.compare(left, right);
                 } else {
                     return -1;
                 }
             } else if (_context.profileOrganizer().isFailing(left.getPeer())) {
                 if (_context.profileOrganizer().isFailing(right.getPeer())) {
-                    return compareHashes(left, right);
+                    return super.compare(left, right);
                 } else {
                     return 1;
                 }
@@ -328,12 +324,18 @@ class ProfileOrganizerRenderer {
                 } else if (_context.profileOrganizer().isFailing(right.getPeer())) {
                     return -1;
                 } else {
-                    return compareHashes(left, right);
+                    return super.compare(left, right);
                 }
             }
         }
+    }
         
-        private int compareHashes(PeerProfile left, PeerProfile right) {
+    /**
+     *  Used for floodfill-only page
+     *  @since 0.9.8
+     */
+    private static class HashComparator implements Comparator<PeerProfile> {
+        public int compare(PeerProfile left, PeerProfile right) {
             return left.getPeer().toBase64().compareTo(right.getPeer().toBase64());
         }