diff --git a/GHOPTODO.wiki b/GHOPTODO.wiki
index 68ae360..45fdcbd 100644
--- a/GHOPTODO.wiki
+++ b/GHOPTODO.wiki
@@ -18,6 +18,8 @@
 
   * The star icon used for Subscription of Tasks and the check boxes used for Bulk approval of Tasks on Org Admin's View all Tasks page is broken on IE7. Debug and fix the issue. Pointers - app/soc/content/css/ soc-090730.css and soc-090708-ie.css. Note the css file names are susceptible to changes ;-). (Priority - Very High).
 
+ * Fix the problem with InviteAcceptRedirect URLs. It doesn't redirect to correct URL (Priority - Very High).
+
   * Problem with history - The initial idea was to store history for each change made for every task in the task entity. This history may be important to know how many times a task was reopened, what really made the task to be reopened among other things. This is stored as JSON. See: [http://code.google.com/p/soc/wiki/GHOPImplementationDesign#Task GHOPImplementation and Design of Task model] for more info as how this is implemented. After a small set of changes to that original idea, during the implementation phase, the plan is as follows:
     # Initialize the history property of the task to an empty string when the task is created.
     # When the task is first published, store the entire snapshot of the Task entity, i.e the values of all the entity properties is stored as JSON data as specified in the Implementation and Design page.
@@ -62,20 +64,6 @@
 
   * Integrate Google Wave for GHOP Task comments and submissions. May seem really ambitious at the moment, but it will _really_ help when people start using Wave (Priority - Very Low).
 
-= TODO List with Developer intervention =
+== DONE ==
 
-  * Org App submission, review and acceptance should be done through Surveys - Org App will be replaced by Surveys for GSoC framework, I will inherit the same or build on that model (priority - very low)
-
-= DONE =
-
-  * *By Madhusudan* There exists a page for Org Admins to Approve and Publish Tasks in Bulk. This page is accessible from the sidebar entry "View all tasks" for Org Admins only under their repective Organization name. This provides a table of entries with check boxe for them. Now there is a way to both Approve and Publish tasks in one go. These two actions must be separated. Pointers - app.soc.modules.ghop.views.models.task.View.listOrgTasks() and corresponding Get and Post methods.(Priority - High).
-
-  * *By Madhusudan, Lennard and Sverre* Student Datastore conversion to consider High school students should be done using Task Queue APIs - Requires Task Queue API knowledge(code has already been pushed into the repository only the conversion must be done. So this task should be done by a developer who has access on socghop.appspot.com only. (priority - high)
-
- * *By Sverre* The document system is now tied up to the core Melange logic, views and access checks. It must be reworked to accommodate our modular system to allow document creation for GHOP specific items. *(priority - very high)*
-
- * *By Lennard* Task Subscription: For task subscriptions, we are now creating a task subscription entity for each Task entity created and this is done when the task entity is created. But there is no guarantee that the task subscription entity must be created after the creation of task entity (since Datastore may fail to do that for some unknown reason). So we must implement a method of name getFromTaskEntityOrCreate() in app.soc.modules.ghop.logic.models.task`_`subsciption.Logic which creates a task`_`subscription entity whenever the first person subscribes. The view for this (the method called by AJAX) app.soc.modules.ghop.views.models.task`_`subscription.View.subscribe() must be changed to call this method instead of getForFields() method from the logic module. (Priority - Very High).
-
-  * *By  Pawel* Timeline for actions: The actions allowed for GHOP Tasks for both students and mentors like allowing students to claim the tasks, stop all work submissions among other things have not been using Timeline based checks. So use checks for them. Pointers - app.soc.modules.ghop.views.models.task.View `_`constructMentorActions() and `_`constructStudentActions() methods. (Priority - Very High).
-
-  * *By Pawel* A property in the Timeline model have to be added where we allow org admins and mentors to add tasks but not allowed for public view. Pointers - app.soc.modules.ghop.models.timeline.Timeline. Also corresponding access checks must be added in app.soc.modules.ghop.views.helper.access module. Have to check which relevant method must have this. (Priority - Very High).
\ No newline at end of file
+Cleaned out :).
\ No newline at end of file
