diff --git a/NumLib/DOF/SimpleMatrixVectorProvider.cpp b/NumLib/DOF/SimpleMatrixVectorProvider.cpp
index f1e43efeef1eb0de590b5398a0acd97501bc63e9..c62d4f182600959c18fdd6b1a2b861c176ec1780 100644
--- a/NumLib/DOF/SimpleMatrixVectorProvider.cpp
+++ b/NumLib/DOF/SimpleMatrixVectorProvider.cpp
@@ -23,10 +23,7 @@ namespace NumLib
 {
 template <bool do_search, typename MatVec, typename... Args>
 std::pair<MatVec*, bool> SimpleMatrixVectorProvider::get_(
-    std::size_t& id,
-    std::map<std::size_t, MatVec*>& unused_map,
-    std::map<MatVec*, std::size_t>& used_map,
-    Args&&... args)
+    std::size_t& id, std::map<MatVec*, std::size_t>& used_map, Args&&... args)
 {
     id = _next_id++;
     auto res =
@@ -41,8 +38,7 @@ template <bool do_search, typename... Args>
 std::pair<GlobalMatrix*, bool> SimpleMatrixVectorProvider::getMatrix_(
     std::size_t& id, Args&&... args)
 {
-    return get_<do_search>(
-        id, _unused_matrices, _used_matrices, std::forward<Args>(args)...);
+    return get_<do_search>(id, _used_matrices, std::forward<Args>(args)...);
 }
 
 GlobalMatrix& SimpleMatrixVectorProvider::getMatrix(std::size_t& id)
@@ -76,8 +72,7 @@ template <bool do_search, typename... Args>
 std::pair<GlobalVector*, bool> SimpleMatrixVectorProvider::getVector_(
     std::size_t& id, Args&&... args)
 {
-    return get_<do_search>(
-        id, _unused_vectors, _used_vectors, std::forward<Args>(args)...);
+    return get_<do_search>(id, _used_vectors, std::forward<Args>(args)...);
 }
 
 GlobalVector& SimpleMatrixVectorProvider::getVector(std::size_t& id)
@@ -155,21 +150,11 @@ SimpleMatrixVectorProvider::~SimpleMatrixVectorProvider()
     }
 
     /*
-    for (auto& id_ptr : _unused_matrices)
-    {
-        delete id_ptr.second;
-    }
-
     for (auto& ptr_id : _used_matrices)
     {
         delete ptr_id.first;
     }
 
-    for (auto& id_ptr : _unused_vectors)
-    {
-        delete id_ptr.second;
-    }
-
     for (auto& ptr_id : _used_vectors)
     {
         delete ptr_id.first;
diff --git a/NumLib/DOF/SimpleMatrixVectorProvider.h b/NumLib/DOF/SimpleMatrixVectorProvider.h
index 2bc5398ccf52f17873451cee2a6192c5ed361eae..f8db6b5da1eecc0b0510f0b05499465e0e569f26 100644
--- a/NumLib/DOF/SimpleMatrixVectorProvider.h
+++ b/NumLib/DOF/SimpleMatrixVectorProvider.h
@@ -63,19 +63,15 @@ private:
 
     // returns a pair with the pointer to the matrix/vector and
     // a boolean indicating if a new object has been built (then true else false)
-    template<bool do_search, typename MatVec, typename... Args>
-    std::pair<MatVec*, bool>
-    get_(std::size_t& id,
-         std::map<std::size_t, MatVec*>& unused_map,
-         std::map<MatVec*, std::size_t>& used_map,
-         Args&&... args);
+    template <bool do_search, typename MatVec, typename... Args>
+    std::pair<MatVec*, bool> get_(std::size_t& id,
+                                  std::map<MatVec*, std::size_t>& used_map,
+                                  Args&&... args);
 
     std::size_t _next_id = 1;
 
-    std::map<std::size_t, GlobalMatrix*> _unused_matrices;
     std::map<GlobalMatrix*, std::size_t> _used_matrices;
 
-    std::map<std::size_t, GlobalVector*> _unused_vectors;
     std::map<GlobalVector*, std::size_t> _used_vectors;
 };