Index: src/libchcore/TSubTaskDelete.cpp
===================================================================
diff -u -r081055369d6b332ef1651877756657973b1b2d9c -rfc67a825635691930b3ac00dc95b16e59f3d2fae
--- src/libchcore/TSubTaskDelete.cpp	(.../TSubTaskDelete.cpp)	(revision 081055369d6b332ef1651877756657973b1b2d9c)
+++ src/libchcore/TSubTaskDelete.cpp	(.../TSubTaskDelete.cpp)	(revision fc67a825635691930b3ac00dc95b16e59f3d2fae)
@@ -87,9 +87,9 @@
 		}
 	}
 
-	void TDeleteProgressInfo::InitLoader(IColumnsDefinition& rColumns)
+	void TDeleteProgressInfo::InitColumns(IColumnsDefinition& rColumns)
 	{
-		rColumns % _T("current_index");
+		rColumns.AddColumn(_T("current_index"), IColumnsDefinition::eType_sizet);
 	}
 
 	void TDeleteProgressInfo::Load(const ISerializerRowReaderPtr& spRowReader)
@@ -253,6 +253,8 @@
 void TSubTaskDelete::Store(const ISerializerPtr& spSerializer) const
 {
 	ISerializerContainerPtr spContainer = spSerializer->GetContainer(_T("subtask_delete"));
+	InitColumns(spContainer);
+
 	ISerializerRowDataPtr spRow;
 
 	if(m_tProgressInfo.WasSerialized())
@@ -268,12 +270,7 @@
 {
 	ISerializerContainerPtr spContainer = spSerializer->GetContainer(_T("subtask_delete"));
 
-	IColumnsDefinition& rColumns = spContainer->GetColumnsDefinition();
-	if(rColumns.IsEmpty())
-	{
-		details::TDeleteProgressInfo::InitLoader(rColumns);
-		TSubTaskStatsInfo::InitLoader(rColumns);
-	}
+	InitColumns(spContainer);
 
 	ISerializerRowReaderPtr spRowReader = spContainer->GetRowReader();
 	if(spRowReader->Next())
@@ -283,4 +280,14 @@
 	}
 }
 
+void TSubTaskDelete::InitColumns(const ISerializerContainerPtr& spContainer) const
+{
+	IColumnsDefinition& rColumns = spContainer->GetColumnsDefinition();
+	if(rColumns.IsEmpty())
+	{
+		details::TDeleteProgressInfo::InitColumns(rColumns);
+		TSubTaskStatsInfo::InitColumns(rColumns);
+	}
+}
+
 END_CHCORE_NAMESPACE