diff --git a/src/helma/objectmodel/db/Node.java b/src/helma/objectmodel/db/Node.java
index d2bde1ef..2bf43df2 100644
--- a/src/helma/objectmodel/db/Node.java
+++ b/src/helma/objectmodel/db/Node.java
@@ -711,6 +711,7 @@ public final class Node implements INode, Serializable {
         // check if current parent candidate matches presciption,
         // if not, try to get one that does.
         if (parentInfo != null) {
+
             for (int i = 0; i < parentInfo.length; i++) {
 
                 ParentInfo pinfo = parentInfo[i];
@@ -746,7 +747,7 @@ public final class Node implements INode, Serializable {
                         if ((dbm != null) && (dbm.getSubnodeGroupby() != null)) {
                             // check for groupby
                             rel = dbmap.columnNameToRelation(dbm.getSubnodeGroupby());
-                            pn = (Node) pn.getSubnode(getString(rel.propName));
+                            pn = (Node) pn.getChildElement(getString(rel.propName));
                         }
 
                         if (pn != null && pn.isParentOf(this)) {
@@ -1176,6 +1177,9 @@ public final class Node implements INode, Serializable {
                     // If we created the group node, we register it with the
                     // nodemanager. Otherwise, we just evict whatever was there before
                     if (create) {
+                        // register group node with transactor
+                        Transactor tx = (Transactor) Thread.currentThread();
+                        tx.visitCleanNode(node);
                         nmgr.registerNode(node);
                     } else {
                         nmgr.evictKey(node.getKey());