11a12,13
> 
> /**
156c158,159
<   if ($function($elements[0]['#item'], $elements['#field_name'])) {
---
>   if ($function($elements[0]['#item'], $elements['#field_name']) &&
>       ($info['type']=='nodereferrer' && !$elements[0]['#item']['items'])) {
162a166,190
>  * Hack to populate items content back to an index where it is expected.
>  */
> function _fix_nodereferrer_items(&$items) {
>     $nr_items = $items[0]['#item']['items'];
>     $c = 0;
>     foreach($nr_items as $nr_item) {
>         $items[$c] = array(
>             '#weight' => $c,
>             '#item' => array('nid' => $nr_item['nid']),
>             '#title' => 'hi',
>             '#description' => '',
>             '#printed' => 1
>         );
>         $c++;
>     }
> }
> /**
>  * Hack to change the field type property to nodereference! This ensures that
>  * the nodereference formatter is used in place of nodereferrer.
>  */
> function _fix_nodereferrer_field(&$field) {
>   $field['type'] = 'nodereference';
> }
> 
> /**
166a195
>   
169d197
<   $childrens = element_children($element['items']);
170a199,208
>   
>   // fix nodereferrer. The nodereferrer formatter expects data to be differently
>   // structured. We therefore morph the items here to be the same as
>   // nodereference. Very ugly and very possibly a better way exists.
>   if ($field['type'] == 'nodereferrer') {
>     _fix_nodereferrer_items($element['items']);
>     _fix_nodereferrer_field($field);
>   }
>   
>   $childrens = element_children($element['items']);
179a218
> 
