diff --git a/application/Bootstrap.php b/application/Bootstrap.php
index bf9591e56..19a2cc72c 100644
--- a/application/Bootstrap.php
+++ b/application/Bootstrap.php
@@ -1,7 +1,7 @@
 <?php
 
-require_once (__DIR__."/configs/navigation.php");
-require_once (__DIR__."/configs/ACL.php");
+require_once __DIR__."/configs/navigation.php";
+require_once __DIR__."/configs/ACL.php";
 
 require_once 'propel/runtime/lib/Propel.php';
 Propel::init(__DIR__."/configs/airtime-conf.php");
@@ -10,8 +10,8 @@ Propel::init(__DIR__."/configs/airtime-conf.php");
 $tz = ini_get('date.timezone') ? ini_get('date.timezone') : 'UTC';
 date_default_timezone_set($tz);
 
-require_once (__DIR__."/configs/constants.php");
-require_once (__DIR__."/configs/conf.php");
+require_once __DIR__."/configs/constants.php";
+require_once __DIR__."/configs/conf.php";
 require_once 'DB.php';
 
 require_once 'Soundcloud.php';
@@ -21,7 +21,7 @@ require_once 'Schedule.php';
 require_once 'Shows.php';
 require_once 'Users.php';
 require_once 'RabbitMq.php';
-
+require_once __DIR__.'/controllers/plugins/RabbitMqPlugin.php';
 
 global $CC_CONFIG, $CC_DBC;
 $dsn = $CC_CONFIG['dsn'];
@@ -36,6 +36,9 @@ $CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
 //Zend_Session::start();
 Zend_Validate::setDefaultNamespaces("Zend");
 
+$front = Zend_Controller_Front::getInstance();
+$front->registerPlugin(new RabbitMqPlugin());
+
 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 {
 	protected function _initDoctype()
@@ -48,9 +51,7 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
 	protected function _initHeadLink()
 	{
 		$view = $this->getResource('view');
-
 		$view->headLink()->appendStylesheet('/css/redmond/jquery-ui-1.8.8.custom.css');
-
         $this->view->headLink()->appendStylesheet('/css/pro_dropdown_3.css');
 		$this->view->headLink()->appendStylesheet('/css/styles.css');
 	}
@@ -70,14 +71,17 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
         $view->headScript()->appendFile('/js/airtime/common/common.js','text/javascript');
     }
 
-    protected function _initViewHelpers(){
+    protected function _initViewHelpers()
+    {
         $view = $this->getResource('view');
         $view->addHelperPath('../application/views/helpers', 'Airtime_View_Helper');
     }
 
-    protected function _initTitle(){
+    protected function _initTitle()
+    {
         $view = $this->getResource('view');
         $view->headTitle(Application_Model_Preference::GetHeadTitle());
     }
+
 }
 
diff --git a/application/controllers/plugins/RabbitMqPlugin.php b/application/controllers/plugins/RabbitMqPlugin.php
new file mode 100644
index 000000000..3316f01b2
--- /dev/null
+++ b/application/controllers/plugins/RabbitMqPlugin.php
@@ -0,0 +1,9 @@
+<?php
+
+class RabbitMqPlugin extends Zend_Controller_Plugin_Abstract
+{
+    public function dispatchLoopShutdown()
+    {
+        RabbitMq::PushScheduleFinal();
+    }
+}
\ No newline at end of file
diff --git a/application/forms/AddUser.php b/application/forms/AddUser.php
index e1f0453a7..d1eca586b 100644
--- a/application/forms/AddUser.php
+++ b/application/forms/AddUser.php
@@ -68,12 +68,13 @@ class Application_Form_AddUser extends Zend_Form
         $this->addElement($jabber);
 
         $select = new Zend_Form_Element_Select('type');
+        $select->setLabel('User Type:');
         $select->setAttrib('class', 'input_select');
         $select->setAttrib('style', 'width: 40%');
         $select->setMultiOptions(array(
-                "A" => "admin",
-                "H" => "host",
                 "G" => "guest",
+                "H" => "host",
+                "A" => "admin"
             ));
         $select->setRequired(true);
         $this->addElement($select);
diff --git a/application/models/RabbitMq.php b/application/models/RabbitMq.php
index af5bffa02..e2749149c 100644
--- a/application/models/RabbitMq.php
+++ b/application/models/RabbitMq.php
@@ -3,30 +3,41 @@ require_once 'php-amqplib/amqp.inc';
 
 class RabbitMq
 {
+    static private $doPush = FALSE;
+
+    /**
+     * Sets a flag to push the schedule at the end of the request.
+     */
+    public static function PushSchedule() {
+        RabbitMq::$doPush = TRUE;
+    }
 
     /**
      * Push the current schedule to RabbitMQ, to be picked up by Pypo.
      * Will push the schedule in the range from 24 hours ago to 24 hours
      * in the future.
      */
-    public static function PushSchedule() {
+    public static function PushScheduleFinal()
+    {
         global $CC_CONFIG;
-        $conn = new AMQPConnection($CC_CONFIG["rabbitmq"]["host"],
-                                         $CC_CONFIG["rabbitmq"]["port"],
-                                         $CC_CONFIG["rabbitmq"]["user"],
-                                         $CC_CONFIG["rabbitmq"]["password"]);
-        $channel = $conn->channel();
-        $channel->access_request($CC_CONFIG["rabbitmq"]["vhost"], false, false, true, true);
+        if (RabbitMq::$doPush) {
+            $conn = new AMQPConnection($CC_CONFIG["rabbitmq"]["host"],
+                                             $CC_CONFIG["rabbitmq"]["port"],
+                                             $CC_CONFIG["rabbitmq"]["user"],
+                                             $CC_CONFIG["rabbitmq"]["password"]);
+            $channel = $conn->channel();
+            $channel->access_request($CC_CONFIG["rabbitmq"]["vhost"], false, false, true, true);
 
-        $EXCHANGE = 'airtime-schedule';
-        $channel->exchange_declare($EXCHANGE, 'direct', false, true);
+            $EXCHANGE = 'airtime-schedule';
+            $channel->exchange_declare($EXCHANGE, 'direct', false, true);
 
-        $data = json_encode(Schedule::ExportRangeAsJson());
-        $msg = new AMQPMessage($data, array('content_type' => 'text/plain'));
+            $data = json_encode(Schedule::ExportRangeAsJson());
+            $msg = new AMQPMessage($data, array('content_type' => 'text/plain'));
 
-        $channel->basic_publish($msg, $EXCHANGE);
-        $channel->close();
-        $conn->close();
+            $channel->basic_publish($msg, $EXCHANGE);
+            $channel->close();
+            $conn->close();
+        }
     }
 
 }
diff --git a/application/models/Schedule.php b/application/models/Schedule.php
index aaff58ef9..ba5b97290 100644
--- a/application/models/Schedule.php
+++ b/application/models/Schedule.php
@@ -716,7 +716,7 @@ class Schedule {
         $result['stream_metadata'] = array();
         $result['stream_metadata']['format'] = Application_Model_Preference::GetStreamLabelFormat();
         $result['stream_metadata']['station_name'] = Application_Model_Preference::GetStationName();
-        $result['server_timezone'] = date_default_timezone_get();
+        $result['server_timezone'] = date('O');
 
         return $result;
     }
diff --git a/application/views/scripts/partialviews/header.phtml b/application/views/scripts/partialviews/header.phtml
index 4905d0d10..a817fc1fd 100644
--- a/application/views/scripts/partialviews/header.phtml
+++ b/application/views/scripts/partialviews/header.phtml
@@ -43,6 +43,6 @@
 <div id="jquery_jplayer_1" class="jp-jplayer" style="width:0px; height:0px;"></div>
 
 <div id="about-txt" style="display: none;">
-<a href="http://airtime.sourcefabric.org">Airtime</a>, the open radio software for scheduling and remote station management.<br>
+<a href="http://airtime.sourcefabric.org">Airtime</a> 1.7, the open radio software for scheduling and remote station management.<br>
 © 2011 <a href="http://www.sourcefabric.org">Sourcefabric</a> o.p.s 2011. Airtime is distributed under the <a href="http://www.gnu.org/licenses/gpl-3.0-standalone.html">GNU GPL v.3</a>
 </div>
diff --git a/pypo/install/pypo-uninstall.py b/pypo/install/pypo-uninstall.py
index a9f339be0..6dcc42ce5 100644
--- a/pypo/install/pypo-uninstall.py
+++ b/pypo/install/pypo-uninstall.py
@@ -38,16 +38,16 @@ try:
     remove_path(BASE_PATH)
     
     print "Removing daemontool script pypo"
-    remove_path("rm -rf /etc/service/pypo")
+    remove_path("/etc/service/pypo")
 
     if os.path.exists("/etc/service/pypo-fetch"):
-        remove_path("rm -rf /etc/service/pypo-fetch")
+        remove_path("/etc/service/pypo-fetch")
 
     if os.path.exists("/etc/service/pypo-push"):
-        remove_path("rm -rf /etc/service/pypo-push")
+        remove_path("/etc/service/pypo-push")
         
     print "Removing daemontool script pypo-liquidsoap"
-    remove_path("rm -rf /etc/service/pypo-liquidsoap")
+    remove_path("/etc/service/pypo-liquidsoap")
 
     remove_user("pypo")
     print "Uninstall complete."
diff --git a/pypo/pypofetch.py b/pypo/pypofetch.py
index 0313e9567..2958c6bd4 100644
--- a/pypo/pypofetch.py
+++ b/pypo/pypofetch.py
@@ -11,6 +11,7 @@ import json
 import telnetlib
 import math
 from threading import Thread
+from subprocess import Popen, PIPE
 
 # For RabbitMQ
 from kombu.connection import BrokerConnection
@@ -78,13 +79,14 @@ class PypoFetch(Thread):
 
     def check_matching_timezones(self, server_timezone):
         logger = logging.getLogger('fetch')
-        f = open('/etc/timezone', 'r')
-        pypo_timezone = f.readline().strip(' \t\n\r')
-        f.close()
+
+        process = Popen(["date", "+%z"], stdout=PIPE)
+        pypo_timezone = (process.communicate()[0]).strip(' \r\n\t')
+
         if server_timezone != pypo_timezone:
-            logger.error("Server and pypo timezones do not match. Audio playback may not start when expected!")
-            logger.error("Server timezone: %s", server_timezone)
-            logger.error("Pypo timezone: %s", pypo_timezone)
+            logger.error("Server and pypo timezone offsets do not match. Audio playback may not start when expected!")
+            logger.error("Server timezone offset: %s", server_timezone)
+            logger.error("Pypo timezone offset: %s", pypo_timezone)
     
     """
     Process the schedule