Index: skins/common/history.js
===================================================================
--- skins/common/history.js	(revision 49675)
+++ skins/common/history.js	(working copy)
@@ -121,4 +121,23 @@
 	}
 }
 
+// In case of hidebots=1 and no non-bot edits there
+function singlehistrowinit() {
+	var pagehistory = document.getElementById( 'pagehistory' );
+	if ( !pagehistory ) return;
+	var lis = pagehistory.getElementsByTagName( 'li' );
+	if ( lis.length == 1 ) {
+		lis[0].setAttribute( 'class', '' );
+		var radios = historyRadios( lis[0] );
+		if ( radios.length < 2 ) return;
+		radios[0].style.display = 'none';
+		radios[1].style.display = 'none';
+		var historysubmit = getElementsByClassName( document, 'input', 'historysubmit' );
+		if ( historysubmit.length < 2 ) return;
+		historysubmit[0].style.display = 'none';
+		historysubmit[1].style.display = 'none';
+	}
+}
+
 hookEvent("load", histrowinit);
+hookEvent("load", singlehistrowinit);
Index: includes/PageHistory.php
===================================================================
--- includes/PageHistory.php	(revision 49675)
+++ includes/PageHistory.php	(working copy)
@@ -23,7 +23,8 @@
 	var $lastdate;
 	var $linesonpage;
 	var $mLatestId = null;
-	
+	var $hideBots = false;
+
 	private $mOldIdChecked = 0;
 
 	/**
@@ -33,11 +34,12 @@
 	 * @returns nothing
 	 */
 	function __construct( $article ) {
-		global $wgUser;
+		global $wgUser, $wgRequest;
 		$this->mArticle =& $article;
 		$this->mTitle =& $article->mTitle;
 		$this->mSkin = $wgUser->getSkin();
 		$this->preCacheMessages();
+		$this->hideBots = intval( $wgRequest->data['hidebots'] ) == 1  ? true : false;
 	}
 
 	function getArticle() {
@@ -614,6 +616,16 @@
 
 	function formatRow( $row ) {
 		if( $this->mLastRow ) {
+			if ( $this->mPageHistory->hideBots ) {
+				$user = User::newFromId( intval( $this->mLastRow->rev_user ) );
+				if ( is_object( $user ) ) {
+					$user->loadGroups();
+					if ( @in_array( 'bot', $user->mGroups ) ) {
+						$this->mLastRow = $row;
+						return '';
+					}
+				}
+			}
 			$latest = $this->mCounter == 1 && $this->mIsFirst;
 			$firstInList = $this->mCounter == 1;
 			$s = $this->mPageHistory->historyLine( $this->mLastRow, $row, $this->mCounter++,
