First, you should never double post. Read the before you post thread. Second, use code tags to display your code. Third, make sure to give all the relevant information when you post. Looking at the code below, you forgot to initialize your variables (I made assumptions about how they were initialized). If you can (the code isn't very long), include a test program for your code.

Now I will try to answer your question. By a descending list, I think you mean a list that goes like 6,5,4,3,2,1. If you reverse a process, you can almost always just change your inequalities or the actions taken by them. For example, if you have >= change it to <=. Initialize upper to lower and lower to upper (You don't need to do this in your problem). You may have to rename few variables to keep the code readable. Let's look at a sample run of what would happen if you ran your code using a descending list of 6,5,4,3,2,1 with the key set to 2.

//initial values
lower = 0;
upper = 5;
middle = (0+5)/2 = 2;
//Loop tests to see if list[2] != 2. list[2] = 4 so the loop goes on
//The if statement returns true and sets new values
lower = 0;
upper = middle-1 = 1;
middle = (0+1)/2 = 0;

Oops, by subtracting one, we are heading away from you target! Now, you fix the problem. Good luck.