Index: src/libchcore/TSubTaskBase.cpp
===================================================================
diff -u -re8f31b0f922b402878356e130c866c4f3682a7f5 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01
--- src/libchcore/TSubTaskBase.cpp	(.../TSubTaskBase.cpp)	(revision e8f31b0f922b402878356e130c866c4f3682a7f5)
+++ src/libchcore/TSubTaskBase.cpp	(.../TSubTaskBase.cpp)	(revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01)
@@ -23,7 +23,6 @@
 #include "stdafx.h"
 #include "TSubTaskBase.h"
 #include "TBasePathData.h"
-#include "TLocalFilesystem.h"
 #include "TSubTaskContext.h"
 #include "TTaskConfiguration.h"
 #include <boost/lexical_cast.hpp>
Index: src/libchcore/TSubTaskContext.h
===================================================================
diff -u -ra27d1acf1bda3c25b6dcce0d0eb0278009ce63ae -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01
--- src/libchcore/TSubTaskContext.h	(.../TSubTaskContext.h)	(revision a27d1acf1bda3c25b6dcce0d0eb0278009ce63ae)
+++ src/libchcore/TSubTaskContext.h	(.../TSubTaskContext.h)	(revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01)
@@ -36,7 +36,6 @@
 	class log_file;
 	class TWorkerThreadController;
 	class TTaskConfigTracker;
-	class TLocalFilesystem;
 	class TConfig;
 	class TFileFiltersArray;
 
Index: src/libchcore/TSubTaskCopyMove.cpp
===================================================================
diff -u -rbe569bc86280887eeebb8d3e9489f6fc17c570e6 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01
--- src/libchcore/TSubTaskCopyMove.cpp	(.../TSubTaskCopyMove.cpp)	(revision be569bc86280887eeebb8d3e9489f6fc17c570e6)
+++ src/libchcore/TSubTaskCopyMove.cpp	(.../TSubTaskCopyMove.cpp)	(revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01)
@@ -24,7 +24,6 @@
 #include "TSubTaskCopyMove.h"
 #include "TSubTaskContext.h"
 #include "TTaskConfiguration.h"
-#include "TLocalFilesystem.h"
 #include "TTaskLocalStats.h"
 #include "TTaskConfigTracker.h"
 #include "TWorkerThreadController.h"
@@ -279,19 +278,19 @@
 		TSmartPath pathSource = spFileInfo->GetFullFilePath();
 		TSmartPath pathDestination = GetContext().GetDestinationPath();
 
-		TLocalFilesystem::EPathsRelation eRelation = GetContext().GetLocalFilesystem()->GetPathsRelation(pathSource, pathDestination);
+		IFilesystem::EPathsRelation eRelation = GetContext().GetLocalFilesystem()->GetPathsRelation(pathSource, pathDestination);
 		switch(eRelation)
 		{
-		case TLocalFilesystem::eRelation_Network:
+		case IFilesystem::eRelation_Network:
 			return TBufferSizes::eBuffer_LAN;
 
-		case TLocalFilesystem::eRelation_CDRom:
+		case IFilesystem::eRelation_CDRom:
 			return TBufferSizes::eBuffer_CD;
 
-		case TLocalFilesystem::eRelation_TwoPhysicalDisks:
+		case IFilesystem::eRelation_TwoPhysicalDisks:
 			return TBufferSizes::eBuffer_TwoDisks;
 
-		case TLocalFilesystem::eRelation_SinglePhysicalDisk:
+		case IFilesystem::eRelation_SinglePhysicalDisk:
 			return TBufferSizes::eBuffer_OneDisk;
 
 		//case eRelation_Other:
Index: src/libchcore/TSubTaskCopyMove.h
===================================================================
diff -u -rcb4e9d4b60d62b25ae2cf556c0642601af56c787 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01
--- src/libchcore/TSubTaskCopyMove.h	(.../TSubTaskCopyMove.h)	(revision cb4e9d4b60d62b25ae2cf556c0642601af56c787)
+++ src/libchcore/TSubTaskCopyMove.h	(.../TSubTaskCopyMove.h)	(revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01)
@@ -31,7 +31,6 @@
 
 namespace chcore
 {
-	class TLocalFilesystemFile;
 	typedef boost::shared_ptr<TFileInfo> TFileInfoPtr;
 	struct CUSTOM_COPY_PARAMS;
 
Index: src/libchcore/TSubTaskDelete.cpp
===================================================================
diff -u -rbe569bc86280887eeebb8d3e9489f6fc17c570e6 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01
--- src/libchcore/TSubTaskDelete.cpp	(.../TSubTaskDelete.cpp)	(revision be569bc86280887eeebb8d3e9489f6fc17c570e6)
+++ src/libchcore/TSubTaskDelete.cpp	(.../TSubTaskDelete.cpp)	(revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01)
@@ -25,7 +25,6 @@
 #include "TSubTaskContext.h"
 #include "TWorkerThreadController.h"
 #include "TTaskConfiguration.h"
-#include "TLocalFilesystem.h"
 #include "IFeedbackHandler.h"
 #include <boost\lexical_cast.hpp>
 #include "TFileInfoArray.h"
Index: src/libchcore/TSubTaskFastMove.cpp
===================================================================
diff -u -ra27d1acf1bda3c25b6dcce0d0eb0278009ce63ae -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01
--- src/libchcore/TSubTaskFastMove.cpp	(.../TSubTaskFastMove.cpp)	(revision a27d1acf1bda3c25b6dcce0d0eb0278009ce63ae)
+++ src/libchcore/TSubTaskFastMove.cpp	(.../TSubTaskFastMove.cpp)	(revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01)
@@ -25,7 +25,6 @@
 #include <boost\smart_ptr\make_shared.hpp>
 #include "TSubTaskContext.h"
 #include "TTaskConfiguration.h"
-#include "TLocalFilesystem.h"
 #include "IFeedbackHandler.h"
 #include "TBasePathData.h"
 #include "TWorkerThreadController.h"
Index: src/libchcore/TTask.cpp
===================================================================
diff -u -rda877d1e0007d3dffa60111c79a1d8927174e6e9 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01
--- src/libchcore/TTask.cpp	(.../TTask.cpp)	(revision da877d1e0007d3dffa60111c79a1d8927174e6e9)
+++ src/libchcore/TTask.cpp	(.../TTask.cpp)	(revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01)
@@ -40,6 +40,7 @@
 #include "TTaskConfigBufferSizes.h"
 #include "log.h"
 #include <wchar.h>
+#include "TLocalFilesystem.h"
 
 namespace chcore
 {
Index: src/libchcore/TTask.h
===================================================================
diff -u -ra27d1acf1bda3c25b6dcce0d0eb0278009ce63ae -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01
--- src/libchcore/TTask.h	(.../TTask.h)	(revision a27d1acf1bda3c25b6dcce0d0eb0278009ce63ae)
+++ src/libchcore/TTask.h	(.../TTask.h)	(revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01)
@@ -27,7 +27,6 @@
 #include "TBasePathData.h"
 #include "TSubTaskBase.h"
 #include "TTaskLocalStats.h"
-#include "TLocalFilesystem.h"
 #include "TSubTaskArray.h"
 #include "TSubTaskContext.h"
 #include "TTaskStatsSnapshot.h"
@@ -36,6 +35,7 @@
 #include "TEvent.h"
 #include <mutex>
 #include "log.h"
+#include "IFilesystem.h"
 
 namespace chcore
 {
@@ -169,17 +169,18 @@
 		// other helpers
 		chcore::log_file m_log;				///< Log file where task information will be stored
 
-		// Local filesystem access
-		TLocalFilesystem m_fsLocal;
-
 		/// Thread controlling object
 		TWorkerThreadController m_workerThread;
 
 		/// Mutex for locking concurrent access to members of this class
 #pragma warning(push)
 #pragma warning(disable: 4251)
-		TTaskLocalStatsInfo m_tLocalStats;       // local statistics
+		// Local filesystem access
+		IFilesystemPtr m_fsLocal;
 
+		// local statistics
+		TTaskLocalStatsInfo m_tLocalStats;
+
 		mutable boost::shared_mutex m_lock;
 #pragma warning(pop)