--- similar.module	2008-05-23 01:45:34.000000000 +0200
+++ similar.module	2009-07-16 09:16:09.000000000 +0200
@@ -383,11 +383,15 @@
     $join_og = 'LEFT OUTER JOIN {og_ancestry} AS a on n.nid = a.nid LEFT OUTER JOIN {og_uid} AS u on a.group_nid = u.nid ';
 	# user is member of group OR node is public (does not belong to any group)
     $where_og = " (u.uid = $user->uid OR a.nid is null) AND ";
   }
 
-  $result = db_query_range("SELECT DISTINCT r.nid, MATCH(r.body, r.title) AGAINST ('%s') AS score FROM {node_revisions} r INNER JOIN {node} n ON r.nid = n.nid AND r.vid = n.vid $join_taxonomy $join_og WHERE $where_og MATCH(r.body, r.title) AGAINST ('%s') AND n.status <> 0 AND r.nid <> %d AND n.type IN ($types) GROUP BY n.nid ORDER BY score DESC, r.vid DESC", $text, $text, $node->nid, 0, variable_get('similar_num_display', 5));
+  $query = "SELECT DISTINCT n.nid, MATCH(r.body, r.title) AGAINST ('%s') AS score FROM {node_revisions} r INNER JOIN {node} n ON r.nid = n.nid AND r.vid = n.vid $join_taxonomy $join_og WHERE $where_og MATCH(r.body, r.title) AGAINST ('%s') AND n.status <> 0 AND r.nid <> %d AND n.type IN ($types) GROUP BY n.nid ORDER BY score DESC, r.vid DESC";
+
+  $query = db_rewrite_sql($query, 'n', 'vid');
+  $result = db_query_range($query, $text, $text, $node->nid, 0, variable_get('similar_num_display', 5));
+
 
   while ($node = db_fetch_object($result)) {
     $content = node_load($node->nid);
     if ($teaser) {
       $items[] = '<div class="similar-title">'.
