Index: src/libchcore/TTaskDefinition.cpp
===================================================================
diff -u -N -r503a68180cbb933c97e9af965744bf106994c05a -r2e384de25de613cb582a966df7d1cb9468f1c825
--- src/libchcore/TTaskDefinition.cpp	(.../TTaskDefinition.cpp)	(revision 503a68180cbb933c97e9af965744bf106994c05a)
+++ src/libchcore/TTaskDefinition.cpp	(.../TTaskDefinition.cpp)	(revision 2e384de25de613cb582a966df7d1cb9468f1c825)
@@ -188,16 +188,13 @@
 	m_bModified = false;
 
 	// get information from config file
-	// task unique id - use if provided, generate otherwise
-	if (!GetConfigValue(rDataSrc, _T("TaskDefinition.UniqueID"), m_strTaskName) || m_strTaskName.IsEmpty())
-	{
-		boost::uuids::random_generator gen;
-		boost::uuids::uuid u = gen();
-		m_strTaskName = boost::lexical_cast<std::wstring>(u).c_str();
+	// NOTE: task unique id is not read from the config by design;
+	// by using the value, CH tried to re-use the task DB causing problems.
+	// So now, always a new identifier is generated.
+	boost::uuids::random_generator gen;
+	boost::uuids::uuid u = gen();
+	m_strTaskName = boost::lexical_cast<std::wstring>(u).c_str();
 
-		m_bModified = true;
-	}
-
 	// basic information
 	// source paths to be processed
 	if (!GetConfigValue(rDataSrc, _T("TaskDefinition.SourcePaths.Path"), m_vSourcePaths) || m_vSourcePaths.IsEmpty())
@@ -267,7 +264,8 @@
 {
 	// get information from config file
 	// task unique id - use if provided, generate otherwise
-	SetConfigValue(rConfig, _T("TaskDefinition.UniqueID"), m_strTaskName);
+	// NOTE: not storing the task ID is by design. Loading same task twice caused problems
+	// when importing and was disabled. With that, storing was no longer needed.
 
 	// basic information
 	SetConfigValue(rConfig, _T("TaskDefinition.SourcePaths.Path"), m_vSourcePaths);