Index: src/unittests/ActOnAllUnitTest.cpp
===================================================================
--- src/unittests/ActOnAllUnitTest.cpp	(revision 975a1166eddd2bdd29dd2ff9f0637ce8834b71d5)
+++ src/unittests/ActOnAllUnitTest.cpp	(revision 0a4f7fd0df08c7bf001c21de0e7b7462fb56da1d)
@@ -99,4 +99,15 @@
 };
 
+#if 0
+
+// Unitttest deactivated for now...
+// Reasons:
+//    Vector::MakeNormalVector has been removed and is now part of Plane class
+//    VectorList::ActOnAll is in the test directory and seems to be used only for unittests
+//    MakeNormal never depended on the input Vector except in the case of linear dependence (i.e. failure)
+//
+// TODO: Rethink what exactely is being tested at this point and introduce a new unittest for the
+//       tested behaviour. Most likely this should result in a thourough unittest of the plane class
+
 /** UnitTest for VectorList::ActOnAll() and Vector::MakeNormalVector()
  */
@@ -113,6 +124,8 @@
   // check that x and y components are zero
   for (ListOfVectors::iterator Runner = VL.Vectors.begin(); Runner != VL.Vectors.end(); Runner++) {
-    CPPUNIT_ASSERT_EQUAL( (*Runner)->x[0] , 0. );
-    CPPUNIT_ASSERT_EQUAL( (*Runner)->x[1] , 0. );
+    CPPUNIT_ASSERT_EQUAL( (*Runner)->at(0) , 0. );
+    CPPUNIT_ASSERT_EQUAL( (*Runner)->at(1) , 0. );
   }
 };
+
+#endif
Index: src/unittests/ActOnAllUnitTest.hpp
===================================================================
--- src/unittests/ActOnAllUnitTest.hpp	(revision 975a1166eddd2bdd29dd2ff9f0637ce8834b71d5)
+++ src/unittests/ActOnAllUnitTest.hpp	(revision 0a4f7fd0df08c7bf001c21de0e7b7462fb56da1d)
@@ -20,5 +20,8 @@
     CPPUNIT_TEST ( AddSubtractTest );
     CPPUNIT_TEST ( ScaleTest );
+#if 0
+    // test deactivated. See .cpp for reasons and workarounds
     CPPUNIT_TEST ( NormalizeTest );
+#endif
     CPPUNIT_TEST_SUITE_END();
 
Index: src/unittests/vectorunittest.cpp
===================================================================
--- src/unittests/vectorunittest.cpp	(revision 975a1166eddd2bdd29dd2ff9f0637ce8834b71d5)
+++ src/unittests/vectorunittest.cpp	(revision 0a4f7fd0df08c7bf001c21de0e7b7462fb56da1d)
@@ -17,5 +17,8 @@
 #include "memoryusageobserver.hpp"
 #include "vector.hpp"
+#include "vector_ops.hpp"
 #include "vectorunittest.hpp"
+#include "Plane.hpp"
+#include "Exceptions/LinearDependenceException.hpp"
 
 #ifdef HAVE_TESTRUNNER
@@ -195,73 +198,64 @@
 {
   // plane at (0,0,0) normal to (1,0,0) cuts line from (0,0,0) to (2,1,0) at ???
-  CPPUNIT_ASSERT_EQUAL( true, fixture.GetIntersectionWithPlane(&unit, &zero, &zero, &two) );
+  CPPUNIT_ASSERT_NO_THROW(fixture = Plane(unit, zero).GetIntersection(zero, two) );
   CPPUNIT_ASSERT_EQUAL( zero, fixture );
 
   // plane at (2,1,0) normal to (0,1,0) cuts line from (1,0,0) to (0,1,1) at ???
-  CPPUNIT_ASSERT_EQUAL( true, fixture.GetIntersectionWithPlane(&otherunit, &two, &unit, &notunit) );
+  CPPUNIT_ASSERT_NO_THROW(fixture = Plane(otherunit, two).GetIntersection( unit, notunit) );
   CPPUNIT_ASSERT_EQUAL( Vector(0., 1., 1.), fixture );
 
   // four vectors equal to zero
-  CPPUNIT_ASSERT_EQUAL( false, fixture.GetIntersectionOfTwoLinesOnPlane(&zero, &zero, &zero, &zero, NULL) );
+  CPPUNIT_ASSERT_THROW(fixture = GetIntersectionOfTwoLinesOnPlane(zero, zero, zero, zero), LinearDependenceException);
+  //CPPUNIT_ASSERT_EQUAL( zero, fixture );
+
+  // four vectors equal to unit
+  CPPUNIT_ASSERT_THROW(fixture = GetIntersectionOfTwoLinesOnPlane(unit, unit, unit, unit), LinearDependenceException);
+  //CPPUNIT_ASSERT_EQUAL( zero, fixture );
+
+  // two equal lines
+  CPPUNIT_ASSERT_NO_THROW(fixture = GetIntersectionOfTwoLinesOnPlane(unit, two, unit, two));
+  CPPUNIT_ASSERT_EQUAL( unit, fixture );
+
+  // line from (1,0,0) to (2,1,0) cuts line from (1,0,0) to (0,1,0) at ???
+  CPPUNIT_ASSERT_NO_THROW( fixture = GetIntersectionOfTwoLinesOnPlane(unit, two, unit, otherunit) );
+  CPPUNIT_ASSERT_EQUAL( unit, fixture );
+
+  // line from (1,0,0) to (0,0,0) cuts line from (0,0,0) to (2,1,0) at ???
+  CPPUNIT_ASSERT_NO_THROW( fixture = GetIntersectionOfTwoLinesOnPlane(unit, zero, zero, two) );
   CPPUNIT_ASSERT_EQUAL( zero, fixture );
 
-  // four vectors equal to unit
-  CPPUNIT_ASSERT_EQUAL( false, fixture.GetIntersectionOfTwoLinesOnPlane(&unit, &unit, &unit, &unit, NULL) );
+  // line from (1,0,0) to (2,1,0) cuts line from (0,0,0) to (0,1,0) at ???
+  CPPUNIT_ASSERT_NO_THROW(fixture = GetIntersectionOfTwoLinesOnPlane(unit, two, zero, otherunit) );
+  CPPUNIT_ASSERT_EQUAL( Vector(0., -1., 0.), fixture );
+};
+
+/** UnitTest for vector rotations.
+ */
+void VectorTest::VectorRotationTest()
+{
+  fixture.Init(-1.,0.,0.);
+
+  // zero vector does not change
+  fixture = RotateVector(zero,unit, 1.);
   CPPUNIT_ASSERT_EQUAL( zero, fixture );
 
-  // two equal lines
-  CPPUNIT_ASSERT_EQUAL( true, fixture.GetIntersectionOfTwoLinesOnPlane(&unit, &two, &unit, &two, NULL) );
+  fixture = RotateVector(zero, two, 1.);
+  CPPUNIT_ASSERT_EQUAL( zero,  fixture);
+
+  // vector on axis does not change
+  fixture = RotateVector(unit,unit, 1.);
   CPPUNIT_ASSERT_EQUAL( unit, fixture );
 
-  // line from (1,0,0) to (2,1,0) cuts line from (1,0,0) to (0,1,0) at ???
-  CPPUNIT_ASSERT_EQUAL( true, fixture.GetIntersectionOfTwoLinesOnPlane(&unit, &two, &unit, &otherunit, NULL) );
-  CPPUNIT_ASSERT_EQUAL( unit, fixture );
-
-  // line from (1,0,0) to (0,0,0) cuts line from (0,0,0) to (2,1,0) at ???
-  CPPUNIT_ASSERT_EQUAL( true, fixture.GetIntersectionOfTwoLinesOnPlane(&unit, &zero, &zero, &two, NULL) );
-  CPPUNIT_ASSERT_EQUAL( zero, fixture );
-
-  // line from (1,0,0) to (2,1,0) cuts line from (0,0,0) to (0,1,0) at ???
-  CPPUNIT_ASSERT_EQUAL( true, fixture.GetIntersectionOfTwoLinesOnPlane(&unit, &two, &zero, &otherunit, NULL) );
-  CPPUNIT_ASSERT_EQUAL( Vector(0., -1., 0.), fixture );
-};
-
-/** UnitTest for vector rotations.
- */
-void VectorTest::VectorRotationTest()
-{
-  fixture.Init(-1.,0.,0.);
-
-  // zero vector does not change
-  fixture.CopyVector(&zero);
-  fixture.RotateVector(&unit, 1.);
-  CPPUNIT_ASSERT_EQUAL( zero, fixture );
-
-  fixture.RotateVector(&two, 1.);
-  CPPUNIT_ASSERT_EQUAL( zero,  fixture);
-
-  // vector on axis does not change
-  fixture.CopyVector(&unit);
-  fixture.RotateVector(&unit, 1.);
-  CPPUNIT_ASSERT_EQUAL( unit, fixture );
-
-  fixture.RotateVector(&unit, 1.);
-  CPPUNIT_ASSERT_EQUAL( unit, fixture );
-
   // rotations
-  fixture.CopyVector(&otherunit);
-  fixture.RotateVector(&unit, M_PI);
+  fixture = RotateVector(otherunit, unit, M_PI);
   CPPUNIT_ASSERT_EQUAL( Vector(0.,-1.,0.), fixture );
 
-  fixture.CopyVector(&otherunit);
-  fixture.RotateVector(&unit, 2. * M_PI);
+  fixture = RotateVector(otherunit, unit, 2. * M_PI);
   CPPUNIT_ASSERT_EQUAL( otherunit, fixture );
 
-  fixture.CopyVector(&otherunit);
-  fixture.RotateVector(&unit, 0);
+  fixture = RotateVector(otherunit,unit, 0);
   CPPUNIT_ASSERT_EQUAL( otherunit, fixture );
 
-  fixture.Init(0.,0.,1.);
-  fixture.RotateVector(&notunit, M_PI);
+  fixture = RotateVector(Vector(0.,0.,1.), notunit, M_PI);
   CPPUNIT_ASSERT_EQUAL( otherunit, fixture );
 }
