How do i use a renderable array to create a list with children render arrays I have a function which returns a facebook wall feed. The data comes back fine but the point i'm having an issue with is combining the list children with the list array.

I start out by defining the list without children.

   $row = array(
    'item_list' =&gt; array(
      '#theme' =&gt; 'item_list',
      '#attributes' =&gt; array(
        'class' =&gt; array('wall-post-list')
      ),
    )
  );


After that i jump in to a foreach loop which i'll omit for clarity since it's large.
First i create a container which will be inside the li of the list and then stuff that container with children like i did with 'account_link' which will be rendered as #markup FAPI elements.

     $list_items[$interation]['data'] = array(
      '#theme' =&gt; 'container',
      '#attributes' =&gt; array(
        'id' =&gt; array($post['id']),
        'class' =&gt; array('wall-post-content', $post['type']),
      ),
      'account_link' =&gt; array(
        '#markup' =&gt; l('&lt;img class="user" src="http://graph.facebook.com/'. $post['from']['id'] . '/picture" /&gt;','http://facebook.com/' . $post['from']['id'], array(
          'attributes' =&gt; array(
            'class' =&gt; array('picture'),
            'target' =&gt; '_blank',
          ),
          'html' =&gt; TRUE,
        ))
      ),
    );


So after building up what this list item is going to have in it I take the $list_items and stuff them into $row['#items']. And now this is where my issue is. The array looks perfect almost to perfect... And when it renders to the page i get 

&lt;li&gt;Array&lt;/li&gt;


Is there some issue with my approach? or does theme_item_list not render out the children of a li and if so how can I get this to render recursively through the whole array?

Full function code here http://pastebin.com/dr3b4CTX

Correction: seems i was using #theme rather than #type in this situation.
I think what you are expecting is logical. But from the definition of theme_item_list() you can see that it expects value of the data key to be just HTML and hence prints it as it is. I could be wrong here and there is probably a hook_preprocess_* somewhere that pre-renders each item of the list.

Either way, an approach that should work is rendering your item before adding it to the list by calling drupal_render() yourself.

// .. your code .. //
$container_elem = array('#type' =&gt; 'container' ... );
$render = drupal_render($container_elem);
$row['item_list']['#items'][] = $render;
// .. your code .. //