<?php $orig_post = $post;
global $post;
$categories = get_the_category($post->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;

$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=> 3, // Number of related posts that will be shown.
'caller_get_posts'=>1
);

$my_query = new wp_query( $args );
if( $my_query->have_posts() ) {
echo '<div id="relatedposts"><h3>Related Posts</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post();?>

<div class="relatedthumb">
    <a rel="external" href="<?php the_permalink()?>"><?php the_post_thumbnail(array(200, auto)); php?><br />
    <?php the_title(); ?>
    </a>
  </div>
<?php
}
echo '</ul></div>';
}
}
$post = $orig_post;
wp_reset_query(); ?> 