Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 10191)
+++ wp-includes/post.php	(working copy)
@@ -464,7 +464,8 @@
 		'order' => 'DESC', 'include' => '',
 		'exclude' => '', 'meta_key' => '',
 		'meta_value' =>'', 'post_type' => 'post',
-		'suppress_filters' => true
+		'suppress_filters' => true,
+		'lang' => 'bg'
 	);
 
 	$r = wp_parse_args( $args, $defaults );
@@ -1307,7 +1308,8 @@
 	$defaults = array('post_status' => 'draft', 'post_type' => 'post', 'post_author' => $user_ID,
 		'ping_status' => get_option('default_ping_status'), 'post_parent' => 0,
 		'menu_order' => 0, 'to_ping' =>  '', 'pinged' => '', 'post_password' => '',
-		'guid' => '', 'post_content_filtered' => '', 'post_excerpt' => '', 'import_id' => 0);
+		'guid' => '', 'post_content_filtered' => '', 'post_excerpt' => '', 'import_id' => 0,
+		'language' => 'bg' );
 
 	$postarr = wp_parse_args($postarr, $defaults);
 	$postarr = sanitize_post($postarr, 'db');
@@ -1349,6 +1351,9 @@
 	if ( empty($post_type) )
 		$post_type = 'post';
 
+	if ( empty($language) )
+		$language = 'bg';
+
 	$post_ID = 0;
 
 	// Get the post ID and GUID
@@ -1365,9 +1370,9 @@
 	// post name.
 	if ( empty($post_name) ) {
 		if ( !in_array( $post_status, array( 'draft', 'pending' ) ) )
-			$post_name = sanitize_title($post_title);
+			$post_name = sanitize_title($post_title,strftime('%Y-%m-%d %H:%M'));
 	} else {
-		$post_name = sanitize_title($post_name);
+		$post_name = sanitize_title($post_name,strftime('%Y-%m-%d %H:%M'));
 	}
 
 	// If the post date is empty (due to having been new or a draft) and status is not 'draft' or 'pending', set date to now
@@ -1452,7 +1457,7 @@
 	}
 
 	// expected_slashed (everything!)
-	$data = compact( array( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'guid' ) );
+	$data = compact( array( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'guid' , 'language' ) );
 	$data = apply_filters('wp_insert_post_data', $data, $postarr);
 	$data = stripslashes_deep( $data );
 	$where = array( 'ID' => $post_ID );
Index: wp-includes/query.php
===================================================================
--- wp-includes/query.php	(revision 10191)
+++ wp-includes/query.php	(working copy)
@@ -1186,6 +1186,7 @@
 			, 'meta_key'
 			, 'meta_value'
 			, 'preview'
+			, 'lang'
 		);
 
 		foreach ($keys as $key) {
@@ -1589,6 +1590,9 @@
 		if ( !isset($q['suppress_filters']) )
 			$q['suppress_filters'] = false;
 
+		if ( empty($q['lang']) )
+			$q['lang'] = 'bg';
+
 		if ( !isset($q['post_type']) ) {
 			if ( $this->is_search )
 				$q['post_type'] = 'any';
@@ -1736,6 +1740,11 @@
 			}
 		}
 
+		if ( $q['lang'] ) {
+			$where .= $wpdb->prepare( " AND $wpdb->posts.language = %s ", $q['lang'] );
+		}
+
+
 		// If a search pattern is specified, load the posts that match
 		if ( !empty($q['s']) ) {
 			// added slashes screw with quote grouping when done early, so done later
@@ -2681,4 +2690,4 @@
 	return true;
 }
 
-?>
\ No newline at end of file
+?>
Index: wp-includes/classes.php
===================================================================
--- wp-includes/classes.php	(revision 10191)
+++ wp-includes/classes.php	(working copy)
@@ -26,7 +26,7 @@
 	 * @access public
 	 * @var array
 	 */
-	var $public_query_vars = array('m', 'p', 'posts', 'w', 'cat', 'withcomments', 'withoutcomments', 's', 'search', 'exact', 'sentence', 'debug', 'calendar', 'page', 'paged', 'more', 'tb', 'pb', 'author', 'order', 'orderby', 'year', 'monthnum', 'day', 'hour', 'minute', 'second', 'name', 'category_name', 'tag', 'feed', 'author_name', 'static', 'pagename', 'page_id', 'error', 'comments_popup', 'attachment', 'attachment_id', 'subpost', 'subpost_id', 'preview', 'robots', 'taxonomy', 'term', 'cpage');
+	var $public_query_vars = array('m', 'p', 'posts', 'w', 'cat', 'withcomments', 'withoutcomments', 's', 'search', 'exact', 'sentence', 'debug', 'calendar', 'page', 'paged', 'more', 'tb', 'pb', 'author', 'order', 'orderby', 'year', 'monthnum', 'day', 'hour', 'minute', 'second', 'name', 'category_name', 'tag', 'feed', 'author_name', 'static', 'pagename', 'page_id', 'error', 'comments_popup', 'attachment', 'attachment_id', 'subpost', 'subpost_id', 'preview', 'robots', 'taxonomy', 'term', 'cpage', 'lang');
 
 	/**
 	 * Private query variables.
Index: wp-includes/category-template.php
===================================================================
--- wp-includes/category-template.php	(revision 10191)
+++ wp-includes/category-template.php	(working copy)
@@ -551,7 +551,7 @@
  */
 function wp_tag_cloud( $args = '' ) {
 	$defaults = array(
-		'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
+		'smallest' => 8, 'largest' => 18, 'unit' => 'pt', 'number' => 45,
 		'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC',
 		'exclude' => '', 'include' => '', 'link' => 'view'
 	);
@@ -685,7 +685,7 @@
 		$count = $counts[ $key ];
 		$tag_link = '#' != $tag->link ? clean_url( $tag->link ) : '#';
 		$tag_id = isset($tags[ $key ]->id) ? $tags[ $key ]->id : $key;
-		$tag_name = $tags[ $key ]->name;
+		$tag_name = $tags[ $key ]->name.".".$count;
 		$a[] = "<a href='$tag_link' class='tag-link-$tag_id' title='" . attribute_escape( $topic_count_text_callback( $count ) ) . "'$rel style='font-size: " .
 			( $smallest + ( ( $count - $min_count ) * $font_step ) )
 			. "$unit;'>$tag_name</a>";
Index: wp-comments-post.php
===================================================================
--- wp-comments-post.php	(revision 10191)
+++ wp-comments-post.php	(working copy)
@@ -37,6 +37,18 @@
 $comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;
 $comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;
 
+if (preg_replace('/['.chr(1).'-'.chr(127).']/e', '', $comment_content) == '')
+{
+      die ('No cyrillic symbols found');
+};
+
+if ( (preg_match('/\.ru$/',$comment_author_email) || (preg_match('/\.ru\/.*$/',$comment_author_url) ) || (preg_match('/\.ru$/',$comment_author_url) ) ) )
+{
+      die ('Spam, spam, go away, don\'t come again another day');
+}
+  
+
+
 // If the user is logged in
 $user = wp_get_current_user();
 if ( $user->ID ) {
Index: xmlrpc.php
===================================================================
--- xmlrpc.php	(revision 10191)
+++ xmlrpc.php	(working copy)
@@ -24,7 +24,7 @@
 
 // fix for mozBlog and other cases where '<?xml' isn't on the very first line
 if ( isset($HTTP_RAW_POST_DATA) )
-	$HTTP_RAW_POST_DATA = trim($HTTP_RAW_POST_DATA);
+	$HTTP_RAW_POST_DATA = mysql_escape_string(trim($HTTP_RAW_POST_DATA));
 
 /** Include the bootstrap for setting up WordPress environment */
 include('./wp-load.php');
