Problem with Spatial.lookAt() function

Hi, this is my problem:

I have n nodes, node i is child of node i-1 and node 0 is child of rootNode. Any node maybe has also another Spatial for child.

target is the point where I want that all the node look at.

When i call node(i).lookAt(target) for the first time everything seems to work properly but then, when i call node(i+k).lookAt(target) the Zaxis of node(i+k) don't point to target.

Do you understand the question? Sorry for my English, Thanks a lot!

Here is the code for 3 nodes:

public class LookAtCanvas extends SimpleGame{

   protected void simpleInitGame() {
      //the target to lookAt
      Sphere target = new Sphere("target",10,20,1);
      target.setLocalTranslation(new Vector3f(10,20,10));
        Node n = new Node("nodeS");
      rootNode.updateGeometricState(0, true);
      //setup the nodes with their object and debug axis
      Sphere s1 = new Sphere("theSphere1",10,20,1);
      Sphere s2 = new Sphere("theSphere2",10,20,1);
      Sphere s3 = new Sphere("theSphere3",10,20,1);

      Node n1 = new Node("theNode1");
      Node n2 = new Node("theNode2");
      Node n3 = new Node("theNode3");
      n1.setLocalTranslation(new Vector3f(0,3,0));
      n2.setLocalTranslation(new Vector3f(0,6,0));
      n3.setLocalTranslation(new Vector3f(0,9,0));
      AxisRods arA = new AxisRods("TheRodsA");
      AxisRods arB = new AxisRods("TheRodsB");
      AxisRods arC = new AxisRods("TheRodsC");
      rootNode.updateGeometricState(0, true);
      // The first lookAt... correct
      n2.lookAt(target.getWorldTranslation(), new Vector3f(0,1,0));
      rootNode.updateGeometricState(0, true);
      // The second lookAt... there's a problem, wrong orientation...
      n3.lookAt(target.getWorldTranslation(), new Vector3f(0,1,0));
      rootNode.updateGeometricState(0, true);
   public static void main(String[] args) {
      LookAtCanvas game = new LookAtCanvas();


and a screenshoot: