diff --git a/Demo/sgi/video/Vplay.py b/Demo/sgi/video/Vplay.py
index 05cff6d..79b3ad41 100755
--- a/Demo/sgi/video/Vplay.py
+++ b/Demo/sgi/video/Vplay.py
@@ -12,10 +12,10 @@
 	print '-M magnify : magnify the image by the given factor'
 	print '-d         : write some debug stuff on stderr'
 	print '-l         : loop, playing the movie over and over again'
-	print '-m delta   : drop frames closer than delta msec (default 0)'
+	print '-m delta   : drop frames closer than delta seconds (default 0.)'
 	print '-n         : don\'t wait after each file'
 	print '-q         : quiet, no informative messages'
-	print '-r delta   : regenerate input time base delta msec apart'
+	print '-r delta   : regenerate input time base delta seconds apart'
 	print '-s speed   : speed change factor (default 1.0)'
 	print '-t         : use a 2nd thread for read-ahead'
 	print '-x left    : window offset from left of screen'
@@ -81,10 +81,10 @@
 			if opt == '-M': magnify = float(eval(arg))
 			if opt == '-d': debug = debug + 1
 			if opt == '-l': looping = 1
-			if opt == '-m': mindelta = string.atoi(arg)
+			if opt == '-m': mindelta = float(eval(arg))
 			if opt == '-n': nowait = 1
 			if opt == '-q': quiet = 1
-			if opt == '-r': regen = string.atoi(arg)
+			if opt == '-r': regen = float(eval(arg))
 			if opt == '-s':
 				try:
 					speed = float(eval(arg))
@@ -238,7 +238,7 @@
 		thread.start_new_thread(read_ahead, (vin, queue, stop))
 		# Get the read-ahead thread going
 		while queue.qsize() < MAXSIZE/2 and not stop:
-			time.millisleep(100)
+			time.sleep(0.100)
 
 	tin = 0
 	toffset = 0
@@ -250,7 +250,7 @@
 	nskipped = 0
 	data = None
 
-	tlast = t0 = time.millitimer()
+	tlast = t0 = time.time()
 
 	while 1:
 		if gl.qtest():
@@ -278,6 +278,7 @@
 				tin, size, csize = vin.getnextframeheader()
 			except EOFError:
 				break
+		tin = tin*0.001
 		nin = nin+1
 		if tin+toffset < oldtin:
 			print 'Fix reversed time:', oldtin, 'to', tin
@@ -286,7 +287,7 @@
 		oldtin = tin
 		if regen: tout = nin * regen
 		else: tout = tin
-		tout = int(tout / speed)
+		tout = tout / speed
 		if tout - told < mindelta:
 			nskipped = nskipped + 1
 			if not threading:
@@ -300,34 +301,34 @@
 					if not quiet:
 						print '[incomplete last frame]'
 					break
-			now = time.millitimer()
+			now = time.time()
 			dt = (tout-told) - (now-tlast)
 			told = tout
-			if debug: sys.stderr.write(`dt/10` + ' ')
+			if debug: sys.stderr.write(`round(dt, 3)` + ' ')
 			if dt < 0: nlate = nlate + 1
 			if dt > 0:
-				time.millisleep(dt)
-				now = now + dt
+				time.sleep(dt)
+				now = time.time()
 			tlast = now
 			vin.showframe(data, cdata)
 			nout = nout + 1
 
-	t1 = time.millitimer()
+	t1 = time.time()
 
 	if debug: sys.stderr.write('\n')
 
 	if quiet: return 0
 
-	print 'Recorded:', nin, 'frames in', tin*0.001, 'sec.',
-	if tin: print '-- average', int(nin*10000.0/tin)*0.1, 'frames/sec',
+	print 'Recorded:', nin, 'frames in', round(tin, 3), 'sec.',
+	if tin: print '-- average', round(nin/tin, 1), 'frames/sec',
 	print
 
 	if nskipped: print 'Skipped', nskipped, 'frames'
 
 	tout = t1-t0
 	print 'Played:', nout,
-	print 'frames in', tout*0.001, 'sec.',
-	if tout: print '-- average', int(nout*10000.0/tout)*0.1, 'frames/sec',
+	print 'frames in', round(tout, 3), 'sec.',
+	if tout: print '-- average', round(nout/tout, 1), 'frames/sec',
 	print
 
 	if nlate: print 'There were', nlate, 'late frames'
