--- bio/bio.module	2007-12-02 16:51:26.000000000 -0500
+++ bio.module	2007-12-19 19:57:55.000000000 -0500
@@ -204,6 +204,19 @@ function bio_nodeapi(&$node, $op, $a3 = 
       // This user already has a bio node and this isn't it
       $account = user_load(array('name' => $node->name));
       $nid = bio_for_user($account->uid);
+      // Check if the bio is i18n and if the node for this language is already set
+      if (variable_get('i18n_node_'.$node->type,0) && (!empty($node->language))){
+        $trid = db_result(db_query("SELECT trid FROM {i18n_node} WHERE nid=%d", $nid, $node->language));
+        if ($trid){
+          $result = db_query("SELECT language FROM {i18n_node} WHERE trid=%d", $trid);
+          while ($row = db_fetch_object($result)) {
+            if ($node->language == $row->language){
+              form_set_error('name', t('This user already has a @bio in this language.', array('@bio' => node_get_types('name', $node))));
+            }
+          }
+        }
+        break;
+      }
       if ($nid && ($nid != $node->nid)) {
         form_set_error('name', t('This user already has a @bio. Edit it <a href="@link">here</a> or assign this entry to another user.', array('@bio' => node_get_types('name', $node), '@link' => url('node/'.$nid.'/edit'))));
       } 
