Index: uspace/lib/usb/include/usb/pipes.h
===================================================================
--- uspace/lib/usb/include/usb/pipes.h	(revision eb1a2f485e907e821965b3aafca2d8a5355f3518)
+++ uspace/lib/usb/include/usb/pipes.h	(revision 233e68dc23c02f5d2933d4c739d1fda40a184b1a)
@@ -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 eb1a2f485e907e821965b3aafca2d8a5355f3518)
+++ uspace/lib/usb/src/pipes.c	(revision 233e68dc23c02f5d2933d4c739d1fda40a184b1a)
@@ -200,5 +200,5 @@
 	assert(pipe);
 
-	if (pipe->hc_phone >= 0) {
+	if (usb_endpoint_pipe_is_session_started(pipe)) {
 		return EBUSY;
 	}
@@ -226,5 +226,5 @@
 	assert(pipe);
 
-	if (pipe->hc_phone < 0) {
+	if (!usb_endpoint_pipe_is_session_started(pipe)) {
 		return ENOENT;
 	}
@@ -238,4 +238,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 eb1a2f485e907e821965b3aafca2d8a5355f3518)
+++ uspace/lib/usb/src/pipesio.c	(revision 233e68dc23c02f5d2933d4c739d1fda40a184b1a)
@@ -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;
 	}
