Index: src/libchcore/TSubTaskArray.cpp
===================================================================
diff -u -N -rc8e73b75027d5e17fb8b1e1eb40e64f40fc62547 -r081055369d6b332ef1651877756657973b1b2d9c
--- src/libchcore/TSubTaskArray.cpp	(.../TSubTaskArray.cpp)	(revision c8e73b75027d5e17fb8b1e1eb40e64f40fc62547)
+++ src/libchcore/TSubTaskArray.cpp	(.../TSubTaskArray.cpp)	(revision 081055369d6b332ef1651877756657973b1b2d9c)
@@ -257,9 +257,9 @@
 		ISerializerContainerPtr spContainer = spSerializer->GetContainer(_T("subtasks_info"));
 		ISerializerRowReaderPtr spRowReader = spContainer->GetRowReader();
 
-		IColumnsDefinitionPtr spColumns = spRowReader->GetColumnsDefinitions();
-		if(spColumns->IsEmpty())
-			*spColumns % _T("id") % _T("operation");
+		IColumnsDefinition& rColumns = spRowReader->GetColumnsDefinitions();
+		if(rColumns.IsEmpty())
+			rColumns % _T("id") % _T("operation");
 
 		if(spRowReader->Next())
 			spRowReader->GetValue(_T("operation"), *(int*)&m_eOperationType.Modify());
@@ -272,9 +272,9 @@
 		ISerializerContainerPtr spContainer = spSerializer->GetContainer(_T("subtasks"));
 		ISerializerRowReaderPtr spRowReader = spContainer->GetRowReader();
 
-		IColumnsDefinitionPtr spColumns = spRowReader->GetColumnsDefinitions();
-		if(spColumns->IsEmpty())
-			*spColumns % _T("id") % _T("type") % _T("is_current") % _T("is_estimation");
+		IColumnsDefinition& rColumns = spRowReader->GetColumnsDefinitions();
+		if(rColumns.IsEmpty())
+			rColumns % _T("id") % _T("type") % _T("is_current") % _T("is_estimation");
 
 		while(spRowReader->Next())
 		{