diff --git a/include/fiber.h b/include/fiber.h
index c657b32a7c85724ef5f6bfa6b9e620018346f1ea..7c391620a3714473840c40a3f1b86b51b1101336 100644
--- a/include/fiber.h
+++ b/include/fiber.h
@@ -111,12 +111,12 @@ struct fiber {
 	uint64_t cookie;
 };
 
-extern __thread struct fiber *fiber;
+extern __thread struct fiber *fiber_ptr;
 
 void fiber_init(void);
 void fiber_free(void);
 typedef void(*fiber_func)(va_list);
-struct fiber *fiber_new(const char *name, fiber_func f);
+struct fiber *fiber_new(const char *name, fiber_func func);
 void fiber_set_name(struct fiber *fiber, const char *name);
 int wait_for_child(pid_t pid);
 
diff --git a/include/mutex.h b/include/mutex.h
index ea72f508bc8da356abcff232157439f02c7d7727..cab56463eea8fdda08c650af5e544eef68db8745 100644
--- a/include/mutex.h
+++ b/include/mutex.h
@@ -76,18 +76,18 @@ mutex_destroy(struct mutex *m)
 static inline bool
 mutex_lock_timeout(struct mutex *m, ev_tstamp timeout)
 {
-	rlist_add_tail_entry(&m->queue, fiber, state);
+	rlist_add_tail_entry(&m->queue, fiber_ptr, state);
 	ev_tstamp start = timeout;
 	while (timeout > 0) {
 		struct fiber *f = rlist_first_entry(&m->queue,
 						    struct fiber, state);
-		if (f == fiber)
+		if (f == fiber_ptr)
 			break;
 
 		fiber_yield_timeout(timeout);
 		timeout -= ev_now() - start;
 		if (timeout <= 0) {
-			rlist_del_entry(fiber, state);
+			rlist_del_entry(fiber_ptr, state);
 			errno = ETIMEDOUT;
 			return true;
 		}
@@ -129,7 +129,7 @@ mutex_unlock(struct mutex *m)
 {
 	struct fiber *f;
 	f = rlist_first_entry(&m->queue, struct fiber, state);
-	assert(f == fiber);
+	assert(f == fiber_ptr);
 	rlist_del_entry(f, state);
 	if (!rlist_empty(&m->queue)) {
 		f = rlist_first_entry(&m->queue, struct fiber, state);
diff --git a/src/admin.cc b/src/admin.cc
index 6c93617f450b30fa2ff4e7eed0502a92a4973eb4..9670a9250b8bd6a49a330899fde18a51156dc4d0 100644
--- a/src/admin.cc
+++ b/src/admin.cc
@@ -247,8 +247,8 @@ static int
 admin_dispatch(struct ev_io *coio, struct iobuf *iobuf, lua_State *L)
 {
 	struct ibuf *in = &iobuf->in;
-	struct tbuf *out = tbuf_new(fiber->gc_pool);
-	struct tbuf *err = tbuf_new(fiber->gc_pool);
+	struct tbuf *out = tbuf_new(fiber_ptr->gc_pool);
+	struct tbuf *err = tbuf_new(fiber_ptr->gc_pool);
 	int cs;
 	char *p, *pe;
 	char *strstart, *strend;
@@ -1994,7 +1994,7 @@ admin_handler(va_list ap)
 		luaL_unref(tarantool_L, LUA_REGISTRYINDEX, coro_ref);
 		evio_close(&coio);
 		iobuf_delete(iobuf);
-		session_destroy(fiber->sid);
+		session_destroy(fiber_ptr->sid);
 	});
 
 	/*
diff --git a/src/admin.rl b/src/admin.rl
index b4df59644b9d46069cfc0f941754bcc65111fdfb..c84cf6d2182ada7ba29ab374d8244aa2c262f122 100644
--- a/src/admin.rl
+++ b/src/admin.rl
@@ -238,8 +238,8 @@ static int
 admin_dispatch(struct ev_io *coio, struct iobuf *iobuf, lua_State *L)
 {
 	struct ibuf *in = &iobuf->in;
-	struct tbuf *out = tbuf_new(fiber->gc_pool);
-	struct tbuf *err = tbuf_new(fiber->gc_pool);
+	struct tbuf *out = tbuf_new(fiber_ptr->gc_pool);
+	struct tbuf *err = tbuf_new(fiber_ptr->gc_pool);
 	int cs;
 	char *p, *pe;
 	char *strstart, *strend;
@@ -387,7 +387,7 @@ admin_handler(va_list ap)
 		luaL_unref(tarantool_L, LUA_REGISTRYINDEX, coro_ref);
 		evio_close(&coio);
 		iobuf_delete(iobuf);
-		session_destroy(fiber->sid);
+		session_destroy(fiber_ptr->sid);
 	});
 
 	/*
diff --git a/src/box/box_lua.cc b/src/box/box_lua.cc
index 92308ab48672cd92d6583b26e9af087c37f84016..9e7b2a182248c27bcb956f2a5442809d699b89ad 100644
--- a/src/box/box_lua.cc
+++ b/src/box/box_lua.cc
@@ -339,12 +339,12 @@ lbox_tuple_transform(struct lua_State *L)
 		return 1;
 	}
 
-	PallocGuard palloc_guard(fiber->gc_pool);
+	PallocGuard palloc_guard(fiber_ptr->gc_pool);
 
 	/*
 	 * Prepare UPDATE expression
 	 */
-	struct tbuf *b = tbuf_new(fiber->gc_pool);
+	struct tbuf *b = tbuf_new(fiber_ptr->gc_pool);
 	tbuf_append(b, (char *) &op_cnt, sizeof(op_cnt));
 	if (field_count > 0) {
 		tbuf_ensure(b, 2 * sizeof(uint32_t) + 1 + 5);
@@ -384,7 +384,7 @@ lbox_tuple_transform(struct lua_State *L)
 	/* Execute tuple_update */
 	struct tuple *new_tuple = tuple_update(tuple_format_ber,
 					       palloc_region_alloc,
-					       fiber->gc_pool,
+					       fiber_ptr->gc_pool,
 					       tuple, tbuf_str(b), tbuf_end(b));
 	lbox_pushtuple(L, new_tuple);
 	return 1;
@@ -527,11 +527,11 @@ lbox_tuple_tostring(struct lua_State *L)
 {
 	struct tuple *tuple = lua_checktuple(L, 1);
 	/* @todo: print the tuple */
-	size_t allocated = palloc_allocated(fiber->gc_pool);
-	struct tbuf *tbuf = tbuf_new(fiber->gc_pool);
+	size_t allocated = palloc_allocated(fiber_ptr->gc_pool);
+	struct tbuf *tbuf = tbuf_new(fiber_ptr->gc_pool);
 	tuple_print(tbuf, tuple);
 	lua_pushlstring(L, tbuf->data, tbuf->size);
-	ptruncate(fiber->gc_pool, allocated);
+	ptruncate(fiber_ptr->gc_pool, allocated);
 	return 1;
 }
 
@@ -802,7 +802,7 @@ lbox_create_iterator(struct lua_State *L)
 	int argc = lua_gettop(L);
 
 	/* Create a new iterator. */
-	PallocGuard palloc_guard(fiber->gc_pool);
+	PallocGuard palloc_guard(fiber_ptr->gc_pool);
 	enum iterator_type type = ITER_ALL;
 	uint32_t key_part_count = 0;
 	const char *key = NULL;
@@ -822,7 +822,7 @@ lbox_create_iterator(struct lua_State *L)
 			/* Nothing */
 		} else if (argc == 3 && lua_type(L, 3) == LUA_TUSERDATA) {
 			/* Tuple. */
-			struct tbuf *b = tbuf_new(fiber->gc_pool);
+			struct tbuf *b = tbuf_new(fiber_ptr->gc_pool);
 			struct tuple *tuple = lua_checktuple(L, 2);
 			key_part_count = tuple->field_count;
 			tuple_to_tbuf(tuple, b);
@@ -830,7 +830,7 @@ lbox_create_iterator(struct lua_State *L)
 			key_size = b->size;
 		} else {
 			/* Single or multi- part key. */
-			struct tbuf *b = tbuf_new(fiber->gc_pool);
+			struct tbuf *b = tbuf_new(fiber_ptr->gc_pool);
 			key_part_count = argc - 2;
 			struct lua_field field;
 			for (uint32_t i = 0; i < key_part_count; i++) {
@@ -937,19 +937,19 @@ lbox_index_count(struct lua_State *L)
 		luaL_error(L, "index.count(): one or more arguments expected");
 
 	/* preparing single or multi-part key */
-	PallocGuard palloc_guard(fiber->gc_pool);
+	PallocGuard palloc_guard(fiber_ptr->gc_pool);
 	uint32_t key_part_count = 0;
 	const char *key = NULL;
 	if (argc == 1 && lua_type(L, 2) == LUA_TUSERDATA) {
 		/* Searching by tuple. */
 		struct tuple *tuple = lua_checktuple(L, 2);
-		struct tbuf *b = tbuf_new(fiber->gc_pool);
+		struct tbuf *b = tbuf_new(fiber_ptr->gc_pool);
 		tuple_to_tbuf(tuple, b);
 		key_part_count = tuple->field_count;
 		key = b->data;
 	} else {
 		/* Single or multi- part key. */
-		struct tbuf *b = tbuf_new(fiber->gc_pool);
+		struct tbuf *b = tbuf_new(fiber_ptr->gc_pool);
 		key_part_count = argc;
 		struct lua_field field;
 		for (uint32_t i = 0; i < key_part_count; i++) {
@@ -1045,7 +1045,7 @@ static struct port *
 port_lua_create(struct lua_State *L)
 {
 	struct port_lua *port = (struct port_lua *)
-			palloc(fiber->gc_pool, sizeof(struct port_lua));
+			palloc(fiber_ptr->gc_pool, sizeof(struct port_lua));
 	port->vtab = &port_lua_vtab;
 	port->L = L;
 	return (struct port *) port;
@@ -1219,18 +1219,18 @@ lbox_process(lua_State *L)
 	}
 	int top = lua_gettop(L); /* to know how much is added by rw_callback */
 
-	size_t allocated_size = palloc_allocated(fiber->gc_pool);
+	size_t allocated_size = palloc_allocated(fiber_ptr->gc_pool);
 	struct port *port_lua = port_lua_create(L);
 	try {
 		box_process(port_lua, op, req, sz);
 
 		/*
 		 * This only works as long as port_lua doesn't
-		 * use fiber->cleanup and fiber->gc_pool.
+		 * use fiber->cleanup and fiber_ptr->gc_pool.
 		 */
-		ptruncate(fiber->gc_pool, allocated_size);
+		ptruncate(fiber_ptr->gc_pool, allocated_size);
 	} catch (const Exception& e) {
-		ptruncate(fiber->gc_pool, allocated_size);
+		ptruncate(fiber_ptr->gc_pool, allocated_size);
 		throw;
 	}
 	return lua_gettop(L) - top;
@@ -1571,8 +1571,8 @@ lbox_pack(struct lua_State *L)
 	size_t size;
 	const char *str;
 
-	PallocGuard palloc_guard(fiber->gc_pool);
-	struct tbuf *b = tbuf_new(fiber->gc_pool);
+	PallocGuard palloc_guard(fiber_ptr->gc_pool);
+	struct tbuf *b = tbuf_new(fiber_ptr->gc_pool);
 
 	struct lua_field field;
 	double dbl;
diff --git a/src/box/request.cc b/src/box/request.cc
index cf71febf40db507cd032593fa8639ec2b942a6ff..53040fffd2351534cc65189b29622b313bc4386d 100644
--- a/src/box/request.cc
+++ b/src/box/request.cc
@@ -116,7 +116,7 @@ execute_update(struct request *request, struct txn *txn)
 	/* Update the tuple. */
 	struct tuple *new_tuple = tuple_update(space->format,
 					       palloc_region_alloc,
-					       fiber->gc_pool,
+					       fiber_ptr->gc_pool,
 					       old_tuple, *reqpos, reqend);
 	try {
 		space_validate_tuple(space, new_tuple);
@@ -234,7 +234,7 @@ request_create(uint32_t type, const char *data, uint32_t len)
 	}
 	request_check_type(type);
 	struct request *request = (struct request *)
-			palloc(fiber->gc_pool, sizeof(struct request));
+			palloc(fiber_ptr->gc_pool, sizeof(struct request));
 	request->type = type;
 	request->data = data;
 	request->len = len;
diff --git a/src/box/txn.cc b/src/box/txn.cc
index a77803245d1ce97c8b38c8791f09e3db2da0cb32..ec5c28ebc5a14fda1202ab98ffc2fd08fc58dbaf 100644
--- a/src/box/txn.cc
+++ b/src/box/txn.cc
@@ -67,7 +67,7 @@ txn_replace(struct txn *txn, struct space *space,
 struct txn *
 txn_begin()
 {
-	struct txn *txn = (struct txn *) p0alloc(fiber->gc_pool, sizeof(*txn));
+	struct txn *txn = (struct txn *) p0alloc(fiber_ptr->gc_pool, sizeof(*txn));
 	return txn;
 }
 
@@ -78,7 +78,7 @@ txn_commit(struct txn *txn)
 		int64_t lsn = next_lsn(recovery_state);
 
 		ev_tstamp start = ev_now(), stop;
-		int res = wal_write(recovery_state, lsn, fiber->cookie,
+		int res = wal_write(recovery_state, lsn, fiber_ptr->cookie,
 				    txn->op, txn->data, txn->len);
 		stop = ev_now();
 
diff --git a/src/coeio.cc b/src/coeio.cc
index 9421502bbc86557a2f382aa312bd8f82190987e8..ab972603bdd16f2ec2c37fbe822e03ce68062f7a 100644
--- a/src/coeio.cc
+++ b/src/coeio.cc
@@ -187,7 +187,7 @@ ssize_t
 coeio_custom(ssize_t (*func)(va_list ap), ev_tstamp timeout, ...)
 {
 	struct coeio_task task;
-	task.fiber = fiber;
+	task.fiber = fiber_ptr;
 	task.func = func;
 	task.result = -1;
 	task.complete = 0;
diff --git a/src/coio.cc b/src/coio.cc
index 07e0a36b478fbd8cbf089914f6041b1c790934ca..9a4b7acd741dbefdddcf7a99e620c00d1aa3c8eb 100644
--- a/src/coio.cc
+++ b/src/coio.cc
@@ -53,7 +53,7 @@ void
 coio_init(struct ev_io *coio)
 {
 	/* Prepare for ev events. */
-	coio->data = fiber;
+	coio->data = fiber_ptr;
 	ev_init(coio, fiber_schedule_coio);
 	coio->fd = -1;
 }
@@ -61,7 +61,7 @@ coio_init(struct ev_io *coio)
 static inline void
 coio_fiber_yield(struct ev_io *coio)
 {
-	coio->data = fiber;
+	coio->data = fiber_ptr;
 	fiber_yield();
 #ifdef DEBUG
 	coio->data = NULL;
@@ -71,7 +71,7 @@ coio_fiber_yield(struct ev_io *coio)
 static inline bool
 coio_fiber_yield_timeout(struct ev_io *coio, ev_tstamp delay)
 {
-	coio->data = fiber;
+	coio->data = fiber_ptr;
 	bool is_timedout = fiber_yield_timeout(delay);
 #ifdef DEBUG
 	coio->data = NULL;
diff --git a/src/fiber.cc b/src/fiber.cc
index 6bd3d4a7508b01d901010d03aeac9e2837979964..b9ebcf3a5c6b4e781e61ede0f67a6fafaa8393c4 100644
--- a/src/fiber.cc
+++ b/src/fiber.cc
@@ -47,7 +47,7 @@ extern "C" {
 enum { FIBER_CALL_STACK = 16 };
 
 static struct fiber sched;
-__thread struct fiber *fiber = &sched;
+__thread struct fiber *fiber_ptr = &sched;
 static __thread struct fiber *call_stack[FIBER_CALL_STACK];
 static __thread struct fiber **sp;
 static __thread uint32_t last_used_fid;
@@ -56,35 +56,35 @@ static __thread struct rlist fibers, zombie_fibers, ready_fibers;
 static __thread ev_async ready_async;
 
 static void
-update_last_stack_frame(struct fiber *fiber)
+update_last_stack_frame(struct fiber *f)
 {
 #ifdef ENABLE_BACKTRACE
-	fiber->last_stack_frame = __builtin_frame_address(0);
+	f->last_stack_frame = __builtin_frame_address(0);
 #else
-	(void)fiber;
+	(void)f;
 #endif /* ENABLE_BACKTRACE */
 }
 
 void
 fiber_call(struct fiber *callee, ...)
 {
-	struct fiber *caller = fiber;
+	struct fiber *caller = fiber_ptr;
 
 	assert(sp + 1 - call_stack < FIBER_CALL_STACK);
 	assert(caller);
 
-	fiber = callee;
+	fiber_ptr = callee;
 	*sp++ = caller;
 
 	update_last_stack_frame(caller);
 
 	callee->csw++;
 
-	fiber->flags &= ~FIBER_READY;
+	fiber_ptr->flags &= ~FIBER_READY;
 
-	va_start(fiber->f_data, callee);
+	va_start(fiber_ptr->f_data, callee);
 	coro_transfer(&caller->coro.ctx, &callee->coro.ctx);
-	va_end(fiber->f_data);
+	va_end(fiber_ptr->f_data);
 }
 
 void
@@ -136,7 +136,7 @@ fiber_cancel(struct fiber *f)
 
 	f->flags |= FIBER_CANCEL;
 
-	if (f == fiber) {
+	if (f == fiber_ptr) {
 		fiber_testcancel();
 		return;
 	}
@@ -154,7 +154,7 @@ fiber_cancel(struct fiber *f)
 		 * it has been cancelled, and die.
 		 */
 		assert(f->waiter == NULL);
-		f->waiter = fiber;
+		f->waiter = fiber_ptr;
 		fiber_yield();
 	}
 	/*
@@ -169,7 +169,7 @@ fiber_cancel(struct fiber *f)
 bool
 fiber_is_cancelled()
 {
-	return fiber->flags & FIBER_CANCEL;
+	return fiber_ptr->flags & FIBER_CANCEL;
 }
 
 /** Test if this fiber is in a cancellable state and was indeed
@@ -197,11 +197,11 @@ fiber_testcancel(void)
 bool
 fiber_setcancellable(bool enable)
 {
-	bool prev = fiber->flags & FIBER_CANCELLABLE;
+	bool prev = fiber_ptr->flags & FIBER_CANCELLABLE;
 	if (enable == true)
-		fiber->flags |= FIBER_CANCELLABLE;
+		fiber_ptr->flags |= FIBER_CANCELLABLE;
 	else
-		fiber->flags &= ~FIBER_CANCELLABLE;
+		fiber_ptr->flags &= ~FIBER_CANCELLABLE;
 	return prev;
 }
 
@@ -214,9 +214,9 @@ void
 fiber_yield(void)
 {
 	struct fiber *callee = *(--sp);
-	struct fiber *caller = fiber;
+	struct fiber *caller = fiber_ptr;
 
-	fiber = callee;
+	fiber_ptr = callee;
 	update_last_stack_frame(caller);
 
 	callee->csw++;
@@ -234,7 +234,7 @@ fiber_schedule_timeout(ev_timer *watcher, int revents)
 {
 	(void) revents;
 
-	assert(fiber == &sched);
+	assert(fiber_ptr == &sched);
 	struct fiber_watcher_data *state =
 			(struct fiber_watcher_data *) watcher->data;
 	state->timed_out = true;
@@ -250,7 +250,7 @@ fiber_yield_timeout(ev_tstamp delay)
 {
 	struct ev_timer timer;
 	ev_timer_init(&timer, fiber_schedule_timeout, delay, 0);
-	struct fiber_watcher_data state = { fiber, false };
+	struct fiber_watcher_data state = { fiber_ptr, false };
 	timer.data = &state;
 	ev_timer_start(&timer);
 	fiber_yield();
@@ -293,7 +293,7 @@ wait_for_child(pid_t pid)
 	ev_child cw;
 	ev_init(&cw, fiber_schedule_child);
 	ev_child_set(&cw, pid, 0);
-	cw.data = fiber;
+	cw.data = fiber_ptr;
 	ev_child_start(&cw);
 	fiber_yield();
 	ev_child_stop(&cw);
@@ -305,7 +305,7 @@ wait_for_child(pid_t pid)
 void
 fiber_schedule(ev_watcher *watcher, int event __attribute__((unused)))
 {
-	assert(fiber == &sched);
+	assert(fiber_ptr == &sched);
 	fiber_call((struct fiber *) watcher->data);
 }
 
@@ -335,28 +335,28 @@ fiber_find(uint32_t fid)
 }
 
 static void
-register_fid(struct fiber *fiber)
+register_fid(struct fiber *f)
 {
-	struct mh_i32ptr_node_t node = { fiber->fid, fiber };
+	struct mh_i32ptr_node_t node = { f->fid, f };
 	mh_i32ptr_put(fiber_registry, &node, NULL, NULL);
 }
 
 static void
-unregister_fid(struct fiber *fiber)
+unregister_fid(struct fiber *f)
 {
-	struct mh_i32ptr_node_t node = { fiber->fid, NULL };
+	struct mh_i32ptr_node_t node = { f->fid, NULL };
 	mh_i32ptr_remove(fiber_registry, &node, NULL);
 }
 
 void
 fiber_gc(void)
 {
-	if (palloc_allocated(fiber->gc_pool) < 128 * 1024) {
-		palloc_reset(fiber->gc_pool);
+	if (palloc_allocated(fiber_ptr->gc_pool) < 128 * 1024) {
+		palloc_reset(fiber_ptr->gc_pool);
 		return;
 	}
 
-	prelease(fiber->gc_pool);
+	prelease(fiber_ptr->gc_pool);
 }
 
 
@@ -366,30 +366,30 @@ fiber_gc(void)
 static void
 fiber_zombificate()
 {
-	if (fiber->waiter)
-		fiber_wakeup(fiber->waiter);
-	rlist_del(&fiber->state);
-	fiber->waiter = NULL;
-	fiber_set_name(fiber, "zombie");
-	fiber->f = NULL;
-	unregister_fid(fiber);
-	fiber->fid = 0;
-	fiber->flags = 0;
-	prelease(fiber->gc_pool);
-	rlist_move_entry(&zombie_fibers, fiber, link);
+	if (fiber_ptr->waiter)
+		fiber_wakeup(fiber_ptr->waiter);
+	rlist_del(&fiber_ptr->state);
+	fiber_ptr->waiter = NULL;
+	fiber_set_name(fiber_ptr, "zombie");
+	fiber_ptr->f = NULL;
+	unregister_fid(fiber_ptr);
+	fiber_ptr->fid = 0;
+	fiber_ptr->flags = 0;
+	prelease(fiber_ptr->gc_pool);
+	rlist_move_entry(&zombie_fibers, fiber_ptr, link);
 }
 
 static void
 fiber_loop(void *data __attribute__((unused)))
 {
 	for (;;) {
-		assert(fiber != NULL && fiber->f != NULL && fiber->fid != 0);
+		assert(fiber_ptr != NULL && fiber_ptr->f != NULL && fiber_ptr->fid != 0);
 		try {
-			fiber->f(fiber->f_data);
+			fiber_ptr->f(fiber_ptr->f_data);
 		} catch (const FiberCancelException& e) {
 			say_info("fiber `%s' has been cancelled",
-				 fiber_name(fiber));
-			say_info("fiber `%s': exiting", fiber_name(fiber));
+				 fiber_name(fiber_ptr));
+			say_info("fiber `%s': exiting", fiber_name(fiber_ptr));
 		} catch (const Exception& e) {
 			e.log();
 		} catch (...) {
@@ -398,8 +398,8 @@ fiber_loop(void *data __attribute__((unused)))
 			 * server bug.
 			 */
 			say_error("fiber `%s': unknown exception",
-				fiber_name(fiber));
-			panic("fiber `%s': exiting", fiber_name(fiber));
+				fiber_name(fiber_ptr));
+			panic("fiber `%s': exiting", fiber_name(fiber_ptr));
 		}
 		fiber_zombificate();
 		fiber_yield();	/* give control back to scheduler */
@@ -413,10 +413,10 @@ fiber_loop(void *data __attribute__((unused)))
 */
 
 void
-fiber_set_name(struct fiber *fiber, const char *name)
+fiber_set_name(struct fiber *f, const char *name)
 {
 	assert(name != NULL);
-	palloc_set_name(fiber->gc_pool, name);
+	palloc_set_name(f->gc_pool, name);
 }
 
 /**
@@ -431,39 +431,39 @@ fiber_set_name(struct fiber *fiber, const char *name)
  * completes.
  */
 struct fiber *
-fiber_new(const char *name, void (*f) (va_list))
+fiber_new(const char *name, void (*func) (va_list))
 {
-	struct fiber *fiber = NULL;
+	struct fiber *f = NULL;
 
 	if (!rlist_empty(&zombie_fibers)) {
-		fiber = rlist_first_entry(&zombie_fibers, struct fiber, link);
-		rlist_move_entry(&fibers, fiber, link);
+		f = rlist_first_entry(&zombie_fibers, struct fiber, link);
+		rlist_move_entry(&fibers, f, link);
 	} else {
-		fiber = (struct fiber *) palloc(eter_pool, sizeof(*fiber));
+		f = (struct fiber *) palloc(eter_pool, sizeof(*fiber_ptr));
 
-		memset(fiber, 0, sizeof(*fiber));
-		tarantool_coro_create(&fiber->coro, fiber_loop, NULL);
+		memset(f, 0, sizeof(*fiber_ptr));
+		tarantool_coro_create(&f->coro, fiber_loop, NULL);
 
-		fiber->gc_pool = palloc_create_pool("");
+		f->gc_pool = palloc_create_pool("");
 
-		rlist_add_entry(&fibers, fiber, link);
-		rlist_create(&fiber->state);
+		rlist_add_entry(&fibers, f, link);
+		rlist_create(&f->state);
 	}
 
 
-	fiber->f = f;
+	f->f = func;
 
 	/* fids from 0 to 100 are reserved */
 	if (++last_used_fid < 100)
 		last_used_fid = 100;
-	fiber->fid = last_used_fid;
-	fiber->sid = 0;
-	fiber->flags = 0;
-	fiber->waiter = NULL;
-	fiber_set_name(fiber, name);
-	register_fid(fiber);
-
-	return fiber;
+	f->fid = last_used_fid;
+	f->sid = 0;
+	f->flags = 0;
+	f->waiter = NULL;
+	fiber_set_name(f, name);
+	register_fid(f);
+
+	return f;
 }
 
 /**
@@ -475,7 +475,7 @@ fiber_new(const char *name, void (*f) (va_list))
 void
 fiber_destroy(struct fiber *f)
 {
-	if (f == fiber) /* do not destroy running fiber */
+	if (f == fiber_ptr) /* do not destroy running fiber */
 		return;
 	if (strcmp(fiber_name(f), "sched") == 0)
 		return;
@@ -497,32 +497,32 @@ fiber_destroy_all()
 
 
 static void
-fiber_info_print(struct tbuf *out, struct fiber *fiber)
+fiber_info_print(struct tbuf *out, struct fiber *f)
 {
-	void *stack_top = (char *) fiber->coro.stack + fiber->coro.stack_size;
+	void *stack_top = (char *) f->coro.stack + f->coro.stack_size;
 
-	tbuf_printf(out, "  - fid: %4i" CRLF, fiber->fid);
-	tbuf_printf(out, "    csw: %i" CRLF, fiber->csw);
-	tbuf_printf(out, "    name: %s" CRLF, fiber_name(fiber));
+	tbuf_printf(out, "  - fid: %4i" CRLF, f->fid);
+	tbuf_printf(out, "    csw: %i" CRLF, f->csw);
+	tbuf_printf(out, "    name: %s" CRLF, fiber_name(f));
 	tbuf_printf(out, "    stack: %p" CRLF, stack_top);
 #ifdef ENABLE_BACKTRACE
 	tbuf_printf(out, "    backtrace:" CRLF "%s",
-		    backtrace(fiber->last_stack_frame,
-			      fiber->coro.stack, fiber->coro.stack_size));
+		    backtrace(f->last_stack_frame,
+			      f->coro.stack, f->coro.stack_size));
 #endif /* ENABLE_BACKTRACE */
 }
 
 void
 fiber_info(struct tbuf *out)
 {
-	struct fiber *fiber;
+	struct fiber *f;
 
 	tbuf_printf(out, "fibers:" CRLF);
 
-	rlist_foreach_entry(fiber, &fibers, link)
-		fiber_info_print(out, fiber);
-	rlist_foreach_entry(fiber, &zombie_fibers, link)
-		fiber_info_print(out, fiber);
+	rlist_foreach_entry(f, &fibers, link)
+		fiber_info_print(out, f);
+	rlist_foreach_entry(f, &zombie_fibers, link)
+		fiber_info_print(out, f);
 }
 
 void
@@ -539,7 +539,7 @@ fiber_init(void)
 	fiber_set_name(&sched, "sched");
 
 	sp = call_stack;
-	fiber = &sched;
+	fiber_ptr = &sched;
 	last_used_fid = 100;
 
 	iobuf_init_readahead(cfg.readahead);
diff --git a/src/ipc.cc b/src/ipc.cc
index 493a5dd12ed8738395cae224ba5e6e2aad4e5628..342b1cebdbb882d64c9ead51a9206672e86e4a4b 100644
--- a/src/ipc.cc
+++ b/src/ipc.cc
@@ -122,14 +122,14 @@ ipc_channel_get_timeout(struct ipc_channel *ch, ev_tstamp timeout)
 	while (ch->count == 0) {
 		/* try to be in FIFO order */
 		if (first_try) {
-			rlist_add_tail_entry(&ch->readers, fiber, state);
+			rlist_add_tail_entry(&ch->readers, fiber_ptr, state);
 			first_try = false;
 		} else {
-			rlist_add_entry(&ch->readers, fiber, state);
+			rlist_add_entry(&ch->readers, fiber_ptr, state);
 		}
 		bool cancellable = fiber_setcancellable(true);
 		fiber_yield_timeout(timeout);
-		rlist_del_entry(fiber, state);
+		rlist_del_entry(fiber_ptr, state);
 
 		/* broadcast messsage wakes us up */
 		if (ch->bcast) {
@@ -184,14 +184,14 @@ ipc_channel_get(struct ipc_channel *ch)
 static void
 ipc_channel_close_waiter(struct ipc_channel *ch, struct fiber *f)
 {
-	ch->close = fiber;
+	ch->close = fiber_ptr;
 
 	while(ch->close) {
 		bool cancellable = fiber_setcancellable(true);
 		fiber_wakeup(f);
 		fiber_yield();
 		ch->close = NULL;
-		rlist_del_entry(fiber, state);
+		rlist_del_entry(fiber_ptr, state);
 		fiber_testcancel();
 		fiber_setcancellable(cancellable);
 	}
@@ -241,15 +241,15 @@ ipc_channel_put_timeout(struct ipc_channel *ch, void *data,
 
 		/* try to be in FIFO order */
 		if (first_try) {
-			rlist_add_tail_entry(&ch->writers, fiber, state);
+			rlist_add_tail_entry(&ch->writers, fiber_ptr, state);
 			first_try = false;
 		} else {
-			rlist_add_entry(&ch->writers, fiber, state);
+			rlist_add_entry(&ch->writers, fiber_ptr, state);
 		}
 
 		bool cancellable = fiber_setcancellable(true);
 		fiber_yield_timeout(timeout);
-		rlist_del_entry(fiber, state);
+		rlist_del_entry(fiber_ptr, state);
 
 		fiber_testcancel();
 		fiber_setcancellable(cancellable);
@@ -340,12 +340,12 @@ ipc_channel_broadcast(struct ipc_channel *ch, void *data)
 		f = rlist_first_entry(&ch->readers, struct fiber, state);
 
 		ch->bcast_msg = data;
-		ch->bcast = fiber;
+		ch->bcast = fiber_ptr;
 		fiber_wakeup(f);
 		bool cancellable = fiber_setcancellable(true);
 		fiber_yield();
 		ch->bcast = NULL;
-		rlist_del_entry(fiber, state);
+		rlist_del_entry(fiber_ptr, state);
 		fiber_testcancel();
 		fiber_setcancellable(cancellable);
 		/* if any other reader was added don't wake it up */
diff --git a/src/iproto.cc b/src/iproto.cc
index 61cab9371f770a70246ecf3d5c30ba7b74c0c0dc..81eec8464139c6c650935b7b619c4cda23627763 100644
--- a/src/iproto.cc
+++ b/src/iproto.cc
@@ -175,7 +175,7 @@ static inline void
 iproto_cache_fiber(struct iproto_queue *i_queue)
 {
 	fiber_gc();
-	rlist_add_entry(&i_queue->fiber_cache, fiber, state);
+	rlist_add_entry(&i_queue->fiber_cache, fiber_ptr, state);
 	fiber_yield();
 }
 
@@ -230,7 +230,7 @@ iproto_queue_handler(va_list ap)
 restart:
 	while (iproto_dequeue_request(i_queue, &request)) {
 
-		fiber_set_sid(fiber, iproto_session_id(request.session), iproto_session_cookie(request.session));
+		fiber_set_sid(fiber_ptr, iproto_session_id(request.session), iproto_session_cookie(request.session));
 		request.process(&request);
 	}
 	iproto_cache_fiber(&request_queue);
@@ -734,7 +734,7 @@ iproto_process_connect(struct iproto_request *request)
 static void
 iproto_process_disconnect(struct iproto_request *request)
 {
-	fiber_set_sid(fiber, request->session->sid, request->session->cookie);
+	fiber_set_sid(fiber_ptr, request->session->sid, request->session->cookie);
 	/* Runs the trigger, which may yield. */
 	iproto_session_destroy(request->session);
 }
diff --git a/src/log_io.cc b/src/log_io.cc
index 33e3e96367c4e69d120def3889070b7adb48a934..5935af0759d2f35e5a16488dcaf176845735bdb5 100644
--- a/src/log_io.cc
+++ b/src/log_io.cc
@@ -100,7 +100,7 @@ scan_dir(struct log_dir *dir, int64_t **ret_lsn)
 	ssize_t result = -1;
 	size_t i = 0, size = 1024;
 	ssize_t ext_len = strlen(dir->filename_ext);
-	int64_t *lsn = (int64_t *) palloc(fiber->gc_pool, sizeof(int64_t) * size);
+	int64_t *lsn = (int64_t *) palloc(fiber_ptr->gc_pool, sizeof(int64_t) * size);
 	DIR *dh = opendir(dir->dirname);
 
 	if (lsn == NULL || dh == NULL)
@@ -144,7 +144,7 @@ scan_dir(struct log_dir *dir, int64_t **ret_lsn)
 
 		i++;
 		if (i == size) {
-			int64_t *n = (int64_t *) palloc(fiber->gc_pool, sizeof(int64_t) * size * 2);
+			int64_t *n = (int64_t *) palloc(fiber_ptr->gc_pool, sizeof(int64_t) * size * 2);
 			if (n == NULL)
 				goto out;
 			memcpy(n, lsn, sizeof(int64_t) * size);
@@ -240,7 +240,7 @@ row_reader_v11(FILE *f, uint32_t *rowlen)
 		say_error("header crc32c mismatch");
 		return NULL;
 	}
-	char *row = (char *) palloc(fiber->gc_pool, sizeof(m) + m.len);
+	char *row = (char *) palloc(fiber_ptr->gc_pool, sizeof(m) + m.len);
 	memcpy(row, &m, sizeof(m));
 
 	if (fread(row + sizeof(m), m.len, 1, f) != 1)
@@ -278,7 +278,7 @@ log_io_cursor_close(struct log_io_cursor *i)
 	 * Seek back to last known good offset.
 	 */
 	fseeko(l->f, i->good_offset, SEEK_SET);
-	prelease(fiber->gc_pool);
+	prelease(fiber_ptr->gc_pool);
 }
 
 /**
@@ -306,7 +306,7 @@ log_io_cursor_next(struct log_io_cursor *i, uint32_t *rowlen)
 	 * it before reading the next row, to make
 	 * sure it's not freed along here.
 	 */
-	prelease_after(fiber->gc_pool, 128 * 1024);
+	prelease_after(fiber_ptr->gc_pool, 128 * 1024);
 
 restart:
 	if (marker_offset > 0)
diff --git a/src/lua/bsdsocket.cc b/src/lua/bsdsocket.cc
index d35e56b40d4ed77740b03d6c4a94bb85d80e51d5..6f0cff9ca94a876b26214b724ee7c8f854c1f89a 100644
--- a/src/lua/bsdsocket.cc
+++ b/src/lua/bsdsocket.cc
@@ -422,7 +422,7 @@ lbox_bsdsocket_iowait(struct lua_State *L)
 
 	struct ev_io io;
 	ev_io_init(&io, bsdsocket_io, fh, events);
-	struct bsdsocket_io_wdata wdata = { fiber, 0 };
+	struct bsdsocket_io_wdata wdata = { fiber_ptr, 0 };
 	io.data = &wdata;
 	ev_set_priority(&io, EV_MAXPRI);
 	ev_io_start(&io);
diff --git a/src/lua/init.cc b/src/lua/init.cc
index 58c53fbd3c81abf7fd2ea6e21554ee1fca7732ce..2a3dd466f2cad5a15f54a0e4b57f0fdddb1079b8 100644
--- a/src/lua/init.cc
+++ b/src/lua/init.cc
@@ -374,7 +374,7 @@ lbox_isfiber(struct lua_State *L, int narg)
 static int
 lbox_fiber_id(struct lua_State *L)
 {
-	struct fiber *f = lua_gettop(L) ? lbox_checkfiber(L, 1) : fiber;
+	struct fiber *f = lua_gettop(L) ? lbox_checkfiber(L, 1) : fiber_ptr;
 	lua_pushinteger(L, f->fid);
 	return 1;
 }
@@ -418,7 +418,7 @@ box_lua_fiber_push_caller(struct lua_State *child_L)
 		lbox_create_weak_table(child_L, "callers");
 	}
 	lua_pushthread(child_L);
-	lua_pushinteger(child_L, fiber->fid);
+	lua_pushinteger(child_L, fiber_ptr->fid);
 	lua_settable(child_L, -3);
 	/* Pop the fiberlib metatable and callers table. */
 	lua_pop(child_L, 2);
@@ -466,7 +466,7 @@ lbox_fiber_gc(struct lua_State *L)
 	 * to resume an attached fiber.
 	 */
 	if (child_L) {
-		assert(f != fiber && child_L != L);
+		assert(f != fiber_ptr && child_L != L);
 		/*
 		 * Garbage collect the associated coro.
 		 * Do it first, since the cancelled fiber
@@ -488,14 +488,14 @@ lbox_fiber_gc(struct lua_State *L)
 static int
 lbox_fiber_detach(struct lua_State *L)
 {
-	if (box_lua_fiber_get_coro(L, fiber) == NULL)
+	if (box_lua_fiber_get_coro(L, fiber_ptr) == NULL)
 		luaL_error(L, "fiber.detach(): not attached");
 	struct fiber *caller = box_lua_fiber_get_caller(L);
 	/* Clear the caller, to avoid a reference leak. */
 	/* Request a detach. */
 	lua_pushinteger(L, DETACH);
 	/* A detached fiber has no associated session. */
-	fiber_set_sid(fiber, 0, 0);
+	fiber_set_sid(fiber_ptr, 0, 0);
 	fiber_yield_to(caller);
 	return 0;
 }
@@ -506,7 +506,7 @@ box_lua_fiber_run(va_list ap __attribute__((unused)))
 	fiber_testcancel();
 	fiber_setcancellable(false);
 
-	struct lua_State *L = box_lua_fiber_get_coro(tarantool_L, fiber);
+	struct lua_State *L = box_lua_fiber_get_coro(tarantool_L, fiber_ptr);
 	/*
 	 * Reference the coroutine to make sure it's not garbage
 	 * collected when detached.
@@ -535,11 +535,11 @@ box_lua_fiber_run(va_list ap __attribute__((unused)))
 
 		cleanup();
 	} catch (const FiberCancelException &e) {
-		if (box_lua_fiber_get_coro(L, fiber)) {
+		if (box_lua_fiber_get_coro(L, fiber_ptr)) {
 			struct fiber *caller = box_lua_fiber_get_caller(L);
 			fiber_wakeup(caller);
 		}
-		box_lua_fiber_clear_coro(tarantool_L, fiber);
+		box_lua_fiber_clear_coro(tarantool_L, fiber_ptr);
 		/*
 		 * Note: FiberCancelException leaves garbage on
 		 * coroutine stack. This is OK since it is only
@@ -578,7 +578,7 @@ box_lua_fiber_run(va_list ap __attribute__((unused)))
 	 * If we're still attached, synchronously pass
 	 * them to the caller, and then terminate.
 	 */
-	if (box_lua_fiber_get_coro(L, fiber)) {
+	if (box_lua_fiber_get_coro(L, fiber_ptr)) {
 		struct fiber *caller = box_lua_fiber_get_caller(L);
 		lua_pushinteger(L, DONE);
 		fiber_yield_to(caller);
@@ -590,7 +590,7 @@ static bool
 lbox_fiber_checkstack(struct lua_State *L)
 {
 	fiber_checkstack();
-	struct fiber *f = fiber;
+	struct fiber *f = fiber_ptr;
 	const int MAX_STACK_DEPTH = 16;
 	int depth = 1;
 	while ((L = box_lua_fiber_get_coro(L, f)) != NULL) {
@@ -613,7 +613,7 @@ lbox_fiber_create(struct lua_State *L)
 
 	struct fiber *f = fiber_new("lua", box_lua_fiber_run);
 	/* Preserve the session in a child fiber. */
-	fiber_set_sid(f, fiber->sid, fiber->cookie);
+	fiber_set_sid(f, fiber_ptr->sid, fiber_ptr->cookie);
 	/* Initially the fiber is cancellable */
 	f->flags |= FIBER_USER_MODE | FIBER_CANCELLABLE;
 
@@ -767,12 +767,12 @@ lbox_fiber_yield(struct lua_State *L)
 	fiber_setcancellable(true);
 	struct lua_State *coro_L;
 	struct fiber *caller;
-	if ((coro_L = box_lua_fiber_get_coro(L, fiber)) &&
+	if ((coro_L = box_lua_fiber_get_coro(L, fiber_ptr)) &&
 	     (caller = box_lua_fiber_get_caller(coro_L))) {
 		lua_pushinteger(L, YIELD);
 		fiber_yield_to(caller);
 	} else {
-		fiber_wakeup(fiber);
+		fiber_wakeup(fiber_ptr);
 		fiber_yield();
 		fiber_testcancel();
 	}
@@ -789,7 +789,7 @@ lbox_fiber_yield(struct lua_State *L)
 static bool
 fiber_is_caller(struct lua_State *L, struct fiber *f)
 {
-	struct fiber *child = fiber;
+	struct fiber *child = fiber_ptr;
 	while ((L = box_lua_fiber_get_coro(L, child)) != NULL) {
 		struct fiber *caller = box_lua_fiber_get_caller(L);
 		if (caller == f)
@@ -820,13 +820,13 @@ lbox_fiber_status(struct lua_State *L)
 			luaL_checkudata(L, 1, fiberlib_name);
 		f = fiber_find(fid);
 	} else {
-		f = fiber;
+		f = fiber_ptr;
 	}
 	const char *status;
 	if (f == NULL || f->fid == 0) {
 		/* This fiber is dead. */
 		status = "dead";
-	} else if (f == fiber) {
+	} else if (f == fiber_ptr) {
 		/* The fiber is the current running fiber. */
 		status = "running";
 	} else if (fiber_is_caller(L, f)) {
@@ -848,7 +848,7 @@ lbox_fiber_status(struct lua_State *L)
 static int
 lbox_fiber_name(struct lua_State *L)
 {
-	struct fiber *f = fiber;
+	struct fiber *f = fiber_ptr;
 	int name_index = 1;
 	if (lua_gettop(L) >= 1 && lbox_isfiber(L, 1)) {
 		f = lbox_checkfiber(L, 1);
@@ -886,7 +886,7 @@ lbox_fiber_sleep(struct lua_State *L)
 static int
 lbox_fiber_self(struct lua_State *L)
 {
-	lbox_pushfiber(L, fiber);
+	lbox_pushfiber(L, fiber_ptr);
 	return 1;
 }
 
@@ -1081,13 +1081,13 @@ lbox_print(struct lua_State *L)
 		if (out->size < 2 || tbuf_str(out)[out->size-1] != '\n')
 			tbuf_printf(out, CRLF);
 	} else {
-		size_t allocated = palloc_allocated(fiber->gc_pool);
+		size_t allocated = palloc_allocated(fiber_ptr->gc_pool);
 		auto scoped_guard = make_scoped_guard([=] {
-			ptruncate(fiber->gc_pool, allocated);
+			ptruncate(fiber_ptr->gc_pool, allocated);
 		});
 
 		/* Add a message to the server log */
-		out = tbuf_new(fiber->gc_pool);
+		out = tbuf_new(fiber_ptr->gc_pool);
 		tarantool_lua_printstack(L, out);
 		say_info("%s", tbuf_str(out));
 	}
@@ -1317,11 +1317,11 @@ tarantool_lua_close(struct lua_State *L)
 static int
 tarantool_lua_dostring(struct lua_State *L, const char *str)
 {
-	struct tbuf *buf = tbuf_new(fiber->gc_pool);
-	size_t allocated = palloc_allocated(fiber->gc_pool);
+	struct tbuf *buf = tbuf_new(fiber_ptr->gc_pool);
+	size_t allocated = palloc_allocated(fiber_ptr->gc_pool);
 	tbuf_printf(buf, "%s%s", "return ", str);
 	int r = luaL_loadstring(L, tbuf_str(buf));
-	ptruncate(fiber->gc_pool, allocated);
+	ptruncate(fiber_ptr->gc_pool, allocated);
 	if (r) {
 		/* pop the error message */
 		lua_pop(L, 1);
diff --git a/src/lua/session.cc b/src/lua/session.cc
index 05a21ce4baa85314de40c59b3cafe0b3ca6c79c8..8d14d3c0071527b5346d109e1b2bccd9bef5594b 100644
--- a/src/lua/session.cc
+++ b/src/lua/session.cc
@@ -53,7 +53,7 @@ extern lua_State *root_L;
 static int
 lbox_session_id(struct lua_State *L)
 {
-	lua_pushnumber(L, fiber->sid);
+	lua_pushnumber(L, fiber_ptr->sid);
 	return 1;
 }
 
@@ -81,7 +81,7 @@ lbox_session_peer(struct lua_State *L)
 		luaL_error(L, "session.peer(sid): bad arguments");
 
 	uint32_t sid = lua_gettop(L) == 1 ?
-		luaL_checkint(L, -1) : fiber->sid;
+		luaL_checkint(L, -1) : fiber_ptr->sid;
 
 	int fd = session_fd(sid);
 	struct sockaddr_in addr;
diff --git a/src/memcached-grammar.cc b/src/memcached-grammar.cc
index 6012b829a50758f6cf0f14aa177b77e0aee954ce..3cf79e01bd414f4e78ae5f77dadb7e555ea1a412 100644
--- a/src/memcached-grammar.cc
+++ b/src/memcached-grammar.cc
@@ -47,7 +47,7 @@ memcached_dispatch(struct ev_io *coio, struct iobuf *iobuf)
 	int cs;
 	char *p, *pe;
 	char *fstart;
-	struct tbuf *keys = tbuf_new(fiber->gc_pool);
+	struct tbuf *keys = tbuf_new(fiber_ptr->gc_pool);
 	const char *key;
 	bool append, show_cas;
 	int incr_sign;
@@ -428,7 +428,7 @@ case 12:
 				obuf_dup(out, "NOT_STORED\r\n", 12);
 			} else {
 				field = tuple_field(tuple, 3, &field_len);
-				b = tbuf_new(fiber->gc_pool);
+				b = tbuf_new(fiber_ptr->gc_pool);
 				if (append) {
 					tbuf_append(b, field, field_len);
 					tbuf_append(b, data, bytes);
@@ -487,7 +487,7 @@ case 12:
 				obuf_dup(out, "NOT_STORED\r\n", 12);
 			} else {
 				field = tuple_field(tuple, 3, &field_len);
-				b = tbuf_new(fiber->gc_pool);
+				b = tbuf_new(fiber_ptr->gc_pool);
 				if (append) {
 					tbuf_append(b, field, field_len);
 					tbuf_append(b, data, bytes);
@@ -548,7 +548,7 @@ case 12:
 				obuf_dup(out, "NOT_STORED\r\n", 12);
 			} else {
 				field = tuple_field(tuple, 3, &field_len);
-				b = tbuf_new(fiber->gc_pool);
+				b = tbuf_new(fiber_ptr->gc_pool);
 				if (append) {
 					tbuf_append(b, field, field_len);
 					tbuf_append(b, data, bytes);
@@ -742,7 +742,7 @@ case 12:
 					exptime = m->exptime;
 					flags = m->flags;
 
-					b = tbuf_new(fiber->gc_pool);
+					b = tbuf_new(fiber_ptr->gc_pool);
 					tbuf_printf(b, "%" PRIu64, value);
 					data = b->data;
 					bytes = b->size;
@@ -806,7 +806,7 @@ case 12:
 					exptime = m->exptime;
 					flags = m->flags;
 
-					b = tbuf_new(fiber->gc_pool);
+					b = tbuf_new(fiber_ptr->gc_pool);
 					tbuf_printf(b, "%" PRIu64, value);
 					data = b->data;
 					bytes = b->size;
@@ -872,7 +872,7 @@ case 12:
 					exptime = m->exptime;
 					flags = m->flags;
 
-					b = tbuf_new(fiber->gc_pool);
+					b = tbuf_new(fiber_ptr->gc_pool);
 					tbuf_printf(b, "%" PRIu64, value);
 					data = b->data;
 					bytes = b->size;
diff --git a/src/memcached-grammar.rl b/src/memcached-grammar.rl
index d1cd7226fc8f1504097c395020eabb5e3b5ca3a0..8b3a00ab5d9175a84a43a6f55771dbaf66040fbe 100644
--- a/src/memcached-grammar.rl
+++ b/src/memcached-grammar.rl
@@ -38,7 +38,7 @@ memcached_dispatch(struct ev_io *coio, struct iobuf *iobuf)
 	int cs;
 	char *p, *pe;
 	char *fstart;
-	struct tbuf *keys = tbuf_new(fiber->gc_pool);
+	struct tbuf *keys = tbuf_new(fiber_ptr->gc_pool);
 	const char *key;
 	bool append, show_cas;
 	int incr_sign;
@@ -105,7 +105,7 @@ memcached_dispatch(struct ev_io *coio, struct iobuf *iobuf)
 				obuf_dup(out, "NOT_STORED\r\n", 12);
 			} else {
 				field = tuple_field(tuple, 3, &field_len);
-				b = tbuf_new(fiber->gc_pool);
+				b = tbuf_new(fiber_ptr->gc_pool);
 				if (append) {
 					tbuf_append(b, field, field_len);
 					tbuf_append(b, data, bytes);
@@ -151,7 +151,7 @@ memcached_dispatch(struct ev_io *coio, struct iobuf *iobuf)
 					exptime = m->exptime;
 					flags = m->flags;
 
-					b = tbuf_new(fiber->gc_pool);
+					b = tbuf_new(fiber_ptr->gc_pool);
 					tbuf_printf(b, "%" PRIu64, value);
 					data = b->data;
 					bytes = b->size;
diff --git a/src/memcached.cc b/src/memcached.cc
index 545bbeae8cb6df6af1263dc7045da63cd45663eb..f137009b03e96baba8f45e7ef14f80d1c66aac5b 100644
--- a/src/memcached.cc
+++ b/src/memcached.cc
@@ -127,7 +127,7 @@ memcached_store(const char *key, uint32_t exptime, uint32_t flags, uint32_t byte
 	static uint64_t cas = 42;
 	struct meta m;
 
-	struct tbuf *req = tbuf_new(fiber->gc_pool);
+	struct tbuf *req = tbuf_new(fiber_ptr->gc_pool);
 
 	tbuf_append(req, &cfg.memcached_space, sizeof(uint32_t));
 	tbuf_append(req, &box_flags, sizeof(box_flags));
@@ -161,7 +161,7 @@ memcached_delete(const char *key)
 {
 	uint32_t key_len = 1;
 	uint32_t box_flags = 0;
-	struct tbuf *req = tbuf_new(fiber->gc_pool);
+	struct tbuf *req = tbuf_new(fiber_ptr->gc_pool);
 
 	tbuf_append(req, &cfg.memcached_space, sizeof(uint32_t));
 	tbuf_append(req, &box_flags, sizeof(box_flags));
@@ -233,7 +233,7 @@ salloc_stat_memcached_cb(const struct slab_cache_stats *cstat, void *cb_ctx)
 static void
 memcached_print_stats(struct obuf *out)
 {
-	struct tbuf *buf = tbuf_new(fiber->gc_pool);
+	struct tbuf *buf = tbuf_new(fiber_ptr->gc_pool);
 
 	struct salloc_stat_memcached_cb_ctx memstats;
 	memstats.bytes_used = memstats.items = 0;
@@ -315,7 +315,7 @@ void memcached_get(struct obuf *out, size_t keys_count, struct tbuf *keys,
 		stat_collect(stat_base, MEMC_GET_HIT, 1);
 
 		if (show_cas) {
-			struct tbuf *b = tbuf_new(fiber->gc_pool);
+			struct tbuf *b = tbuf_new(fiber_ptr->gc_pool);
 			tbuf_printf(b, "VALUE %.*s %" PRIu32 " %" PRIu32 " %" PRIu64 "\r\n", key_len, (char*) key, m->flags, value_len, m->cas);
 			obuf_dup(out, b->data, b->size);
 			stats.bytes_written += b->size;
@@ -562,7 +562,7 @@ memcached_expire_loop(va_list ap __attribute__((unused)))
 		if (tuple == NULL)
 			memcached_index->initIterator(memcached_it, ITER_ALL, NULL, 0);
 
-		struct tbuf *keys_to_delete = tbuf_new(fiber->gc_pool);
+		struct tbuf *keys_to_delete = tbuf_new(fiber_ptr->gc_pool);
 
 		for (int j = 0; j < cfg.memcached_expire_per_loop; j++) {
 
diff --git a/src/recovery.cc b/src/recovery.cc
index acad8fb86f30d6f9332fa8486db9904a3ef4da7a..e2ae5213ac08037968589afa51f8355739fbdd26 100644
--- a/src/recovery.cc
+++ b/src/recovery.cc
@@ -110,7 +110,7 @@ void
 wait_lsn_set(struct wait_lsn *wait_lsn, int64_t lsn)
 {
 	assert(wait_lsn->waiter == NULL);
-	wait_lsn->waiter = fiber;
+	wait_lsn->waiter = fiber_ptr;
 	wait_lsn->lsn = lsn;
 }
 
@@ -512,7 +512,7 @@ recover_remaining_wals(struct recovery_state *r)
 		result = -1;
 	}
 
-	prelease(fiber->gc_pool);
+	prelease(fiber_ptr->gc_pool);
 	return result;
 }
 
@@ -536,7 +536,7 @@ recover_existing_wals(struct recovery_state *r)
 		panic("recover failed");
 	say_info("WALs recovered, confirmed lsn: %" PRIi64, r->confirmed_lsn);
 out:
-	prelease(fiber->gc_pool);
+	prelease(fiber_ptr->gc_pool);
 }
 
 void
@@ -1131,10 +1131,10 @@ wal_write(struct recovery_state *r, int64_t lsn, uint64_t cookie,
 	struct wal_writer *writer = r->writer;
 
 	struct wal_write_request *req = (struct wal_write_request *)
-		palloc(fiber->gc_pool, sizeof(struct wal_write_request) +
+		palloc(fiber_ptr->gc_pool, sizeof(struct wal_write_request) +
 		       sizeof(op) + row_len);
 
-	req->fiber = fiber;
+	req->fiber = fiber_ptr;
 	req->res = -1;
 	row_v11_fill(&req->row, lsn, XLOG, cookie, (const char *) &op,
 		     sizeof(op), row, row_len);
@@ -1167,7 +1167,7 @@ snapshot_write_row(struct log_io *l,
 	ev_tstamp elapsed;
 	static ev_tstamp last = 0;
 
-	struct row_v11 *row = (struct row_v11 *) palloc(fiber->gc_pool,
+	struct row_v11 *row = (struct row_v11 *) palloc(fiber_ptr->gc_pool,
 				     sizeof(struct row_v11) +
 				     data_len + metadata_len);
 
@@ -1186,7 +1186,7 @@ snapshot_write_row(struct log_io *l,
 	bytes += written;
 
 
-	prelease_after(fiber->gc_pool, 128 * 1024);
+	prelease_after(fiber_ptr->gc_pool, 128 * 1024);
 
 	if (recovery_state->snap_io_rate_limit != UINT64_MAX) {
 		if (last == 0) {
diff --git a/src/replica.cc b/src/replica.cc
index 43595230758a6c1303d862415ceb75b8c08590ec..4860fe39e5cd1349c28f93f8697436135f0016d8 100644
--- a/src/replica.cc
+++ b/src/replica.cc
@@ -107,7 +107,7 @@ pull_from_remote(va_list ap)
 				title("replica", "%s/%s", r->remote->source,
 				      "connecting");
 				if (iobuf == NULL)
-					iobuf = iobuf_new(fiber_name(fiber));
+					iobuf = iobuf_new(fiber_name(fiber_ptr));
 				remote_connect(&coio, &r->remote->addr,
 					       r->confirmed_lsn + 1, &err);
 				warning_said = false;
diff --git a/src/replication.cc b/src/replication.cc
index 071eba7c109e898e2f296f88cd6e089a4bb79a2d..41d71c65b3fa91cab450227dc9f62ab3b4a8ff50 100644
--- a/src/replication.cc
+++ b/src/replication.cc
@@ -302,7 +302,7 @@ spawner_init(int sock)
 	struct sigaction sa;
 
 	title("spawner", NULL);
-	fiber_set_name(fiber, status);
+	fiber_set_name(fiber_ptr, status);
 
 	/* init replicator process context */
 	spawner.sock = sock;
@@ -619,7 +619,7 @@ replication_relay_loop(int client_sock)
 	socklen_t addrlen = sizeof(peer);
 	getpeername(client_sock, ((struct sockaddr*)&peer), &addrlen);
 	title("relay", "%s", sio_strfaddr(&peer));
-	fiber_set_name(fiber, status);
+	fiber_set_name(fiber_ptr, status);
 
 	/* init signals */
 	memset(&sa, 0, sizeof(sa));
diff --git a/src/say.cc b/src/say.cc
index c6a03108c91f83c06752b54046c83c7de2487a45..1fcfead429c5e4aee3db619ac8b57070d3aff2b3 100644
--- a/src/say.cc
+++ b/src/say.cc
@@ -192,7 +192,7 @@ vsay(int level, const char *filename, int line, const char *error, const char *f
 		      ev_now() - now + tm.tm_sec);
 
 	p += snprintf(buf + p, len - p, " [%i] %i/%s", getpid(),
-		      fiber->fid, fiber_name(fiber));
+		      fiber_ptr->fid, fiber_name(fiber_ptr));
 
 	if (level == S_WARN || level == S_ERROR)
 		p += snprintf(buf + p, len - p, " %s:%i", filename, line);
diff --git a/src/session.cc b/src/session.cc
index dcddeb38221a03dd81ef3ab02ca5ca46de63fc55..9abdc1acef4faabde7cb1b3fba4deb15154ef15e 100644
--- a/src/session.cc
+++ b/src/session.cc
@@ -62,13 +62,13 @@ session_create(int fd, uint64_t cookie)
 	 * Run the trigger *after* setting the current
 	 * fiber sid.
 	 */
-	fiber_set_sid(fiber, sid, cookie);
+	fiber_set_sid(fiber_ptr, sid, cookie);
 	if (session_on_connect.trigger) {
 		void *param = session_on_connect.param;
 		try {
 			session_on_connect.trigger(param);
 		} catch (const Exception& e) {
-			fiber_set_sid(fiber, 0, 0);
+			fiber_set_sid(fiber_ptr, 0, 0);
 			mh_i32ptr_remove(session_registry, &node, NULL);
 			throw;
 		}
diff --git a/src/tarantool.cc b/src/tarantool.cc
index f114afbe96f19d2ec5b2c2523b65b49f88ad8b17..ea433395cc447a23a838f00b8a30152abf9d4ac2 100644
--- a/src/tarantool.cc
+++ b/src/tarantool.cc
@@ -366,7 +366,7 @@ snapshot(void)
 	salloc_protect();
 
 	title("dumper", "%" PRIu32, getppid());
-	fiber_set_name(fiber, status);
+	fiber_set_name(fiber_ptr, status);
 
 	/*
 	 * Safety: make sure we don't double-write
@@ -933,7 +933,7 @@ main(int argc, char **argv)
 		 * initialized.
 		 */
 		tarantool_lua_load_init_script(tarantool_L);
-		prelease(fiber->gc_pool);
+		prelease(fiber_ptr->gc_pool);
 		say_crit("log level %i", cfg.log_level);
 		say_crit("entering event loop");
 		if (cfg.io_collect_interval > 0)
diff --git a/src/util.cc b/src/util.cc
index db12a58104a08649685af0d1557aa8ee150ae011..d51423ed77655a2f8cb2c361d83c25a97657c9c1 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -271,13 +271,13 @@ print_backtrace()
 	void *stack_top;
 	size_t stack_size;
 
-	if (fiber == NULL || fiber_name(fiber) == NULL ||
-	    strcmp(fiber_name(fiber), "sched") == 0) {
+	if (fiber_ptr == NULL || fiber_name(fiber_ptr) == NULL ||
+	    strcmp(fiber_name(fiber_ptr), "sched") == 0) {
 		stack_top = frame; /* we don't know where the system stack top is */
 		stack_size = (const char *) __libc_stack_end - (const char *) frame;
 	} else {
-		stack_top = fiber->coro.stack;
-		stack_size = fiber->coro.stack_size;
+		stack_top = fiber_ptr->coro.stack;
+		stack_size = fiber_ptr->coro.stack_size;
 	}
 
 	fdprintf(STDERR_FILENO, "%s", backtrace(frame, stack_top, stack_size));