diff --git a/src/hlua.c b/src/hlua.c
index 2d3f1e2..31c7145 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -4137,6 +4137,7 @@
 		/* Check stack available size. */
 		if (!lua_checkstack(stream->hlua.T, 1)) {
 			SEND_ERR(stream->be, "Lua converter '%s': full stack.\n", fcn->name);
+			RESET_SAFE_LJMP(stream->hlua.T);
 			return 0;
 		}
 
@@ -4146,6 +4147,7 @@
 		/* convert input sample and pust-it in the stack. */
 		if (!lua_checkstack(stream->hlua.T, 1)) {
 			SEND_ERR(stream->be, "Lua converter '%s': full stack.\n", fcn->name);
+			RESET_SAFE_LJMP(stream->hlua.T);
 			return 0;
 		}
 		hlua_smp2lua(stream->hlua.T, smp);
@@ -4156,6 +4158,7 @@
 			for (; arg_p->type != ARGT_STOP; arg_p++) {
 				if (!lua_checkstack(stream->hlua.T, 1)) {
 					SEND_ERR(stream->be, "Lua converter '%s': full stack.\n", fcn->name);
+					RESET_SAFE_LJMP(stream->hlua.T);
 					return 0;
 				}
 				hlua_arg2lua(stream->hlua.T, arg_p);
@@ -4236,6 +4239,7 @@
 		/* Check stack available size. */
 		if (!lua_checkstack(stream->hlua.T, 2)) {
 			SEND_ERR(smp->px, "Lua sample-fetch '%s': full stack.\n", fcn->name);
+			RESET_SAFE_LJMP(stream->hlua.T);
 			return 0;
 		}
 
@@ -4245,6 +4249,7 @@
 		/* push arguments in the stack. */
 		if (!hlua_txn_new(stream->hlua.T, stream, smp->px)) {
 			SEND_ERR(smp->px, "Lua sample-fetch '%s': full stack.\n", fcn->name);
+			RESET_SAFE_LJMP(stream->hlua.T);
 			return 0;
 		}
 		stream->hlua.nargs = 1;
@@ -4254,10 +4259,12 @@
 			/* Check stack available size. */
 			if (!lua_checkstack(stream->hlua.T, 1)) {
 				SEND_ERR(smp->px, "Lua sample-fetch '%s': full stack.\n", fcn->name);
+				RESET_SAFE_LJMP(stream->hlua.T);
 				return 0;
 			}
 			if (!lua_checkstack(stream->hlua.T, 1)) {
 				SEND_ERR(smp->px, "Lua sample-fetch '%s': full stack.\n", fcn->name);
+				RESET_SAFE_LJMP(stream->hlua.T);
 				return 0;
 			}
 			hlua_arg2lua(stream->hlua.T, arg_p);
@@ -4476,6 +4483,7 @@
 		if (!lua_checkstack(s->hlua.T, 1)) {
 			SEND_ERR(px, "Lua function '%s': full stack.\n",
 			         rule->arg.hlua_rule->fcn.name);
+			RESET_SAFE_LJMP(s->hlua.T);
 			return ACT_RET_CONT;
 		}
 
@@ -4486,6 +4494,7 @@
 		if (!hlua_txn_new(s->hlua.T, s, px)) {
 			SEND_ERR(px, "Lua function '%s': full stack.\n",
 			         rule->arg.hlua_rule->fcn.name);
+			RESET_SAFE_LJMP(s->hlua.T);
 			return ACT_RET_CONT;
 		}
 		s->hlua.nargs = 1;
@@ -4495,6 +4504,7 @@
 			if (!lua_checkstack(s->hlua.T, 1)) {
 				SEND_ERR(px, "Lua function '%s': full stack.\n",
 				         rule->arg.hlua_rule->fcn.name);
+				RESET_SAFE_LJMP(s->hlua.T);
 				return ACT_RET_CONT;
 			}
 			lua_pushstring(s->hlua.T, *arg);
