diff --git a/Demo/scripts/script.py b/Demo/scripts/script.py
index 174c13e..b490b17 100755
--- a/Demo/scripts/script.py
+++ b/Demo/scripts/script.py
@@ -1,4 +1,5 @@
 #! /usr/bin/env python
+
 # script.py -- Make typescript of terminal session.
 # Usage:
 #       -a      Append to typescript.
@@ -6,28 +7,36 @@
 # Author: Steen Lumholt.
 
 
-import os, time, sys
+import os, time, sys, getopt
 import pty
 
 def read(fd):
     data = os.read(fd, 1024)
-    file.write(data)
+    script.write(data)
     return data
 
 shell = 'sh'
 filename = 'typescript'
-mode = 'w'
+mode = 'wb'
 if 'SHELL' in os.environ:
     shell = os.environ['SHELL']
-if '-a' in sys.argv:
-    mode = 'a'
-if '-p' in sys.argv:
-    shell = 'python'
 
-file = open(filename, mode)
+try:
+    opts, args = getopt.getopt(sys.argv[1:], 'ap')
+except getopt.error as msg:
+    print('%s: %s' % (sys.argv[0], msg))
+    sys.exit(2)
+
+for o, a in opts:
+    if o == '-a':
+        mode = 'ab'
+    elif o == '-p':
+        shell = 'python'
+
+script = open(filename, mode)
 
 sys.stdout.write('Script started, file is %s\n' % filename)
-file.write('Script started on %s\n' % time.ctime(time.time()))
+script.write(('Script started on %s\n' % time.ctime(time.time())).encode())
 pty.spawn(shell, read)
-file.write('Script done on %s\n' % time.ctime(time.time()))
+script.write(('Script done on %s\n' % time.ctime(time.time())).encode())
 sys.stdout.write('Script done, file is %s\n' % filename)
