--- og_roles.module.ori	2007-02-09 16:27:50.000000000 -0300
+++ og_roles.module	2008-10-10 20:05:26.000000000 -0300
@@ -80,9 +80,11 @@ function og_roles_menu($may_cache) {
 function og_roles_settings() {
 
   // Get list of all og-enabled node types
-  $group_types = variable_get('og_node_types', array('og'));
-  foreach ($group_types as $type) {
-    $types[$type] = node_get_types('name', $type);
+  if (function_exists('og_get_types')) {
+    $group_types = og_get_types('group');
+  }
+  else {
+    $group_types = variable_get('og_node_types', array('og'));
   }
 
   // Get list of roles, not counting authenticated and anonymous user
@@ -102,17 +104,17 @@ function og_roles_settings() {
   }
 
   // Create a fieldset for each group type containing role selections
-  foreach ($types as $type => $name) {
-    $form["og_roles_$type"] = array(
+  foreach ($group_types as $type => $name) {
+    $form["og_roles_$name"] = array(
       '#type' => 'fieldset',
-      '#title' => t('%type_name role options', array('%type_name' => theme('placeholder', $name))),
+      '#title' => t('%type_name role options', array('%type_name' => $name)),
     );
 
-    $form["og_roles_$type"]["og_roles_roles_$type"] = array(
+    $form["og_roles_$name"]["og_roles_roles_$name"] = array(
       '#type' => 'checkboxes',
       '#title' => t('Assignable roles'),
       '#options' => $roles,
-      '#default_value' => variable_get("og_roles_roles_$type", array()),
+      '#default_value' => variable_get("og_roles_roles_$name", array()),
     );
   }
 
@@ -250,7 +252,15 @@ function theme_og_roles_page_form($form)
  */
 function og_roles_is_allowed($nid) {
   $node = node_load(array('nid'=>$nid));
-  if (in_array($node->type, variable_get('og_node_types', array('og'))) && variable_get("og_roles_roles_$node->type", NULL)) {
+
+  if (function_exists('og_get_types')) {
+    $types = og_get_types('group');
+  }
+  else {
+    $types = variable_get('og_node_types', array('og'));
+  }
+
+  if (in_array($node->type, $types) && variable_get("og_roles_roles_$node->type", NULL)) {
     return TRUE;
   }
   else {
