diff --git a/taxonomy_nco.module b/taxonomy_nco.module
index b35b82e..85b949c 100755
--- a/taxonomy_nco.module
+++ b/taxonomy_nco.module
@@ -259,21 +259,23 @@ function taxonomy_nco_all_tids(){
  * Fish out the tids assigned to the node from the vocabulary used by nco
  */
 
-function taxonomy_nco_tids_from_node($nid){
+function taxonomy_nco_tids_from_node($nid) {
   static $results=array();
-  if (array_key_exists($nid,$results)) return $results[$nid];
+  if (array_key_exists($nid, $results)) return $results[$nid];
   $result=array();
-  if (is_numeric($nid)){
+  if (is_numeric($nid)) {
     $node=node_load($nid);
-    if ($node){
-      foreach($node as $key=>$field_value){
-        if (strpos($key,'field_')===0){
-          if ($field_value){
+    if ($node) {
+      foreach ($node as $key => $field_value) {
+        if (strpos($key, 'field_')===0) {
+          if ($field_value) {
             $field_name = $key;
             $field = field_info_field($field_name);
-            if ($field['type']=='taxonomy_term_reference'){
-              $tags = $field_value[$node->language];
-              foreach($tags as $tag) $result[] = $tag['tid'];            
+            if ($field['type']=='taxonomy_term_reference') {
+              if (array_key_exists($node->language, $field_value)) $tags = $field_value[$node->language];
+              elseif (array_key_exists('und', $field_value)) $tags = $field_value['und'];
+              else $tags = array_shift($field_value);
+              if ($tags) foreach ($tags as $tag) $result[] = $tag['tid'];            
             }
           }
         }
