Index: Article.php
===================================================================
--- Article.php	(revision 33017)
+++ Article.php	(working copy)
@@ -1755,7 +1755,7 @@
 				} else {
 					$comment_type = 'unprotectedarticle';
 				}
-				$comment = $wgContLang->ucfirst( wfMsgForContent( $comment_type, $this->mTitle->getPrefixedText() ) );
+				$commentPrefix = $wgContLang->ucfirst( wfMsgForContent( $comment_type, $this->mTitle->getPrefixedText() ) );
 
 				foreach( $limit as $action => $restrictions ) {
 					# Check if the group level required to edit also can protect pages
@@ -1769,15 +1769,16 @@
 					$cascade_description = ' ['.wfMsg('protect-summary-cascade').']';
 				}
 
-				if( $reason )
-					$comment .= ": $reason";
 				if( $protect )
 					$comment .= " [$updated]";
 				if ( $expiry_description && $protect )
 					$comment .= "$expiry_description";
 				if ( $cascade )
 					$comment .= "$cascade_description";
-				
+
+				$reasonTrim = substr($reason, 0, 255 - (strlen($comment) + strlen($commentPrefix) + 2) ); 
+				$comment = "$commentPrefix: $reasonTrim$comment";
+
 				# Update restrictions table
 				foreach( $limit as $action => $restrictions ) {
 					if ($restrictions != '' ) {
@@ -1813,7 +1814,10 @@
 				
 
 				if( $protect ) {
-					$log->addEntry( $modified ? 'modify' : 'protect', $this->mTitle, trim( $reason . " [$updated]$cascade_description$expiry_description" ) );
+					$autoReason = " [$updated]$cascade_description$expiry_description" ;
+					$reason = substr($reason, 0, 255 - strlen($autoReason) );
+					$reason = $reason . $autoReason;
+					$log->addEntry( $modified ? 'modify' : 'protect', $this->mTitle, trim($reason) );
 				} else {
 					$log->addEntry( 'unprotect', $this->mTitle, $reason );
 				}
