Index: dbitem.php =================================================================== --- dbitem.php (revision 14795) +++ dbitem.php (working copy) @@ -353,12 +353,9 @@ $ret = ''; foreach ($keys_hash as $field => $value) { - if ( !preg_match('/\./', $field) ) { - $ret .= '(`' . $this->TableName . '`.' . $field . ' = ' . $this->Conn->qstr($value) . ') AND '; - } - else { - $ret .= '(' . $field . ' = ' . $this->Conn->qstr($value) . ') AND '; - } + $value_part = is_null($value) ? ' IS NULL' : ' = ' . $this->Conn->qstr($value); + + $ret .= '(' . (strpos($field, '.') === false ? '`' . $this->TableName . '`.' : '') . $field . $value_part . ') AND '; } return substr($ret, 0, -5);