Index: uspace/lib/usb/include/usb/pipes.h
===================================================================
--- uspace/lib/usb/include/usb/pipes.h	(revision 9f554e64df31f9bb0353d424d7c05a9c79624c45)
+++ uspace/lib/usb/include/usb/pipes.h	(revision e936e8e6cbbc25342b3cf6a6345b31510cc8d06f)
@@ -137,4 +137,5 @@
 int usb_endpoint_pipe_start_session(usb_endpoint_pipe_t *);
 int usb_endpoint_pipe_end_session(usb_endpoint_pipe_t *);
+bool usb_endpoint_pipe_is_session_started(usb_endpoint_pipe_t *);
 
 int usb_endpoint_pipe_read(usb_endpoint_pipe_t *, void *, size_t, size_t *);
Index: uspace/lib/usb/src/pipes.c
===================================================================
--- uspace/lib/usb/src/pipes.c	(revision 9f554e64df31f9bb0353d424d7c05a9c79624c45)
+++ uspace/lib/usb/src/pipes.c	(revision e936e8e6cbbc25342b3cf6a6345b31510cc8d06f)
@@ -191,5 +191,5 @@
 	assert(pipe);
 
-	if (pipe->hc_phone >= 0) {
+	if (usb_endpoint_pipe_is_session_started(pipe)) {
 		return EBUSY;
 	}
@@ -217,5 +217,5 @@
 	assert(pipe);
 
-	if (pipe->hc_phone < 0) {
+	if (!usb_endpoint_pipe_is_session_started(pipe)) {
 		return ENOENT;
 	}
@@ -229,4 +229,17 @@
 
 	return EOK;
+}
+
+/** Tell whether a session is started (open) on the endpoint pipe.
+ *
+ * The expected usage of this function is in assertions for some
+ * nested functions.
+ *
+ * @param pipe Endpoint pipe in question.
+ * @return Whether @p pipe has opened a session.
+ */
+bool usb_endpoint_pipe_is_session_started(usb_endpoint_pipe_t *pipe)
+{
+	return (pipe->hc_phone >= 0);
 }
 
Index: uspace/lib/usb/src/pipesio.c
===================================================================
--- uspace/lib/usb/src/pipesio.c	(revision 9f554e64df31f9bb0353d424d7c05a9c79624c45)
+++ uspace/lib/usb/src/pipesio.c	(revision e936e8e6cbbc25342b3cf6a6345b31510cc8d06f)
@@ -148,5 +148,5 @@
 	}
 
-	if (pipe->hc_phone < 0) {
+	if (!usb_endpoint_pipe_is_session_started(pipe)) {
 		return EBADF;
 	}
@@ -255,5 +255,5 @@
 	}
 
-	if (pipe->hc_phone < 0) {
+	if (!usb_endpoint_pipe_is_session_started(pipe)) {
 		return EBADF;
 	}
@@ -369,5 +369,5 @@
 	}
 
-	if (pipe->hc_phone < 0) {
+	if (!usb_endpoint_pipe_is_session_started(pipe)) {
 		return EBADF;
 	}
@@ -481,5 +481,5 @@
 	}
 
-	if (pipe->hc_phone < 0) {
+	if (!usb_endpoint_pipe_is_session_started(pipe)) {
 		return EBADF;
 	}
