From: anne001 Date: 2006-03-19T05:23:48+09:00 Subject: Re: Is the key delaying interpretation of a variable? Thank you so much for your response. I had tried Marcin's suggestion, but got error messages. I have been wondering what to do, and then I saw your suggestion from last week, and suddenly what you were saying clicked! > If you insist on using a global That's it! In the original program, $shoulder is a global so various parts of the program can access it. It holds the memory of the system. Having rewritten the program an OOP way, this is no longer necessary. The object holds the memory of the system! So I changed the keyboard proc to say keyboard = Proc.new {|key, x, y| case (key) when 's'[0] upperarm.rotation[0] = (upperarm.rotation[0] + 5) % 360; GLUT.PostRedisplay(); and now it all works fine. I hadn't really understood what the keyboard proc was doing! Thank you!!! I can move on again! wonderful.