Return table and item-list, but only table is displayed $build['table'] = array(
  '#theme' =&gt; 'table',
  '#header' =&gt; array('A','B','C'),
  '#rows' =&gt; $items
);

$build['itemlist'] = theme_item_list(array(
  'items' =&gt; $products,
  'attributes' =&gt; array('id' =&gt; 'my-custom-listing','class' =&gt; 'custom-class another-custom-class'),
  'title' =&gt; "Bonieren:",
  'type' =&gt; 'ul',
  'container_id' =&gt; 'bonieren',
));

return $build;


Above is my code. The problem is that only the table is being shown on callback. Why does it happen?
Your are mixing render arrays and html, use for both table and itemlist the same:

$build['itemlist'] = array(
        '#theme' =&gt; 'item_list',
        '#type' =&gt; 'ul',
        '#items' =&gt; $products,
        ...,
);