Index: /trunk/BNS/bnsutils.cpp
===================================================================
--- /trunk/BNS/bnsutils.cpp	(revision 1686)
+++ /trunk/BNS/bnsutils.cpp	(revision 1687)
@@ -112,10 +112,12 @@
                 const ColumnVector& xyz, ColumnVector& rsw) {
 
-  ColumnVector cross = crossproduct(rr, vv);
+  ColumnVector along  = vv / vv.norm_Frobenius();
+  ColumnVector cross  = crossproduct(rr, vv); cross /= cross.norm_Frobenius();
+  ColumnVector radial = crossproduct(along, cross);
 
   rsw.ReSize(3);
-  rsw(1) = DotProduct(xyz, rr)    / rr.norm_Frobenius();
-  rsw(2) = DotProduct(xyz, vv)    / vv.norm_Frobenius();
-  rsw(3) = DotProduct(xyz, cross) / cross.norm_Frobenius();
+  rsw(1) = DotProduct(xyz, radial);
+  rsw(2) = DotProduct(xyz, along);
+  rsw(3) = DotProduct(xyz, cross);
 }
 
