diff --git a/res/ui/preferences.ui b/res/ui/preferences.ui
index 004f3c29f699b4623a3d08009188750de9fe0090..a00cfadfb47d845d9a426cfc29abb2d80652a4c7 100644
--- a/res/ui/preferences.ui
+++ b/res/ui/preferences.ui
@@ -96,7 +96,7 @@
      <item>
       <widget class="QStackedWidget" name="stackedWidget">
        <property name="currentIndex">
-        <number>1</number>
+        <number>0</number>
        </property>
        <widget class="QWidget" name="page">
         <layout class="QVBoxLayout" name="verticalLayout_7">
@@ -131,6 +131,13 @@
            </item>
           </layout>
          </item>
+         <item>
+          <widget class="Line" name="line_2">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+          </widget>
+         </item>
          <item>
           <layout class="QHBoxLayout" name="horizontalLayout_4">
            <item>
@@ -147,9 +154,9 @@
             </spacer>
            </item>
            <item>
-            <widget class="QCheckBox" name="checkBox">
+            <widget class="QCheckBox" name="checkbox_expertmode">
              <property name="text">
-              <string>Expert mode</string>
+              <string>Enable expert mode</string>
              </property>
             </widget>
            </item>
@@ -171,46 +178,22 @@
         </layout>
         <zorder></zorder>
         <zorder></zorder>
-        <zorder></zorder>
         <zorder>verticalSpacer</zorder>
+        <zorder>line_2</zorder>
        </widget>
        <widget class="QWidget" name="page_2">
         <layout class="QVBoxLayout" name="verticalLayout_2">
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_5">
-           <item>
-            <spacer name="horizontalSpacer_2">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>40</width>
-               <height>20</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-           <item>
-            <widget class="QCheckBox" name="checkBox_2">
-             <property name="text">
-              <string>Maximize Window at Startup</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
          <item>
           <layout class="QHBoxLayout" name="horizontalLayout_6">
            <item>
             <widget class="QLabel" name="label_4">
              <property name="text">
-              <string>Numbers after commas </string>
+              <string>Digits after commas </string>
              </property>
             </widget>
            </item>
            <item>
-            <widget class="QSpinBox" name="spinBox"/>
+            <widget class="QSpinBox" name="spinbox_digits_comma"/>
            </item>
           </layout>
          </item>
@@ -228,6 +211,37 @@
            </item>
           </layout>
          </item>
+         <item>
+          <widget class="Line" name="line_3">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <layout class="QHBoxLayout" name="horizontalLayout_5">
+           <item>
+            <spacer name="horizontalSpacer_2">
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+           <item>
+            <widget class="QCheckBox" name="checkbox_maximize">
+             <property name="text">
+              <string>Maximize Window at Startup</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
          <item>
           <spacer name="verticalSpacer_2">
            <property name="orientation">
@@ -244,8 +258,8 @@
         </layout>
         <zorder></zorder>
         <zorder></zorder>
-        <zorder></zorder>
         <zorder>verticalSpacer_2</zorder>
+        <zorder>line_3</zorder>
        </widget>
        <widget class="QWidget" name="page_3"/>
       </widget>
diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py
index 13913356bced7b3a85a91ff4fc5056d0e84c8dc8..7a18d2ec4afc455502f21be86b273396092da6c3 100644
--- a/src/cutecoin/core/app.py
+++ b/src/cutecoin/core/app.py
@@ -51,7 +51,10 @@ class Application(QObject):
         self._network_manager = network_manager
         self.preferences = {'account': "",
                             'lang': 'en_GB',
-                            'ref': 0
+                            'ref': 0,
+                            'expert_mode': False,
+                            'digits_after_comma': 8,
+                            'maximized': False
                             }
 
     @classmethod
@@ -268,7 +271,8 @@ class Application(QObject):
                                             'preferences')
             with open(preferences_path, 'r') as json_data:
                 data = json.load(json_data)
-                self.preferences = data
+                for key in data:
+                    self.preferences[key] = data[key]
         except FileNotFoundError:
             pass
 
diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py
index d6e991b13d544d3252357b7ea0cf1928908ec585..a9c5f5e2dda5e0ccbcba65583cf6650504b74ab8 100644
--- a/src/cutecoin/gui/mainwindow.py
+++ b/src/cutecoin/gui/mainwindow.py
@@ -74,6 +74,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
     def startup(self):
         self.update_time()
         self.app.get_last_version()
+        if self.app.preferences['maximized']:
+            self.showMaximized()
+        else:
+            self.show()
         self.refresh()
 
     def open_add_account_dialog(self):
diff --git a/src/cutecoin/gui/preferences.py b/src/cutecoin/gui/preferences.py
index 8f01452b881f05136f60a5125b22eecc58615db0..6a1e5320c10122ca0d799890c7ebc98e617c5c41 100644
--- a/src/cutecoin/gui/preferences.py
+++ b/src/cutecoin/gui/preferences.py
@@ -38,6 +38,11 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog):
         for lang in ('en_GB', 'fr_FR'):
             self.combo_language.addItem(lang)
         self.combo_language.setCurrentText(self.app.preferences['lang'])
+        self.checkbox_expertmode.setChecked(self.app.preferences['expert_mode'])
+        self.checkbox_maximize.setChecked(self.app.preferences['maximized'])
+        self.spinbox_digits_comma.setValue(self.app.preferences['digits_after_comma'])
+        self.spinbox_digits_comma.setMaximum(12)
+        self.spinbox_digits_comma.setMinimum(1)
         self.button_app.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(0))
         self.button_display.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(1))
         self.button_network.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(2))
@@ -45,7 +50,10 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog):
     def accept(self):
         pref = {'account': self.combo_account.currentText(),
                 'lang': self.combo_language.currentText(),
-                'ref': self.combo_referential.currentIndex()}
+                'ref': self.combo_referential.currentIndex(),
+                'expert_mode': self.checkbox_expertmode.isChecked(),
+                'maximized': self.checkbox_maximize.isChecked(),
+                'digits_after_comma': self.spinbox_digits_comma.value()}
         self.app.save_preferences(pref)
         toast.display(self.tr("Preferences"),
                       self.tr("A restart is needed to apply your new preferences."))
diff --git a/src/cutecoin/main.py b/src/cutecoin/main.py
index 6b1fa199c083bcd5a6ff7fafd58141ae24080fbc..3f17978b75be8d0e19ffc97fa8e205386abdb974 100755
--- a/src/cutecoin/main.py
+++ b/src/cutecoin/main.py
@@ -26,6 +26,5 @@ if __name__ == '__main__':
         app = Application.startup(sys.argv, cutecoin, loop)
         window = MainWindow(app)
         window.startup()
-        window.showMaximized()
         loop.run_forever()
     sys.exit()