diff --git a/core/fiber.m b/core/fiber.m
index 0a50fd09d0ff3660650e0a67d4c5a069191c4fc6..6c32f632723dd41bb2e827aad889567b1528fd1a 100644
--- a/core/fiber.m
+++ b/core/fiber.m
@@ -139,7 +139,7 @@ fiber_wakeup(struct fiber *f)
  * cancelled.  Such fiber we won't be ever to cancel, ever, and
  * for such fiber this call will lead to an infinite wait.
  * However, fiber_testcancel() is embedded to the rest of fiber_*
- * API (@sa yield()), which makes most of the fibers that opt in,
+ * API (@sa fiber_yield()), which makes most of the fibers that opt in,
  * cancellable.
  *
  * Currently cancellation can only be synchronous: this call
@@ -165,7 +165,7 @@ fiber_cancel(struct fiber *f)
 	f->waiter = fiber;
 
 	@try {
-		yield();
+		fiber_yield();
 	}
 	@finally {
 		f->waiter = NULL;
@@ -207,7 +207,7 @@ void fiber_setcancelstate(bool enable)
  */
 
 void
-yield(void)
+fiber_yield(void)
 {
 	struct fiber *callee = *(--sp);
 	struct fiber *caller = fiber;
@@ -231,7 +231,7 @@ fiber_sleep(ev_tstamp delay)
 	ev_timer_set(&fiber->timer, delay, 0.);
 	ev_timer_start(&fiber->timer);
 	@try {
-		yield();
+		fiber_yield();
 	}
 	@finally {
 		ev_timer_stop(&fiber->timer);
@@ -248,7 +248,7 @@ wait_for_child(pid_t pid)
 	ev_child_set(&fiber->cw, pid, 0);
 	ev_child_start(&fiber->cw);
 	@try {
-		yield();
+		fiber_yield();
 	}
 	@finally {
 		ev_child_stop(&fiber->cw);
@@ -276,7 +276,7 @@ fiber_io_yield()
 	assert(ev_is_active(&fiber->io));
 
 	@try {
-		yield();
+		fiber_yield();
 	}
 	@catch (id o)
 	{
@@ -452,7 +452,7 @@ fiber_loop(void *data __attribute__((unused)))
 
 		fiber_close();
 		fiber_zombificate();
-		yield();	/* give control back to scheduler */
+		fiber_yield();	/* give control back to scheduler */
 	}
 }
 
@@ -613,7 +613,7 @@ wait_inbox(struct fiber *recipient)
 	while (ring_size(recipient->inbox) == 0) {
 		recipient->flags |= FIBER_READING_INBOX;
 		@try {
-			yield();
+			fiber_yield();
 		}
 		@finally {
 			recipient->flags &= ~FIBER_READING_INBOX;
@@ -650,7 +650,7 @@ read_inbox(void)
 	while (ring_size(inbox) == 0) {
 		fiber->flags |= FIBER_READING_INBOX;
 		@try {
-			yield();
+			fiber_yield();
 		}
 		@finally {
 			fiber->flags &= ~FIBER_READING_INBOX;
diff --git a/core/log_io.m b/core/log_io.m
index 3a813541f4bac48b6f414b3b5f4e420d52a4adc0..774da54dafbbecf4d05f90f7afba6f3e0bdb4996 100644
--- a/core/log_io.m
+++ b/core/log_io.m
@@ -116,7 +116,7 @@ recovery_wait_lsn(struct recovery_state *r, i64 lsn)
 	while (lsn < r->confirmed_lsn) {
 		wait_lsn_set(&r->wait_lsn, lsn);
 		@try {
-			yield();
+			fiber_yield();
 		} @finally {
 			wait_lsn_clear(&r->wait_lsn);
 		}
diff --git a/include/fiber.h b/include/fiber.h
index bd51069940c1d6ee691205f467f319d35001ef6b..20e13d336ee87c09fdcc616b82feb21c9994b4a2 100644
--- a/include/fiber.h
+++ b/include/fiber.h
@@ -144,7 +144,8 @@ fiber_io_yield();
 void
 fiber_io_stop(int fd, int events);
 
-void yield(void);
+void
+fiber_yield(void);
 void fiber_destroy_all();
 
 struct msg *read_inbox(void);