Index: src/Exceptions/Makefile.am
===================================================================
--- src/Exceptions/Makefile.am	(revision a700c4c185c43a45a447fc2167a3e93e0a5ef567)
+++ src/Exceptions/Makefile.am	(revision 8b9c43d8a9fd262a308876876cf5a443b3dbb2b8)
@@ -15,6 +15,5 @@
   NotOnSurfaceException.cpp \
   ShapeException.cpp \
-  FormulaStringParseException.cpp \
-  ZeroVectorException.cpp
+  FormulaStringParseException.cpp
 	
 				  
@@ -26,6 +25,5 @@
   MissingValueException.hpp \
   NotOnSurfaceException.hpp \
-  FormulaStringParseException.hpp \
-  ZeroVectorException.hpp
+  FormulaStringParseException.hpp
 
 
Index: c/Exceptions/ZeroVectorException.cpp
===================================================================
--- src/Exceptions/ZeroVectorException.cpp	(revision a700c4c185c43a45a447fc2167a3e93e0a5ef567)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * ZeroVectorException.cpp
- *
- *  Created on: Apr 30, 2010
- *      Author: crueger
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "ZeroVectorException.hpp"
-
-ZeroVectorException::ZeroVectorException(std::string file, int line) :
-  MathException(file,line)
-{}
-
-ZeroVectorException::~ZeroVectorException() throw ()
-{}
-
-const char* ZeroVectorException::what() const throw()
-{
-  return "Given vector was a zero Vector.";
-}
Index: c/Exceptions/ZeroVectorException.hpp
===================================================================
--- src/Exceptions/ZeroVectorException.hpp	(revision a700c4c185c43a45a447fc2167a3e93e0a5ef567)
+++ 	(revision )
@@ -1,28 +1,0 @@
-/*
- * ZeroVectorException.hpp
- *
- *  Created on: Apr 30, 2010
- *      Author: crueger
- */
-
-#ifndef ZEROVECTOREXCEPTION_HPP_
-#define ZEROVECTOREXCEPTION_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "Exceptions/MathException.hpp"
-
-class ZeroVectorException : public MathException
-{
-public:
-  ZeroVectorException(std::string file, int line);
-  virtual ~ZeroVectorException() throw();
-
-  virtual const char* what() const throw();
-};
-
-#endif /* ZEROVECTOREXCEPTION_HPP_ */
Index: src/LinearAlgebra/Exceptions.hpp
===================================================================
--- src/LinearAlgebra/Exceptions.hpp	(revision a700c4c185c43a45a447fc2167a3e93e0a5ef567)
+++ src/LinearAlgebra/Exceptions.hpp	(revision 8b9c43d8a9fd262a308876876cf5a443b3dbb2b8)
@@ -18,4 +18,5 @@
 
 class MatrixContent;
+class Vector;
 
 struct LinearAlgebraException : virtual std::exception, virtual boost::exception { };
@@ -29,5 +30,9 @@
 /** Exception information for LinearAlgebraException: matrix.
  */
-typedef boost::error_info<struct tag_LinearAlgebraMatrix, const MatrixContent* const> LinearAlgebraMatrixContent;
+typedef boost::error_info<struct tag_LinearAlgebraMatrixContent, const MatrixContent* const> LinearAlgebraMatrixContent;
+
+/** Exception information for LinearAlgebraException: vector.
+ */
+typedef boost::error_info<struct tag_LinearAlgebraVector, const Vector* const> LinearAlgebraVector;
 
 /** ============================ Specific exceptions ====================== */
@@ -41,3 +46,7 @@
 struct NotInvertibleException : virtual LinearAlgebraException { };
 
+/** Exception thrown when a vector with only zero components is invalidly encountered.
+ */
+struct ZeroVectorException : virtual LinearAlgebraException { };
+
 #endif /* EXCEPTIONS_HPP_ */
Index: src/LinearAlgebra/Plane.cpp
===================================================================
--- src/LinearAlgebra/Plane.cpp	(revision a700c4c185c43a45a447fc2167a3e93e0a5ef567)
+++ src/LinearAlgebra/Plane.cpp	(revision 8b9c43d8a9fd262a308876876cf5a443b3dbb2b8)
@@ -29,4 +29,5 @@
 #include "Exceptions/MultipleSolutionsException.hpp"
 #include "LinearAlgebra/defs.hpp"
+#include "LinearAlgebra/Exceptions.hpp"
 #include "LinearAlgebra/fast_functions.hpp"
 #include "LinearAlgebra/Line.hpp"
@@ -68,8 +69,10 @@
   Vector x1 = y1;
   Vector x2 = y2;
-  if ((fabs(x1.Norm()) <= LINALG_MYEPSILON()) || (fabs(x2.Norm()) <= LINALG_MYEPSILON())) {
-    throw ZeroVectorException(__FILE__,__LINE__);
-  }
-
+  if ((fabs(x1.Norm()) <= LINALG_MYEPSILON())) {
+    throw ZeroVectorException() << LinearAlgebraVector(&x1);
+  }
+  if ((fabs(x2.Norm()) <= LINALG_MYEPSILON())) {
+    throw ZeroVectorException() << LinearAlgebraVector(&x2);
+  }
   if((fabs(x1.Angle(x2)) <= LINALG_MYEPSILON())) {
     throw LinearDependenceException(__FILE__,__LINE__);
@@ -93,5 +96,5 @@
 {
   if(normalVector->IsZero())
-    throw ZeroVectorException(__FILE__,__LINE__);
+    throw ZeroVectorException() << LinearAlgebraVector(&(*normalVector));
   double factor = 1/normalVector->Norm();
   // normalize the plane parameters
@@ -104,5 +107,5 @@
 {
   if(normalVector->IsZero()){
-    throw ZeroVectorException(__FILE__,__LINE__);
+    throw ZeroVectorException() << LinearAlgebraVector(&(*normalVector));
   }
   normalVector->Normalize();
Index: src/LinearAlgebra/Plane.hpp
===================================================================
--- src/LinearAlgebra/Plane.hpp	(revision a700c4c185c43a45a447fc2167a3e93e0a5ef567)
+++ src/LinearAlgebra/Plane.hpp	(revision 8b9c43d8a9fd262a308876876cf5a443b3dbb2b8)
@@ -18,7 +18,8 @@
 #include <vector>
 #include <iosfwd>
+
+#include "LinearAlgebra/Exceptions.hpp"
 #include "LinearAlgebra/Space.hpp"
 #include "Exceptions/LinearDependenceException.hpp"
-#include "Exceptions/ZeroVectorException.hpp"
 
 class Vector;
Index: src/LinearAlgebra/unittests/PlaneUnitTest.cpp
===================================================================
--- src/LinearAlgebra/unittests/PlaneUnitTest.cpp	(revision a700c4c185c43a45a447fc2167a3e93e0a5ef567)
+++ src/LinearAlgebra/unittests/PlaneUnitTest.cpp	(revision 8b9c43d8a9fd262a308876876cf5a443b3dbb2b8)
@@ -26,4 +26,5 @@
 
 #include "LinearAlgebra/defs.hpp"
+#include "LinearAlgebra/Exceptions.hpp"
 #include "LinearAlgebra/Line.hpp"
 #include "LinearAlgebra/Vector.hpp"
