diff -r 33f373b28c8c -r 0468df02e18f libidav/davqlexec.c --- a/libidav/davqlexec.c Tue Mar 22 15:40:34 2016 +0100 +++ b/libidav/davqlexec.c Wed Mar 23 13:46:39 2016 +0100 @@ -1142,8 +1142,9 @@ } case DAVQL_CMD_OP_LOGICAL_OR_L: { //printf("or_l %d\n", cmd.data.integer); - DavQLStackObj obj1 = DAVQL_POP(); + DavQLStackObj obj1 = stack[stpos]; if((obj1.type == 0 && obj1.data.integer) || (obj1.type == 1 && obj1.data.string)) { + stpos--; DAVQL_PUSH_INT(1); i += cmd.data.integer; // jump, skip right subtree of 'or' }