diff --git a/ChangeLog b/ChangeLog
index af9a2e81eba01a8e0a0e50643a131138a3cad149..8a74ce000dcbca2b2324df11e720f3ed9c63da2a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -41,6 +41,7 @@ For users:
 - New: Add option to choose firstname-name or name-firstname.
 - New: Add company in fields exported by export of members tool.
 - New: Reorganise bank menu.
+- New: Bookmarks can be sorted on a particular order.
 - Fix: Debug experimental module widthrawal.
 - Fix: Format number was wrong for ar_AR language.
 - Fix: Can change password if has only permission change password.
diff --git a/default.properties b/default.properties
new file mode 100644
index 0000000000000000000000000000000000000000..7cc29631d3e3f2bc338214ef22d05e4223a6fc5e
--- /dev/null
+++ b/default.properties
@@ -0,0 +1,11 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+# 
+# This file must be checked in Version Control Systems.
+# 
+# To customize properties used by the Ant build system use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Indicates whether an apk should be generated for each density.
+split.density=false
diff --git a/htdocs/bookmarks/class/bookmark.class.php b/htdocs/bookmarks/class/bookmark.class.php
index 551f985015ee665581bee3d36edb5e045ff87c92..dc4780659275d0a4248b6138c348f13f840fe178 100644
--- a/htdocs/bookmarks/class/bookmark.class.php
+++ b/htdocs/bookmarks/class/bookmark.class.php
@@ -39,6 +39,7 @@ class Bookmark
     var $url;
     var $target;	// 0=replace, 1=new window
     var $title;
+    var $position;
     var $favicon;
 
 
@@ -60,7 +61,7 @@ class Bookmark
     function fetch($id)
     {
         $sql = "SELECT rowid, fk_user, dateb as datec, url, target,";
-        $sql.= " title, favicon";
+        $sql.= " title, position, favicon";
         $sql.= " FROM ".MAIN_DB_PREFIX."bookmark";
         $sql.= " WHERE rowid = ".$id;
 
@@ -78,6 +79,7 @@ class Bookmark
             $this->url     = $obj->url;
             $this->target  = $obj->target;
             $this->title   = $obj->title;
+            $this->position= $obj->position;
             $this->favicon = $obj->favicon;
 
             $this->db->free($resql);
@@ -92,24 +94,25 @@ class Bookmark
 
     /**
      *      \brief      Insere bookmark en base
-     *      \return     int     <0 si ko, rowid du bookmark cr�� si ok
+     *      \return     int     <0 si ko, rowid du bookmark cree si ok
      */
     function create()
     {
     	// Clean parameters
     	$this->url=trim($this->url);
     	$this->title=trim($this->title);
+		if (empty($this->position)) $this->position=0;
 
     	$this->db->begin();
 
         $sql = "INSERT INTO ".MAIN_DB_PREFIX."bookmark (fk_user,dateb,url,target";
-        $sql.= " ,title,favicon";
+        $sql.= " ,title,favicon,position";
         if ($this->fk_soc) $sql.=",fk_soc";
         $sql.= ") VALUES (";
         $sql.= ($this->fk_user > 0?"'".$this->fk_user."'":"0").",";
         $sql.= " ".$this->db->idate(gmmktime()).",";
         $sql.= " '".$this->url."', '".$this->target."',";
-        $sql.= " '".addslashes($this->title)."', '".$this->favicon."'";
+        $sql.= " '".addslashes($this->title)."', '".$this->favicon."', '".$this->position."'";
         if ($this->fk_soc) $sql.=",".$this->fk_soc;
         $sql.= ")";
 
@@ -142,7 +145,7 @@ class Bookmark
     }
 
     /**
-     *      \brief      Mise � jour du bookmark
+     *      \brief      Update bookmark record
      *      \return     int         <0 si ko, >0 si ok
      */
     function update()
@@ -150,6 +153,7 @@ class Bookmark
     	// Clean parameters
     	$this->url=trim($this->url);
     	$this->title=trim($this->title);
+		if (empty($this->position)) $this->position=0;
 
     	$sql = "UPDATE ".MAIN_DB_PREFIX."bookmark";
         $sql.= " SET fk_user = ".($this->fk_user > 0?"'".$this->fk_user."'":"0");
@@ -158,6 +162,7 @@ class Bookmark
         $sql.= " ,target = '".$this->target."'";
         $sql.= " ,title = '".addslashes($this->title)."'";
         $sql.= " ,favicon = '".$this->favicon."'";
+        $sql.= " ,position = '".$this->position."'";
         $sql.= " WHERE rowid = ".$this->id;
 
         dol_syslog("Bookmark::update sql=".$sql, LOG_DEBUG);
diff --git a/htdocs/bookmarks/fiche.php b/htdocs/bookmarks/fiche.php
index ec077c510befc68256f1821df5a9e572e31e143c..8c0f5a9dd74f6aef4b464809afb39e4b47901a14 100644
--- a/htdocs/bookmarks/fiche.php
+++ b/htdocs/bookmarks/fiche.php
@@ -35,6 +35,7 @@ $title=isset($_GET["title"])?$_GET["title"]:$_POST["title"];
 $url=isset($_GET["url"])?$_GET["url"]:$_POST["url"];
 $target=isset($_GET["target"])?$_GET["target"]:$_POST["target"];
 $userid=isset($_GET["userid"])?$_GET["userid"]:$_POST["userid"];
+$position=isset($_GET["position"])?$_GET["position"]:$_POST["position"];
 
 
 /*
@@ -58,6 +59,7 @@ if ($action == 'add' || $action == 'addproduct' || $action == 'update')
     $bookmark->title=$title;
     $bookmark->url=$url;
     $bookmark->target=$target;
+    $bookmark->position=$position;
 
     if (! $title) $mesg.=($mesg?'<br>':'').$langs->trans("ErrorFieldRequired",$langs->trans("BookmarkTitle"));
     if (! $url)   $mesg.=($mesg?'<br>':'').$langs->trans("ErrorFieldRequired",$langs->trans("UrlOrLink"));
@@ -156,6 +158,11 @@ if ($action == 'create')
     $html->select_users(isset($_POST['userid'])?$_POST['userid']:$user->id,'userid',1);
     print '</td><td>&nbsp;</td></tr>';
 
+    // Position
+    print '<tr><td>'.$langs->trans("Position").'</td><td>';
+    print '<input class="flat" name="position" size="5" value="'.(isset($_POST["position"])?$_POST["position"]:$bookmark->position).'">';
+    print '</td></tr>';
+
     print '<tr><td colspan="3" align="center">';
     print '<input type="submit" class="button" value="'.$langs->trans("CreateBookmark").'" name="create"> &nbsp; ';
     print '<input type="submit" class="button" value="'.$langs->trans("Cancel").'" name="cancel">';
@@ -176,7 +183,7 @@ if ($_GET["id"] > 0 && ! preg_match('/^add/i',$_GET["action"]))
     $bookmark->fetch($_GET["id"]);
 
 
-    dol_fiche_head($head, $hselected, $langs->trans("Bookmark"));
+    dol_fiche_head($head, $hselected, $langs->trans("Bookmark"),0,'bookmark');
 
     if ($_GET["action"] == 'edit')
     {
@@ -235,6 +242,13 @@ if ($_GET["id"] > 0 && ! preg_match('/^add/i',$_GET["action"]))
     }
     print '</td></tr>';
 
+    // Position
+    print '<tr><td>'.$langs->trans("Position").'</td><td>';
+    if ($_GET["action"] == 'edit') print '<input class="flat" name="position" size="5" value="'.(isset($_POST["position"])?$_POST["position"]:$bookmark->position).'">';
+    else print $bookmark->position;
+    print '</td></tr>';
+
+    // Date creation
     print '<tr><td>'.$langs->trans("DateCreation").'</td><td>'.dol_print_date($bookmark->datec,'dayhour').'</td></tr>';
 
     if ($_GET["action"] == 'edit') print '<tr><td colspan="2" align="center"><input class="button" type="submit" name="save" value="'.$langs->trans("Save").'"> &nbsp; &nbsp; <input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
@@ -244,6 +258,8 @@ if ($_GET["id"] > 0 && ! preg_match('/^add/i',$_GET["action"]))
 
     if ($_GET["action"] == 'edit') print '</form>';
 
+
+
     print "</div>\n";
 
 
diff --git a/htdocs/bookmarks/liste.php b/htdocs/bookmarks/liste.php
index 85329c97d95599785f14bea4437a3b924ab484d3..b0e1e2965b9cd2706cb802bf4da751ab9803d69e 100644
--- a/htdocs/bookmarks/liste.php
+++ b/htdocs/bookmarks/liste.php
@@ -18,7 +18,7 @@
 
 /**
  *       \file       htdocs/bookmarks/liste.php
- *       \brief      Page display bookmarks
+ *       \brief      Page to display list of bookmarks
  *       \ingroup    bookmark
  *       \version    $Id$
  */
@@ -30,8 +30,8 @@ require_once(DOL_DOCUMENT_ROOT."/bookmarks/class/bookmark.class.php");
 $page=$_GET["page"];
 $sortorder=$_GET["sortorder"];
 $sortfield=$_GET["sortfield"];
-if (! $sortorder) $sortorder="DESC";
-if (! $sortfield) $sortfield="bid";
+if (! $sortorder) $sortorder="ASC";
+if (! $sortfield) $sortfield="position";
 
 if ($page == -1) { $page = 0 ; }
 $limit = 26;
@@ -72,7 +72,7 @@ print_fiche_titre($langs->trans("Bookmarks"));
 
 if ($mesg) print $mesg;
 
-$sql = "SELECT b.fk_soc as rowid, b.dateb, b.rowid as bid, b.fk_user, b.url, b.target, b.title, b.favicon,";
+$sql = "SELECT b.fk_soc as rowid, b.dateb, b.rowid as bid, b.fk_user, b.url, b.target, b.title, b.favicon, b.position,";
 $sql.= " u.login, u.name, u.firstname";
 $sql.= " FROM ".MAIN_DB_PREFIX."bookmark as b LEFT JOIN ".MAIN_DB_PREFIX."user as u ON b.fk_user=u.rowid";
 $sql.= " WHERE 1=1";
@@ -96,6 +96,7 @@ if ($resql)
     print_liste_field_titre($langs->trans("Target"),'','','','','align="center"')."</td>";
     print_liste_field_titre($langs->trans("Owner"),$_SERVER["PHP_SELF"],"u.name","","",'align="center"',$sortfield,$sortorder);
     print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"b.dateb","","",'align="center"',$sortfield,$sortorder);
+    print_liste_field_titre($langs->trans("Position"),$_SERVER["PHP_SELF"],"b.position","","",'align="right"',$sortfield,$sortorder);
     print_liste_field_titre('','','');
     print "</tr>\n";
 
@@ -166,10 +167,13 @@ if ($resql)
         print "</td>\n";
 
         // Date creation
-        print '<td align="center">'.dol_print_date($db->jdate($obj->dateb),'day') ."</td>";
+        print '<td align="center">'.dol_print_date($db->jdate($obj->dateb),'day')."</td>";
+
+        // Position
+        print '<td align="right">'.$obj->position."</td>";
 
         // Actions
-        print "<td>";
+        print '<td align="right">';
         if ($user->rights->bookmark->supprimer)
         {
             print "<a href=\"".$_SERVER["PHP_SELF"]."?action=delete&bid=$obj->bid\">".img_delete()."</a>";