diff --git a/src/lua/init.cc b/src/lua/init.cc
index e78dfcd67b5aed593b22ba64e77a2af249a238b4..3876e50a23e5f0d10ad6955d9811cafa54bc3900 100644
--- a/src/lua/init.cc
+++ b/src/lua/init.cc
@@ -672,8 +672,8 @@ box_lua_fiber_run_detached(va_list ap)
 		lua_call(L, lua_gettop(L) - 1, LUA_MULTRET);
 		cleanup();
 	} catch (const FiberCancelException &e) {
-		throw;
 		cleanup();
+		throw;
 	} catch (const Exception &e) {
 		e.log();
 		cleanup();