--- Array-Heap/Heap.xs 2013/04/19 20:00:54 1.5 +++ Array-Heap/Heap.xs 2013/04/21 11:41:01 1.6 @@ -273,10 +273,10 @@ { int len = AvFILLp (av); - if (len < 0 || idx > len) + if (idx < 0 || idx > len) return &PL_sv_undef; - else if (len == 0 || idx == len) - return av_pop (av); /* the only or last element */ + else if (idx == len) + return av_pop (av); /* the last element */ else { SV *top = av_pop (av);