The watchdog timer works fine on my Arduino UNO R2 with the latest bootloader from Arduino 1.0. Have you tried burning a fresh bootloader?
// Watchdog Timer Example
#include <avr/wdt.h>
unsigned long ToggleDelay; // When this delay grows to longer than the WDT interval the WDT resets the Arduino
const int LEDpin = 13;
void toggle_led()
{
digitalWrite(LEDpin, !digitalRead(LEDpin));
}
void setup()
{
wdt_disable();
ToggleDelay = 1; // Start with a very short delay
pinMode(LEDpin, OUTPUT);
wdt_enable(WDTO_250MS); // Set watchdog to 1/4 second
}
void loop()
{
wdt_reset();
toggle_led(); // Blinking goes slower and slower until the WDT causes reset, then starts over.
delay(ToggleDelay);
ToggleDelay += 5; // Increase the delay by 5 milliseconds.
}