diff --git a/ProcessLib/ProcessVariable.cpp b/ProcessLib/ProcessVariable.cpp
index aac8b94016bd90eb62d29164454bee5707157f25..a7e3e675d264c250214dc8d93cae8bb96828e988 100644
--- a/ProcessLib/ProcessVariable.cpp
+++ b/ProcessLib/ProcessVariable.cpp
@@ -95,6 +95,14 @@ ProcessVariable::ProcessVariable(
     }
 }
 
+ProcessVariable::ProcessVariable(ProcessVariable&& other)
+    : _name(std::move(other._name)),
+      _mesh(other._mesh),
+      _initial_condition(std::move(other._initial_condition)),
+      _dirichlet_bcs(std::move(other._dirichlet_bcs)),
+      _neumann_bc_configs(std::move(other._neumann_bc_configs))
+{}
+
 std::string const& ProcessVariable::getName() const
 {
     return _name;
diff --git a/ProcessLib/ProcessVariable.h b/ProcessLib/ProcessVariable.h
index 3be7ea36894a21bd984b0acab591512da6f57737..559befaaa5a4f3cce9d377e656e53879624fa0dd 100644
--- a/ProcessLib/ProcessVariable.h
+++ b/ProcessLib/ProcessVariable.h
@@ -52,7 +52,7 @@ public:
     ProcessVariable(ConfigTree const& config, MeshLib::Mesh const& mesh,
             GeoLib::GEOObjects const& geometries);
 
-    ProcessVariable(ProcessVariable&&) = default; // maybe circumvents VC++ compilation errors in combination with std::vector
+    ProcessVariable(ProcessVariable&&); // maybe circumvents VC++ compilation errors in combination with std::vector
 
     std::string const& getName() const;