diff -u --recursive reference_freenet/src/freenet/Core.java freenet/src/freenet/Core.java
--- reference_freenet/src/freenet/Core.java	Sun May 26 22:27:18 2002
+++ freenet/src/freenet/Core.java	Sun May 26 23:16:45 2002
@@ -46,6 +46,8 @@
         config.addOption("logInboundRequests",  1, false,   3520); 
         config.addOption("logOutboundRequests",  1, false,   3530); 
         config.addOption("logInboundRequestDist",  1, false,   3540); 
+        config.addOption("logInboundAcceptDist",  1, false,   3550); 
+        config.addOption("logFoundDist",  1, false,   3560); 
 
         // authTimeout
         config.setExpert ("authTimeout", true);
@@ -143,6 +145,17 @@
         config.shortDesc ("logInboundRequestDist",
                           "Set true to enable logging of inbound request key distribution.");
 
+        // logInboundAcceptDist
+        config.setExpert ("logInboundAcceptDist",true);
+        config.argDesc   ("logInboundAcceptDist","true/false");
+        config.shortDesc ("logInboundAcceptDist",
+                          "Set true to enable logging of inbound requests accepted key distribution.");
+
+        // logFoundDist
+        config.setExpert ("logFoundDist",true);
+        config.argDesc   ("logFoundDist","true/false");
+        config.shortDesc ("logFoundDist",
+                          "Set true to enable logging of requests resulting in data key distribution.");
     }
 
     
@@ -211,6 +224,10 @@
     /** Distribution of inbound requests over the keyspace. **/
     public static KeyHistogram requestDistribution = null;
 
+    public static KeyHistogram acceptDistribution = null;
+
+    public static KeyHistogram foundDistribution = null;
+
     /**
      * Sets the logging object to be used for logging messages
      * @param log a Logger object that will log messages to an output stream.
diff -u --recursive reference_freenet/src/freenet/client/http/NodeStatusServlet.java freenet/src/freenet/client/http/NodeStatusServlet.java
--- reference_freenet/src/freenet/client/http/NodeStatusServlet.java	Sun May 26 22:27:12 2002
+++ freenet/src/freenet/client/http/NodeStatusServlet.java	Sun May 26 23:16:45 2002
@@ -82,6 +82,18 @@
         "#   logInboundRequestDist=true \n" +
         "# in your freenet.conf / freenet.ini file.";
     
+    private final static String MSG_NO_ACCEPT_DIST =
+        "# Data for the inbound accepted request distribution isn't being logged. \n" +
+        "#  To enable logging set: \n" +
+        "#   logInboundAcceptDist=true \n" +
+        "# in your freenet.conf / freenet.ini file.";
+
+    private final static String MSG_NO_FOUND_DIST =
+        "# Data for the found request distribution isn't being logged. \n" +
+        "#  To enable logging set: \n" +
+        "#   logFoundDist=true \n" +
+        "# in your freenet.conf / freenet.ini file.";
+
     private final static String MSG_OOPS =
         "# Coding error!";
 
@@ -150,6 +162,30 @@
             }
 
 
+            if (uri.endsWith("inbound_accepted_histogram.txt")) {
+                int[] bins = null;
+                if (node.acceptDistribution != null) {
+                    bins = node.acceptDistribution.getBins();
+                }
+                sendKeyHistogram(resp, false, bins, 
+                                 "Histogram of requested keys accepted for processing.",
+                                 "This count has nothing to do with keys in your datastore",
+                                 MSG_NO_ACCEPT_DIST);
+                return;
+            }
+
+            if (uri.endsWith("found_histogram.txt")) {
+                int[] bins = null;
+                if (node.foundDistribution != null) {
+                    bins = node.foundDistribution.getBins();
+                }
+                sendKeyHistogram(resp, false, bins, 
+                                 "Histogram of keys requested that are successfully found.",
+                                 "This count has nothing to do with keys in your datastore",
+                                 MSG_NO_FOUND_DIST);
+                return;
+            }
+
             if (uri.endsWith("key_histogram_data.txt")) {
                 sendRTHistogram(resp, true);
                 return;
@@ -323,11 +359,17 @@
         pw.println("            <li> <a href= \"" + baseURL +"key_histogram.txt\">Histogram");
         pw.println("                 of the keys in the node's routing table. </a>");
         pw.println("            <a href= \"" + baseURL +"key_histogram_data.txt\"><br>(flat ascii)</a><br>");
+
         pw.println("            <li> <a href=\"" + baseURL +"inbound_request_histogram.txt\"> " +
                    " Histogram of inbound request search keys </a>");
-
         pw.println("            <a href= \"" + baseURL +
                    "inbound_request_histogram_data.txt\"><br>(flat ascii)</a><br>");
+
+        pw.println("            <li> <a href=\"" + baseURL +"inbound_accepted_histogram.txt\"> " +
+                   " Histogram of inbound accepted request search keys </a>");
+        pw.println("            <a href= \"" + baseURL +
+                   "inbound_accepted_histogram_data.txt\"><br>(flat ascii)</a><br>");
+
         pw.println("            <li> <a href=\"" + baseURL + "ds_histogram.txt\"> " +
                    " Histogram of keys in the local DataStore. </a>"  +
                    " &nbsp &nbsp  <em>Note: Slow. Be patient. </em> ");
@@ -335,9 +377,11 @@
                    "ds_histogram_data.txt\">" +
                    "<br>(flat ascii)</a><br>");
 
-        pw.println("            <li> <em> TODO: We need distribution data for succcessful requests. </em>");
-        pw.println("                 <br>I'm really busy these days.  It would be cool if someone could code");
-        pw.println("                 this up. --gj");
+        pw.println("            <li> <a href=\"" + baseURL +"found_histogram.txt\"> " +
+                   " Histogram of request search keys successfully found</a>");
+        pw.println("            <a href= \"" + baseURL +
+                   "found_histogram_data.txt\"><br>(flat ascii)</a><br>");
+
         pw.println("        </ul> <p>");
         pw.println("    <li> <a href=\"" + baseURL +"diagnostics/index.html\"> Diagnostics Values </a> <p>");
         pw.println("    <li> <a href=\"" + baseURL +"inboundContacts.txt\"> Inbound Contact Attempts </a> <br>");
diff -u --recursive reference_freenet/src/freenet/node/Main.java freenet/src/freenet/node/Main.java
--- reference_freenet/src/freenet/node/Main.java	Sun May 26 22:27:48 2002
+++ freenet/src/freenet/node/Main.java	Sun May 26 23:16:46 2002
@@ -636,6 +636,18 @@
             Core.requestDistribution = new KeyHistogram();
         }
 
+        if (params.getBoolean("logInboundAcceptDist")) {
+            // Enable monitoring of the distribution of  
+            // incoming accepted keys via NodeStatusServlet
+            Core.acceptDistribution = new KeyHistogram();
+        }
+
+        if (params.getBoolean("logFoundDist")) {
+            // Enable monitoring of the distribution of  
+            // found keys via NodeStatusServlet
+            Core.foundDistribution = new KeyHistogram();
+        }
+
         // the FCP interface
         SessionHandler clientSh = new SessionHandler();
         clientSh.register(new FnpLinkManager(), 10);
diff -u --recursive reference_freenet/src/freenet/node/states/FNP/NewRequest.java freenet/src/freenet/node/states/FNP/NewRequest.java
--- reference_freenet/src/freenet/node/states/FNP/NewRequest.java	Sun May 26 22:27:55 2002
+++ freenet/src/freenet/node/states/FNP/NewRequest.java	Sun May 26 23:16:46 2002
@@ -93,6 +93,10 @@
             n.diagnostics.occurrenceCounting("inboundAggregateRequestsHandled",
                                              1);
             
+            if (n.acceptDistribution != null) {
+                n.acceptDistribution.add(mo.searchKey);
+            }
+
             // reply with Accepted A.S.A.P.
             n.sendMessage(new Accepted(id), origRec);
             
diff -u --recursive reference_freenet/src/freenet/node/states/request/Pending.java freenet/src/freenet/node/states/request/Pending.java
--- reference_freenet/src/freenet/node/states/request/Pending.java	Sun May 26 22:27:57 2002
+++ freenet/src/freenet/node/states/request/Pending.java	Sun May 26 23:16:46 2002
@@ -283,6 +283,10 @@
             receivingData.schedule(n);
         }
 
+            if (n.foundDistribution != null) {
+                n.foundDistribution.add(searchKey);
+            }
+
         return new TransferReply(this);
     }
 
@@ -381,6 +385,10 @@
 
         // FIXME: don't waste resources piping data to the NullOutputStream
         
+            if (n.foundDistribution != null) {
+                n.foundDistribution.add(searchKey);
+            }
+
         return new SendData(n.randSource.nextLong(), this.id, out,
                             doc, doc.length(), storables.getPartSize());
     }
