| 
					
				 | 
			
			
				@@ -241,7 +241,6 @@ namespace MediaBrowser.Installer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 catch (Exception e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     SystemClose("Error Removing Archive - " + e.GetType().FullName + "\n\n" + e.Message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -399,17 +398,12 @@ namespace MediaBrowser.Installer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         protected void ExtractPackage(string archive) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // Delete old content of system 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var systemDir = Path.Combine(RootPath, "system"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var systemDir = Path.Combine(RootPath, "System"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var backupDir = Path.Combine(RootPath, "System.old"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (Directory.Exists(systemDir)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    Directory.Delete(systemDir, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                catch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // we tried... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (Directory.Exists(backupDir)) Directory.Delete(backupDir,true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Directory.Move(systemDir, backupDir); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // And extract 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -437,6 +431,10 @@ namespace MediaBrowser.Installer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //Rollback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (Directory.Exists(systemDir)) Directory.Delete(systemDir); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Directory.Move(backupDir, systemDir); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        File.Delete(archive); // so we don't try again if its an update 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         throw; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 |