--- FlightGear-0.9.9/src/Instrumentation/clock.cxx
+++ FlightGear-0.9.9/src/Instrumentation/clock.cxx
@@ -21,6 +21,7 @@
       _indicated_hour(0),
       _local_hour(0),
       _standstill_offset(0),
+      _speedup_offset(0),
       name("clock"),
       num(0)
 {
@@ -80,6 +81,10 @@
 void
 Clock::update (double delta_time_sec)
 {
+    double old = _speedup_offset;
+    _speedup_offset += delta_time_sec * (fgGetInt("/sim/speed-up") - 1);
+    globals->inc_warp( (int) _speedup_offset - (int) old );
+
     if (!_serviceable_node->getBoolValue()) {
         if (_is_serviceable) {
             _string_node->setStringValue("");
--- FlightGear-0.9.9/src/Instrumentation/clock.hxx
+++ FlightGear-0.9.9/src/Instrumentation/clock.hxx
@@ -55,6 +55,7 @@
     char _indicated_short_string[16];
     char _local_short_string[16];
     long _standstill_offset;
+    double _speedup_offset;
 
     string name;
     int num;
--- FlightGear-0.9.9/src/Instrumentation/instrument_mgr.cxx
+++ FlightGear-0.9.9/src/Instrumentation/instrument_mgr.cxx
@@ -112,7 +112,7 @@
                            new AttitudeIndicator( node ) );
         } else if ( name == "clock" ) {
             set_subsystem( "instrument" + temp.str(), 
-                           new Clock( node ), 0.25 );
+                           new Clock( node ), 0.10 );
         } else if ( name == "dme" ) {
             set_subsystem( "instrument" + temp.str(), 
                            new DME( node ), 1.0 );
--- FlightGear-0.9.9/src/Instrumentation/vertical_speed_indicator.cxx
+++ FlightGear-0.9.9/src/Instrumentation/vertical_speed_indicator.cxx
@@ -70,6 +70,7 @@
         double pressure = _pressure_node->getDoubleValue();
         _speed_node
             ->setDoubleValue((_internal_pressure_inhg - pressure) * 10500);
+        for (int i = fgGetInt("/sim/speed-up"); i--; )
         _internal_pressure_inhg =
             fgGetLowPass(_internal_pressure_inhg,
                          _pressure_node->getDoubleValue(),
