diff --git a/FunctionSpace/FunctionSpace.cpp b/FunctionSpace/FunctionSpace.cpp
index 5f77b0c609c64901bd5333364bc56d2a680a7da2..eab464d147954e049f1a7ca52df809f833b8048e 100644
--- a/FunctionSpace/FunctionSpace.cpp
+++ b/FunctionSpace/FunctionSpace.cpp
@@ -3,7 +3,6 @@
 #include "ReferenceSpaceManager.h"
 #include "BasisGenerator.h"
 #include "ElementType.h"
-#include "Exception.h"
 
 #include "FunctionSpace.h"
 
diff --git a/FunctionSpace/FunctionSpace.h b/FunctionSpace/FunctionSpace.h
index 49248be93dcc5323a728f1992288d95e30f4aa52..c7a42b7de324e293f7c41aca6e72d38b130f57dd 100644
--- a/FunctionSpace/FunctionSpace.h
+++ b/FunctionSpace/FunctionSpace.h
@@ -8,6 +8,7 @@
 #include "Mesh.h"
 #include "Basis.h"
 #include "MElement.h"
+#include "Exception.h"
 #include "GroupOfElement.h"
 
 /**
@@ -159,6 +160,10 @@ inline const Basis& FunctionSpace::getBasis(const MElement& element) const{
 }
 
 inline const Basis& FunctionSpace::getBasis(size_t eType) const{
+  if(eType >= basis.size())
+    throw Exception("FunctionSpace::getBasis() -- unknown geometrical type %u",
+                    eType);
+
   return *basis[eType];
 }