diff -Naur cyradm/browseaccounts.php cyradm2/browseaccounts.php
--- cyradm/browseaccounts.php	2007-09-09 14:50:56.000000000 +0300
+++ cyradm2/browseaccounts.php	2007-12-24 12:21:54.000000000 +0200
@@ -71,6 +71,7 @@
 					print "<td class=\"navi\"><a class=\"navilink\" href=\"index.php?action=accounts&domain=".$_GET['domain']."&row_pos=".$next."\">"._("Next entries") ."</a></td>";
 					print "<td class=\"navi\"><a class=\"navilink\" href=\"index.php?action=accounts&domain=$domain&row_pos=$last\">"._("Last entry") ."</a></td>";
 				}
+				print "<td class=\"navi\"><a class=\"navilink\" href=\"index.php?action=accounts&domain=$domain&showall=yes\">"._("Show all") ."</a></td>";
 				?>
 			</tr>
 		</table>
@@ -89,6 +90,12 @@
 					<th>
 						<?php print _("Username");?>
 					</th>
+					<th>
+						<?php print _("Firstname");?>
+					</th>
+										<th>
+						<?php print _("Lastname");?>
+					</th>
 					<?php
 					$_heads = array( 
 						_("Last login"), _("Quota used")
@@ -103,7 +110,13 @@
 				</tr>
 
 				<?php
-				for ($c=$_SESSION['account_row_pos']; $c < (($next>$cnt)?($cnt):($next)); $c++){
+				if(@$_GET[showall]=="yes")	
+				{
+					$showall = $cnt;
+					$_SESSION['account_row_pos']=0;
+				}
+				
+				for ($c=$_SESSION['account_row_pos']; ($c < (($next>$cnt)?($cnt):($next))) or $c<$showall ; $c++){
 
 					if ($c%2==0){
 						$cssrow = "row1";
@@ -114,6 +127,9 @@
 					$row = $result->fetchRow(DB_FETCHMODE_ASSOC, $c);
 					$domain = $row['domain_name'];
 					$username = $row['username'];
+					$name = $row['name'];									
+					$shurename = $row['shurename'];
+				
 
 					$query2 = "SELECT * FROM virtual WHERE dest='".$username."' AND username='".$username."'";
 					$result2 = $handle->query($query2);
@@ -136,6 +152,8 @@
 					}
 					$_dom_user = sprintf('&amp;domain=%s&amp;username=%s',
 						$_GET['domain'], $username);
+					$_dom_user_eugeny = sprintf('&amp;domain=%s&amp;username=%s&amp;fname=%s&amp;lname=%s',
+						$_GET['domain'], $username,$name,$shurename);						
 					?>
 
 					<tr class="<?php echo $cssrow;?>">
@@ -145,7 +163,7 @@
 						</td>
 
 						<td align="center" valign="middle">
-							<a href="index.php?action=manageaccount<?php echo $_dom_user; ?>"
+							<a href="index.php?action=manageaccount<?php echo $_dom_user_eugeny; ?>"
 							><?php print _("Edit account");?></a>
 						</td>
 
@@ -191,10 +209,15 @@
 							?>
 						</td>
 
-						<td valign="middle">
+						<td valign="middle"  align="center">
 							<?php echo $username;?>
 						</td>
-
+						<td valign="middle"  align="center">
+							<?php echo $name;?>
+						</td>
+						<td valign="middle"  align="center">
+							<?php echo $shurename;?>
+						</td>
 						<td align="center" valign="middle">
 							<?php echo $lastlogin;?>
 						</td>
diff -Naur cyradm/manageaccount.php cyradm2/manageaccount.php
--- cyradm/manageaccount.php	2007-09-09 14:50:56.000000000 +0300
+++ cyradm2/manageaccount.php	2007-12-24 12:42:14.000000000 +0200
@@ -76,7 +76,7 @@
 					<input type="hidden" name="confirmed" value="true">
 					<input type="hidden" name="domain" value="<?php echo $_GET['domain'];?>"> 
 					<input type="hidden" name="username" value="<?php echo $_GET['username'];?>">
-<!--
+
 					<h3>
 						<?php print _("Additional information for account");?>
 						<span style="color: red;">
@@ -90,7 +90,7 @@
 							<?php print _("First name");?>:
 						</td>
 						<td>
-							<input class="inputfield" type="password" size="30" name="firstname" readonly>
+							<input class="inputfield" type="text" size="30" value="<?php echo $_GET['fname'];?>" name="name">
 						</td>
 					</tr>
 
@@ -99,11 +99,11 @@
 							<?php print _("Last name");?>:
 						</td>
 						<td>
-							<input class="inputfield" type="password" size="30" name="lastname" readonly>
+							<input class="inputfield" type="text" size="30" value="<?php echo $_GET['lname'];?>" name="shurename">
 						</td>
 					</tr>
 					</table>
--->
+
 					<h3>
 						<?php print _("Change password for account");?>
 						<span style="color: red;">
@@ -204,7 +204,20 @@
 				$_GET['domain'] = $_POST['domain'];
 				include WC_BASE . "/browseaccounts.php";
 			} else {
-				// Change password
+				// Change name or last name, changed by Eugeny
+				if(!empty($_POST['name']) or !empty($_POST['shurename']))
+				{
+					$name = mysql_real_escape_string($_POST['name']);
+					$shurename = mysql_real_escape_string($_POST['shurename']);
+					$query = "UPDATE accountuser SET name='$name',shurename='$shurename' WHERE username='".$_POST['username']."'";
+						$result = $handle->query($query);
+						if (DB::isError($result)) {
+							die (_("Database error"));
+						} else {
+							print "<h3>"._("Name changed")."</h3>";
+						}
+				}
+				// change password
 				if (!empty($_POST['new_password']) && !empty($_POST['confirm_password'])) {
 					$query = "SELECT password FROM accountuser WHERE username='".$_POST['username']."'";
 					$result = $handle->query($query);
@@ -217,7 +230,7 @@
 					if ($PASSWORD_CHANGE_METHOD=="sql"){
 						$pwd = new password;
 						$new_password = $pwd->encrypt($_POST['new_password'], $CRYPT);
-						$query = "UPDATE accountuser SET password='$new_password' WHERE username='".$_POST['username']."'";
+						$query = "UPDATE accountuser SET password='$new_password',name='$name',shurename='$shurename' WHERE username='".$_POST['username']."'";
 						$result = $handle->query($query);
 						if (DB::isError($result)) {
 							die (_("Database error"));
diff -Naur cyradm/newaccount.php cyradm2/newaccount.php
--- cyradm/newaccount.php	2007-10-28 12:42:46.000000000 +0200
+++ cyradm2/newaccount.php	2007-12-24 12:03:52.000000000 +0200
@@ -192,6 +192,8 @@
 						} // End of if (!$DOMAIN_AS_PREFIX)
 
 						$_fields = array(
+							'name'	=> array(_("First name"), 'a',false,''),
+							'shurename'	=> array(_("Last name"),'a',false,''),
 							'email'	=> array(_("Email address"), 'a', false, '@' . $_GET['domain']),
 							'quota' => array(_("Quota"), '8', false, '', $def_quota),
 							'password' => array(_("Password"), 'c', true, ''),
@@ -236,7 +238,8 @@
 				<?php
 			} // End of if ($cnt2+1 > $maxaccounts) .. else
 		} elseif (!empty($_POST['confirmed'])){
-
+			$name = $_POST['name'];
+			$shurename = $_POST['shurename'];
 			if ($DOMAIN_AS_PREFIX){
 				if ($FQUN) {
 					$username = $_POST['email']."@".$_POST['domain'];
@@ -282,7 +285,7 @@
 			$pwd = new password;
 			$password = $pwd->encrypt($_POST['password'], $CRYPT);
 			
-			$query = "INSERT INTO accountuser (username, password, prefix, domain_name) VALUES ('".$username."','".$password."','".$prefix."','".$_POST['domain']."')";
+			$query = "INSERT INTO accountuser (name,shurename,username, password, prefix, domain_name) VALUES ('".$name."','".$shurename."','".$username."','".$password."','".$prefix."','".$_POST['domain']."')";
 			$result = $handle->query($query);
 			if (DB::isError($result)) {
 				die (_("Database error"));
diff -Naur cyradm/search.php cyradm2/search.php
--- cyradm/search.php	2007-09-09 14:50:56.000000000 +0300
+++ cyradm2/search.php	2007-12-24 13:43:19.000000000 +0200
@@ -103,9 +103,8 @@
 	}
 	print "</tbody>";
 	print "</table>";
-
-	############ And now show the users matching the search query ###########
-	$query = "SELECT DISTINCT a.username, a.domain_name FROM virtual as v, accountuser as a WHERE ((v.username LIKE '%".addslashes($_GET['searchstring'])."%') OR (v.alias LIKE '%".addslashes($_GET['searchstring'])."%')) AND (v.username=a.username) AND ".$allowed_domains1."') ORDER BY username";
+	############ And now show the users matching the search query ####.mysql_real_escape_string($_GET['searchstring']).#######
+	$query = "SELECT DISTINCT a.username, a.domain_name FROM virtual as v, accountuser as a WHERE ((a.shurename LIKE '%".addslashes($_GET['searchstring'])."%') OR (a.name LIKE '%".addslashes($_GET['searchstring'])."%') OR (a.username LIKE '%".addslashes($_GET['searchstring'])."%') OR(v.username LIKE '%".addslashes($_GET['searchstring'])."%') OR (v.alias LIKE '%".addslashes($_GET['searchstring'])."%')) AND (v.username=a.username) AND ".$allowed_domains1."') ORDER BY username";
 	$result = $handle->query($query);
 	$total = $result->numRows();
 
@@ -113,7 +112,7 @@
 	if (empty($row_pos)) {
 		$row_pos = 0;
 	}
-        $query = "SELECT DISTINCT a.* FROM virtual as v, accountuser as a WHERE ((v.username LIKE '%".$_GET['searchstring']."%') OR (v.alias LIKE '%".addslashes($_GET['searchstring'])."%')) AND (v.username=a.username) AND ".$allowed_domains1."') ORDER BY username";
+        $query = "SELECT DISTINCT a.* FROM virtual as v, accountuser as a WHERE ((a.name LIKE '%".$_GET['searchstring']."%') OR (a.shurename LIKE '%".$_GET['searchstring']."%') OR (v.username LIKE '%".$_GET['searchstring']."%') OR (v.alias LIKE '%".addslashes($_GET['searchstring'])."%')) AND (v.username=a.username) AND ".$allowed_domains1."') ORDER BY username";
 	$result = $handle->limitQuery($query,$row_pos,10);
 	$cnt = $result->numRows();
 
@@ -142,6 +141,8 @@
 		print "<th colspan=\"5\">"._("action")."</th>";
 		print "<th>"._("Email address")."</th>";
 		print "<th>"._("Username")."</th>";
+		print "<th>"._("First name")."</th>";
+		print "<th>"._("Last name")."</th>";		
 		print "<th>"._("Last login")."</th>";
 		print "<th>"._("Quota used")."</th>";
 		print "<th>"._("services")."</th>";
@@ -156,6 +157,8 @@
 
 			$row=$result->fetchRow(DB_FETCHMODE_ASSOC,$c);
 			$username=$row['username'];
+			$name=$row['name'];
+			$shurename=$row['shurename'];			
 			$domain=$row['domain_name'];
 			$services = array();
 			$services['imap'] = $row['imap'];
@@ -194,8 +197,12 @@
 				}
 				echo implode("<br>", $forwards);
 			}
-			print "</td>\n<td valign=\"middle\">";
+			print "</td>\n<td valign=\"middle\" align=\"center\">";
 			print $username;
+			print "</td>\n<td valign=\"middle\" align=\"center\">";
+			print $name;
+			print "</td>\n<td valign=\"middle\" align=\"center\">";
+			print $shurename;
 			print "</td>\n<td align=\"center\" valign=\"middle\">";
 			$query3 = "SELECT * FROM log WHERE user='".$username."' ORDER BY time DESC";
 			$result3 = $handle->query($query3);
