diff -urN -X psidiff.ignore sources/options/default.xml work/options/default.xml
--- sources/options/default.xml	2009-07-22 17:58:59.000000000 +0600
+++ work/options/default.xml	2009-07-22 18:03:42.000000000 +0600
@@ -138,6 +138,15 @@
 				</show>
 				<show-group-counts type="bool">true</show-group-counts>
 				<show-menubar type="bool">true</show-menubar>
+				<disable-scrollbar type="bool">true</disable-scrollbar>
+				<avatars>
+					<show type="bool">true</show>
+					<size type="int">24</size>
+					<radius type="int">5</radius>
+				</avatars>
+				<show-mood-icons type="bool">true</show-mood-icons>
+				<show-tune-icons type="bool">true</show-tune-icons>
+				<show-client-icons type="bool">false</show-client-icons>
 				<toolbars/>
 				<toolbars-state type="QByteArray"/>
 				<use-left-click type="bool">false</use-left-click>
diff -urN -X psidiff.ignore sources/src/options/opt_application.cpp work/src/options/opt_application.cpp
--- sources/src/options/opt_application.cpp	2009-07-16 03:57:42.000000000 +0600
+++ work/src/options/opt_application.cpp	2009-07-22 17:59:25.000000000 +0600
@@ -39,18 +39,9 @@
 	w = new OptApplicationUI();
 	OptApplicationUI *d = (OptApplicationUI *)w;
 
-	d->ck_alwaysOnTop->setWhatsThis(
-		tr("Makes the main Psi window always be in front of other windows."));
-	d->ck_autoRosterSize->setWhatsThis(
-		tr("Makes the main Psi window resize automatically to fit all contacts."));
 	d->ck_keepSizes->setWhatsThis(
 		tr("Makes Psi remember window size and positions for chats and messages."
 		"  If disabled, the windows will always appear in their default positions and sizes."));
-	d->ck_useleft->setWhatsThis(
-		tr("Normally, right-clicking with the mouse on a contact will activate the context-menu."
-		"  Check this option if you'd rather use a left-click."));
-	d->ck_showMenubar->setWhatsThis(
-		tr("Shows the menubar in the application window."));
 
 	// docklet
 	d->ck_docklet->setWhatsThis(
@@ -65,8 +56,6 @@
 		"window use a small titlebar."));
 
 #ifdef Q_WS_MAC
-	d->ck_alwaysOnTop->hide();
-	d->ck_showMenubar->hide();
 	d->gb_docklet->hide();
 #endif
 
@@ -89,11 +78,7 @@
 
 	OptApplicationUI *d = (OptApplicationUI *)w;
 
-	PsiOptions::instance()->setOption("options.ui.contactlist.always-on-top", d->ck_alwaysOnTop->isChecked());
-	PsiOptions::instance()->setOption("options.ui.contactlist.automatically-resize-roster", d->ck_autoRosterSize->isChecked());
 	PsiOptions::instance()->setOption("options.ui.remember-window-sizes",d->ck_keepSizes->isChecked());
-	PsiOptions::instance()->setOption("options.ui.contactlist.use-left-click", d->ck_useleft->isChecked());
-	PsiOptions::instance()->setOption("options.ui.contactlist.show-menubar", d->ck_showMenubar->isChecked());
 
 	// Auto-update
 	PsiOptions::instance()->setOption("options.auto-update.check-on-startup", d->ck_autoUpdate->isChecked());
@@ -116,11 +101,7 @@
 
 	OptApplicationUI *d = (OptApplicationUI *)w;
 
-	d->ck_alwaysOnTop->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.always-on-top").toBool() );
-	d->ck_autoRosterSize->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.automatically-resize-roster").toBool() );
 	d->ck_keepSizes->setChecked( PsiOptions::instance()->getOption("options.ui.remember-window-sizes").toBool() );
-	d->ck_showMenubar->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.show-menubar").toBool() );
-	d->ck_useleft->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.use-left-click").toBool() );
 	d->ck_autoUpdate->setChecked(PsiOptions::instance()->getOption("options.auto-update.check-on-startup").toBool());
 
 	// docklet
diff -urN -X psidiff.ignore sources/src/options/opt_application.ui work/src/options/opt_application.ui
--- sources/src/options/opt_application.ui	2009-07-16 03:57:42.000000000 +0600
+++ work/src/options/opt_application.ui	2009-07-22 17:59:25.000000000 +0600
@@ -14,20 +14,6 @@
   </property>
   <layout class="QVBoxLayout" >
    <item>
-    <widget class="QCheckBox" name="ck_alwaysOnTop" >
-     <property name="text" >
-      <string>Roster window always on top</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="ck_autoRosterSize" >
-     <property name="text" >
-      <string>Auto-resize contact list</string>
-     </property>
-    </widget>
-   </item>
-   <item>
     <widget class="QCheckBox" name="ck_keepSizes" >
      <property name="text" >
       <string>Remember window sizes</string>
@@ -35,23 +21,6 @@
     </widget>
    </item>
    <item>
-    <widget class="QCheckBox" name="ck_useleft" >
-     <property name="enabled" >
-      <bool>true</bool>
-     </property>
-     <property name="text" >
-      <string>Use left-click for menu</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="ck_showMenubar" >
-     <property name="text" >
-      <string>Show menubar</string>
-     </property>
-    </widget>
-   </item>
-   <item>
     <widget class="QCheckBox" name="ck_docklet" >
      <property name="text" >
       <string>Enable docklet</string>
diff -urN -X psidiff.ignore sources/src/options/optionsdlg.cpp work/src/options/optionsdlg.cpp
--- sources/src/options/optionsdlg.cpp	2009-07-16 03:57:42.000000000 +0600
+++ work/src/options/optionsdlg.cpp	2009-07-22 17:59:25.000000000 +0600
@@ -20,6 +20,7 @@
 // tabs
 #include "opt_toolbars.h"
 #include "opt_application.h"
+#include "opt_roster.h"
 #include "opt_appearance.h"
 #include "opt_chat.h"
 #include "opt_events.h"
@@ -316,6 +317,7 @@
 	OptionsTabApplication* applicationTab = new OptionsTabApplication(this);
 	applicationTab->setHaveAutoUpdater(psi->haveAutoUpdater());
 	tabs.append( new OptionsTabApplication(this) );
+	tabs.append( new OptionsTabRoster(this) );
 	tabs.append( new OptionsTabChat(this) );
 	tabs.append( new OptionsTabEvents(this) );
 	tabs.append( new OptionsTabStatus(this) );
diff -urN -X psidiff.ignore sources/src/options/options.pri work/src/options/options.pri
--- sources/src/options/options.pri	2009-07-22 17:58:58.000000000 +0600
+++ work/src/options/options.pri	2009-07-22 17:59:25.000000000 +0600
@@ -12,6 +12,7 @@
 # additional tabs
 HEADERS += \
 	$$PWD/opt_application.h \
+	$$PWD/opt_roster.h \
 	$$PWD/opt_chat.h \
 	$$PWD/opt_events.h \
 	$$PWD/opt_status.h \
@@ -28,6 +29,7 @@
 
 SOURCES += \
 	$$PWD/opt_application.cpp \
+	$$PWD/opt_roster.cpp \
 	$$PWD/opt_chat.cpp \
 	$$PWD/opt_events.cpp \
 	$$PWD/opt_status.cpp \
@@ -44,6 +46,7 @@
 
 INTERFACES += \
 	$$PWD/opt_application.ui \
+	$$PWD/opt_roster.ui \
 	$$PWD/opt_chat.ui \
 	$$PWD/opt_events.ui \
 	$$PWD/opt_status.ui \
diff -urN -X psidiff.ignore sources/src/options/opt_roster.cpp work/src/options/opt_roster.cpp
--- sources/src/options/opt_roster.cpp	1970-01-01 05:00:00.000000000 +0500
+++ work/src/options/opt_roster.cpp	2009-07-22 18:22:07.000000000 +0600
@@ -0,0 +1,102 @@
+#include "opt_roster.h"
+#include "common.h"
+#include "iconwidget.h"
+#include "psioptions.h"
+
+
+#include "ui_opt_roster.h"
+
+class OptRosterUI : public QWidget, public Ui::OptRoster
+{
+public:
+	OptRosterUI() : QWidget() { setupUi(this); }
+};
+
+//----------------------------------------------------------------------------
+// OptionsTabRoster
+//----------------------------------------------------------------------------
+
+OptionsTabRoster::OptionsTabRoster(QObject *parent)
+: OptionsTab(parent, "roster", "", tr("Roster"), tr("Roster window options"), "psiplus/psiplus_icon")
+{
+	w = 0;
+}
+
+OptionsTabRoster::~OptionsTabRoster()
+{
+}
+
+QWidget *OptionsTabRoster::widget()
+{
+	if ( w )
+		return 0;
+
+	w = new OptRosterUI();
+	OptRosterUI *d = (OptRosterUI *)w;
+
+	d->ck_alwaysOnTop->setWhatsThis(
+		tr("Makes the main Psi window always be in front of other windows."));
+	d->ck_autoRosterSize->setWhatsThis(
+		tr("Makes the main Psi window resize automatically to fit all contacts."));
+	d->ck_useleft->setWhatsThis(
+		tr("Normally, right-clicking with the mouse on a contact will activate the context-menu."
+		"  Check this option if you'd rather use a left-click."));
+	d->ck_showMenubar->setWhatsThis(
+		tr("Shows the menubar in the application window."));
+
+
+#ifdef Q_WS_MAC
+	d->ck_alwaysOnTop->hide();
+	d->ck_showMenubar->hide();
+#endif
+
+	return w;
+}
+
+void OptionsTabRoster::applyOptions()
+{
+	if ( !w )
+		return;
+
+	OptRosterUI *d = (OptRosterUI *)w;
+
+	PsiOptions::instance()->setOption("options.ui.contactlist.always-on-top", d->ck_alwaysOnTop->isChecked());
+	PsiOptions::instance()->setOption("options.ui.contactlist.automatically-resize-roster", d->ck_autoRosterSize->isChecked());
+	PsiOptions::instance()->setOption("options.ui.contactlist.use-left-click", d->ck_useleft->isChecked());
+	PsiOptions::instance()->setOption("options.ui.contactlist.show-menubar", d->ck_showMenubar->isChecked());
+	PsiOptions::instance()->setOption("options.ui.contactlist.disable-scrollbar", d->ck_disableScrollbar->isChecked());
+
+	//enabled icons
+	PsiOptions::instance()->setOption("options.ui.contactlist.avatars.show", d->ck_showAvatarIcons->isChecked());
+	PsiOptions::instance()->setOption("options.ui.contactlist.show-mood-icons", d->ck_showMoodIcons->isChecked());
+	PsiOptions::instance()->setOption("options.ui.contactlist.show-tune-icons", d->ck_showTuneIcons->isChecked());
+	PsiOptions::instance()->setOption("options.ui.contactlist.show-client-icons", d->ck_showClientIcons->isChecked());
+
+	//avatars settings
+	PsiOptions::instance()->setOption("options.ui.contactlist.avatars.size", d->sb_avatarsSize->value());
+	PsiOptions::instance()->setOption("options.ui.contactlist.avatars.radius", d->sb_avatarsRadius->value());
+}
+
+void OptionsTabRoster::restoreOptions()
+{
+	if ( !w )
+		return;
+
+	OptRosterUI *d = (OptRosterUI *)w;
+
+	d->ck_alwaysOnTop->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.always-on-top").toBool() );
+	d->ck_autoRosterSize->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.automatically-resize-roster").toBool() );
+	d->ck_useleft->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.use-left-click").toBool() );
+	d->ck_showMenubar->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.show-menubar").toBool() );
+	d->ck_disableScrollbar->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.disable-scrollbar").toBool() );
+
+	//enabled icons
+	d->ck_showAvatarIcons->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.avatars.show").toBool() );
+	d->ck_showMoodIcons->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.show-mood-icons").toBool() );
+	d->ck_showTuneIcons->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.show-tune-icons").toBool() );
+	d->ck_showClientIcons->setChecked( PsiOptions::instance()->getOption("options.ui.contactlist.show-client-icons").toBool() );
+
+	//avatars settings
+	d->sb_avatarsSize->setValue( PsiOptions::instance()->getOption("options.ui.contactlist.avatars.size").toInt() );
+	d->sb_avatarsRadius->setValue( PsiOptions::instance()->getOption("options.ui.contactlist.avatars.radius").toInt() );
+}
diff -urN -X psidiff.ignore sources/src/options/opt_roster.h work/src/options/opt_roster.h
--- sources/src/options/opt_roster.h	1970-01-01 05:00:00.000000000 +0500
+++ work/src/options/opt_roster.h	2009-07-22 17:59:25.000000000 +0600
@@ -0,0 +1,24 @@
+#ifndef OPT_ROSTER_H
+#define OPT_ROSTER_H
+
+#include "optionstab.h"
+
+class QWidget;
+class QButtonGroup;
+
+class OptionsTabRoster : public OptionsTab
+{
+	Q_OBJECT
+public:
+	OptionsTabRoster(QObject *parent);
+	~OptionsTabRoster();
+
+	QWidget *widget();
+	void applyOptions();
+	void restoreOptions();
+
+private:
+	QWidget *w;
+};
+
+#endif
diff -urN -X psidiff.ignore sources/src/options/opt_roster.ui work/src/options/opt_roster.ui
--- sources/src/options/opt_roster.ui	1970-01-01 05:00:00.000000000 +0500
+++ work/src/options/opt_roster.ui	2009-07-22 18:22:27.000000000 +0600
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>OptRoster</class>
+ <widget class="QWidget" name="OptRoster">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>343</width>
+    <height>401</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>OptApplicationUI</string>
+  </property>
+  <layout class="QVBoxLayout">
+   <property name="spacing">
+    <number>6</number>
+   </property>
+   <property name="margin">
+    <number>9</number>
+   </property>
+   <item>
+    <widget class="QCheckBox" name="ck_alwaysOnTop">
+     <property name="text">
+      <string>Roster window always on top</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QCheckBox" name="ck_autoRosterSize">
+     <property name="text">
+      <string>Auto-resize contact list</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QCheckBox" name="ck_useleft">
+     <property name="enabled">
+      <bool>true</bool>
+     </property>
+     <property name="text">
+      <string>Use left-click for menu</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QCheckBox" name="ck_showMenubar">
+     <property name="text">
+      <string>Show menubar</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QCheckBox" name="ck_disableScrollbar">
+     <property name="whatsThis">
+      <string>Disables scrollbar in the application window.</string>
+     </property>
+     <property name="text">
+      <string>Disable scrollbar</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="gb_docklet">
+     <property name="title">
+      <string>Icons</string>
+     </property>
+     <layout class="QVBoxLayout">
+      <property name="spacing">
+       <number>6</number>
+      </property>
+      <property name="margin">
+       <number>10</number>
+      </property>
+      <item>
+       <widget class="QCheckBox" name="ck_showAvatarIcons">
+        <property name="whatsThis">
+         <string>Show avatars in roster</string>
+        </property>
+        <property name="text">
+         <string>Avatars</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="ck_showMoodIcons">
+        <property name="whatsThis">
+         <string>Show moods in roster</string>
+        </property>
+        <property name="text">
+         <string>Moods</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="ck_showTuneIcons">
+        <property name="whatsThis">
+         <string>Show icon when contact is listening to music</string>
+        </property>
+        <property name="text">
+         <string>Now playing</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="ck_showClientIcons">
+        <property name="whatsThis">
+         <string>Show icon of user client</string>
+        </property>
+        <property name="text">
+         <string>Clients</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="gb_avatarsSettings">
+     <property name="title">
+      <string>Avatar settings</string>
+     </property>
+     <property name="checkable">
+      <bool>false</bool>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout">
+        <item>
+         <widget class="QLabel" name="lbl_avatarsSize">
+          <property name="text">
+           <string>Size</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QSpinBox" name="sb_avatarsSize">
+          <property name="maximumSize">
+           <size>
+            <width>60</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="suffix">
+           <string>px</string>
+          </property>
+          <property name="prefix">
+           <string/>
+          </property>
+          <property name="minimum">
+           <number>8</number>
+          </property>
+          <property name="maximum">
+           <number>64</number>
+          </property>
+          <property name="value">
+           <number>24</number>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_2">
+        <item>
+         <widget class="QLabel" name="lbl_avatarsRadius">
+          <property name="text">
+           <string>Radius of corners</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QSpinBox" name="sb_avatarsRadius">
+          <property name="maximumSize">
+           <size>
+            <width>60</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="suffix">
+           <string>px</string>
+          </property>
+          <property name="value">
+           <number>5</number>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <tabstops>
+  <tabstop>ck_alwaysOnTop</tabstop>
+  <tabstop>ck_autoRosterSize</tabstop>
+  <tabstop>ck_useleft</tabstop>
+  <tabstop>ck_showMenubar</tabstop>
+  <tabstop>ck_showAvatarIcons</tabstop>
+  <tabstop>ck_showMoodIcons</tabstop>
+  <tabstop>ck_showTuneIcons</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
