Index: src/libchcore/TFileInfoArray.cpp
===================================================================
diff -u -N -r081055369d6b332ef1651877756657973b1b2d9c -rfc67a825635691930b3ac00dc95b16e59f3d2fae
--- src/libchcore/TFileInfoArray.cpp	(.../TFileInfoArray.cpp)	(revision 081055369d6b332ef1651877756657973b1b2d9c)
+++ src/libchcore/TFileInfoArray.cpp	(.../TFileInfoArray.cpp)	(revision fc67a825635691930b3ac00dc95b16e59f3d2fae)
@@ -133,6 +133,8 @@
 {
 	boost::shared_lock<boost::shared_mutex> lock(m_lock);
 
+	InitColumns(spContainer);
+
 	// store only if there is a complete collection of items inside
 	// (this container is used in the directory scanning process. There is no
 	// point storing only partially scanned data in the serializer as we
@@ -149,9 +151,7 @@
 
 void TFileInfoArray::Load(const ISerializerContainerPtr& spContainer, const TBasePathDataContainerPtr& spBasePaths)
 {
-	IColumnsDefinition& rColumns = spContainer->GetColumnsDefinition();
-	if(rColumns.IsEmpty())
-		TFileInfo::InitLoader(rColumns);
+	InitColumns(spContainer);
 
 	std::vector<TFileInfoPtr> vEntries;
 	ISerializerRowReaderPtr spRowReader = spContainer->GetRowReader();
@@ -169,4 +169,11 @@
 	m_vFiles = vEntries;
 }
 
+void TFileInfoArray::InitColumns(const ISerializerContainerPtr& spContainer) const
+{
+	IColumnsDefinition& rColumns = spContainer->GetColumnsDefinition();
+	if(rColumns.IsEmpty())
+		TFileInfo::InitColumns(rColumns);
+}
+
 END_CHCORE_NAMESPACE