Index: src/main/java/org/apache/jackrabbit/ocm/manager/impl/ObjectContentManagerImpl.java
===================================================================
--- src/main/java/org/apache/jackrabbit/ocm/manager/impl/ObjectContentManagerImpl.java	(revision 1545788)
+++ src/main/java/org/apache/jackrabbit/ocm/manager/impl/ObjectContentManagerImpl.java	(working copy)
@@ -495,6 +495,7 @@
 
     public Object getObject(Query query) {
         String jcrExpression = this.queryManager.buildJCRExpression(query);
+        log.debug( "Query: " + jcrExpression);        
         @SuppressWarnings("deprecation")
         Collection result = getObjects(jcrExpression, javax.jcr.query.Query.XPATH);
 
@@ -508,6 +509,7 @@
     @SuppressWarnings("deprecation")
     public Collection getObjects(Query query) {
         String jcrExpression = this.queryManager.buildJCRExpression(query);
+        log.debug("Query: " + jcrExpression);
         return getObjects(jcrExpression, javax.jcr.query.Query.XPATH);
     }
 
@@ -1128,5 +1130,41 @@
             copy(node, child);
         }
     }
+
+	public Collection getChildObjects(Class objectClass, String path)
+			throws ObjectContentManagerException {
+
+		final ClassDescriptor classDescriptorByClass = mapper.getClassDescriptorByClass(objectClass);
+        if (classDescriptorByClass == null) {
+            log.debug("Cannot get objects because no descriptor class exists for '{}'", objectClass.getClass().getName());
+            return Collections.emptyList();
+        }
+        try {
+            if (!session.nodeExists(path)) {
+                log.debug("Cannot get objects '{}' because no node exists at '{}'", objectClass.getClass().getName(), path);
+                return Collections.emptyList();
+            }
+            Node node = session.getNode(path);            
+            NodeIterator children = node.getNodes();
+            Collection result = new ArrayList();
+            while (children.hasNext()) {
+                Node child = children.nextNode();
+                Object object = objectConverter.getObject(session, objectClass, child.getPath());
+                if (object == null) {
+                    log.debug("Could not get object for '{}'", child.getPath());
+                    continue;
+                }
+                // double check whether object is the same or a subclass of objectClass
+                if (objectClass.isAssignableFrom(object.getClass())) {
+                    result.add(object);
+                }
+            }
+            return result;
+               
+        } catch (RepositoryException e) {
+            throw new org.apache.jackrabbit.ocm.exception.RepositoryException("Impossible to get the objects at " + path, e);
+        }
+		
+	}
     
 }
Index: src/main/java/org/apache/jackrabbit/ocm/manager/ObjectContentManager.java
===================================================================
--- src/main/java/org/apache/jackrabbit/ocm/manager/ObjectContentManager.java	(revision 1545788)
+++ src/main/java/org/apache/jackrabbit/ocm/manager/ObjectContentManager.java	(working copy)
@@ -223,7 +223,7 @@
      * Retrieve some objects matching to a query
      *
      * @param query
-     *            The query used to seach the objects
+     *            The query used to search the objects
      * @return a collection of objects found
      * @throws ObjectContentManagerException
      *             when it is not possible to retrieve the objects
@@ -246,6 +246,19 @@
             throws ObjectContentManagerException;
 
     /**
+     * Returns a list of objects (not supertypes) of that particular class which are child nodes of a specific path.
+     * This would not return the objects anywhere below the immediate children of the specified path.
+     *
+     * @param objectClass
+     * @param path Node path.
+     * @return a collection of object found and empty collection if there is no node for <code>path</code> or when <code></code>objectClass</code> is not mapped
+     */
+
+    public Collection getChildObjects(Class objectClass, String path)
+            throws ObjectContentManagerException;
+
+    
+    /**
      * Return a list of object matching to a JCR query
      *
      * @param query the JCR query
Index: src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/SimpleFieldsHelper.java
===================================================================
--- src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/SimpleFieldsHelper.java	(revision 1545788)
+++ src/main/java/org/apache/jackrabbit/ocm/manager/objectconverter/impl/SimpleFieldsHelper.java	(working copy)
@@ -19,6 +19,7 @@
 import java.util.Iterator;
 
 import javax.jcr.Node;
+import javax.jcr.NodeIterator;
 import javax.jcr.PathNotFoundException;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
@@ -168,13 +169,18 @@
 		if (node.hasProperty(propertyName))
 		{
 			propValue = node.getProperty(propertyName).getValue();
-			
 		}
 		else if (fieldDescriptor.getJcrDefaultValue() != null)
 		{
 		    ValueFactory vf = node.getSession().getValueFactory();
 		    propValue = vf.createValue(fieldDescriptor.getJcrDefaultValue());
 		}
+		else if (node.hasNode(propertyName)){
+			Node childNode = node.getNode(propertyName);
+			NodeIterator nodes = childNode.getNodes();
+			ValueFactory vf = node.getSession().getValueFactory();
+			propValue = vf.createValue(nodes.getSize());
+		}
 		else
 		{
 		    PropertyDefinition propDef = getPropertyDefinition(node, propertyName);
