Index: src/ch/ClipboardMonitor.cpp
===================================================================
diff -u -N -r1d8d51e0dd4d8ebcf0bd457d01fab984585220c0 -r9479911a096555a7504c5c8a8eaee83ecb63440c
--- src/ch/ClipboardMonitor.cpp	(.../ClipboardMonitor.cpp)	(revision 1d8d51e0dd4d8ebcf0bd457d01fab984585220c0)
+++ src/ch/ClipboardMonitor.cpp	(.../ClipboardMonitor.cpp)	(revision 9479911a096555a7504c5c8a8eaee83ecb63440c)
@@ -29,6 +29,8 @@
 #include "FolderDialog.h"
 #include "ShutdownDlg.h"
 
+using namespace chcore;
+
 CClipboardMonitor CClipboardMonitor::S_ClipboardMonitor;
 
 CClipboardMonitor::CClipboardMonitor()
@@ -181,13 +183,30 @@
 				chcore::SetTaskPropValue<chcore::eTO_AlternateFilenameFormatString_First>(tTaskDefinition.GetConfiguration(), GetResManager().LoadString(IDS_FIRSTCOPY_STRING));
 				chcore::SetTaskPropValue<chcore::eTO_AlternateFilenameFormatString_AfterFirst>(tTaskDefinition.GetConfiguration(), GetResManager().LoadString(IDS_NEXTCOPY_STRING));
 
-				chcore::TTaskPtr spTask = pData->m_pTasks->CreateTask(tTaskDefinition);
+				CString strMessage;
+				try
+				{
+					chcore::TTaskPtr spTask = pData->m_pTasks->CreateTask(tTaskDefinition);
 
-				// write spTask to a file
-				spTask->Store();
+					// write spTask to a file
+					spTask->Store();
 
-				// start processing
-				spTask->BeginProcessing();
+					// start processing
+					spTask->BeginProcessing();
+				}
+				catch(const std::exception& e)
+				{
+					strMessage = e.what();
+				}
+
+				if(!strMessage.IsEmpty())
+				{
+					ictranslate::CFormat fmt;
+
+					fmt.SetFormat(GetResManager().LoadString(IDS_TASK_CREATE_FAILED));
+					fmt.SetParam(_T("%reason"), strMessage);
+					AfxMessageBox(fmt, MB_OK | MB_ICONERROR);
+				}
 			}
 		}