Index: trunk/src/org/expeditee/gui/Frame.java
===================================================================
--- trunk/src/org/expeditee/gui/Frame.java	(revision 1406)
+++ trunk/src/org/expeditee/gui/Frame.java	(revision 1407)
@@ -31,4 +31,6 @@
 import java.util.Map;
 import java.util.Stack;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import org.expeditee.actions.Simple;
@@ -751,5 +753,5 @@
 	 */
 	public void setPermission(PermissionTriple permission) {
-		List<String> groupMembers = new ArrayList<String>();
+		List<String> groupMembers = getGroupMembers();
 		
 		if (_permissionTriple != null && !_permissionTriple.getPermission(this._owner, groupMembers).equals(permission.getPermission(this._owner, groupMembers))) {
@@ -1196,21 +1198,18 @@
 	}
 
-	public PermissionTriple getPermission()
-	{
+	public PermissionTriple getPermission()	{
 		return _permissionTriple;
 	}
 	
-	public UserAppliedPermission getUserAppliedPermission()
-	{
+	public UserAppliedPermission getUserAppliedPermission()	{
 		return getUserAppliedPermission(UserAppliedPermission.full);
 	}
 
-	public UserAppliedPermission getUserAppliedPermission(UserAppliedPermission defaultPermission)
-	{
+	public UserAppliedPermission getUserAppliedPermission(UserAppliedPermission defaultPermission) {
 		if (_permissionTriple == null) {
 			return defaultPermission;
 		}
 
-		return _permissionTriple.getPermission(_owner, new ArrayList<String>());
+		return _permissionTriple.getPermission(_owner, getGroupMembers());
 	}
 
@@ -2808,4 +2807,26 @@
 		this._groupFrame = frame;
 	}
+	
+	public List<String> getGroupMembers() {
+		List<String> members = new ArrayList<String>();
+		if (getGroupFrame() != null) {
+			Collection<Text> textItems = getGroupFrame().getTextItems();
+			Stream<Text> memberLists = textItems.stream().filter(t -> 
+				t.getText().toLowerCase().startsWith("@owner: ") || 
+				t.getText().toLowerCase().startsWith("@members: "));
+			for(Text t: memberLists.collect(Collectors.toList())) {
+				if (t.getText().toLowerCase().startsWith("@owner: ")) {
+					members.add(t.getText().substring(8));
+				} else if (t.getText().toLowerCase().startsWith("@members: ")) {
+					//10
+					String[] split = t.getText().substring(10).split(",");
+					for (String m: split) {
+						members.add(m.trim());
+					}
+				}
+			}
+		}
+		return members;
+	}
 
 	private static final class History {
Index: trunk/src/org/expeditee/gui/FrameUtils.java
===================================================================
--- trunk/src/org/expeditee/gui/FrameUtils.java	(revision 1406)
+++ trunk/src/org/expeditee/gui/FrameUtils.java	(revision 1407)
@@ -503,5 +503,5 @@
 		final PermissionTriple framePermissions = toDisplay.getPermission();
 		if (framePermissions != null
-				&& framePermissions.getPermission(toDisplay.getOwner(), new ArrayList<String>()) == UserAppliedPermission.denied) {
+				&& framePermissions.getPermission(toDisplay.getOwner(), toDisplay.getGroupMembers()) == UserAppliedPermission.denied) {
 			MessageBay.errorMessage("Insufficient permissions to navigate to frame: " + toDisplay.getName());
 			return;
@@ -1039,5 +1039,5 @@
 								if (existingOverlay == null) {
 									Overlay newOverlay = new Overlay(overlayFrame,
-											permissionLevel.getPermission(overlayFrame.getOwner(), new ArrayList<String>()));
+											permissionLevel.getPermission(overlayFrame.getOwner(), overlayFrame.getGroupMembers()));
 									i.setOverlay(newOverlay);
 									overlays.add(newOverlay);
Index: trunk/src/org/expeditee/items/Item.java
===================================================================
--- trunk/src/org/expeditee/items/Item.java	(revision 1406)
+++ trunk/src/org/expeditee/items/Item.java	(revision 1407)
@@ -494,8 +494,8 @@
 	}
 
-	public void setPermission(PermissionTriple permissionPair)
-	{
+	public void setPermission(PermissionTriple permissionPair) {
+		List<String> groupMembers = getParent() != null ? getParent().getGroupMembers() : new ArrayList<String>();
 		_permissionTriple = permissionPair;
-		if (_permissionTriple.getPermission(_owner, new ArrayList<String>()) == UserAppliedPermission.denied) {
+		if (_permissionTriple.getPermission(_owner, groupMembers) == UserAppliedPermission.denied) {
 			this.getParent().moveItemToBodyHiddenDueToPermission(this);
 		}
@@ -507,6 +507,7 @@
 
 	public UserAppliedPermission getUserAppliedPermission() {
+		List<String> groupMembers = getParent() != null ? getParent().getGroupMembers() : new ArrayList<String>();
 		String owner = _owner != null ? _owner : _parent != null ? _parent.getOwner() : null;
-		if(_permissionTriple != null) return _permissionTriple.getPermission(owner, new ArrayList<String>());
+		if(_permissionTriple != null) return _permissionTriple.getPermission(owner, groupMembers);
 		if(_overlayPermission != null) return _overlayPermission;
 		if(_parent != null) return _parent.getUserAppliedPermission();
