diff --git a/VERSION b/VERSION
index aa0e5423d..ffaf49cf9 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
 PRODUCT_ID=Airtime
-PRODUCT_RELEASE=2.0.0-beta1
+PRODUCT_RELEASE=2.0.0
diff --git a/airtime_mvc/application/controllers/ScheduleController.php b/airtime_mvc/application/controllers/ScheduleController.php
index 84ab1641a..cb034d758 100644
--- a/airtime_mvc/application/controllers/ScheduleController.php
+++ b/airtime_mvc/application/controllers/ScheduleController.php
@@ -141,15 +141,19 @@ class ScheduleController extends Zend_Controller_Action
 		$userInfo = Zend_Auth::getInstance()->getStorage()->read();
 		$user = new Application_Model_User($userInfo->id);
 
-        if($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) {
-            try{
+        if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) {
+
+            try {
 		      $showInstance = new Application_Model_ShowInstance($showInstanceId);
-            }catch(Exception $e){
+            }
+            catch(Exception $e){
                 $this->view->show_error = true;
                 return false;
             }
 
 		    $showInstance->delete();
+
+		    $this->view->show_id = $showInstance->getShowId();
         }
     }
 
@@ -801,15 +805,18 @@ class ScheduleController extends Zend_Controller_Action
         if($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) {
 		    $showInstanceId = $this->_getParam('id');
 
-		    try{
+		    try {
                 $showInstance = new Application_Model_ShowInstance($showInstanceId);
-		    }catch(Exception $e){
+		    }
+		    catch(Exception $e){
                 $this->view->show_error = true;
                 return false;
             }
             $show = new Application_Model_Show($showInstance->getShowId());
 
             $show->cancelShow($showInstance->getShowInstanceStart());
+
+            $this->view->show_id = $showInstance->getShowId();
         }
     }
 
diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php
index cc95e7fe3..71da9b665 100644
--- a/airtime_mvc/application/models/Preference.php
+++ b/airtime_mvc/application/models/Preference.php
@@ -368,6 +368,7 @@ class Application_Model_Preference
     	$outputArray['STATION_COUNTRY'] = self::GetStationCountry();
     	$outputArray['STATION_CITY'] = self::GetStationCity();
     	$outputArray['STATION_DESCRIPTION'] = self::GetStationDescription();
+    	
 
     	// get web server info
     	if(isset($systemInfoArray["AIRTIME_VERSION_URL"])){
@@ -387,6 +388,8 @@ class Application_Model_Preference
     	$outputArray['UNIQUE_ID'] = self::GetUniqueId();
     	$outputArray['SAAS'] = self::GetPlanLevel();
     	$outputArray['INSTALL_METHOD'] = self::GetInstallMethod();
+    	$outputArray['NUM_OF_STREAMS'] = self::GetNumOfStreams();
+    	$outputArray['STREAM_INFO'] = Application_Model_StreamSetting::getStreamInfoForDataCollection();
 
     	$outputArray = array_merge($systemInfoArray, $outputArray);
 
@@ -396,7 +399,16 @@ class Application_Model_Preference
     	        continue;
     	    }
     	    if($out != ''){
-    		    $outputString .= $key.' : '.$out."\n";
+    	        if($key == "STREAM_INFO"){
+    	            $outputString .= $key." :\n";
+    	            foreach($out as $s_info){
+    	                foreach($s_info as $k => $v){
+    	                    $outputString .= "\t".strtoupper($k)." : ".$v."\n";
+    	                }
+    	            }    
+    	        }else{
+    		        $outputString .= $key.' : '.$out."\n";
+    	        }
     	    }
     	}
     	if($returnArray){
diff --git a/airtime_mvc/application/models/StreamSetting.php b/airtime_mvc/application/models/StreamSetting.php
index f2731141e..1e4d77956 100644
--- a/airtime_mvc/application/models/StreamSetting.php
+++ b/airtime_mvc/application/models/StreamSetting.php
@@ -164,4 +164,31 @@ class Application_Model_StreamSetting {
         }
         return $result;
     }
+    
+    /*
+     * Only returns info that is needed for data collection
+     * returns array('s1'=>array(keyname=>value))
+     */
+    public static function getStreamInfoForDataCollection(){
+        global $CC_DBC;
+        
+        $out = array();
+        $enabled_stream = self::getEnabledStreamIds();
+        
+        foreach($enabled_stream as $stream){
+            $keys = "'".$stream."_output', "."'".$stream."_type', "."'".$stream."_bitrate', "."'".$stream."_host'";
+            
+            $sql = "SELECT keyname, value FROM cc_stream_setting"
+            ." WHERE keyname IN ($keys)";
+            
+            $rows = $CC_DBC->getAll($sql);
+            $info = array();
+            foreach($rows as $r){
+                $temp = explode("_", $r['keyname']);
+                $info[$temp[1]] = $r['value'];
+                $out[$stream] = $info; 
+            }
+        }
+        return $out;
+    }
 }
diff --git a/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js b/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js
index 7910f498f..a7640eb5e 100644
--- a/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js
+++ b/airtime_mvc/public/js/airtime/schedule/full-calendar-functions.js
@@ -8,6 +8,14 @@ function scheduleRefetchEvents(json) {
     if(json.show_error == true){
         alert("The show instance doesn't exist anymore!")
     }
+    if(json.show_id) {
+    	var dialog_id = parseInt($("#add_show_id").val(), 10);
+    	
+    	//if you've deleted the show you are currently editing, close the add show dialog.
+    	if (dialog_id === json.show_id) {
+    		$("#add-show-close").click();
+    	}
+    }
     $("#schedule_calendar").fullCalendar( 'refetchEvents' );
 }
 
diff --git a/install_minimal/include/airtime-constants.php b/install_minimal/include/airtime-constants.php
index bc6f9ccbf..06d7e180c 100644
--- a/install_minimal/include/airtime-constants.php
+++ b/install_minimal/include/airtime-constants.php
@@ -1,3 +1,3 @@
 <?php
 
-define('AIRTIME_VERSION', '2.0.0-beta1');
+define('AIRTIME_VERSION', '2.0.0');
diff --git a/install_minimal/upgrades/airtime-2.0.0/media-monitor.cfg.200 b/install_minimal/upgrades/airtime-2.0.0/media-monitor.cfg.200
index 066c42b31..44819833b 100644
--- a/install_minimal/upgrades/airtime-2.0.0/media-monitor.cfg.200
+++ b/install_minimal/upgrades/airtime-2.0.0/media-monitor.cfg.200
@@ -13,6 +13,7 @@ log_dir = '/var/log/airtime/media-monitor'
 rabbitmq_host = 'localhost'
 rabbitmq_user = 'guest'
 rabbitmq_password = 'guest'
+rabbitmq_vhost = '/'
 
 ############################################
 # Media-Monitor preferences                         #
diff --git a/install_minimal/upgrades/airtime-2.0.0/pypo.cfg.200 b/install_minimal/upgrades/airtime-2.0.0/pypo.cfg.200
index 352d234d0..3280ba540 100644
--- a/install_minimal/upgrades/airtime-2.0.0/pypo.cfg.200
+++ b/install_minimal/upgrades/airtime-2.0.0/pypo.cfg.200
@@ -39,6 +39,7 @@ ls_port = '1234'
 rabbitmq_host = 'localhost'
 rabbitmq_user = 'guest'
 rabbitmq_password = 'guest'
+rabbitmq_vhost = '/'
 
 ############################################
 # pypo preferences                         #
diff --git a/install_minimal/upgrades/airtime-2.0.0/recorder.cfg.200 b/install_minimal/upgrades/airtime-2.0.0/recorder.cfg.200
index 762c01da3..d6005bf0a 100644
--- a/install_minimal/upgrades/airtime-2.0.0/recorder.cfg.200
+++ b/install_minimal/upgrades/airtime-2.0.0/recorder.cfg.200
@@ -15,6 +15,7 @@ log_dir = '/var/log/airtime/show-recorder'
 rabbitmq_host = 'localhost'
 rabbitmq_user = 'guest'
 rabbitmq_password = 'guest'
+rabbitmq_vhost = '/'
 
 ############################################
 # Recorded Audio settings                  #
diff --git a/python_apps/api_clients/api_client.py b/python_apps/api_clients/api_client.py
index f899a5b83..22b13fdcb 100755
--- a/python_apps/api_clients/api_client.py
+++ b/python_apps/api_clients/api_client.py
@@ -21,7 +21,7 @@ from urlparse import urlparse
 import base64
 from configobj import ConfigObj
 
-AIRTIME_VERSION = "2.0.0-beta1"
+AIRTIME_VERSION = "2.0.0"
 
 def api_client_factory(config):
     logger = logging.getLogger()
diff --git a/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py b/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py
index 1f75f0bba..b93ff3c24 100644
--- a/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py
+++ b/python_apps/media-monitor/airtimefilemonitor/airtimenotifier.py
@@ -39,7 +39,7 @@ class AirtimeNotifier(Notifier):
         try:
             schedule_exchange = Exchange("airtime-media-monitor", "direct", durable=True, auto_delete=True)
             schedule_queue = Queue("media-monitor", exchange=schedule_exchange, key="filesystem")
-            self.connection = BrokerConnection(self.config.cfg["rabbitmq_host"], self.config.cfg["rabbitmq_user"], self.config.cfg["rabbitmq_password"], "/")
+            self.connection = BrokerConnection(self.config.cfg["rabbitmq_host"], self.config.cfg["rabbitmq_user"], self.config.cfg["rabbitmq_password"], self.config.cfg["rabbitmq_vhost"])
             channel = self.connection.channel()
             consumer = Consumer(channel, schedule_queue)
             consumer.register_callback(self.handle_message)
diff --git a/python_apps/media-monitor/media-monitor.cfg b/python_apps/media-monitor/media-monitor.cfg
index 066c42b31..44819833b 100644
--- a/python_apps/media-monitor/media-monitor.cfg
+++ b/python_apps/media-monitor/media-monitor.cfg
@@ -13,6 +13,7 @@ log_dir = '/var/log/airtime/media-monitor'
 rabbitmq_host = 'localhost'
 rabbitmq_user = 'guest'
 rabbitmq_password = 'guest'
+rabbitmq_vhost = '/'
 
 ############################################
 # Media-Monitor preferences                         #
diff --git a/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg b/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg
index 13b23a87f..d76e3af3d 100644
--- a/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg
+++ b/python_apps/pypo/liquidsoap_scripts/liquidsoap.cfg
@@ -38,6 +38,9 @@ s3_host = "127.0.0.1"
 s1_port = 8000
 s2_port = 8000
 s3_port = 8000
+s1_user = ""
+s2_user = ""
+s3_user = ""
 s1_pass = "hackme"
 s2_pass = "hackme"
 s3_pass = "hackme"
diff --git a/python_apps/pypo/pypo.cfg b/python_apps/pypo/pypo.cfg
index 352d234d0..3280ba540 100644
--- a/python_apps/pypo/pypo.cfg
+++ b/python_apps/pypo/pypo.cfg
@@ -39,6 +39,7 @@ ls_port = '1234'
 rabbitmq_host = 'localhost'
 rabbitmq_user = 'guest'
 rabbitmq_password = 'guest'
+rabbitmq_vhost = '/'
 
 ############################################
 # pypo preferences                         #
diff --git a/python_apps/pypo/pypofetch.py b/python_apps/pypo/pypofetch.py
index c0dffd9eb..a34ac756e 100644
--- a/python_apps/pypo/pypofetch.py
+++ b/python_apps/pypo/pypofetch.py
@@ -57,7 +57,7 @@ class PypoFetch(Thread):
         try:
             schedule_exchange = Exchange("airtime-pypo", "direct", durable=True, auto_delete=True)
             schedule_queue = Queue("pypo-fetch", exchange=schedule_exchange, key="foo")
-            self.connection = BrokerConnection(config["rabbitmq_host"], config["rabbitmq_user"], config["rabbitmq_password"], "/")
+            self.connection = BrokerConnection(config["rabbitmq_host"], config["rabbitmq_user"], config["rabbitmq_password"], config["rabbitmq_vhost"])
             channel = self.connection.channel()
             consumer = Consumer(channel, schedule_queue)
             consumer.register_callback(self.handle_message)
diff --git a/python_apps/show-recorder/recorder.cfg b/python_apps/show-recorder/recorder.cfg
index 762c01da3..d6005bf0a 100644
--- a/python_apps/show-recorder/recorder.cfg
+++ b/python_apps/show-recorder/recorder.cfg
@@ -15,6 +15,7 @@ log_dir = '/var/log/airtime/show-recorder'
 rabbitmq_host = 'localhost'
 rabbitmq_user = 'guest'
 rabbitmq_password = 'guest'
+rabbitmq_vhost = '/'
 
 ############################################
 # Recorded Audio settings                  #
diff --git a/python_apps/show-recorder/recorder.py b/python_apps/show-recorder/recorder.py
index e01e496f9..7cf7e0ab9 100644
--- a/python_apps/show-recorder/recorder.py
+++ b/python_apps/show-recorder/recorder.py
@@ -183,7 +183,7 @@ class CommandListener():
         try:
             schedule_exchange = Exchange("airtime-show-recorder", "direct", durable=True, auto_delete=True)
             schedule_queue = Queue("recorder-fetch", exchange=schedule_exchange, key="foo")
-            self.connection = BrokerConnection(config["rabbitmq_host"], config["rabbitmq_user"], config["rabbitmq_password"], "/")
+            self.connection = BrokerConnection(config["rabbitmq_host"], config["rabbitmq_user"], config["rabbitmq_password"], config["rabbitmq_vhost"])
             channel = self.connection.channel()
             consumer = Consumer(channel, schedule_queue)
             consumer.register_callback(self.handle_message)
diff --git a/utils/phone_home_stat.php b/utils/phone_home_stat.php
index 6b3d8ecde..a230f31ad 100644
--- a/utils/phone_home_stat.php
+++ b/utils/phone_home_stat.php
@@ -36,6 +36,7 @@ require_once($CC_CONFIG['phpDir'].'/application/models/Schedule.php');
 require_once($CC_CONFIG['phpDir'].'/application/models/Show.php');
 require_once($CC_CONFIG['phpDir'].'/application/models/ShowInstance.php');
 require_once($CC_CONFIG['phpDir'].'/application/models/Preference.php');
+require_once($CC_CONFIG['phpDir'].'/application/models/StreamSetting.php');
 
 //Pear classes.
 set_include_path($CC_CONFIG['phpDir'].'/library/pear' . PATH_SEPARATOR . get_include_path());