Index: src/java/org/apache/ivy/plugins/report/LogReportOutputter.java
===================================================================
--- src/java/org/apache/ivy/plugins/report/LogReportOutputter.java	(revision 512497)
+++ src/java/org/apache/ivy/plugins/report/LogReportOutputter.java	(working copy)
@@ -18,8 +18,11 @@
 package org.apache.ivy.plugins.report;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 
 import org.apache.ivy.core.report.ArtifactDownloadReport;
 import org.apache.ivy.core.report.ConfigurationResolveReport;
@@ -40,7 +43,34 @@
    }
 
     public void output(ResolveReport report, File destDir) {
+        Message.info("\t:: modules in use:");
+        List dependencies = new ArrayList(report.getDependencies());
+        Collections.sort(dependencies);
+        if (dependencies.size() > 0) {
+            String[] confs = report.getConfigurations();
+            for (int i = 0; i < dependencies.size(); i++) {
+                IvyNode node = (IvyNode)dependencies.get(i);
+                if (node.isCompletelyEvicted()) {
+                    continue;
+                }
+                List nodeConfs = new ArrayList(confs.length);
+                for (int j = 0; j < confs.length; j++) {
+                    String conf = confs[j];
+//                     Collection mrids = report.getConfigurationReport(conf).getModuleRevisionIds();
+//                     for (Iterator iter = mrids.iterator(); iter.hasNext(); ) {
+//                         ModuleRevisionId mrid = (ModuleRevisionId)iter.next();
+//                         System.err.println(node.getResolvedId() + " == " + mrid + "? " + mrid.equals(node.getResolvedId()));
+//                     }
+                    if (report.getConfigurationReport(conf).getModuleRevisionIds().contains(node.getResolvedId())) {
+                        nodeConfs.add(conf);
+                    }
+                }
+                Message.info("\t"+node+" from "+node.getModuleRevision().getResolver().getName()+" in "+nodeConfs);
+            }
+        }
+
         IvyNode[] evicted = report.getEvictedNodes();
+
         if (evicted.length > 0) {
             Message.info("\t:: evicted modules:");
             for (int i = 0; i < evicted.length; i++) {
Index: src/java/org/apache/ivy/core/resolve/IvyNode.java
===================================================================
--- src/java/org/apache/ivy/core/resolve/IvyNode.java	(revision 512497)
+++ src/java/org/apache/ivy/core/resolve/IvyNode.java	(working copy)
@@ -56,7 +56,7 @@
 import org.apache.ivy.util.filter.FilterHelper;
 
 
-public class IvyNode {
+public class IvyNode implements Comparable {
     private static final Pattern FALLBACK_CONF_PATTERN = Pattern.compile("(.+)\\((.*)\\)");
 
     private static final class NodeConf {
@@ -894,7 +894,7 @@
         return _md;
     }
 
-	public ResolveData getData() {
+	public ResolveDatab getData() {
 		return _data;
 	}
 
@@ -1082,6 +1082,11 @@
         IvyNode node = (IvyNode)obj;
         return node.getId().equals(getId());
     }
+
+    public int compareTo(Object obj) {
+        IvyNode that = (IvyNode)obj;
+        return this.getModuleId().compareTo(that.getModuleId());
+    }
     
     public int hashCode() {
         return getId().hashCode();
Index: src/java/org/apache/ivy/core/module/id/ModuleId.java
===================================================================
--- src/java/org/apache/ivy/core/module/id/ModuleId.java	(revision 512497)
+++ src/java/org/apache/ivy/core/module/id/ModuleId.java	(working copy)
@@ -22,7 +22,7 @@
  * @author x.hanin
  *
  */
-public class ModuleId {
+public class ModuleId implements Comparable {
     static final String ENCODE_SEPARATOR = ":#@#:";
     private String _organisation;
     private String _name;
@@ -64,6 +64,15 @@
         return "[ "+_organisation+" | "+_name+" ]";
     }
 
+    public int compareTo(Object obj) {
+        ModuleId that = (ModuleId)obj;
+        int result = _organisation.compareTo(that._organisation);
+        if (result == 0) {
+            result = _name.compareTo(that._name);
+        }
+        return result;
+    }
+
     public String encodeToString() {
         return getOrganisation() + ENCODE_SEPARATOR + getName();
     }
