Index: /trunk/include/functions_user.inc.php
===================================================================
--- /trunk/include/functions_user.inc.php	(revision 9073)
+++ /trunk/include/functions_user.inc.php	(revision 9074)
@@ -813,45 +813,4 @@
       unset($cache['default_user']['status']);
       unset($cache['default_user']['registration_date']);
-
-      // theme and language fields may be null in the database (see
-      // bug:1683) This is absolutely not nice to have this code in this
-      // very place, but it avoids a complexe upgrade with an "automatic
-      // fix" in the database => this code should be removed after branch
-      // 2.1 if a migration tasks performs the job the same way
-      if (empty($cache['default_user']['theme']))
-      {
-        mass_updates(
-          USER_INFOS_TABLE,
-          array(
-            'primary' => array('user_id'),
-            'update'  => array('theme')
-            ),
-          array(
-            array(
-              'user_id' => $conf['default_user_id'],
-              'theme' => PHPWG_DEFAULT_TEMPLATE
-              )
-            )
-          );
-        $cache['default_user']['theme'] = PHPWG_DEFAULT_TEMPLATE;
-      }
-      
-      if (empty($cache['default_user']['language']))
-      {
-        mass_updates(
-          USER_INFOS_TABLE,
-          array(
-            'primary' => array('user_id'),
-            'update'  => array('language')
-            ),
-          array(
-            array(
-              'user_id' => $conf['default_user_id'],
-              'language' => PHPWG_DEFAULT_LANGUAGE
-              )
-            )
-          );
-        $cache['default_user']['language'] = PHPWG_DEFAULT_LANGUAGE;
-      }
     }
   }
Index: /trunk/install/db/97-database.php
===================================================================
--- /trunk/install/db/97-database.php	(revision 9074)
+++ /trunk/install/db/97-database.php	(revision 9074)
@@ -0,0 +1,63 @@
+<?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 = 'makes sure default user has a theme and a language';
+
+$query = '
+SELECT
+    theme,
+    language
+  FROM '.USER_INFOS_TABLE.'
+  WHERE user_id = '.$conf['default_user_id'].'
+;';
+$result = pwg_query($query);
+list($theme, $language) = pwg_db_fetch_row($result);
+
+$data = array(
+  'user_id' => $conf['default_user_id'],
+  'theme' => empty($theme) ? 'Sylvia' : $theme,
+  'language' => empty($language) ? 'en_UK' : $language,
+  );
+
+mass_updates(
+  USER_INFOS_TABLE,
+  array(
+    'primary' => array('user_id'),
+    'update'  => array('theme', 'language')
+    ),
+  array(
+    $data
+    )
+  );
+
+echo
+"\n"
+. $upgrade_description
+."\n"
+;
+?>
