diff --git a/core/model/SiteTree.php b/core/model/SiteTree.php
index <HASH>..<HASH> 100755
--- a/core/model/SiteTree.php
+++ b/core/model/SiteTree.php
@@ -919,6 +919,15 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
 		return $this->canEdit($member);
 	}
 	
+	public function canDeleteFromLive($member = null) {
+		// If we have a result, then that means at least one decorator specified canDeleteFromLive
+		// Allow the permission check only if *all* voting decorators allow it.
+		$results = $this->extend('canDeleteFromLive', $member);
+		if($results && is_array($results)) if(!min($results)) return false;
+
+		return $this->canPublish($member);
+	}
+	
 	/**
 	 * Stub method to get the site config, provided so it's easy to override
 	 */
@@ -1943,7 +1952,7 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
 	 * @uses SiteTreeDecorator->onAfterUnpublish()
 	 */
 	function doUnpublish() {
-		if (!$this->canPublish()) return false;
+		if (!$this->canDeleteFromLive()) return false;
 		
 		$this->extend('onBeforeUnpublish');
 		
@@ -2015,6 +2024,8 @@ class SiteTree extends DataObject implements PermissionProvider,i18nEntityProvid
 		Versioned::reading_stage($origStage);
 
 		$this->extend('onAfterUnpublish');
+		
+		return true;
 	}
 
 	/**
API CHANGE: Added canDeleteFromLive permission to SiteTree, separate from canPublish (from r<I>) (from r<I>)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@<I> <I>b<I>ca-7a2a-<I>-9d3b-<I>d<I>a<I>a9