diff --git a/spaces_og/spaces_og.module b/spaces_og/spaces_og.module
index 878a22e..c45f108 100644
--- a/spaces_og/spaces_og.module
+++ b/spaces_og/spaces_og.module
@@ -258,7 +258,12 @@ function spaces_og_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
                       INNER JOIN {node} n ON og_p.nid = n.nid
                       SET og_public = %d WHERE og_a.group_nid = %d",
                       !$private, $node->nid);
-            node_access_needs_rebuild(TRUE);
+            if (module_exists('og_node_access')) {
+              og_node_access_needs_rebuild($node->nid);
+            }
+            else {
+              node_access_needs_rebuild(TRUE);
+            }
           }
           $node->og_private = $private === NULL ? FALSE : $private;
           og_update_group($node);
@@ -372,13 +377,9 @@ function spaces_og_form_alter(&$form, $form_state, $form_id) {
  */
 function spaces_og_form_group_submit($form, &$form_state) {
   if (!empty($form_state['nid']) && $space = spaces_load('og', $form_state['nid'])) {
-    $preset_val = $space->controllers->variable->get('site_frontpage', 'preset');
-    $space_val = $space->controllers->variable->get('site_frontpage', 'space');
-    if (!empty($preset_val) || !empty($space_val)) {
-      purl_goto($space->controllers->variable->get('site_frontpage'), array('purl' => array('provider' => 'spaces_og', 'id' => $space->id)));
-    }
-    else {
-      purl_goto("node/{$space->id}", array('purl' => array('provider' => 'spaces_og', 'id' => $space->id)));
+    $current_space = spaces_get_space();
+    if ($current_space->type == 'og' && $current_space->id == $space->id) {
+      $form_state['redirect'] = variable_get('site_frontpage', 'node');
     }
   }
 }
