Index: kernel/generic/src/ipc/ipc.c
===================================================================
--- kernel/generic/src/ipc/ipc.c	(revision 20282ef3b461efd28e3f237a408f7f5a3021ab1a)
+++ kernel/generic/src/ipc/ipc.c	(revision eb5560afe8035cebc052dbeff42312cbf2312d2f)
@@ -196,10 +196,4 @@
 	} else {
 		/*
-		 * Hold the sender task so that it does not suddenly disappear
-		 * while we are working with it.
-		 */
-		task_hold(call->sender);
-
-		/*
 		 * If the call is still active, i.e. it was answered
 		 * in a non-standard way, remove the call from the
@@ -232,6 +226,4 @@
 	
 	waitq_wakeup(&callerbox->wq, WAKEUP_FIRST);
-
-	task_release(call->sender);
 }
 
Index: kernel/generic/src/ipc/sysipc.c
===================================================================
--- kernel/generic/src/ipc/sysipc.c	(revision 20282ef3b461efd28e3f237a408f7f5a3021ab1a)
+++ kernel/generic/src/ipc/sysipc.c	(revision eb5560afe8035cebc052dbeff42312cbf2312d2f)
@@ -194,10 +194,4 @@
 		list_remove(&answer->ta_link);
 		spinlock_unlock(&answer->sender->active_calls_lock);
-
-		/*
-		 * Hold the sender task so that it cannot suddenly disappear
-		 * while we are working with it.
-		 */
-		task_hold(answer->sender);
 	}
 	spinlock_unlock(&answer->forget_lock);
@@ -217,9 +211,6 @@
 	}
 	
-	if (!olddata) {
-		task_release(answer->sender);
+	if (!olddata)
 		return rc;
-	}
-	
 
 	ops = sysipc_ops_get(answer->request_method);
@@ -227,6 +218,4 @@
 		rc = ops->answer_preprocess(answer, olddata);
 	
-	task_release(answer->sender);
-
 	return rc;
 }
