problem with [$node->language][0]
You shouldn't be accessing the data directly. You should use field_get_items() instead. I also use a foreach below, as that makes your code more generally applicable. Limiting to a single image should happen at the field layer, not theme. If you really want to, you could $image = reset($images).

$images = field_get_items('node', $node, 'field_image');
foreach ($images as $image) {
  $image_render = theme('image_style', array(
    'style_name' =&gt; 'teaser',
    'path' =&gt; $image['uri'],
    'alt' =&gt; $image['alt'],
    'title' =&gt; $image['title'],
    'attributes' =&gt; array(),
    'getsize' =&gt; false)
  );

  $link = l($image_render, $node_url, array('title' =&gt; $image['title'], 'html' =&gt; TRUE));
  print '&lt;div class = "image-block"&gt;' . $link . '&lt;/div&gt;';
}