Index: i18n_access.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/i18n_access/i18n_access.module,v
retrieving revision 1.6
diff -u -r1.6 i18n_access.module
--- i18n_access.module	5 Jan 2010 12:29:09 -0000	1.6
+++ i18n_access.module	27 Jan 2010 23:04:18 -0000
@@ -101,7 +101,7 @@
  *
  * @see node_access()
  */
-function i18n_access_node_access($op, $node, $account = NULL) {
+function i18n_access_node($op, $node, $account = NULL) {
   global $user;
 
   // If no user object is supplied, the access check is for the current user.
@@ -130,15 +130,16 @@
   // Make sure to use the language neutral constant if node language is empty
   $langcode = $node->language ? $node->language : I18N_ACCESS_LANGUAGE_NEUTRAL;
 
-  return (boolean)$perms[$langcode];
+  return isset($perms[$langcode]) ? (bool) $perms[$langcode] : FALSE;
 }
 
 /**
  * Implementation of hook_menu_alter().
  */
 function i18n_access_menu_alter(&$callbacks) {
-  // Use i18n_access_node_access() instead of node_access().
-  $callbacks['node/%node/edit']['access callback'] = 'i18n_access_node_access';
+  // Use i18n_access_node() instead of node_access().
+  $callbacks['node/%node/edit']['access callback'] = 'i18n_access_node';
+  $callbacks['node/%node/edit']['access arguments'] = array('update', 1);
 
   // Replace the translation overview page since we can't hook it.
   $callbacks['node/%node/translate']['page callback'] = 'i18n_access_translation_node_overview';
@@ -169,7 +170,7 @@
       // We load the full node to check whether the user can edit it.
       $translation_node = node_load($translations[$language->language]->nid);
       $title = l($translation_node->title, 'node/'. $translation_node->nid);
-      if (i18n_access_node_access('update', $translation_node)) {
+      if (i18n_access_node('update', $translation_node)) {
         $options[] = l(t('edit'), "node/$translation_node->nid/edit");
       }
       $status = $translation_node->status ? t('Published') : t('Not published');
@@ -183,7 +184,7 @@
       $title = t('n/a');
       $translation_node = drupal_clone($node);
       $translation_node->language = $language->language;
-      if (i18n_access_node_access('create', $translation_node)) {
+      if (i18n_access_node('create', $translation_node)) {
         $options[] = l(t('add translation'), 'node/add/'. str_replace('_', '-', $node->type), array('query' => "translation=$node->nid&language=$language->language"));
       }
       $status = t('Not translated');
