diff --git a/Solver/dofManager.h b/Solver/dofManager.h
index 8b46b3d79cb614b1c9bc31a978298d3b87f9206e..61ae399f5dee82479208ca9d71ec9d3219490fdd 100644
--- a/Solver/dofManager.h
+++ b/Solver/dofManager.h
@@ -302,6 +302,7 @@ class dofManager{
   inline void insertInSparsityPattern(const Dof &R, const Dof &C)
   {
     if (_isParallel && !_parallelFinalized) _parallelFinalize();
+    if (!_current->isAllocated()) _current->allocate (sizeOfR());
     std::map<Dof, int>::iterator itR = unknown.find(R);
     if (itR != unknown.end()){
       std::map<Dof, int>::iterator itC = unknown.find(C);