Okay, so heres how my problem came about. A long long time ago, a so called friend of mine decided to drive my car whilst drunk and my iphone was happily playing music through the dock connector on my car stereo, and this friend, decided to brake suddenly and a glass of coke went flying over my relatively new iphone 3G (as of then anyways). This caused significant damage to lots of the iphone, I've taken it apart lots of times, and soldered a new dock connector on (which now works perfectly) and replaced the headphone jack with that from a company called chinaontrade.com, however, the first part i received from them, installed fine, the vibrate toggle works exactly as its meant to, but it had lots of other problems (buttons were not clicky as they should be, and the headphone port did not allow the use of the mic button or microphone). So i took it apart one day recently, tried sorting out the buttons, and managed to reverse the vibrate switch (ring on the switch was now vibrate on the phone, and vice versa). I presumed this was because i accidentally switched it whilst disconnected from the mainboard (and battery may i add). I have recently got a new part from a business near where i live in england, and installed it, making sure that when i took the old one out, it was set to ring on the phone (the button however said vibrate), and the new one went in, and when it was connected I set it to ring. Everything works flawlessly on the new ribbon, but the vibrate switch does absolutely nothing (and it is connected properly on the side to the switch on the ribbon). I tried fixing it today by setting the button to ring, then removing the battery and setting it to vibrate before connecting all up again. Am completely confused, because it is always on ring mode. I know people say that this is a hardware switch and therefore a hardware problem, but does anyone if there is a configuration file that stores the vibrate setting when the phone is turned off? I don't see any other way the mainboard would remember it other than the through an electronic signal received from the hardware switch. Any help given i will be extremely grateful for. Thanks .