Change the order in which Floatnumber and Intnumber are tried
so it will correctly recognize floats.
Fix the test program so it works again.
diff --git a/Lib/tokenize.py b/Lib/tokenize.py
index 6b3d991..bd047f8 100644
--- a/Lib/tokenize.py
+++ b/Lib/tokenize.py
@@ -22,7 +22,7 @@
 Pointfloat = '\([0-9]+\.[0-9]*\|\.[0-9]+\)\(' + Exponent + '\)?'
 Expfloat = '[0-9]+' + Exponent
 Floatnumber = Pointfloat + '\|' + Expfloat
-Number = Intnumber + '\|' + Floatnumber
+Number = Floatnumber + '\|' + Intnumber
 
 String = '\'\(\\\\.\|[^\\\n\']\)*\''
 
@@ -39,7 +39,8 @@
 	save_syntax = regex.set_syntax(0) # Use default syntax
 	tokenprog = regex.compile(Token)
 finally:
-	dummy = regex.set_syntax(save_syntax) # Restore original syntax
+	if save_syntax != 0:
+		dummy = regex.set_syntax(save_syntax) # Restore original syntax
 
 
 def test(file):