--- r300_fragprog.c.old 2006-01-10 03:18:50.000000000 +1100 +++ r300_fragprog.c 2006-01-10 03:19:28.000000000 +1100 @@ -531,7 +531,8 @@ /* Finish off current node */ sync_streams(rp); - rp->node[rp->cur_node].alu_end = rp->v_pos - 1; + rp->node[rp->cur_node].alu_end = + rp->v_pos - rp->node[rp->cur_node].alu_offset - 1; /* Start new node */ rp->cur_node++; @@ -1029,7 +1030,8 @@ /* Finish off */ sync_streams(rp); - rp->node[rp->cur_node].alu_end = rp->v_pos - 1; + rp->node[rp->cur_node].alu_end = + rp->v_pos - rp->node[rp->cur_node].alu_offset - 1; rp->alu_offset = 0; rp->alu_end = rp->v_pos - 1; rp->tex_offset = 0;