Weird lookAt problem

hi community, i need your help again:

this code creates a quad

  private Quad getDecalQuad(final LevelBoundedEntity p_le)
  {
    final Quad l_q = new Quad("Blood splat", (float) ((Math.random() * 4.0) + 2.0),
                              (float) ((Math.random() * 4.0) + 2.0));
    l_q.setRenderQueueMode(Renderer.QUEUE_TRANSPARENT);
    l_q.setRenderState(ms_core.getSharedRenderStates().getDefaultAlphaState());
    l_q.setRenderState(ms_core.getSharedRenderStates().getDefaultZState());
    l_q.updateRenderState();
    return l_q;
  }



no problem yet. then i do this:

final Vector3f l_surfaceNormal =
          p_le.getCurrentSurfaceNormal();
      if (l_surfaceNormal == null)
      {
        return;//ausserhalb der karte
      }
      final String l_texture = getTex();
      final Quad l_q = getDecalQuad(p_le);
      l_q.getLocalRotation().lookAt(l_surfaceNormal, Vector3f.UNIT_Y);
      l_q.getLocalTranslation().set(l_position);
      l_q.setRenderState(ms_core.getSharedRenderStates().getTextureRenderstate(l_texture));



i tell the blood quad to be at the same position as its source (some internal organs flying around). the code is called when the organ is touching the terrain. the surface normal is, in my case, 0/1/0, but the result is an angled quad (about 45

problem solved, up has to be unit_x (but i'm interested why)

Quad is in x-y- not in x-z-plane (regarding vertex coords) when not rotated.