I'm creating a event type nodes, using data from an external database. It's a multi-lingual site, and the primary language is english. My code creates the node correctly, when the language is set to LANGUAGE_NONE, but when it is set to "en", the body text is not saved in the database. foreach ($results as $record) { echo '<br/>Creating event: ' . $record->name; $node = new stdClass(); $node->type = 'event'; $node->uid = 1; node_object_prepare($node); $node->title = $record->name; $node->language = "en"; //$node->language = LANGUAGE_NONE; $node->body[$node->language][0]['value'] = 'This is a body text for '.$record->name; $node->body[$node->language][0]['summary'] = 'Here goes a summary for '.$record->name; $node->body[$node->language][0]['format'] = 'raw'; $path = 'content/programmatically_created_node_' . date('YmdHis'); $node->path = array('alias' => $path); $instance = field_info_instance('node', 'body', 'event'); print_r($instance); $node = node_submit($node); node_save($node); dpm($node); } When $node->language = LANGUAGE_NONE, a record is created in the fields_data_body table. I can see the body text, but cannot translate it. I guess this is correct. But when $node->language = "en", no record is created. This is my problem. I need this set to "en" as it's a multi-lingual site, and without it, there is no "translate" tab when editing the node (Internationalization module drupal.org/project/i18n) There is some back history to this issue here.. http://drupal.stackexchange.com/questions/54596/no-body-when-creating-a-node-programatically-with-internationalization ..but it's not essential to read it.