diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/visitors/ResetTasksStatusVisitor.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/visitors/ResetTasksStatusVisitor.java
new file mode 100644
index 000000000..2b740b8dc
--- /dev/null
+++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/visitors/ResetTasksStatusVisitor.java
@@ -0,0 +1,44 @@
+/*
+ * This file is part of LibrePlan
+ *
+ * Copyright (C) 2011 Igalia, S.L.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package org.libreplan.business.planner.entities.visitors;
+
+/**
+ * Visits a task graph resetting task statuses.
+ *
+ * @author Nacho Barrientos
+ */
+import org.libreplan.business.planner.entities.Task;
+import org.libreplan.business.planner.entities.TaskGroup;
+import org.libreplan.business.util.TaskElementVisitor;
+
+public class ResetTasksStatusVisitor extends TaskElementVisitor {
+
+ public ResetTasksStatusVisitor() {
+ }
+
+ public void visit(Task task) {
+ task.resetStatus();
+ }
+
+ public void visit(TaskGroup taskGroup) {
+ taskGroup.resetStatus();
+ }
+
+}