diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp
index 37c603348e3342a1ed9191e72cffcf47d125cc04..fdb056b4a18f321f40ad5a5fed76a3252354746b 100755
--- a/indra/llinventory/llparcel.cpp
+++ b/indra/llinventory/llparcel.cpp
@@ -521,6 +521,11 @@ S32 LLParcel::blockAccess(const LLUUID& agent_id, const LLUUID& group_id,
         return BA_ALLOWED;
     }
     
+    if(getParcelFlag(PF_DENY_ANONYMOUS) && is_agent_identified && is_agent_transacted)
+    {
+    	return BA_ALLOWED;
+    }
+
     return BA_NOT_IN_GROUP;
     
 }
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 6ef4d8717d75cecba8399d52959ab1dd2c7731a4..22f42875fba70bf3457f1de3bcc8340a4ec2885a 100755
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -2377,7 +2377,7 @@ void LLPanelLandAccess::refresh()
 	{
 		BOOL use_access_list = parcel->getParcelFlag(PF_USE_ACCESS_LIST);
 		BOOL use_group = parcel->getParcelFlag(PF_USE_ACCESS_GROUP);
-		BOOL public_access = !use_access_list && !use_group;
+		BOOL public_access = !use_access_list;
 		
 		getChild<LLUICtrl>("public_access")->setValue(public_access );
 		getChild<LLUICtrl>("GroupCheck")->setValue(use_group );
@@ -2582,7 +2582,6 @@ void LLPanelLandAccess::refresh_ui()
 			{
 				getChildView("Only Allow")->setToolTip(std::string());
 			}
-			getChildView("GroupCheck")->setEnabled(FALSE);
 			getChildView("PassCheck")->setEnabled(FALSE);
 			getChildView("pass_combo")->setEnabled(FALSE);
 			getChildView("AccessList")->setEnabled(FALSE);
@@ -2592,11 +2591,7 @@ void LLPanelLandAccess::refresh_ui()
 			getChildView("limit_payment")->setEnabled(FALSE);
 			getChildView("limit_age_verified")->setEnabled(FALSE);
 
-			std::string group_name;
-			if (gCacheName->getGroupName(parcel->getGroupID(), group_name))
-			{			
-				getChildView("GroupCheck")->setEnabled(can_manage_allowed);
-			}
+
 			BOOL group_access = getChild<LLUICtrl>("GroupCheck")->getValue().asBoolean();
 			BOOL sell_passes = getChild<LLUICtrl>("PassCheck")->getValue().asBoolean();
 			getChildView("PassCheck")->setEnabled(can_manage_allowed);
@@ -2607,6 +2602,11 @@ void LLPanelLandAccess::refresh_ui()
 				getChildView("HoursSpin")->setEnabled(can_manage_allowed);
 			}
 		}
+		std::string group_name;
+		if (gCacheName->getGroupName(parcel->getGroupID(), group_name))
+		{
+			getChildView("GroupCheck")->setEnabled(can_manage_allowed);
+		}
 		getChildView("AccessList")->setEnabled(can_manage_allowed);
 		S32 allowed_list_count = parcel->mAccessList.size();
 		getChildView("add_allowed")->setEnabled(can_manage_allowed && allowed_list_count < PARCEL_MAX_ACCESS_LIST);
@@ -2652,17 +2652,6 @@ void LLPanelLandAccess::onCommitPublicAccess(LLUICtrl *ctrl, void *userdata)
 	{
 		return;
 	}
-
-	// If we disabled public access, enable group access by default (if applicable)
-	BOOL public_access = self->getChild<LLUICtrl>("public_access")->getValue().asBoolean();
-	if (public_access == FALSE)
-	{
-		std::string group_name;
-		if (gCacheName->getGroupName(parcel->getGroupID(), group_name))
-		{
-			self->getChild<LLUICtrl>("GroupCheck")->setValue(public_access ? FALSE : TRUE);
-		}
-	}
 	
 	onCommitAny(ctrl, userdata);
 }
@@ -2697,7 +2686,6 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)
 	if (public_access)
 	{
 		use_access_list = FALSE;
-		use_access_group = FALSE;
 		limit_payment = self->getChild<LLUICtrl>("limit_payment")->getValue().asBoolean();
 		limit_age_verified = self->getChild<LLUICtrl>("limit_age_verified")->getValue().asBoolean();
 	}