Hi John: thank you for testing it out. Please can you report the // cflow(cflow(target(a) && call(void t())) && target(b)) && target(c); // /proj/demeter/jser/aspectj_test/CflowTest.java problem to the the AspectJ bug list. Or has it already been reported by someone else? Your program captures many more pointcuts than just the traversal. I extended it slightly to demonstrate that. Also at: /proj/demeter/lieber/courses/com3362/w02/examples/nested-cflows -- Karl //CflowTest.java // Test to see if cflow works or not. class A { B b; A(B _b) { b = _b;} void t() { b.t(); } } class B { C c; B(C _c) { c = _c; } void t() { c.t(); } } class C { C(){}; void t() {this.f();} void f() {} } class CflowTest { static void main(String [] args) { A a = new A(new B(new C())); a.t(); } } aspect CflowTestAspect { pointcut testCflow(A a, B b) : // cflow(cflow(target(a) && call(void t())) && target(b)) && target(c); cflow(cflow(target(a) && call(void t())) && target(b)) && target(C); after(A a, B b) : testCflow(a, b) { System.out.println("Can see a = " + a + " b = " + b); System.out.println(thisJoinPoint); } }