Index: kernel/generic/include/errno.h
===================================================================
--- kernel/generic/include/errno.h	(revision ddb0df58c37d07e66431a6471044949a96ecaf7d)
+++ kernel/generic/include/errno.h	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -57,4 +57,5 @@
 #define EBUSY           -14     /* Resource is busy */
 #define EOVERFLOW	-15	/* The result does not fit its size. */
+#define EINTR		-16	/* Operation was interrupted. */
 
 #endif
Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision ddb0df58c37d07e66431a6471044949a96ecaf7d)
+++ kernel/generic/include/ipc/ipc.h	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -294,5 +294,5 @@
 extern void ipc_answer(answerbox_t *, call_t *);
 extern int ipc_call(phone_t *, call_t *);
-extern void ipc_call_sync(phone_t *, call_t *);
+extern int ipc_call_sync(phone_t *, call_t *);
 extern void ipc_phone_init(phone_t *);
 extern void ipc_phone_connect(phone_t *, answerbox_t *);
Index: kernel/generic/src/ipc/ipc.c
===================================================================
--- kernel/generic/src/ipc/ipc.c	(revision ddb0df58c37d07e66431a6471044949a96ecaf7d)
+++ kernel/generic/src/ipc/ipc.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -172,6 +172,8 @@
  * @param phone		Destination kernel phone structure.
  * @param request	Call structure with request.
- */
-void ipc_call_sync(phone_t *phone, call_t *request)
+ *
+ * @return		EOK on success or EINTR if the sleep was interrupted.
+ */
+int ipc_call_sync(phone_t *phone, call_t *request)
 {
 	answerbox_t sync_box; 
@@ -183,5 +185,8 @@
 
 	ipc_call(phone, request);
-	ipc_wait_for_call(&sync_box, SYNCH_NO_TIMEOUT, SYNCH_FLAGS_NONE);
+	if (!ipc_wait_for_call(&sync_box, SYNCH_NO_TIMEOUT,
+	    SYNCH_FLAGS_INTERRUPTIBLE))
+		return EINTR;
+	return EOK;
 }
 
Index: kernel/generic/src/ipc/sysipc.c
===================================================================
--- kernel/generic/src/ipc/sysipc.c	(revision ddb0df58c37d07e66431a6471044949a96ecaf7d)
+++ kernel/generic/src/ipc/sysipc.c	(revision 43e02a6fa3d0ad9f13fe920424ab329f790f03f1)
@@ -443,5 +443,7 @@
 
 	if (!(res = request_preprocess(&call))) {
-		ipc_call_sync(phone, &call);
+		rc = ipc_call_sync(phone, &call);
+		if (rc != EOK)
+			return rc;
 		process_answer(&call);
 	} else {
@@ -481,5 +483,7 @@
 
 	if (!(res = request_preprocess(&call))) {
-		ipc_call_sync(phone, &call);
+		rc = ipc_call_sync(phone, &call);
+		if (rc != EOK)
+			return rc;
 		process_answer(&call);
 	} else 
