I got this problem from Rustan Leino, who first got this problem from Ernie Cohen. Apparently, it has appeared as a Car Talk Puzzler, but Rustan has been unable to find it on their web site.
I solved it and wrote up my solution.
Warm-up: You are given a box of matches and a piece of rope. The rope burns at the rate of one rope per hour, but it may not burn uniformly. For example, if you light the rope at one end, it will take exactly 60 minutes before the entire rope has burnt up, but it may be that the first 1/10 of the rope takes 50 minutes to burn and that the remaining 9/10 of the rope takes only 10 minutes to burn. How can you measure a period of exactly 30 minutes? You can choose the starting time. More precisely, given the matches and the rope, you are to say the words "start" and "done" exactly 30 minutes apart.
The actual problem: Given a box of matches and two such ropes, not necessarily identical, measure a period of 15 minutes.
Call the ropes A and B. Simultaneously light both ends of A and one end of B. When A has completely burned, which will be 30 minutes later, light the unlit end of B and say "start". Thus, at this point B will have 30 minutes of burn time left and will be burning from both ends. When rope B has completely burned, say "done".