Index: /trunk/include/functions_user.inc.php
===================================================================
--- /trunk/include/functions_user.inc.php	(revision 11991)
+++ /trunk/include/functions_user.inc.php	(revision 11992)
@@ -785,4 +785,29 @@
   FROM '.USERS_TABLE.'
   WHERE '.$conf['user_fields']['username'].' = \''.$username.'\'
+;';
+  $result = pwg_query($query);
+
+  if (pwg_db_num_rows($result) == 0)
+  {
+    return false;
+  }
+  else
+  {
+    list($user_id) = pwg_db_fetch_row($result);
+    return $user_id;
+  }
+}
+
+function get_userid_by_email($email)
+{
+  global $conf;
+
+  $email = pwg_db_real_escape_string($email);
+  
+  $query = '
+SELECT
+    '.$conf['user_fields']['id'].'
+  FROM '.USERS_TABLE.'
+  WHERE UPPER('.$conf['user_fields']['email'].') = UPPER(\''.$email.'\')
 ;';
   $result = pwg_query($query);
@@ -1473,3 +1498,26 @@
 }
 
+/**
+ * search an available activation_key
+ *
+ * @return string
+ */
+function get_user_activation_key()
+{
+  while (true)
+  {
+    $key = generate_key(20);
+    $query = '
+SELECT COUNT(*)
+  FROM '.USER_INFOS_TABLE.'
+  WHERE activation_key = \''.$key.'\'
+;';
+    list($count) = pwg_db_fetch_row(pwg_query($query));
+    if (0 == $count)
+    {
+      return $key;
+    }
+  }
+}
+
 ?>
Index: /trunk/install/db/111-database.php
===================================================================
--- /trunk/install/db/111-database.php	(revision 11992)
+++ /trunk/install/db/111-database.php	(revision 11992)
@@ -0,0 +1,53 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based photo gallery                                    |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify  |
+// | it under the terms of the GNU General Public License as published by  |
+// | the Free Software Foundation                                          |
+// |                                                                       |
+// | This program is distributed in the hope that it will be useful, but   |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
+// | General Public License for more details.                              |
+// |                                                                       |
+// | You should have received a copy of the GNU General Public License     |
+// | along with this program; if not, write to the Free Software           |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA.                                                                  |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH'))
+{
+  die('Hacking attempt!');
+}
+
+$upgrade_description = 'New colum user_infos.activation_key';
+
+// Add column
+$query = 'ALTER TABLE '.USER_INFOS_TABLE.' ADD COLUMN ';
+
+if ('mysql' == $conf['dblayer'])
+{
+  $query.= ' `activation_key` char(20) default NULL';
+}
+
+if (in_array($conf['dblayer'], array('pgsql', 'sqlite', 'pdo-sqlite')))
+{
+  $query.= ' "activation_key" CHAR(20) default NULL';
+}
+
+$query.= ';';
+
+pwg_query($query);
+
+echo
+"\n"
+. $upgrade_description
+."\n"
+;
+?>
Index: /trunk/install/piwigo_structure-mysql.sql
===================================================================
--- /trunk/install/piwigo_structure-mysql.sql	(revision 11991)
+++ /trunk/install/piwigo_structure-mysql.sql	(revision 11992)
@@ -418,4 +418,5 @@
   `enabled_high` enum('true','false') NOT NULL default 'true',
   `level` tinyint unsigned NOT NULL default '0',
+  `activation_key` char(20) default NULL,
   UNIQUE KEY `user_infos_ui1` (`user_id`)
 ) ENGINE=MyISAM;
Index: /trunk/install/piwigo_structure-pdo-sqlite.sql
===================================================================
--- /trunk/install/piwigo_structure-pdo-sqlite.sql	(revision 11991)
+++ /trunk/install/piwigo_structure-pdo-sqlite.sql	(revision 11992)
@@ -481,4 +481,5 @@
   "enabled_high" BOOLEAN default true,
   "level" INTEGER default 0 NOT NULL,
+  "activation_key" CHAR(20) default NULL,
   PRIMARY KEY ("user_id"),
   CONSTRAINT "user_infos_ui1" UNIQUE ("user_id")
Index: /trunk/install/piwigo_structure-pgsql.sql
===================================================================
--- /trunk/install/piwigo_structure-pgsql.sql	(revision 11991)
+++ /trunk/install/piwigo_structure-pgsql.sql	(revision 11992)
@@ -582,4 +582,5 @@
   "enabled_high" BOOLEAN default true,
   "level" INTEGER default 0 NOT NULL,
+  "activation_key" CHAR(20) default NULL,
   PRIMARY KEY ("user_id"),
   CONSTRAINT "user_infos_ui1" UNIQUE ("user_id")
Index: /trunk/install/piwigo_structure-sqlite.sql
===================================================================
--- /trunk/install/piwigo_structure-sqlite.sql	(revision 11991)
+++ /trunk/install/piwigo_structure-sqlite.sql	(revision 11992)
@@ -481,4 +481,5 @@
   "enabled_high" BOOLEAN default true,
   "level" INTEGER default 0 NOT NULL,
+  "activation_key" CHAR(20) default NULL,
   PRIMARY KEY ("user_id"),
   CONSTRAINT "user_infos_ui1" UNIQUE ("user_id")
Index: /trunk/language/af_ZA/common.lang.php
===================================================================
--- /trunk/language/af_ZA/common.lang.php	(revision 11991)
+++ /trunk/language/af_ZA/common.lang.php	(revision 11992)
@@ -89,7 +89,4 @@
 $lang['New on %s'] = "Nuut op %s";
 $lang['New password confirmation does not correspond'] = "U wagwoord bevestiging stem nie ooreen nie";
-$lang['New password sent by email'] = "Nuwe wagwoord per epos gestuur";
-$lang['No email address'] = "Geen epos adres nie";
-$lang['No classic user matches this email address'] = "Geen gebruiker met die epos adres nie";
 $lang['Notification'] = "Kennisgewing";
 $lang['Number of items'] = "Getal items";
@@ -111,5 +108,4 @@
 $lang['Search'] = "Soek";
 $lang['display available tags'] = "Vertoon beskikbare sleutelwoorde";
-$lang['Send new password'] = "Stuur nuwe wagwoord";
 $lang['Since'] = "Sedert";
 $lang['Sort by'] = "Sorteer volgens";
@@ -305,5 +301,4 @@
 $lang['Album: %s'] = "Album: %s";
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = "Swak status vir gebruiker \"gas\", verstek status sal gebruik word. Kontak die webwerf adminisrateur.";
-$lang['Administrator, webmaster and special user cannot use this method'] = "Administrateur, webwerf administrateur en spesiale gebruikers kan nie die metode gebruik nie";
 $lang['this email address is already in use'] = "die epos is reeds in gebruik";
 $lang['Album results for'] = "Album resultate vir";
Index: /trunk/language/ar_SA/common.lang.php
===================================================================
--- /trunk/language/ar_SA/common.lang.php	(revision 11991)
+++ /trunk/language/ar_SA/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'جديد لـ  %s';
 $lang['New password confirmation does not correspond'] = 'كلمة المرور ليست متطابقة';
-$lang['New password sent by email'] = 'كلمة المرور ارسلت لبريدك الالكتورني';
-$lang['No email address'] = 'لا بريد الكتروني';
-$lang['No classic user matches this email address'] = 'لا يوجد مستخدم مطابق لهذا البريد الالكتروني';
 $lang['Notification'] = 'تحديثات جديدة';
 $lang['Number of items'] = 'عدد البنود';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'بحث';
 $lang['display available tags'] = 'أنظر في الكلمات الدلائلية';
-$lang['Send new password'] = 'ارسال كلمة مرور جديدة';
 $lang['Since'] = 'منذ';
 $lang['Sort by'] = 'ترتيب حسب ..';
@@ -316,5 +312,4 @@
 $lang['Album: %s'] = 'الألبوم: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'وضغ سيئ للضيف "ضيف", استخدم الحالة الافرتاضية. يرجى ابلاغ المسؤول عن الموقع.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'خاصية للادارة فقط لايمكنك استخدامها';
 $lang['this email address is already in use'] = 'هذا البريد مسجل لدينامن قبل';
 $lang['Album results for'] = 'نتيجة البحث في الالبومات عن:';
Index: /trunk/language/bg_BG/common.lang.php
===================================================================
--- /trunk/language/bg_BG/common.lang.php	(revision 11991)
+++ /trunk/language/bg_BG/common.lang.php	(revision 11992)
@@ -133,5 +133,4 @@
 $lang['Album: %s'] = 'Албум: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Грешен статус за потребител "guest", ще бъде използвана настройка по подразбиране. Моля уведомете уебмастерът.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Администратор, уебмастър и специални потребители не могат да използват този метод';
 $lang['this email address is already in use'] = 'този емайл адрес вече се използва.';
 $lang['Album results for'] = 'Албумни резултати за';
@@ -172,7 +171,4 @@
 $lang['New on %s'] = 'Нови на %s';
 $lang['New password confirmation does not correspond'] = 'Потвърждението за нова парола не съвпада';
-$lang['New password sent by email'] = 'Нова парола бе изпратена на мейла';
-$lang['No email address'] = 'Няма мейл адрес';
-$lang['No classic user matches this email address'] = 'Няма потребител със следният мейл адрес.';
 $lang['Notification'] = 'RSS';
 $lang['Number of items'] = 'Брой обекти';
@@ -195,5 +191,4 @@
 $lang['Search'] = 'Търси';
 $lang['display available tags'] = 'покажи налични тагове';
-$lang['Send new password'] = 'Изпрати нова парола';
 $lang['Since'] = 'От';
 $lang['Sort by'] = 'Сортирано по';
Index: /trunk/language/ca_ES/common.lang.php
===================================================================
--- /trunk/language/ca_ES/common.lang.php	(revision 11991)
+++ /trunk/language/ca_ES/common.lang.php	(revision 11992)
@@ -91,7 +91,4 @@
 $lang['New on %s'] = 'Nou a %s';
 $lang['New password confirmation does not correspond'] = 'La confirmació de la nova contrasenya no correspon';
-$lang['New password sent by email'] = 'La nova contrasenya s\'ha enviat per correu electrònic';
-$lang['No email address'] = 'No hi ha l\'adreça de correu electrònic';
-$lang['No classic user matches this email address'] = 'No concorda cap usuari clàssic amb aquesta adreça de correu';
 $lang['Notification'] = 'Notificació';
 $lang['Number of items'] = 'Nombre d\'elements';
@@ -114,5 +111,4 @@
 $lang['Search'] = 'Cerca';
 $lang['display available tags'] = 'Veure etiquetes disponibles';
-$lang['Send new password'] = 'Envia nova contrasenya';
 $lang['Since'] = 'Des de';
 $lang['Sort by'] = 'Ordena per';
@@ -312,5 +308,4 @@
 $lang['Album: %s'] = 'Categoria: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Estat erroni de l\'usuari "invitat", s\'està utilitzant l\'estat predeterminat. Si us plau informeu-ho a l\'administrador de la web.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'L\'administrador, l\'administrador de la web i els usuaris especials no poden utilitzar aquest mètode';
 $lang['this email address is already in use'] = 'un usuari ja utilitza aquesta adreça de correu';
 $lang['Album results for'] = 'Resultats de la categoria per';
Index: /trunk/language/cs_CZ/common.lang.php
===================================================================
--- /trunk/language/cs_CZ/common.lang.php	(revision 11991)
+++ /trunk/language/cs_CZ/common.lang.php	(revision 11992)
@@ -95,7 +95,4 @@
 $lang['New on %s'] = 'Nový na %s';
 $lang['New password confirmation does not correspond'] = 'Zadaná hesla se neshodují.';
-$lang['New password sent by email'] = 'Nové heslo bylo zasláno e-mailem';
-$lang['No email address'] = 'Bez e-mailové adresy';
-$lang['No classic user matches this email address'] = 'Nebyl nalezen žádný uživatel se zadanou e-mailovou adresou';
 $lang['Notification'] = 'RSS vlákno';
 $lang['Number of items'] = 'Počet položek';
@@ -117,5 +114,4 @@
 $lang['Search'] = 'Vyhledat';
 $lang['display available tags'] = 'Ukázat dostupná klíčová slova';
-$lang['Send new password'] = 'Poslat nové heslo';
 $lang['Since'] = 'Od';
 $lang['Sort by'] = 'Řadit podle';
@@ -314,5 +310,4 @@
 $lang['Album: %s'] = 'Album: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Špatný stav pro uživatele "host", bude použit výchozí stav. Prosím informujte administrátora.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrátor nemůže použít tuto metodu.';
 $lang['this email address is already in use'] = 'Tato e-mailová adresa je již používána';
 $lang['Album results for'] = 'Alba výsledky pro';
Index: /trunk/language/da_DK/common.lang.php
===================================================================
--- /trunk/language/da_DK/common.lang.php	(revision 11991)
+++ /trunk/language/da_DK/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'Ny på %s';
 $lang['New password confirmation does not correspond'] = 'Nyt password stemmer ikke';
-$lang['New password sent by email'] = 'Nyt password er sendt via email';
-$lang['No email address'] = 'Ingen email addresse';
-$lang['No classic user matches this email address'] = 'Ingen bruger matcher denne email addresse';
 $lang['Notification'] = 'RSS feed';
 $lang['Number of items'] = 'Antal af fotos';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'Søg';
 $lang['display available tags'] = 'Se tilgængelige tags';
-$lang['Send new password'] = 'Send nyt password';
 $lang['Since'] = 'Siden';
 $lang['Sort by'] = 'Sorter ';
@@ -313,5 +309,4 @@
 $lang['Album: %s'] = 'kategori: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Forket status for gæste bruger. Kontakt webmaster.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, webmaster and specielle brugere akn ikke bruge denne metode';
 $lang['this email address is already in use'] = 'en bruger bruger allerede denne mail addresse';
 $lang['Album results for'] = 'kategori resulter for';
Index: /trunk/language/de_DE/common.lang.php
===================================================================
--- /trunk/language/de_DE/common.lang.php	(revision 11991)
+++ /trunk/language/de_DE/common.lang.php	(revision 11992)
@@ -91,7 +91,4 @@
 $lang['New on %s'] = 'Neu am %s';
 $lang['New password confirmation does not correspond'] = 'Fehler bei der Bestätigung des Passwortes';
-$lang['New password sent by email'] = 'Neues Passwort per E-Mail zugesendet';
-$lang['No email address'] = 'Keine E-Mail-Adresse';
-$lang['No classic user matches this email address'] = 'Diese E-Mail-Adresse ist nicht bekannt';
 $lang['Notification'] = 'RSS-Feed';
 $lang['Number of items'] = 'Anzahl der Elemente';
@@ -113,5 +110,4 @@
 $lang['Search'] = 'Suchen';
 $lang['display available tags'] = 'alle verfügbaren Stichworte';
-$lang['Send new password'] = 'Sende mir ein neues Passwort';
 $lang['Since'] = 'Seit';
 $lang['Sort by'] = 'Sortieren nach';
@@ -308,5 +304,4 @@
 $lang['Album: %s'] = 'Album: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Status, der Benutzer "guest" nicht entspricht, Verwendung des Standardstatus. Bitte kontaktieren Sie den Webmaster.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, Webmaster und spezielle Benutzer können diese Methode nicht verwenden';
 $lang['this email address is already in use'] = 'diese E-Mail-Adresse wird bereits verwendet';
 $lang['Album results for'] = 'Albumresultate für';
Index: /trunk/language/dv_MV/common.lang.php
===================================================================
--- /trunk/language/dv_MV/common.lang.php	(revision 11991)
+++ /trunk/language/dv_MV/common.lang.php	(revision 11992)
@@ -105,7 +105,4 @@
 $lang['month'][9] = "ސެޕްޓެމްބަރ";
 $lang['New password confirmation does not correspond'] = 'އާ ސިއްރުބަސް ދިމައެއްނުވޭ';
-$lang['New password sent by email'] = 'އީމެއިލް މެދުވެރިކޮށް އާ ސިއްރުބަސް ފޮނުވިއްޖެ';
-$lang['No email address'] = 'އީމެއިލް އެޑްރެސްއެއް ނެތް';
-$lang['No classic user matches this email address'] = 'އެއްވެސް ކްލާސިކް ޔޫސާ އަކާ މި އީމެއިލް އެޑްރެސް އަކާ ދިމައެއްނުވޭ';
 $lang['Notification'] = 'އެންގުންތައް';
 $lang['Number of items'] = 'ތަކެތީގެ އަދަދު';
@@ -128,5 +125,4 @@
 $lang['Search'] = 'ހޯދާ';
 $lang['display available tags'] = 'ހުރި ޓެގުތައް ދައްކަވާ';
-$lang['Send new password'] = 'އާ ސިއްރުބަސް ލިބިވަޑައިގަންނަވާ';
 $lang['Since'] = 'އިން ފެށިގެން';
 $lang['Sort by'] = 'ގޮތަކަށް އަތުރާ';
Index: /trunk/language/el_GR/common.lang.php
===================================================================
--- /trunk/language/el_GR/common.lang.php	(revision 11991)
+++ /trunk/language/el_GR/common.lang.php	(revision 11992)
@@ -51,5 +51,4 @@
 $lang['Creation date'] = "Ημερομηνία λήψης";
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = "Σφάλμα για το χρήστη \"επισκέπτης\", θα χρησιμοποιηθεί η προεπιλεγμένη ρύθμιση. Παρακαλώ ενημερώστε τον διαχειριστή.";
-$lang['Administrator, webmaster and special user cannot use this method'] = "Διαχειριστές, υπεύθυνοι και ειδικοί χρήστες δεν μπορούν να χρησιμοποιήσουν αυτή τη μέθοδο";
 $lang['Album results for'] = "Αποτελέσματα λευκωμάτων για ";
 $lang['Tag results for'] = "Αποτελέσματα ετικετών για";
@@ -284,7 +283,4 @@
 $lang['New on %s'] = 'Καινούργιο στις %s';
 $lang['New password confirmation does not correspond'] = 'Οι νέοι κωδικοί διαφέρουν μεταξύ τους';
-$lang['New password sent by email'] = 'Ο νέος κωδικός έχει σταλεί με μήνυμα ηλεκτρονικού ταχυδρομείου';
-$lang['No email address'] = 'Δεν υπάρχει διεύθυνση ηλεκτρονικού ταχυδρομείου';
-$lang['No classic user matches this email address'] = 'Δεν υπάρχει χρήστης με αυτή τη διεύθυνση ηλεκτρονικού ταχυδρομείου';
 $lang['Notification'] = 'Ενημερώσεις';
 $lang['Number of items'] = 'Αριθμός αντικειμένων';
@@ -305,5 +301,4 @@
 $lang['Search'] = 'Αναζήτηση';
 $lang['display available tags'] = 'εμφάνιση διαθέσιμων ετικετών';
-$lang['Send new password'] = 'Αποστολή νέου κωδικού';
 $lang['Since'] = 'Από';
 $lang['Sort by'] = 'Ταξινόμηση βάση';
Index: /trunk/language/en_UK/common.lang.php
===================================================================
--- /trunk/language/en_UK/common.lang.php	(revision 11991)
+++ /trunk/language/en_UK/common.lang.php	(revision 11992)
@@ -91,7 +91,4 @@
 $lang['New on %s'] = "New on %s";
 $lang['New password confirmation does not correspond'] = "New password confirmation does not match";
-$lang['New password sent by email'] = "New password sent by email";
-$lang['No email address'] = "No email address";
-$lang['No classic user matches this email address'] = "No classic user matches this email address";
 $lang['Notification'] = "Notification";
 $lang['Number of items'] = "Number of items";
@@ -114,5 +111,4 @@
 $lang['Search'] = "Search";
 $lang['display available tags'] = "display available tags";
-$lang['Send new password'] = "Send new password";
 $lang['Since'] = "Since";
 $lang['Sort by'] = "Sort by";
@@ -310,5 +306,4 @@
 $lang['Album: %s'] = "Album: %s";
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = "Bad status for user \"guest\", default status will be used. Please notify the webmaster.";
-$lang['Administrator, webmaster and special user cannot use this method'] = "Administrator, webmaster and special user cannot use this method";
 $lang['this email address is already in use'] = "this email address is already in use";
 $lang['Album results for'] = "Album results for";
@@ -357,3 +352,22 @@
 $lang['validate this comment'] = 'validate this comment';
 $lang['html tags are not allowed in login'] = 'html tags are not allowed in login';
+$lang['Enter a username or email address'] = 'Enter a username or email address';
+$lang['Invalid username or email'] = 'Invalid username or email';
+$lang['Password reset is not allowed for this user'] = 'Password reset is not allowed for this user';
+$lang['User "%s" has no email address, password reset is not possible'] = 'User "%s" has no email address, password reset is not possible';
+$lang['Someone requested that the password be reset for the following user account:'] = 'Someone requested that the password be reset for the following user account:';
+$lang['Username "%s" on gallery %s'] = 'Username "%s" on gallery %s';
+$lang['To reset your password, visit the following address:'] = 'To reset your password, visit the following address:';
+$lang['If this was a mistake, just ignore this email and nothing will happen.'] = 'If this was a mistake, just ignore this email and nothing will happen.';
+$lang['Password Reset'] = 'Password Reset';
+$lang['Check your email for the confirmation link'] = 'Check your email for the confirmation link';
+$lang['Invalid key'] = 'Invalid key';
+$lang['The passwords do not match'] = 'The passwords do not match';
+$lang['Your password has been reset'] = 'Your password has been reset';
+$lang['Return to home page'] = 'Return to home page';
+$lang['Please enter your username or email address.'] = 'Please enter your username or email address.';
+$lang['You will receive a link to create a new password via email.'] = 'You will receive a link to create a new password via email.';
+$lang['Username or email'] = 'Username or email';
+$lang['Change my password'] = 'Change my password';
+$lang['Enter your new password below.'] = 'Enter your new password below.';
 ?>
Index: /trunk/language/es_AR/common.lang.php
===================================================================
--- /trunk/language/es_AR/common.lang.php	(revision 11991)
+++ /trunk/language/es_AR/common.lang.php	(revision 11992)
@@ -92,7 +92,4 @@
 $lang['New on %s'] = 'Nuevo el %s';
 $lang['New password confirmation does not correspond'] = 'La confirmacion de su contraseña no corresponde';
-$lang['New password sent by email'] = 'Nueva contraseña enviada por correo electrónico';
-$lang['No email address'] = 'No hay dirección de correo electrónico';
-$lang['No classic user matches this email address'] = 'No existe ningún usuario con tal dirección de correo electrónico';
 $lang['Notification'] = 'Notificación';
 $lang['Number of items'] = 'Cantidad de elementos';
@@ -115,5 +112,4 @@
 $lang['Search'] = 'Buscar';
 $lang['display available tags'] = 'Ver tags disponibles';
-$lang['Send new password'] = 'Enviar la nueva contraseña';
 $lang['Since'] = 'Desde';
 $lang['Sort by'] = 'Clasificar por';
@@ -312,5 +308,4 @@
 $lang['Album: %s'] = 'Categoría: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'El estatuto de usuario "huésped" no corresponde, se utilizará el estatuto por defecto. Por favor avísele al webmaster.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administradores, webmasters y usuarios especiales no pueden usar ese método';
 $lang['this email address is already in use'] = 'ya existe un usuario con esa misma dirección de correo electrónico';
 $lang['Album results for'] = 'Resultados de categorías para';
Index: /trunk/language/es_ES/common.lang.php
===================================================================
--- /trunk/language/es_ES/common.lang.php	(revision 11991)
+++ /trunk/language/es_ES/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'Nuevo el %s';
 $lang['New password confirmation does not correspond'] = 'Los valores de la contraseña no coinciden';
-$lang['New password sent by email'] = 'Nueva contraseña enviada por correo electrónico';
-$lang['No email address'] = 'Ninguna dirección electrónica';
-$lang['No classic user matches this email address'] = 'Falta cumplimentar la direccíon electrónica no corresponde a ningún usuario';
 $lang['Notification'] = 'Notificación RSS';
 $lang['Number of items'] = 'Número de artículos';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'Búsqueda';
 $lang['display available tags'] = 'Ver las etiquetas disponibles';
-$lang['Send new password'] = 'Enviar una nueva contraseña';
 $lang['Since'] = 'Desde';
 $lang['Sort by'] = 'Clasificar según';
@@ -312,5 +308,4 @@
 $lang['Album: %s'] = 'Album : %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'El estatus del usuario "guest" no es conforme, se utilizará el estatus por defecto. Por favor, informe al administrador del sitio.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'El Administrador, el administrador del sitio y el usuario especial no pueden utilizar este método';
 $lang['this email address is already in use'] = 'Otro usuario ya utiliza esta dirección e-mail';
 $lang['Album results for'] = 'Résultados de los  àlbumes por';
Index: /trunk/language/et_EE/common.lang.php
===================================================================
--- /trunk/language/et_EE/common.lang.php	(revision 11991)
+++ /trunk/language/et_EE/common.lang.php	(revision 11992)
@@ -105,7 +105,4 @@
 $lang['month'][9] = 'September';
 $lang['New password confirmation does not correspond'] = 'Uus paroolikinnitus ei sobi';
-$lang['New password sent by email'] = 'Uus parool saadetud e-postiga';
-$lang['No email address'] = 'E-posti aadress puudu';
-$lang['No classic user matches this email address'] = 'Mitte ükski klassikaline kasutaja ei sobitu selle e-postiga';
 $lang['Notification'] = 'Teadaanne';
 $lang['Number of items'] = 'Ühikute arv';
@@ -128,5 +125,4 @@
 $lang['Search'] = 'Otsi';
 $lang['display available tags'] = 'kuva võimalikud märksõnad';
-$lang['Send new password'] = 'Saada uus parool';
 $lang['Since'] = 'Alates';
 $lang['Sort by'] = 'Sorteeri';
Index: /trunk/language/fa_IR/common.lang.php
===================================================================
--- /trunk/language/fa_IR/common.lang.php	(revision 11991)
+++ /trunk/language/fa_IR/common.lang.php	(revision 11992)
@@ -92,7 +92,4 @@
 $lang['New on %s'] = "جدید در %s";
 $lang['New password confirmation does not correspond'] = "تایید گذرواژه با گذرواژه مطابقت ندارند!";
-$lang['New password sent by email'] = "گذرواژه جدید با ایمیل ارسال شد.";
-$lang['No email address'] = "آدرس ایمیل یافت نشد.";
-$lang['No classic user matches this email address'] = "هیچ کاربری یا این آدرس ایمیل مطابقت ندارد";
 $lang['Notification'] = "خبرنامه";
 $lang['Number of items'] = "تعداد آیتم‌ها";
@@ -115,5 +112,4 @@
 $lang['Search'] = "جستجو";
 $lang['display available tags'] = "نمایش برچسب‌های موجود";
-$lang['Send new password'] = "ارسال گذرواژه جدید";
 $lang['Since'] = "Since";
 $lang['Sort by'] = "مرتب سازی با";
@@ -309,5 +305,4 @@
 $lang['Album: %s'] = "Category: %s";
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = "وضعیت بد برای کاربر \"میهمان\" ، وضعیت پیش‌فرض . لطفا این موضوع را با وبمستر(مدیر‌سایت) در میان بگذارید.";
-$lang['Administrator, webmaster and special user cannot use this method'] = "مدیر ، وب‌مستر و کاربر ویژه نمی‌توانند از این متد استفاده نمایند.";
 $lang['this email address is already in use'] = "یک کاربر دیگر این آدرس ایمیل را در سیستم ثبت کرده است.";
 $lang['Album results for'] = "نتایج دسته برای";
Index: /trunk/language/fr_CA/common.lang.php
===================================================================
--- /trunk/language/fr_CA/common.lang.php	(revision 11991)
+++ /trunk/language/fr_CA/common.lang.php	(revision 11992)
@@ -92,7 +92,4 @@
 $lang['New on %s'] = 'Nouveau le %s';
 $lang['New password confirmation does not correspond'] = 'Erreur de confirmation de mot de passe';
-$lang['New password sent by email'] = 'Nouveau mot de passe envoyé par courriel';
-$lang['No email address'] = 'Pas d\'adresse de courriel';
-$lang['No classic user matches this email address'] = 'Cette adresse de courriel ne correspond à aucun utilisateur classique';
 $lang['Notification'] = 'Notifications RSS';
 $lang['Number of items'] = 'Nombre d\'élément';
@@ -115,5 +112,4 @@
 $lang['Search'] = 'Rechercher';
 $lang['display available tags'] = 'Voir les mots clés disponibles';
-$lang['Send new password'] = 'Envoyer le nouveau mot de passe';
 $lang['Since'] = 'Depuis';
 $lang['Sort by'] = 'Trier selon';
@@ -314,5 +310,4 @@
 $lang['Album: %s'] = 'Catégorie : %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Statut de l\'utilisateur "guest" non conforme, utilisation du statut par défaut. Veuillez prévenir le webmestre.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrateur, webmestre et utilisateur spécial ne peuvent pas utiliser cette méthode';
 $lang['this email address is already in use'] = 'un autre utilisateur utilise déjà cette adresse de courriel';
 $lang['Album results for'] = 'Résultats des catégories pour';
Index: /trunk/language/fr_FR/common.lang.php
===================================================================
--- /trunk/language/fr_FR/common.lang.php	(revision 11991)
+++ /trunk/language/fr_FR/common.lang.php	(revision 11992)
@@ -92,7 +92,4 @@
 $lang['New on %s'] = 'Nouveau le %s';
 $lang['New password confirmation does not correspond'] = 'Erreur de confirmation de mot de passe';
-$lang['New password sent by email'] = 'Nouveau mot de passe envoyé par e-mail';
-$lang['No email address'] = 'Pas d\'adresse e-mail';
-$lang['No classic user matches this email address'] = 'Cette adresse e-mail ne correspond à aucun utilisateur classique';
 $lang['Notification'] = 'Notifications RSS';
 $lang['Number of items'] = 'Nombre d\'élément';
@@ -115,5 +112,4 @@
 $lang['Search'] = 'Recherche';
 $lang['display available tags'] = 'Voir les tags disponibles';
-$lang['Send new password'] = 'Envoyer le nouveau mot de passe';
 $lang['Since'] = 'Depuis';
 $lang['Sort by'] = 'Trier selon';
@@ -311,5 +307,4 @@
 $lang['Album: %s'] = 'Album : %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Statut de l\'utilisateur "guest" non conforme, utilisation du statut par défaut. Veuillez prévenir le webmestre.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrateur, webmestre et utilisateur spécial ne peuvent pas utiliser cette méthode';
 $lang['this email address is already in use'] = 'un autre utilisateur utilise déjà cette adresse e-mail';
 $lang['Album results for'] = 'Résultats des albums pour';
@@ -358,3 +353,22 @@
 $lang['validate this comment'] = 'valider ce commentaire';
 $lang['html tags are not allowed in login'] = 'les balises html ne sont pas autorisées dans le login';
+$lang['Enter a username or email address'] = 'Entrez votre nom d\'utilisateur ou votre adresse email';
+$lang['Invalid username or email'] = 'Nom d\'utilisateur ou adresse email invalide';
+$lang['Password reset is not allowed for this user'] = 'Le renouvellement du mot de passe n\'est pas permise pour cet utilisateur';
+$lang['User "%s" has no email address, password reset is not possible'] = 'L\'utilisateur "%s" n\'a pas d\'adresse email, le renouvellement du mot de passe est impossible';
+$lang['Someone requested that the password be reset for the following user account:'] = 'Quelqu\'un a demandé le renouvellement de votre mot de passe pour l\'utilisateur suivant :';
+$lang['Username "%s" on gallery %s'] = 'Utilisateur "%s" sur la galerie %s';
+$lang['To reset your password, visit the following address:'] = 'Pour renouveler votre mot de passe, cliquez sur le lien suivant :';
+$lang['If this was a mistake, just ignore this email and nothing will happen.'] = 'S\'il s\'agit d\'une erreur, ignorez ce message et la demande ne sera pas prise en compte.';
+$lang['Password Reset'] = 'Renouvellement de votre mot de passe';
+$lang['Check your email for the confirmation link'] = 'Vérifiez vos emails pour trouver le lien de confirmation';
+$lang['Invalid key'] = 'Clef invalide';
+$lang['The passwords do not match'] = 'Les mots de passe ne correspondent pas';
+$lang['Your password has been reset'] = 'Votre mot de passe a été réinitialisé';
+$lang['Return to home page'] = 'Retourner sur la page d\'accueil';
+$lang['Please enter your username or email address.'] = 'Merci d\'entrer votre nom d\'utilisateur ou votre adresse email.';
+$lang['You will receive a link to create a new password via email.'] = 'Par email, vous recevrez un lien à cliquer pour renouveler votre mot de passe.';
+$lang['Username or email'] = 'Nom d\'utilisateur ou adresse email';
+$lang['Change my password'] = 'Changer mon mot de passe';
+$lang['Enter your new password below.'] = 'Entrez votre nouveau mot de passe ci-dessous.';
 ?>
Index: /trunk/language/he_IL/common.lang.php
===================================================================
--- /trunk/language/he_IL/common.lang.php	(revision 11991)
+++ /trunk/language/he_IL/common.lang.php	(revision 11992)
@@ -91,7 +91,4 @@
 $lang['New on %s'] = "חדש ב %s";
 $lang['New password confirmation does not correspond'] = "אישור סיסמה חדשה אינו תואם";
-$lang['New password sent by email'] = "סיסמה חדשה נשלחה בדואר";
-$lang['No email address'] = "אין כתובת דואר אלקטרוני";
-$lang['No classic user matches this email address'] = "אין משתמש קיים עם הדואר האלקטרוני הזה";
 $lang['Notification'] = "הודעה";
 $lang['Number of items'] = "מספר הפריטים";
@@ -114,5 +111,4 @@
 $lang['Search'] = "חיפוש";
 $lang['display available tags'] = "ראה תוויות אפשריות";
-$lang['Send new password'] = "שלח סיסמה חדשה";
 $lang['Since'] = "מ";
 $lang['Sort by'] = "מיין לפי";
@@ -309,5 +305,4 @@
 $lang['Album: %s'] = "קטגוריה: %s";
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'מצב לא טוב עבור המשתמש "האורח", השתמש במצב ברירת מחדל. עדכן בבקשה את מנהל האתר.';
-$lang['Administrator, webmaster and special user cannot use this method'] = "מנהל ראשי, מנהל האתר ו ומשתמשים מסויימים לא יכולים להשתמש בmethod הזה";
 $lang['this email address is already in use'] = "משתמש אחר כבר משתמש בדואר האלקטרוני הזה";
 $lang['Album results for'] = "תוצאות עבור הקטגוריה";
Index: /trunk/language/hr_HR/common.lang.php
===================================================================
--- /trunk/language/hr_HR/common.lang.php	(revision 11991)
+++ /trunk/language/hr_HR/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'Novi na on %s';
 $lang['New password confirmation does not correspond'] = 'Potvrda nove zaporke ne odgovara';
-$lang['New password sent by email'] = 'Nova zaporka poslana e-mail porukom';
-$lang['No email address'] = 'Nema e-mail adrese';
-$lang['No classic user matches this email address'] = 'Nijedan korisnik se ne poklapa s ovom e-mail adresom';
 $lang['Notification'] = 'Obavijest';
 $lang['Number of items'] = 'Broj stavki';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'Pretraživanje';
 $lang['display available tags'] = 'Pogledaj dostupne tagove';
-$lang['Send new password'] = 'Pošalji novu zaporku';
 $lang['Since'] = 'Od';
 $lang['Sort by'] = 'Složeno po';
@@ -312,5 +308,4 @@
 $lang['Album: %s'] = 'Skupina: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Loš status za korisnika "guest", koristi se pretpostavljeni status. Molimo obavjestite webmaster-a.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Upravitelj, webmaster i posebni korisnik ne mogu koristiti ovu metodu';
 $lang['this email address is already in use'] = 'korisnik već koristi ovu e-mail adresu';
 $lang['Album results for'] = 'Ishodi skupine za ';
Index: /trunk/language/hu_HU/common.lang.php
===================================================================
--- /trunk/language/hu_HU/common.lang.php	(revision 11991)
+++ /trunk/language/hu_HU/common.lang.php	(revision 11992)
@@ -94,7 +94,4 @@
 $lang['New on %s'] = 'Új %s';
 $lang['New password confirmation does not correspond'] = 'Az új jelszó megerősítése nem sikerült';
-$lang['New password sent by email'] = 'Új jelszavát elküldtük e-mailben.';
-$lang['No email address'] = 'Nincs e-mail cím megadva';
-$lang['No classic user matches this email address'] = 'Ilyen e-mail címmel nincs regisztrált felhasználó';
 $lang['Notification'] = 'RSS';
 $lang['Number of items'] = 'Tételek száma';
@@ -117,5 +114,4 @@
 $lang['Search'] = 'Keresés';
 $lang['display available tags'] = 'Lehetséges címkék';
-$lang['Send new password'] = 'Új jelszó elküldése';
 $lang['Since'] = 'óta';
 $lang['Sort by'] = 'Rendezés';
@@ -314,5 +310,4 @@
 $lang['Album: %s'] = 'Album: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Rossz felhasználói állapot "vendég", az alapértelmezett állapot. Kérjük, küldjön értesítést a webmesternek.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Adminisztrátor, webmester és különleges felhasználó nem használja ezt a módszert';
 $lang['this email address is already in use'] = 'Ezt az e-mail címet már egy másik felhasználó használja.';
 $lang['Album results for'] = 'Album eredményei';
Index: /trunk/language/is_IS/common.lang.php
===================================================================
--- /trunk/language/is_IS/common.lang.php	(revision 11991)
+++ /trunk/language/is_IS/common.lang.php	(revision 11992)
@@ -105,7 +105,4 @@
 $lang['New on %s'] = 'Nýtt á %s';
 $lang['New password confirmation does not correspond'] = 'Staðfesting á nýju lykilorði passar ekki';
-$lang['New password sent by email'] = 'Nýtt lykilorð verður sent með tölvupósti';
-$lang['No email address'] = 'Ekkert tölvupóstfang';
-$lang['No classic user matches this email address'] = 'Engin notandi passar við þetta netfang';
 $lang['Notification'] = 'Tilkynning';
 $lang['Number of items'] = 'fjöldi atriða';
@@ -128,5 +125,4 @@
 $lang['Search'] = 'Leita';
 $lang['display available tags'] = 'Sýna tiltæk merki';
-$lang['Send new password'] = 'Senda nýtt lykilorð';
 $lang['Since'] = 'Frá';
 $lang['Sort by'] = 'Flokka eftir';
@@ -309,5 +305,4 @@
 $lang['Album: %s'] = 'Albúm: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Slæm staða fyrir notanda "gestur", sjálfgefin staða verðu notuð. Vinsamlegast tilkynnið til vefstjóra.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Stjórnandi, vefstjóri og sérstakir notendur geta ekki notað þessa aðferð';
 $lang['this email address is already in use'] = 'þetta netfange er nú þegar í notkun';
 $lang['Album results for'] = 'Albúm noðurstöðut fyrir';
Index: /trunk/language/it_IT/common.lang.php
===================================================================
--- /trunk/language/it_IT/common.lang.php	(revision 11991)
+++ /trunk/language/it_IT/common.lang.php	(revision 11992)
@@ -92,7 +92,4 @@
 $lang['New on %s'] = 'Nuovo il %s';
 $lang['New password confirmation does not correspond'] = 'La conferma della nuova password non corrisponde';
-$lang['New password sent by email'] = 'La nuova password ti è stata inviata via email';
-$lang['No email address'] = 'Nessun indirizzo email';
-$lang['No classic user matches this email address'] = 'Non esiste nessun utente con questo indirizzo email';
 $lang['Notification'] = 'Notifiche RSS';
 $lang['Number of items'] = 'Numero di elementi';
@@ -115,5 +112,4 @@
 $lang['Search'] = 'Cerca';
 $lang['display available tags'] = 'Mostra i tags disponibili';
-$lang['Send new password'] = 'Inviare una nuova password';
 $lang['Since'] = 'Dal';
 $lang['Sort by'] = 'Ordina per';
@@ -311,5 +307,4 @@
 $lang['Album: %s'] = 'Album: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Lo status dell\'utente "guest" non è conforme, viene usato lo status di default. Per favore avvisa il webmaster.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Amministratore, webmaster e utente speciale non possono utilizzare questo metodo';
 $lang['this email address is already in use'] = 'un utente usa già questo indirizzo mail';
 $lang['Album results for'] = 'Risultati degli album per';
Index: /trunk/language/ja_JP/common.lang.php
===================================================================
--- /trunk/language/ja_JP/common.lang.php	(revision 11991)
+++ /trunk/language/ja_JP/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = '最新投稿 - %s';
 $lang['New password confirmation does not correspond'] = '新しいパスワードの承認が合致しません。';
-$lang['New password sent by email'] = '新しいパスワードがメール送信しました。';
-$lang['No email address'] = 'メールアドレスがありません。';
-$lang['No classic user matches this email address'] = 'このメールアドレスに合致するユーザは存在しません。';
 $lang['Notification'] = '通知';
 $lang['Number of items'] = 'アイテム数';
@@ -116,5 +113,4 @@
 $lang['Search'] = '検索';
 $lang['display available tags'] = '利用可能なタグを表示する';
-$lang['Send new password'] = '新しいパスワードを送信する';
 $lang['Since'] = 'Since';
 $lang['Sort by'] = '並び替え';
@@ -310,5 +306,4 @@
 $lang['Album: %s'] = 'カテゴリ: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'デフォルトステータスの使用に関して、ユーザ「ゲスト」は正しくないステータスです。ウェブマスタにご連絡ください。';
-$lang['Administrator, webmaster and special user cannot use this method'] = '管理者、ウェブマスタおよび特別ユーザは、この方法を使用できません。';
 $lang['this email address is already in use'] = 'このメールアドレスは、すでに他のユーザに使用されています。';
 $lang['Album results for'] = 'カテゴリ検索結果:';
Index: /trunk/language/ka_GE/common.lang.php
===================================================================
--- /trunk/language/ka_GE/common.lang.php	(revision 11991)
+++ /trunk/language/ka_GE/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'ახალი %s';
 $lang['New password confirmation does not correspond'] = 'New password confirmation does not correspond';
-$lang['New password sent by email'] = 'ახალი პაროლი გამოგზავნილია email–ზე';
-$lang['No email address'] = 'email–ი უცნობია';
-$lang['No classic user matches this email address'] = 'მომხმარებელი ესეთი email–ით არ არსებობს';
 $lang['Notification'] = 'RSS-შეტყობინება';
 $lang['Number of items'] = 'რაოდენობა გვერდზე';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'ძიება';
 $lang['display available tags'] = 'შესაძლო ტეგების ნახვა';
-$lang['Send new password'] = 'ახალი პაროლის მოთხოვნა';
 $lang['Since'] = 'პერიოდი';
 $lang['Sort by'] = 'სორტირება';
@@ -314,5 +310,4 @@
 $lang['Album: %s'] = 'კატეგორია: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'მომხმარებლის არასწორი სტატუსი "სტუმარი", გამოიყენეთ ძირითადი სტატუსი. გთხოვთ შეატყობინოთ ადმინისტრატორს.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, webmaster and special user cannot use this method';
 $lang['this email address is already in use'] = 'მომხმარებელი ასეთი მისამართით უკვე არსებობს';
 $lang['Album results for'] = 'დღის კატეგორიების რეზულტატი';
@@ -361,5 +356,4 @@
 $lang['%d Kb'] = '%d კბ';
 $lang['New password confirmation does not correspond'] = 'ახალი პაროლის დასტური არ მოსულა';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'ადმინისტრატორს, წებმასტერს და სპეციალურ მომხმარებლებს არ შეუძლიათ გამოიყენონ ეს მეთოდი';
 $lang['Reduce diaporama speed'] = 'შევამციროთ პანორამის სიჩქარე';
 $lang['Accelerate diaporama speed'] = 'გავზარდოთ პანორამის სიჩქარე';
Index: /trunk/language/ko_KR/common.lang.php
===================================================================
--- /trunk/language/ko_KR/common.lang.php	(revision 11991)
+++ /trunk/language/ko_KR/common.lang.php	(revision 11992)
@@ -86,7 +86,4 @@
 $lang['Keyword'] = '키워드';
 $lang['New password confirmation does not correspond'] = '새로운 비밀번호 확인이 일치하지 않습니다.';
-$lang['New password sent by email'] = '새 비밀번호가 이메일로 전송되었습니다';
-$lang['No email address'] = '이메일 주소가 없습니다';
-$lang['No classic user matches this email address'] = '이 이메일 주소와 일치하는 사용자가 없습니다';
 $lang['Notification'] = '알림';
 $lang['Number of items'] = '항목 수';
@@ -109,5 +106,4 @@
 $lang['Search'] = '검색';
 $lang['display available tags'] = '사용 가능한 태그 보이기';
-$lang['Send new password'] = '새 비밀번호를 보냅니다';
 $lang['Since'] = '기간';
 $lang['Sort by'] = '정렬 기준';
Index: /trunk/language/lv_LV/common.lang.php
===================================================================
--- /trunk/language/lv_LV/common.lang.php	(revision 11991)
+++ /trunk/language/lv_LV/common.lang.php	(revision 11992)
@@ -90,7 +90,4 @@
 $lang['New on %s'] = "Jauns %s";
 $lang['New password confirmation does not correspond'] = "Jaunas paroles apstiprinājums nesakrīt";
-$lang['New password sent by email'] = "Jaunā parole izsūtīta pa e-pastu";
-$lang['No email address'] = "Nav e-pasta adreses";
-$lang['No classic user matches this email address'] = "Klasiskā lietotāja e-pasta adrese nesakrīt ar šo adresi";
 $lang['Notification'] = "Paziņojums";
 $lang['Number of items'] = "Vienību skaits";
@@ -112,5 +109,4 @@
 $lang['Search'] = "Meklēt";
 $lang['display available tags'] = "Skatīt pieejamos tagus";
-$lang['Send new password'] = "Sūtīt jaunu paroli";
 $lang['Since'] = "Kopš";
 $lang['Sort by'] = "Sarindot pēc";
@@ -308,5 +304,4 @@
 $lang['Album: %s'] = 'Albūms: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = "Lietotāja \"viesis\" nepareizs satuss, lietojiet statusu pēc noklusējuma. Lūdzu informējiet webmasteru.";
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrātors, webmāsters un īpašais lietotājs var izmantot šo metodi';
 $lang['this email address is already in use'] = "cits lietotājs jau lieto šo pasta adresi";
 $lang['Album results for'] = 'Albūma rezultāti priekš';
Index: /trunk/language/mk_MK/common.lang.php
===================================================================
--- /trunk/language/mk_MK/common.lang.php	(revision 11991)
+++ /trunk/language/mk_MK/common.lang.php	(revision 11992)
@@ -101,7 +101,4 @@
 $lang['New on %s'] = 'Нова на %s';
 $lang['New password confirmation does not correspond'] = 'Повторената нова лозинка не е точна. Пробајте повторно.';
-$lang['New password sent by email'] = 'Новата лозинка беше испратена на вашата email адреса.';
-$lang['No email address'] = 'Нема email адреса';
-$lang['No classic user matches this email address'] = 'Нема член со таква email адреса.';
 $lang['Notification'] = 'RSS';
 $lang['Number of items'] = 'Број на елементи';
@@ -125,5 +122,4 @@
 $lang['Search'] = 'Пребарување';
 $lang['display available tags'] = 'Погледни ги етикетите';
-$lang['Send new password'] = 'Прати нова лозинка';
 $lang['Since'] = 'Од';
 $lang['Sort by'] = 'Подреди ги по';
@@ -325,5 +321,4 @@
 $lang['delete this comment'] = 'Избриши го коментарот';
 $lang['Comment: %s'] = 'Коментар: %s';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, webmaster and special user cannot use this method';
 $lang['Album results for'] = 'Резултат на Албуми за';
 $lang['Tag results for'] = 'Таг резултати за';
Index: /trunk/language/nl_NL/common.lang.php
===================================================================
--- /trunk/language/nl_NL/common.lang.php	(revision 11991)
+++ /trunk/language/nl_NL/common.lang.php	(revision 11992)
@@ -91,7 +91,4 @@
 $lang['New on %s'] = 'Nieuw op %s';
 $lang['New password confirmation does not correspond'] = 'Nieuw wachtwoord bevestiging komt niet overeen';
-$lang['New password sent by email'] = 'Nieuw wachtwoord is verzonden per email';
-$lang['No email address'] = 'Geen email-adres';
-$lang['No classic user matches this email address'] = 'Geen gebruiker gevonden met dit email-adres';
 $lang['Notification'] = 'Meldingen';
 $lang['Number of items'] = 'Aantal items';
@@ -113,5 +110,4 @@
 $lang['Search'] = 'Zoeken';
 $lang['display available tags'] = 'Toon beschikbare tags';
-$lang['Send new password'] = 'Stuur nieuw wachtwoord';
 $lang['Since'] = 'Sinds';
 $lang['Sort by'] = 'Sorteren op';
@@ -310,5 +306,4 @@
 $lang['Album: %s'] = 'Categorie: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Foutieve status voor gebruiker "guest", gebruik standaard status. Waarschuw de webbeheerder.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, webbeheerder en speciale gebruiker kunnen deze methode niet gebruiken';
 $lang['this email address is already in use'] = 'Een andere gebruiker maakt al gebruik van dit email-adres';
 $lang['Album results for'] = 'Categorie resultaten voor';
Index: /trunk/language/no_NO/common.lang.php
===================================================================
--- /trunk/language/no_NO/common.lang.php	(revision 11991)
+++ /trunk/language/no_NO/common.lang.php	(revision 11992)
@@ -48,5 +48,4 @@
 $lang['Registration of %s'] = "Registrering av %s";
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = "Feil status for bruker \"gjest\", default status vil bli brukt. Vennligst kontakt webmaster.";
-$lang['Administrator, webmaster and special user cannot use this method'] = "Administrator, webmaster og spesial bruker kan ikke bruke denne metoden";
 $lang['this email address is already in use'] = "En annen bruker har allerede denne mail addressen";
 $lang['Tag results for'] = "Tag resultat for";
@@ -150,7 +149,4 @@
 $lang['Average rate'] = 'Gjennomsnittlig rate';
 $lang['New password confirmation does not correspond'] = 'Nytt passord bekreftelse er ikke lik';
-$lang['New password sent by email'] = 'Nytt passord sendt via email';
-$lang['No email address'] = 'Ingen email addresse';
-$lang['No classic user matches this email address'] = 'Ingen kjent bruker har denne email addressen';
 $lang['Notification'] = 'Til informasjon';
 $lang['Number of items'] = 'Antall poster';
@@ -173,5 +169,4 @@
 $lang['Search'] = 'Søk';
 $lang['display available tags'] = 'Se tilgjengelige tags';
-$lang['Send new password'] = 'Send nytt passord';
 $lang['Since'] = 'Siden';
 $lang['Sort by'] = 'Sorter etter';
Index: /trunk/language/pl_PL/common.lang.php
===================================================================
--- /trunk/language/pl_PL/common.lang.php	(revision 11991)
+++ /trunk/language/pl_PL/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'Nowe %s';
 $lang['New password confirmation does not correspond'] = 'Potwierdzenie podczas potwierdzania nowego hasła';
-$lang['New password sent by email'] = 'Nowe hasło wysłane na pocztą email';
-$lang['No email address'] = 'Brak adresu email';
-$lang['No classic user matches this email address'] = 'Brak użytkowników odpowiadających danemu adresowi email';
 $lang['Notification'] = 'Powiadamianie';
 $lang['Number of items'] = 'Liczba obiektów';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'Szukaj';
 $lang['display available tags'] = 'Zobacz dostępne tagi';
-$lang['Send new password'] = 'Prześlij nowe hasło';
 $lang['Since'] = 'Od';
 $lang['Sort by'] = 'Sortuj po';
@@ -313,5 +309,4 @@
 $lang['Album: %s'] = 'Album: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Zły status dla użytkownika "gość", używam domyślnego';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, webmaster i special user nie mogą używać tej metody';
 $lang['this email address is already in use'] = 'użytkownik już używa tego adresu email';
 $lang['Album results for'] = 'Wyniki albumu dla';
Index: /trunk/language/pt_BR/common.lang.php
===================================================================
--- /trunk/language/pt_BR/common.lang.php	(revision 11991)
+++ /trunk/language/pt_BR/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'Novo em %s';
 $lang['New password confirmation does not correspond'] = 'Erro na confirmação da senha';
-$lang['New password sent by email'] = 'Nova senha enviada por email';
-$lang['No email address'] = 'Falta o endereço de email';
-$lang['No classic user matches this email address'] = 'O endereço de email não corresponde a usário algum';
 $lang['Notification'] = 'Notificação';
 $lang['Number of items'] = 'Número de itens';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'Pesquisa';
 $lang['display available tags'] = 'Ver as tags disponíveis';
-$lang['Send new password'] = 'Enviar a nova senha';
 $lang['Since'] = 'Desde ';
 $lang['Sort by'] = 'Listado por';
@@ -315,5 +311,4 @@
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Status ruim para o usuário "guest", será usado status padrão. Por favor, avise o administrador do site.';
 // --------- Starting below: New or revised $lang ---- from Butterfly (2.0)
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrador, webmaster e utilizador especial não podem utilizar este método';
 $lang['this email address is already in use'] = 'um outro usuário já utiliza este email';
 $lang['Album results for'] = 'Resultados da categoria para';
Index: /trunk/language/pt_PT/common.lang.php
===================================================================
--- /trunk/language/pt_PT/common.lang.php	(revision 11991)
+++ /trunk/language/pt_PT/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'Novo em %s';
 $lang['New password confirmation does not correspond'] = 'Erro na confirmação da palavra-passe';
-$lang['New password sent by email'] = 'Nova palavra-passe enviada por email';
-$lang['No email address'] = 'Falta o endereço de email';
-$lang['No classic user matches this email address'] = 'O endereço de email não corresponde a nenhum utilizador';
 $lang['Notification'] = 'Notificação';
 $lang['Number of items'] = 'Número de items';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'Pesquisa';
 $lang['display available tags'] = 'Ver as etiquetas disponíveis';
-$lang['Send new password'] = 'Enviar nova palavra-passe';
 $lang['Since'] = 'Desde ';
 $lang['Sort by'] = 'Ordenar por';
@@ -312,5 +308,4 @@
 $lang['Album: %s'] = 'Álbum: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'O utilizador "guest" tem um erro. Estado padrão será usado. Por favor, contacte o administrador do site.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrador, webmaster e utilizador especial não podem utilizar este método';
 $lang['this email address is already in use'] = 'um outro utilizador já utiliza este email';
 $lang['Album results for'] = 'Resultados de álbum para';
Index: /trunk/language/ro_RO/common.lang.php
===================================================================
--- /trunk/language/ro_RO/common.lang.php	(revision 11991)
+++ /trunk/language/ro_RO/common.lang.php	(revision 11992)
@@ -92,7 +92,4 @@
 $lang['New on %s'] = 'Nou pe %s';
 $lang['New password confirmation does not correspond'] = 'Noua confirmare a parolei nu se potriveşte';
-$lang['New password sent by email'] = 'Noua parolă a fost trimisă prin email';
-$lang['No email address'] = 'Nici o adresă de email';
-$lang['No classic user matches this email address'] = 'Nici un utilizator clasic nu corespunde acestei adrese de e-mail';
 $lang['Notification'] = 'Notificare';
 $lang['Number of items'] = 'Numărul de articole';
@@ -115,5 +112,4 @@
 $lang['Search'] = 'Caută';
 $lang['display available tags'] = 'Vezi etichetele disponibile';
-$lang['Send new password'] = 'Trimite parola nouă';
 $lang['Since'] = 'De la';
 $lang['Sort by'] = 'Sortare după';
@@ -301,5 +297,4 @@
 $lang['Album: %s'] = 'Categorie : %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Statutul utilizatorului "invitat" este eronat, se vor folosi  parametrii impliciţi. Va rugăm sa informaţi webmasterul.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administratorul, webmasterul şi utilizatorul special nu pot folosi aceasta metodă';
 $lang['this email address is already in use'] = 'un alt utilizator foloseşte deja acest e-mail';
 $lang['Album results for'] = 'Rezultatele categoriilor pentru';
Index: /trunk/language/ru_RU/common.lang.php
===================================================================
--- /trunk/language/ru_RU/common.lang.php	(revision 11991)
+++ /trunk/language/ru_RU/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'Новое в %s';
 $lang['New password confirmation does not correspond'] = 'New password confirmation does not correspond';
-$lang['New password sent by email'] = 'Новый пароль отправлен по электронной почте';
-$lang['No email address'] = 'Не указан email';
-$lang['No classic user matches this email address'] = 'Нет пользователей с таким адресом электронной почты';
 $lang['Notification'] = 'RSS-уведомления';
 $lang['Number of items'] = 'Кол-во на странице';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'Поиск';
 $lang['display available tags'] = 'Просмотр доступных тэгов';
-$lang['Send new password'] = 'Потребовать новый пароль';
 $lang['Since'] = 'За период';
 $lang['Sort by'] = 'Признак сортировки';
@@ -311,5 +307,4 @@
 $lang['Album: %s'] = 'Альбом: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Неверный статус пользователя "гость", используйте статус по умолчанию. Пожалуйста сообщите вебмастеру.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, webmaster and special user cannot use this method';
 $lang['this email address is already in use'] = 'пользователь с таким адресом уже есть';
 $lang['Album results for'] = 'Альбом определен для';
@@ -358,5 +353,4 @@
 $lang['%d Kb'] = '%d Кб';
 $lang['New password confirmation does not correspond'] = 'Подтверждение нового пароля не получено';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Администраторы, вебмастер и специальные пользователи не могут использовать этот метод';
 $lang['Reduce diaporama speed'] = 'Уменьшить скорость панорамы';
 $lang['Accelerate diaporama speed'] = 'Увеличить скорость панорамы';
Index: /trunk/language/sh_RS/common.lang.php
===================================================================
--- /trunk/language/sh_RS/common.lang.php	(revision 11991)
+++ /trunk/language/sh_RS/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = 'Novi na on %s';
 $lang['New password confirmation does not correspond'] = 'Potvrda nove lozinke ne odgovara';
-$lang['New password sent by email'] = 'Nova lozinka poslana e-mail porukom';
-$lang['No email address'] = 'Nema e-mail adrese';
-$lang['No classic user matches this email address'] = 'Nijedan korisnik se ne poklapa s ovom e-mail adresom';
 $lang['Notification'] = 'Obaveštenje';
 $lang['Number of items'] = 'Broj stavki';
@@ -116,5 +113,4 @@
 $lang['Search'] = 'Pretraživanje';
 $lang['display available tags'] = 'Pogledaj dostupne tagove';
-$lang['Send new password'] = 'Pošalji novu lozinku';
 $lang['Since'] = 'Od';
 $lang['Sort by'] = 'Složeno po';
@@ -312,5 +308,4 @@
 $lang['Album: %s'] = 'Kategorija: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Loš status za korisnika "guest", koristi se podrazumevani status. Molimo obavestite webmaster-a.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, webmaster i posebni korisnik ne mogu koristiti ovu metodu';
 $lang['this email address is already in use'] = 'korisnik već koristi ovu e-mail adresu';
 $lang['Album results for'] = 'Rezultati kategorije za ';
Index: /trunk/language/sk_SK/common.lang.php
===================================================================
--- /trunk/language/sk_SK/common.lang.php	(revision 11991)
+++ /trunk/language/sk_SK/common.lang.php	(revision 11992)
@@ -95,7 +95,4 @@
 $lang['New on %s'] = 'Nový na %s';
 $lang['New password confirmation does not correspond'] = 'Zadané heslá sa nezhodujú.';
-$lang['New password sent by email'] = 'Nové heslo bolo zaslané e-mailom';
-$lang['No email address'] = 'Bez e-mailovej adresy';
-$lang['No classic user matches this email address'] = 'Nebol nájdený žiaden používateľ so zadanou e-mailovou adresou';
 $lang['Notification'] = 'RSS vlákno';
 $lang['Number of items'] = 'Počet položiek';
@@ -117,5 +114,4 @@
 $lang['Search'] = 'Vyhľadať';
 $lang['display available tags'] = 'Ukázať dostupné kľúčové slová';
-$lang['Send new password'] = 'Poslať nové heslo';
 $lang['Since'] = 'Od';
 $lang['Sort by'] = 'Zoradiť podľa';
@@ -314,5 +310,4 @@
 $lang['Album: %s'] = 'Album: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Zlý stav pre používateľa "hosť", bude použitý východzí stav. Prosím informujte webmastra.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrátor, webmaster a špeciálny používateľ nemôžu použiť túto metódu.';
 $lang['this email address is already in use'] = 'táto e-mailová adresa je už používaná';
 $lang['Album results for'] = 'Výsledky pre album';
Index: /trunk/language/sl_SL/common.lang.php
===================================================================
--- /trunk/language/sl_SL/common.lang.php	(revision 11991)
+++ /trunk/language/sl_SL/common.lang.php	(revision 11992)
@@ -89,7 +89,4 @@
 $lang['New on %s'] = 'Nov na %s';
 $lang['New password confirmation does not correspond'] = 'Potrditveno geslo se ne ujema';
-$lang['New password sent by email'] = 'Novo geslo je poslano po e-pošti';
-$lang['No email address'] = 'Brez e-pošte';
-$lang['No classic user matches this email address'] = 'Noben uporabnik ne pripada e-pošti';
 $lang['Notification'] = 'Obvestilo';
 $lang['Number of items'] = 'Število ';
@@ -156,5 +153,4 @@
 $lang['Search'] = 'Išci';
 $lang['display available tags'] = 'Prikaži možne označbe';
-$lang['Send new password'] = 'Pošlji novo geslo';
 $lang['Since'] = 'Odkar';
 $lang['Sort by'] = 'Uredi po';
@@ -288,5 +284,4 @@
 $lang['Album: %s'] = 'Kategorija: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Nepravilen status uporabnika "guest", uporabljen bo privzeti status. Prosim obvestite skrbnika.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, skrbnik in posebni uporabnik ne morejo uporabljati te metode';
 $lang['this email address is already in use'] = 'email uporablja že drug uporabnik';
 $lang['Album results for'] = 'Category results for';
Index: /trunk/language/sr_RS/common.lang.php
===================================================================
--- /trunk/language/sr_RS/common.lang.php	(revision 11991)
+++ /trunk/language/sr_RS/common.lang.php	(revision 11992)
@@ -91,7 +91,4 @@
 $lang['New on %s'] = 'Нови на %s';
 $lang['New password confirmation does not correspond'] = 'Потврда нове лозинке не одговара';
-$lang['New password sent by email'] = 'Нова лозинка послана електронском поруком';
-$lang['No email address'] = 'Нема електронске адресе';
-$lang['No classic user matches this email address'] = 'Ниједан корисник се не поклапа с овом електронском адресом';
 $lang['Notification'] = 'Обавештење';
 $lang['Number of items'] = 'Број ставки';
@@ -113,5 +110,4 @@
 $lang['Search'] = 'Претраживање';
 $lang['display available tags'] = 'Погледај доступне ознаке';
-$lang['Send new password'] = 'Пошаљи нову лозинку';
 $lang['Since'] = 'Од';
 $lang['Sort by'] = 'Сложено по';
@@ -307,5 +303,4 @@
 $lang['Album: %s'] = 'Категорија: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Лош статус за корисника "гост", користи се подразумевани статус. Молимо обавестите мајстора интернет страница.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administrator, webmaster и посебни корисник не могу користити ову методу';
 $lang['this email address is already in use'] = 'корисник већ користи ову адресу електронске поште';
 $lang['Album results for'] = 'Резултати категорије за ';
Index: /trunk/language/sv_SE/common.lang.php
===================================================================
--- /trunk/language/sv_SE/common.lang.php	(revision 11991)
+++ /trunk/language/sv_SE/common.lang.php	(revision 11992)
@@ -50,5 +50,4 @@
 $lang['Album: %s'] = 'Album: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Användarstatus för \"gäst\" är ogiltig, standard status kommer användas. Vänligen informera webbansvarig.';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Administratör, webmaster och speciell användare kan inte använda denna metod';
 $lang['this email address is already in use'] = 'en annan användare använder redan denna e-post';
 $lang['Album results for'] = 'Albumresultat för';
@@ -127,7 +126,4 @@
 $lang['Links'] = 'Länkar';
 $lang['New password confirmation does not correspond'] = 'Bekräftelse av det nya lösenordet matchar inte';
-$lang['New password sent by email'] = 'Nytt lösenord har skickats';
-$lang['No email address'] = 'E-postadress saknas';
-$lang['No classic user matches this email address'] = 'Ingen träff på e-postadressen';
 $lang['Notification'] = 'Meddelande';
 $lang['Number of items'] = 'Antal';
@@ -149,5 +145,4 @@
 $lang['Search'] = 'Sök';
 $lang['display available tags'] = 'visa tillgängliga taggar';
-$lang['Send new password'] = 'Skicka nytt lösenord';
 $lang['Since'] = 'Sedan';
 $lang['Sort by'] = 'Sortera efter';
Index: /trunk/language/th_TH/common.lang.php
===================================================================
--- /trunk/language/th_TH/common.lang.php	(revision 11991)
+++ /trunk/language/th_TH/common.lang.php	(revision 11992)
@@ -87,7 +87,4 @@
 $lang['Keyword'] = 'คำค้น';
 $lang['New password confirmation does not correspond'] = 'รหัสผ่านและยืนยันรหัสผ่านต้องเหมือนกัน';
-$lang['New password sent by email'] = 'รหัสผ่านใหม่ส่งไปที่เมล์ของท่านแล้ว';
-$lang['No email address'] = 'ไม่มีเมล์';
-$lang['No classic user matches this email address'] = 'ไม่มีเมล์นี้ในระบบ';
 $lang['Notification'] = 'การแจ้งเตือน';
 $lang['Number of items'] = 'จำนวนหน่วย';
@@ -110,5 +107,4 @@
 $lang['Search'] = 'ค้นหา';
 $lang['display available tags'] = 'แสดงแท็คที่ใช้ได้';
-$lang['Send new password'] = 'ส่งรหัสผ่านใหม่';
 $lang['Since'] = 'ตั้งแต';
 $lang['Sort by'] = 'จัดเรียงโดย';
Index: /trunk/language/tr_TR/common.lang.php
===================================================================
--- /trunk/language/tr_TR/common.lang.php	(revision 11991)
+++ /trunk/language/tr_TR/common.lang.php	(revision 11992)
@@ -91,7 +91,4 @@
 $lang['New on %s'] = 'Yeni %s';
 $lang['New password confirmation does not correspond'] = 'Parola dogrulama hatası';
-$lang['New password sent by email'] = 'Yeni parolanız e-postanıza yollandı';
-$lang['No email address'] = 'E-posta adresi yok';
-$lang['No classic user matches this email address'] = 'Bu e-posta adresiyle kayıtlı böyle bir kullanıcı yok.';
 $lang['Notification'] = 'Hatırlatma';
 $lang['Number of items'] = 'Ürün adedi';
@@ -114,5 +111,4 @@
 $lang['Search'] = 'Arama';
 $lang['display available tags'] = 'Uygun Etiketler';
-$lang['Send new password'] = 'Yeni Parola Gönder';
 $lang['Since'] = 'Şu tarihten beri:';
 $lang['Sort by'] = 'Sırala';
@@ -275,5 +271,4 @@
 $lang['Album: %s'] = 'Albüm: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Kullanıcı için kötü statü "ziyaretçi", varsayılan statü kullanılıyor. Lütfen webmaster\'a bildirin';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Yönetici, webmaster ve özel kullanıcı bu metodu kullanamaz';
 $lang['this email address is already in use'] = 'bu e-posta adresi başka bir kullanıcı tarafından kullanılmaktadır.';
 $lang['Album results for'] = 'Albüm sonuçları';
Index: /trunk/language/uk_UA/common.lang.php
===================================================================
--- /trunk/language/uk_UA/common.lang.php	(revision 11991)
+++ /trunk/language/uk_UA/common.lang.php	(revision 11992)
@@ -105,7 +105,4 @@
 $lang['month'][9] = "Вересень";
 $lang['New password confirmation does not correspond'] = 'Підтвердження нового пароля не співпадає';
-$lang['New password sent by email'] = 'Новий пароль висланий електронною поштою';
-$lang['No email address'] = 'Немає адреси електронної пошти';
-$lang['No classic user matches this email address'] = 'Немає користувачів з такою адресою електронної пошти';
 $lang['Notification'] = 'Повідомлення';
 $lang['Number of items'] = 'Кількість елементів';
@@ -127,5 +124,4 @@
 $lang['Search'] = 'Пошук';
 $lang['display available tags'] = 'відображати доступні теги';
-$lang['Send new password'] = 'Відправити новий пароль';
 $lang['Since'] = 'З';
 $lang['Sort by'] = 'Сортувати за';
@@ -351,5 +347,4 @@
 $lang['validate this comment'] = 'перевірити цей коментар';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = "Невірний статус для користувача \"гість\", буде використовуватись статус за замовчуванням. Будь ласка, повідомте вебмайстра.";
-$lang['Administrator, webmaster and special user cannot use this method'] = "Адміністратор, вебмайстер та спеціальний користувач не можуть використовувати цей метод";
 $lang['N/A'] = 'невідомий';
 $lang['IP: %s'] = "IP: %s";
Index: /trunk/language/vi_VN/common.lang.php
===================================================================
--- /trunk/language/vi_VN/common.lang.php	(revision 11991)
+++ /trunk/language/vi_VN/common.lang.php	(revision 11992)
@@ -90,7 +90,4 @@
 $lang['New on %s'] = 'hình mới ở %s';
 $lang['New password confirmation does not correspond'] = 'Xác nhận mật khẩu mới không được phản hồi';
-$lang['New password sent by email'] = 'Mật khẩu mới đã được gởi qua email của bạn';
-$lang['No email address'] = 'Không có địa chỉ email';
-$lang['No classic user matches this email address'] = 'Không có thành viên nào có địa chỉ email trùng với email này.';
 $lang['Notification'] = 'Thông báo';
 $lang['Number of items'] = 'Số lượng hình';
@@ -112,5 +109,4 @@
 $lang['Search'] = 'Tìm kiếm';
 $lang['display available tags'] = 'Xem các tag được dùng';
-$lang['Send new password'] = 'Gởi mật khẩu mới';
 $lang['Since'] = 'Từ';
 $lang['Sort by'] = 'Sắp xếp theo';
@@ -306,5 +302,4 @@
 $lang['Album: %s'] = 'Đề mục: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'Status xấu đối với thành viên đăng thuộc nhóm "khách", sử dụng status mặc định. Thông báo ngay cho Quản trị';
-$lang['Administrator, webmaster and special user cannot use this method'] = 'Quản trị viên và thành viên đặc biệt không thể sử dụng cách này';
 $lang['this email address is already in use'] = 'đã có thành viên sử dụng địa chỉ email này';
 $lang['Album results for'] = 'Kết quả đề mục cho';
Index: /trunk/language/zh_CN/common.lang.php
===================================================================
--- /trunk/language/zh_CN/common.lang.php	(revision 11991)
+++ /trunk/language/zh_CN/common.lang.php	(revision 11992)
@@ -91,7 +91,4 @@
 $lang['New on %s'] = "有新的在 %s";
 $lang['New password confirmation does not correspond'] = "新密码确认时不匹配";
-$lang['New password sent by email'] = "新密码已通过电子邮件发送";
-$lang['No email address'] = "没有电子邮件地址";
-$lang['No classic user matches this email address'] = "没有用户对应此电子邮件";
 $lang['Notification'] = "提醒";
 $lang['Number of items'] = "项目数量";
@@ -113,5 +110,4 @@
 $lang['Search'] = "搜索";
 $lang['display available tags'] = "显示可用标签";
-$lang['Send new password'] = "发送新密码";
 $lang['Since'] = "从";
 $lang['Sort by'] = "分类参考";
@@ -307,5 +303,4 @@
 $lang['Album: %s'] = "图片集: %s";
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = "“访客”账户出现问题，正在使用默认设置，请提醒管理员。";
-$lang['Administrator, webmaster and special user cannot use this method'] = "管理员，网管和特殊用户不能使用此手段。";
 $lang['this email address is already in use'] = "这个电子邮件地址已经被占用了";
 $lang['Album results for'] = "相册结果对应";
Index: /trunk/language/zh_TW/common.lang.php
===================================================================
--- /trunk/language/zh_TW/common.lang.php	(revision 11991)
+++ /trunk/language/zh_TW/common.lang.php	(revision 11992)
@@ -93,7 +93,4 @@
 $lang['New on %s'] = '新創於 %s';
 $lang['New password confirmation does not correspond'] = '前後密碼不一致';
-$lang['New password sent by email'] = '新密碼已發送';
-$lang['No email address'] = '沒有郵箱地址';
-$lang['No classic user matches this email address'] = '此郵箱地址不存在';
 $lang['Notification'] = '通知';
 $lang['Number of items'] = '總數';
@@ -116,5 +113,4 @@
 $lang['Search'] = '搜索';
 $lang['display available tags'] = '查看現有標籤';
-$lang['Send new password'] = '發送新密碼';
 $lang['Since'] = '自從';
 $lang['Sort by'] = '排序';
@@ -310,5 +306,4 @@
 $lang['Album: %s'] = '相冊: %s';
 $lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = '如果遊客反常擁有普通用戶才擁有狀態，請向網絡管理員報告。';
-$lang['Administrator, webmaster and special user cannot use this method'] = '管理員, 網管和特定用戶不能使用此方法功能';
 $lang['this email address is already in use'] = '郵箱地址已存在';
 $lang['Album results for'] = '相冊的結果';
Index: /trunk/password.php
===================================================================
--- /trunk/password.php	(revision 11991)
+++ /trunk/password.php	(revision 11992)
@@ -33,8 +33,211 @@
 // | Check Access and exit when user status is not ok                      |
 // +-----------------------------------------------------------------------+
+
 check_status(ACCESS_FREE);
 
 // +-----------------------------------------------------------------------+
-// |                          send a new password                          |
+// | Functions                                                             |
+// +-----------------------------------------------------------------------+
+
+/**
+ * checks the validity of input parameters, fills $page['errors'] and
+ * $page['infos'] and send an email with confirmation link
+ *
+ * @return bool (true if email was sent, false otherwise)
+ */
+function process_password_request()
+{
+  global $page, $conf;
+  
+  if (empty($_POST['username_or_email']))
+  {
+    array_push($page['errors'], l10n('Enter a username or email address'));
+    return false;
+  }
+  
+  $user_id = get_userid_by_email($_POST['username_or_email']);
+    
+  if (!is_numeric($user_id))
+  {
+    $user_id = get_userid($_POST['username_or_email']);
+  }
+
+  if (!is_numeric($user_id))
+  {
+    array_push($page['errors'], l10n('Invalid username or email'));
+    return false;
+  }
+
+  $userdata = getuserdata($user_id, false);
+
+  // password request is not possible for guest/generic users
+  $status = $userdata['status'];
+  if (is_a_guest($status) or is_generic($status))
+  {
+    array_push($page['errors'], l10n('Password reset is not allowed for this user'));
+    return false;
+  }
+
+  if (empty($userdata['email']))
+  {
+    array_push(
+      $page['errors'],
+      sprintf(
+        l10n('User "%s" has no email address, password reset is not possible'),
+        $userdata['username']
+        )
+      );
+    return false;
+  }
+
+  if (empty($userdata['activation_key']))
+  {
+    $activation_key = get_user_activation_key();
+
+    single_update(
+      USER_INFOS_TABLE,
+      array('activation_key' => $activation_key),
+      array('user_id' => $user_id)
+      );
+
+    $userdata['activation_key'] = $activation_key;
+  }
+
+  set_make_full_url();
+  
+  $message = l10n('Someone requested that the password be reset for the following user account:') . "\r\n\r\n";
+  $message.= sprintf(
+    l10n('Username "%s" on gallery %s'),
+    $userdata['username'],
+    get_gallery_home_url()
+    );
+  $message.= "\r\n\r\n";
+  $message.= l10n('To reset your password, visit the following address:') . "\r\n";
+  $message.= get_gallery_home_url().'/password.php?key='.$userdata['activation_key']."\r\n\r\n";
+  $message.= l10n('If this was a mistake, just ignore this email and nothing will happen.')."\r\n";
+
+  unset_make_full_url();
+
+  $message = trigger_event('render_lost_password_mail_content', $message);
+
+  $email_params = array(
+    'subject' => '['.$conf['gallery_title'].'] '.l10n('Password Reset'),
+    'content' => $message,
+    'email_format' => 'text/plain',
+    );
+
+  if (pwg_mail($userdata['email'], $email_params))
+  {
+    array_push($page['infos'], l10n('Check your email for the confirmation link'));
+    return true;
+  }
+  else
+  {
+    array_push($page['errors'], l10n('Error sending email'));
+    return false;
+  }
+}
+
+/**
+ *  checks the activation key: does it match the expected pattern? is it
+ *  linked to a user? is this user allowed to reset his password?
+ *
+ * @return mixed (user_id if OK, false otherwise)
+ */
+function check_password_reset_key($key)
+{
+  global $page;
+  
+  if (!preg_match('/^[a-z0-9]{20}$/i', $key))
+  {
+    array_push($page['errors'], l10n('Invalid key'));
+    return false;
+  }
+
+  $query = '
+SELECT
+    user_id,
+    status
+  FROM '.USER_INFOS_TABLE.'
+  WHERE activation_key = \''.$key.'\'
+;';
+  $result = pwg_query($query);
+
+  if (pwg_db_num_rows($result) == 0)
+  {
+    array_push($page['errors'], l10n('Invalid key'));
+    return false;
+  }
+  
+  $userdata = pwg_db_fetch_assoc($result);
+
+  if (is_a_guest($userdata['status']) or is_generic($userdata['status']))
+  {
+    array_push($page['errors'], l10n('Password reset is not allowed for this user'));
+    return false;
+  }
+
+  return $userdata['user_id'];
+}
+
+/**
+ * checks the passwords, checks that user is allowed to reset his password,
+ * update password, fills $page['errors'] and $page['infos'].
+ *
+ * @return bool (true if password was reset, false otherwise)
+ */
+function reset_password()
+{
+  global $page, $user, $conf;
+
+  if ($_POST['use_new_pwd'] != $_POST['passwordConf'])
+  {
+    array_push($page['errors'], l10n('The passwords do not match'));
+    return false;
+  }
+
+  if (isset($_GET['key']))
+  {
+    $user_id = check_password_reset_key($_GET['key']);
+    if (!is_numeric($user_id))
+    {
+      array_push($page['errors'], l10n('Invalid key'));
+      return false;
+    }
+  }
+  else
+  {
+    // we check the currently logged in user
+    if (is_a_guest() or is_generic())
+    {
+      array_push($page['errors'], l10n('Password reset is not allowed for this user'));
+      return false;
+    }
+
+    $user_id = $user['id'];
+  }
+    
+  single_update(
+    USERS_TABLE,
+    array($conf['user_fields']['password'] => $conf['pass_convert']($_POST['use_new_pwd'])),
+    array($conf['user_fields']['id'] => $user_id)
+    );
+
+  array_push($page['infos'], l10n('Your password has been reset'));
+
+  if (isset($_GET['key']))
+  {
+    array_push($page['infos'], '<a href="'.get_root_url().'identification.php">'.l10n('Login').'</a>');
+  }
+  else
+  {
+    array_push($page['infos'], '<a href="'.get_gallery_home_url().'">'.l10n('Return to home page').'</a>');
+  }
+
+  return true;
+}
+
+// +-----------------------------------------------------------------------+
+// | Process form                                                          |
 // +-----------------------------------------------------------------------+
 
@@ -44,111 +247,107 @@
 if (isset($_POST['submit']))
 {
-  $mailto =
-    '<a href="mailto:'.get_webmaster_mail_address().'">'
-    .l10n('Contact webmaster')
-    .'</a>'
-    ;
-
-  if (isset($_POST['no_mail_address']) and $_POST['no_mail_address'] == 1)
-  {
-    array_push($page['infos'], l10n('Email address is missing. Please specify an email address.'));
-    array_push($page['infos'], $mailto);
-  }
-  else if (isset($_POST['mail_address']) and !empty($_POST['mail_address']))
-  {
-    $mail_address = pwg_db_real_escape_string($_POST['mail_address']);
-    
-    $query = '
-SELECT '.$conf['user_fields']['id'].' AS id
-     , '.$conf['user_fields']['username'].' AS username
-     , '.$conf['user_fields']['email'].' AS email
-FROM '.USERS_TABLE.' as u
-  INNER JOIN '.USER_INFOS_TABLE.' AS ui
-      ON u.'.$conf['user_fields']['id'].' = ui.user_id
-WHERE '.$conf['user_fields']['email'].' = \''.$mail_address.'\'
-  AND ui.status = \'normal\'
-;';
-    $result = pwg_query($query);
-
-    if (pwg_db_num_rows($result) > 0)
-    {
-      $error_on_mail = false;
-      $datas = array();
-      
-      while ($row = pwg_db_fetch_assoc($result))
-      {
-        $new_password = generate_key(6);
-
-        $infos =
-          l10n('Username').': '.stripslashes($row['username'])
-          ."\n".l10n('Password').': '.$new_password
-          ;
-
-        $infos = trigger_event('render_lost_password_mail_content', $infos);
-
-        if (pwg_mail($row['email'],
-              array('subject' => l10n('password updated'), 'content' => $infos)))
-        {
-          $data =
-            array(
-              $conf['user_fields']['id']
-              => $row['id'],
-              
-              $conf['user_fields']['password']
-              => $conf['pass_convert']($new_password)
-              );
-
-          array_push($datas, $data);
-        }
-        else
-        {
-          $error_on_mail = true;
-        }
-      }
-      
-      if ($error_on_mail)
-      {
-        array_push($page['errors'], l10n('Error sending email'));
-        array_push($page['errors'], $mailto);
-      }
-      else
-      {
-        include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
-        mass_updates(
-          USERS_TABLE,
-          array(
-            'primary' => array($conf['user_fields']['id']),
-            'update' => array($conf['user_fields']['password'])
-          ),
-          $datas
-          );
-
-        array_push($page['infos'], l10n('New password sent by email'));
-      }
-    }
-    else
-    {
-      array_push($page['errors'], l10n('No classic user matches this email address'));
-      array_push($page['errors'], l10n('Administrator, webmaster and special user cannot use this method'));
-      array_push($page['errors'], $mailto);
-    }
-  }
-}
-
-// +-----------------------------------------------------------------------+
-// |                        template initialization                        |
-// +-----------------------------------------------------------------------+
-
-$title = l10n('Forgot your password?');
+  check_pwg_token();
+  
+  if ('lost' == $_GET['action'])
+  {
+    if (process_password_request())
+    {
+      $page['action'] = 'none';
+    }
+  }
+
+  if ('reset' == $_GET['action'])
+  {
+    if (reset_password())
+    {
+      $page['action'] = 'none';
+    }
+  }
+}
+
+// +-----------------------------------------------------------------------+
+// | key and action                                                        |
+// +-----------------------------------------------------------------------+
+
+// a connected user can't reset the password from a mail
+if (isset($_GET['key']) and !is_a_guest())
+{
+  unset($_GET['key']);
+}
+
+if (isset($_GET['key']))
+{
+  $user_id = check_password_reset_key($_GET['key']);
+  if (is_numeric($user_id))
+  {
+    $userdata = getuserdata($user_id, false);
+    $page['username'] = $userdata['username'];
+    $template->assign('key', $_GET['key']);
+
+    if (!isset($page['action']))
+    {
+      $page['action'] = 'reset';
+    }
+  }
+  else
+  {
+    $page['action'] = 'none';
+  }
+}
+
+if (!isset($page['action']))
+{
+  if (!isset($_GET['action']))
+  {
+    $page['action'] = 'lost';
+  }
+  elseif (in_array($_GET['action'], array('lost', 'reset', 'none')))
+  {
+    $page['action'] = $_GET['action'];
+  }
+}
+
+if ('reset' == $page['action'] and !isset($_GET['key']) and (is_a_guest() or is_generic()))
+{
+  redirect(get_gallery_home_url());
+}
+
+if ('lost' == $page['action'] and !is_a_guest())
+{
+  redirect(get_gallery_home_url());
+}
+
+// +-----------------------------------------------------------------------+
+// | template initialization                                               |
+// +-----------------------------------------------------------------------+
+
+$title = l10n('Reset Password');
+if ('lost' == $page['action'])
+{
+  $title = l10n('Forgot your password?');
+
+  if (isset($_POST['username_or_email']))
+  {
+    $template->assign('username_or_email', stripslashes($_POST['username_or_email']));
+  }
+}
+
 $page['body_id'] = 'thePasswordPage';
 
 $template->set_filenames(array('password'=>'password.tpl'));
-$template->assign( array(
-    'F_ACTION'=> get_root_url().'password.php'
+$template->assign(
+  array(
+    'title' => $title,
+    'form_action'=> get_root_url().'password.php',
+    'action' => $page['action'],
+    'username' => isset($page['username']) ? $page['username'] : $user['username'],
+    'PWG_TOKEN' => get_pwg_token(),
     )
   );
+
 // +-----------------------------------------------------------------------+
 // |                        infos & errors display                         |
 // +-----------------------------------------------------------------------+
+
 $template->assign('errors', $page['errors']);
 $template->assign('infos', $page['infos']);
@@ -164,4 +363,5 @@
 // |                           html code display                           |
 // +-----------------------------------------------------------------------+
+
 include(PHPWG_ROOT_PATH.'include/page_header.php');
 $template->pparse('password');
Index: /trunk/themes/Sylvia/theme.css
===================================================================
--- /trunk/themes/Sylvia/theme.css	(revision 11991)
+++ /trunk/themes/Sylvia/theme.css	(revision 11992)
@@ -464,2 +464,7 @@
 	background-image: url(../default/s26/outline_ff7700.png);
 }
+
+.message {
+  color:white;
+  background-color:#666;
+}
Index: /trunk/themes/dark/theme.css
===================================================================
--- /trunk/themes/dark/theme.css	(revision 11991)
+++ /trunk/themes/dark/theme.css	(revision 11992)
@@ -76,2 +76,6 @@
 }
 
+.message {
+  color:white;
+  background-color:#666;
+}
Index: /trunk/themes/default/template/password.tpl
===================================================================
--- /trunk/themes/default/template/password.tpl	(revision 11991)
+++ /trunk/themes/default/template/password.tpl	(revision 11992)
@@ -1,13 +1,15 @@
 {if isset($MENUBAR)}{$MENUBAR}{/if}
 <div id="content" class="content">
+  <div class="titrePage">
+    <ul class="categoryActions">
+      <li>
+        <a href="{$U_HOME}" title="{'Home'|@translate}" class="pwg-state-default pwg-button">
+          <span class="pwg-icon pwg-icon-home">&nbsp;</span><span class="pwg-button-text">{'Home'|@translate}</span>
+        </a>
+      </li>
+    </ul>
 
-	<div class="titrePage">
-		<ul class="categoryActions">
-      <li><a href="{$U_HOME}" title="{'Home'|@translate}" class="pwg-state-default pwg-button">
-        <span class="pwg-icon pwg-icon-home">&nbsp;</span><span class="pwg-button-text">{'Home'|@translate}</span>
-      </a></li>
-    </ul>
-		<h2>{'Password forgotten'|@translate}</h2>
-	</div>
+    <h2>{$title}</h2>
+  </div>
 
   {if count($errors)}
@@ -31,26 +33,53 @@
   {/if}
 
-<form action="{$F_ACTION}" method="post" class="properties">
-  <fieldset>
-    <legend>{'Retrieve password'|@translate}</legend>
+{if $action ne 'none'}
+<form id="lostPassword" action="{$form_action}?action={$action}{if isset($key)}&amp;key={$key}{/if}" method="post">
+  <input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
 
-    <ul>
-      <li>
-        <span class="property">
-          <label for="mail_address">{'Email address'|@translate}</label>
-        </span>
-        <input class="login" type="text" name="mail_address" id="mail_address" size="40" maxlength="40" >
-      </li>
-      <li>
-        <span class="property">
-          <label for="no_mail_address">{'No email address'|@translate}</label>
-        </span>
-        <input type="checkbox" id="no_mail_address" name="no_mail_address" value="1">
-      </li>
-    </ul>
-  </fieldset>
+  {if $action eq 'lost'}
+  <div class="message">{'Please enter your username or email address.'|@translate} {'You will receive a link to create a new password via email.'|@translate}</div>
 
-  <p><input class="submit" type="submit" name="submit" value="{'Send new password'|@translate}"></p>
+  <p>
+    <label>
+      {'Username or email'|@translate}
+      <br>
+      <input type="text" id="username_or_email" name="username_or_email" size="40" maxlength="40"{if isset($username_or_email)} value="{$username_or_email}"{/if}>
+    </label>
+  </p>
+
+  <p class="bottomButtons"><input class="submit" type="submit" name="submit" value="{'Change my password'|@translate}"></p>
+  {elseif $action eq 'reset'}
+
+  <div class="message">{'Hello'|@translate} <em>{$username}</em>. {'Enter your new password below.'|@translate}</div>
+
+  <p>
+    <label>
+      {'New password'|@translate}
+      <br>
+      <input type="password" name="use_new_pwd" id="use_new_pwd" value="">
+    </label>
+  </p>
+
+  <p>
+    <label>
+      {'Confirm Password'|@translate}
+      <br>
+      <input type="password" name="passwordConf" id="passwordConf" value="">
+    </label>
+  </p>
+
+  <p class="bottomButtons"><input class="submit" type="submit" name="submit" value="{'Submit'|@translate}"></p>
+  {/if}
+
 </form>
+{/if} {* $action ne 'none' *}
+
+<script type="text/javascript">
+{if $action eq 'lost'}
+{literal}try{document.getElementById('username_or_email').focus();}catch(e){}{/literal}
+{elseif $action eq 'reset'}
+{literal}try{document.getElementById('use_new_pwd').focus();}catch(e){}{/literal}
+{/if}
+</script>
 
 </div> <!-- content -->
Index: /trunk/themes/default/theme.css
===================================================================
--- /trunk/themes/default/theme.css	(revision 11991)
+++ /trunk/themes/default/theme.css	(revision 11992)
@@ -788,2 +788,27 @@
 #linkToPiwigo {text-align:center;}
 
+.message {
+  background-color: lightyellow;
+  color:#333;
+  /* margin: 0.5em 1em 0.5em 1em; */
+  margin-bottom:1em;
+  padding: 12px;
+  -moz-border-radius: 3px;
+  -khtml-border-radius: 3px;
+  -webkit-border-radius: 3px;
+  border-radius: 3px;
+}
+
+#thePasswordPage form#lostPassword {
+  padding: 1em;
+}
+
+#thePasswordPage form#lostPassword p {
+  text-align: left;
+  margin: 0 0 1em 0;
+  line-height: 1.5em;
+}
+
+#thePasswordPage form#lostPassword p.bottomButtons {
+  margin-top:2em;
+}
