diff --git a/dstat-interface/dstat_comm.py b/dstat-interface/dstat_comm.py
index 64dfba16c6645ab5069be70e2b6ce03016a6d2d7..931e163d85f3e8ef20e1242245b4ea200be87a59 100644
--- a/dstat-interface/dstat_comm.py
+++ b/dstat-interface/dstat_comm.py
@@ -45,33 +45,33 @@ def version_check(ser_port):
     ser_port -- address of serial port to use
     """
     
-    ser = delayedSerial(ser_port, baudrate=1000000, timeout=1)
+    global serial_instance
+    serial_instance = delayedSerial(ser_port, baudrate=1000000, timeout=1)
         
-    ser.write("ck")
+    serial_instance.write("ck")
     
-    ser.flushInput()
-    ser.write('!')
+    serial_instance.flushInput()
+    serial_instance.write('!')
             
-    while not ser.read()=="C":
+    while not serial_instance.read()=="C":
         time.sleep(.5)
-        ser.write('!')
-
+        serial_instance.write('!')
         
-    ser.write('V')
-    for line in ser:
+    serial_instance.write('V')
+    for line in serial_instance:
         if line.startswith('V'):
             input = line.lstrip('V')
         elif line.startswith("#"):
             print line
         elif line.lstrip().startswith("no"):
             print line
-            ser.flushInput()
+            serial_instance.flushInput()
             break
             
     parted = input.rstrip().split('.')
     print parted
     
-    return [(int(parted[0]), int(parted[1])), ser]
+    return (int(parted[0]), int(parted[1]))
     
     
 
@@ -139,16 +139,12 @@ class Experiment(object):
         self.commands[1] += (self.parameters['gain'])
         self.commands[1] += " "
 
-    def run(self, ser):
+    def run(self):
         """Execute experiment. Connects and sends handshake signal to DStat
         then sends self.commands. Don't call directly as a process in Windows,
         use run_wrapper instead.
-        
-        Arguments:
-        ser -- serial instance to use
         """
-        self.serial = ser
-#         self.serial.write("ck")
+        self.serial = serial_instance
         
         try:
             self.serial.flushInput()
@@ -198,7 +194,7 @@ class Experiment(object):
                                     (scan, self.serial.read(size=self.databytes))))
                     elif line.startswith('S'):
                         scan += 1
-                    elif line.startswith("#"):
+                    elif line.lstrip().startswith("#"):
                         print line
                     elif line.lstrip().startswith("no"):
                         print line
diff --git a/dstat-interface/main.py b/dstat-interface/main.py
index f1da0b3bfeb6404c43e66353bd8a917d2964750b..e079e24ac395a61d3bb9f1ce2e588960771fdf8b 100755
--- a/dstat-interface/main.py
+++ b/dstat-interface/main.py
@@ -201,8 +201,8 @@ class Main(object):
         try:
             self.on_pot_stop_clicked()
             gobject.source_remove(self.ocp_proc) # Stop OCP measurements
-            self.serial.close()
-            del(self.serial)
+            comm.serial_instance.close()
+            
         except AttributeError:
             pass
         
@@ -216,7 +216,7 @@ class Main(object):
             self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
             self.ocp_exp = comm.OCPExp(self.send_p)
             
-            self.ocp_exp.run_wrapper(self.serial)
+            self.ocp_exp.run_wrapper()
                                 
             self.send_p.close()  # need for EOF signal to work
             
@@ -293,7 +293,7 @@ class Main(object):
                 for i in self.current_exp.commands:
                     self.rawbuffer.insert_at_cursor(i)
                 
-                self.current_exp.run_wrapper(self.serial)
+                self.current_exp.run_wrapper()
                                     
                 self.send_p.close()  # need for EOF signal to work
                 
@@ -339,7 +339,7 @@ class Main(object):
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
                 
-                self.current_exp.run_wrapper(self.serial)
+                self.current_exp.run_wrapper()
                 
                 self.send_p.close()
 
@@ -391,7 +391,7 @@ class Main(object):
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
                 
-                self.current_exp.run_wrapper(self.serial)
+                self.current_exp.run_wrapper()
                 
                 self.send_p.close()
                 
@@ -452,7 +452,7 @@ class Main(object):
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
                 
-                self.current_exp.run_wrapper(self.serial)
+                self.current_exp.run_wrapper()
                 
                 self.send_p.close()
                 
@@ -509,7 +509,7 @@ class Main(object):
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
 
-                self.current_exp.run_wrapper(self.serial)
+                self.current_exp.run_wrapper()
 
                 self.send_p.close()
 
@@ -534,7 +534,7 @@ class Main(object):
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
 
-                self.current_exp.run_wrapper(self.serial)
+                self.current_exp.run_wrapper()
 
                 self.send_p.close()
 
@@ -565,7 +565,7 @@ class Main(object):
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
 
-                self.current_exp.run_wrapper(self.serial)
+                self.current_exp.run_wrapper()
 
                 self.send_p.close()
 
@@ -738,6 +738,8 @@ class Main(object):
             pass
         except IOError:
             pass
+        except EOFError:
+            pass
     
     def on_file_save_exp_activate(self, menuitem, data=None):
         """Activate dialogue to save current experiment data. """