diff --git a/src/lbm/boundary/ParserUBB.h b/src/lbm/boundary/ParserUBB.h
index 415f36bc4d917fc1c53e921a10ee4844d883d673..98a616c9c035ab6f3df2f4c9dc2c2805a553f368 100644
--- a/src/lbm/boundary/ParserUBB.h
+++ b/src/lbm/boundary/ParserUBB.h
@@ -63,7 +63,7 @@ public:
    {
    public:
       inline Parser( const Config::BlockHandle & config );
-      inline Parser( std::array< std::string, 3 > & equations );
+      inline Parser( const std::array< std::string, 3 > & equations );
       Vector3< real_t > operator()( const Vector3< real_t > & x, const real_t t ) const;
       Vector3< real_t > operator()( const Vector3< real_t > & x ) const;
       bool isTimeDependent() const { return timeDependent_; }
@@ -207,7 +207,7 @@ inline ParserUBB<LatticeModel_T, flag_t, AdaptVelocityToExternalForce, StoreForc
 }
 
 template< typename LatticeModel_T, typename flag_t, bool AdaptVelocityToExternalForce, bool StoreForce>
-inline ParserUBB<LatticeModel_T, flag_t, AdaptVelocityToExternalForce, StoreForce>::Parser::Parser( std::array< std::string, 3 > & equations )
+inline ParserUBB<LatticeModel_T, flag_t, AdaptVelocityToExternalForce, StoreForce>::Parser::Parser( const std::array< std::string, 3 > & equations )
 : parsers_(), equations_( equations ), timeDependent_( false )
 {
    if( equations_[0].length() > 0 )
@@ -370,7 +370,7 @@ inline void ParserUBB< LatticeModel_T, flag_t, AdaptVelocityToExternalForce, Sto
 
    if( p.isTimeDependent() )
    {
-      parserField_->get( x, y, z ) = make_shared<Parser>(p);
+      parserField_->get( x, y, z ) = make_shared<Parser>( p.equations() );
    }
    else
    {
@@ -404,7 +404,7 @@ inline void ParserUBB< LatticeModel_T, flag_t, AdaptVelocityToExternalForce, Sto
 
    if( p.isTimeDependent() )
    {
-      auto shared_p = make_shared<Parser>(p);
+      auto shared_p = make_shared<Parser>( p.equations() );
       for( auto cell = parserField_->beginSliceXYZ( cells ); cell != parserField_->end(); ++cell )
          *cell = shared_p;
    }