Index: uspace/srv/vfs/vfs_register.c
===================================================================
--- uspace/srv/vfs/vfs_register.c	(revision 7f3e3e7cd28edb10703225d94b18bb1004b9c570)
+++ uspace/srv/vfs/vfs_register.c	(revision 7c5bcc0ed45d9e1884bc1d0446ed5b150f1cb810)
@@ -39,4 +39,5 @@
 #include <ipc/services.h>
 #include <async.h>
+#include <fibril.h>
 #include <errno.h>
 #include <stdio.h>
@@ -339,4 +340,9 @@
 			 */
 			futex_down(&fs->phone_futex);
+			/*
+			 * Avoid deadlock with other fibrils in the same thread
+			 * by disabling fibril preemption.
+			 */
+			fibril_inc_sercount();
 			return fs->phone; 
 		}
@@ -354,4 +360,9 @@
 	bool found = false;
 
+	/*
+	 * Undo the fibril_inc_sercount() done in vfs_grab_phone().
+	 */
+	fibril_dec_sercount();
+	
 	futex_down(&fs_head_futex);
 	link_t *cur;
