diff --git a/python_apps/pypo/airtime-liquidsoap-init-d b/python_apps/pypo/airtime-liquidsoap-init-d
index 4180d5c67..7096bc59c 100755
--- a/python_apps/pypo/airtime-liquidsoap-init-d
+++ b/python_apps/pypo/airtime-liquidsoap-init-d
@@ -28,10 +28,10 @@ start () {
 
 stop () {
         monit unmonitor airtime-liquidsoap >/dev/null 2>&1
-        /usr/lib/airtime/airtime_virtualenv/bin/python /usr/lib/airtime/pypo/bin/liquidsoap_scripts/liquidsoap_prepare_terminate.py
-        
+        #send term signal after 10 seconds
+        timeout 10 /usr/lib/airtime/airtime_virtualenv/bin/python /usr/lib/airtime/pypo/bin/liquidsoap_scripts/liquidsoap_prepare_terminate.py        
         # Send TERM after 5 seconds, wait at most 30 seconds.
-        start-stop-daemon --stop --oknodo --retry 5 --quiet --pidfile $PIDFILE
+        start-stop-daemon --stop --oknodo --retry=TERM/10/KILL/5 --quiet --pidfile $PIDFILE
         rm -f $PIDFILE
 }
 
diff --git a/python_apps/pypo/liquidsoap_scripts/liquidsoap_prepare_terminate.py b/python_apps/pypo/liquidsoap_scripts/liquidsoap_prepare_terminate.py
index e1dac82b6..2f632d9c7 100644
--- a/python_apps/pypo/liquidsoap_scripts/liquidsoap_prepare_terminate.py
+++ b/python_apps/pypo/liquidsoap_scripts/liquidsoap_prepare_terminate.py
@@ -6,14 +6,14 @@ try:
     config = ConfigObj('/etc/airtime/pypo.cfg')
     LS_HOST = config['ls_host']
     LS_PORT = config['ls_port']
-    
+
     tn = telnetlib.Telnet(LS_HOST, LS_PORT)
     tn.write("master_harbor.stop\n")
     tn.write("live_dj_harbor.stop\n")
     tn.write('exit\n')
     tn.read_all()
-    
+
 except Exception, e:
     print('Error loading config file: %s', e)
     sys.exit()
-    
\ No newline at end of file
+
diff --git a/python_apps/pypo/pypofetch.py b/python_apps/pypo/pypofetch.py
index 9a94a4103..0d9884881 100644
--- a/python_apps/pypo/pypofetch.py
+++ b/python_apps/pypo/pypofetch.py
@@ -144,6 +144,24 @@ class PypoFetch(Thread):
         finally:
             lock.release()
 
+    @staticmethod
+    def telnet_send(logger, lock, commands):
+         try:
+            lock.acquire()
+
+            tn = telnetlib.Telnet(LS_HOST, LS_PORT)
+            for i in commands:
+                logger.info(i)
+                tn.write(i)
+
+            tn.write('exit\n')
+            tn.read_all()
+        except Exception, e:
+            logger.error(str(e))
+        finally:
+            lock.release()
+
+
     @staticmethod
     def switch_source(logger, lock, sourcename, status):
         logger.debug('Switching source: %s to "%s" status', sourcename, status)
@@ -160,17 +178,26 @@ class PypoFetch(Thread):
         else:
             command += "stop\n"
 
-        try:
-            lock.acquire()
+        PypoFetch.telnet_send(logger, lock, [command])
 
-            tn = telnetlib.Telnet(LS_HOST, LS_PORT)
-            tn.write(command)
-            tn.write('exit\n')
-            tn.read_all()
-        except Exception, e:
-            logger.error(str(e))
-        finally:
-            lock.release()
+
+    #TODO: Merge this with switch_source
+    def switch_source_temp(self, sourcename, status):
+        self.logger.debug('Switching source: %s to "%s" status', sourcename, status)
+        command = "streams."
+        if sourcename == "master_dj":
+            command += "master_dj_"
+        elif sourcename == "live_dj":
+            command += "live_dj_"
+        elif sourcename == "scheduled_play":
+            command += "scheduled_play_"
+
+        if status == "on":
+            command += "start\n"
+        else:
+            command += "stop\n"
+
+        return command
 
     """
         grabs some information that are needed to be set on bootstrap time
@@ -183,11 +210,18 @@ class PypoFetch(Thread):
             self.logger.error('Unable to get bootstrap info.. Exiting pypo...')
         else:
             self.logger.debug('info:%s', info)
+            commands = []
             for k, v in info['switch_status'].iteritems():
-                self.switch_source(self.logger, self.telnet_lock, k, v)
-            self.update_liquidsoap_stream_format(info['stream_label'])
-            self.update_liquidsoap_station_name(info['station_name'])
-            self.update_liquidsoap_transition_fade(info['transition_fade'])
+                commands.append(self.switch_source_temp(k, v))
+
+            stream_format = info['stream_label']
+            station_name = info['station_name']
+            fade = info['transition_fade']
+
+            commands.append(('vars.stream_metadata_type %s\n' % stream_format).encode('utf-8'))
+            commands.append(('vars.station_name %s\n' % station_name).encode('utf-8'))
+            commands.append(('vars.default_dj_fade %s\n' % fade).encode('utf-8'))
+            PypoFetch.telnet_send(self.logger, self.telnet_lock, commands)
 
     def restart_liquidsoap(self):
 
@@ -362,6 +396,7 @@ class PypoFetch(Thread):
             if(status == "true"):
                 self.api_client.notify_liquidsoap_status("OK", stream_id, str(fake_time))
 
+
     def update_liquidsoap_stream_format(self, stream_format):
         # Push stream metadata to liquidsoap
         # TODO: THIS LIQUIDSOAP STUFF NEEDS TO BE MOVED TO PYPO-PUSH!!!