--- ../clean/asterisk-1.6.2.17-rc2/apps/app_queue.c 2010-12-16 22:49:33.000000000 +0200 +++ apps/app_queue.c 2011-02-17 09:36:53.000000000 +0200 @@ -1606,7 +1616,7 @@ if (penalty_str) { penalty = atoi(penalty_str); if (penalty < 0) - penalty = 0; + return; } if (paused_str) { @@ -4431,7 +4475,10 @@ ao2_lock(q); if ((mem = ao2_find(q->members, &tmpmem, OBJ_POINTER))) { /* XXX future changes should beware of this assumption!! */ - if (!mem->dynamic) { + /*Change Penalty on realtime users*/ + if (mem->realtime && !ast_strlen_zero(mem->rt_uniqueid)) { + update_realtime_member_field(mem, q->name, "penalty", "-1"); + } else if (!mem->dynamic) { ao2_ref(mem, -1); ao2_unlock(q); queue_t_unref(q, "Interface wasn't dynamic, expiring temporary reference");