Index: src/Common/PersistentMap.h
===================================================================
--- src/Common/PersistentMap.h	(revision 92d41a4af1542b1fcfd3bacde48933e4c8519366)
+++ src/Common/PersistentMap.h	(revision 1febef62b1cc0a533c2408d031d09dadd2c16fd4)
@@ -146,5 +146,5 @@
 
 		// remove map from base
-		Base base_map = base->take_as<Base>();
+		Base base_map = base->template take_as<Base>();
 		base->reset_as_base();
 
@@ -155,5 +155,5 @@
 				auto it = base_map.find( self.key );
 
-				base->init<Ins>( 
+				base->template init<Ins>( 
 						mut_this->shared_from_this(), std::move(self.key), std::move(it->second) );
 				base->mode = INS;
@@ -165,5 +165,5 @@
 				Ins& self = mut_this->as<Ins>();
 
-				base->init<Rem>( mut_this->shared_from_this(), self.key );
+				base->template init<Rem>( mut_this->shared_from_this(), self.key );
 				base->mode = REM;
 
@@ -175,5 +175,5 @@
 				auto it = base_map.find( self.key );
 
-				base->init<Ins>( 
+				base->template init<Ins>( 
 						mut_this->shared_from_this(), std::move(self.key), std::move(it->second) );
 				base->mode = UPD;
@@ -243,5 +243,5 @@
 		Ptr ret = std::make_shared<Self>( take_as<Base>() );
 		reset_as_base();
-		Base& base_map = ret->as<Base>();
+		Base& base_map = ret->template as<Base>();
 
 		// check if this is update or insert
@@ -274,5 +274,5 @@
 		Ptr ret = std::make_shared<Self>( take_as<Base>() );
 		reset_as_base();
-		Base& base_map = ret->as<Base>();
+		Base& base_map = ret->template as<Base>();
 
 		// set self to INS node and remove from base
