diff --git a/src/plugins/projectexplorer/task.cpp b/src/plugins/projectexplorer/task.cpp
index 4dc799df49912583904db1539689f5ed5f669520..31054b339b7904e1780e215f832072c79aca3e5e 100644
--- a/src/plugins/projectexplorer/task.cpp
+++ b/src/plugins/projectexplorer/task.cpp
@@ -32,6 +32,22 @@
 namespace ProjectExplorer
 {
 
+Task::Task() : type(Unknown), line(-1)
+{ }
+
+Task::Task(TaskType type_, const QString &description_,
+           const QString &file_, int line_, const QString &category_) :
+    type(type_), description(description_), file(file_), line(line_), category(category_)
+{ }
+
+Task::Task(const Task &source) :
+    type(source.type), description(source.description), file(source.file),
+    line(source.line), category(source.category), formats(source.formats)
+{ }
+
+Task::~Task()
+{ }
+
 Task &Task::operator=(const Task &source)
 {
     type = source.type;
diff --git a/src/plugins/projectexplorer/task.h b/src/plugins/projectexplorer/task.h
index e08d7213c152d0f8f35c1cf8a3dfa7d4bc701664..e91c629e2c96d786d73487939cf6e9eb3a2700c1 100644
--- a/src/plugins/projectexplorer/task.h
+++ b/src/plugins/projectexplorer/task.h
@@ -48,18 +48,11 @@ public:
         Warning
     };
 
-    Task() : type(Unknown), line(-1)
-    { }
+    Task();
     Task(TaskType type_, const QString &description_,
-         const QString &file_, int line_, const QString &category_) :
-        type(type_), description(description_), file(file_), line(line_), category(category_)
-    { }
-    Task(const Task &source) :
-        type(source.type), description(source.description), file(source.file),
-        line(source.line), category(source.category), formats(source.formats)
-    { }
-    ~Task()
-    { }
+         const QString &file_, int line_, const QString &category_);
+    Task(const Task &source);
+    ~Task();
 
     Task &operator=(const Task &source);